概述
shell编程基础(shell脚本学习笔记)
文章目录
- shell编程基础(shell脚本学习笔记)
- 判断
- 1. if判断结构
- 2. if/else判断结构
- 3. if/elif/else判断结构
- 4. case判断结构
判断
有了测试,就要有获得测试结果的机制,并根据测试结果运行不同的代码段,这样程序就可以从简单的命令罗列变得更“智能”一些,从而实现程序的流程控制。在Shell中,流程控制分为两大类,一类是“循环”,一类是“判断选择”。
1. if判断结构
if是最简单的判断语句,可以针对测试结果做相应处理:如果测试为真则运行相关代码,其语法结构如下:
if expression; then
command
fi
if expression; then
command1
command2
...
fi
2. if/else判断结构
上一小节中的if结构非常简单,它只会在if判断为真的情况下执行then后面的内容,所以该语句只能做 “单向选择” 。虽然可以通过顺序使用多条if语句,以满足多种条件的判断,但是看起来还是比较烦琐。而if/else语句则可以完成两个分支的选择:如果if后的判断成立,则执行then后面的内容;否则执行else后面的内容。其语法结构如下:
if expression; then
command
else
command
fi
3. if/elif/else判断结构
不论是if结构的单向选择,还是if/else结构的双向选择,实际上都不能满足需要,现实中的判断往往有多种可能,在这种情况下可以通过if/else的语法嵌套完成多向选择。其结构如下所示:
if expression1; then
command1
else
if expression2; then
command2
else
command3
fi
fi
使用这种嵌套的方式可以增加更多的选择分支,虽然从语法上来说毫无错误,但使用这种方式进入多层嵌套后,代码的可读性会变得越来越差。这时可以使用if/elif/else结构。其语法结构如下:
if expression1; then
command1
elif expression2; then
Command2
elif expression3; then
Command3
...
fi
4. case判断结构
和if/elif/else判断结构一样,case判断结构也可以用于多种可能情况下的分支选择。其语法结构如下:
case VAR in
var1) command1 ;;
var2) command2 ;;
var3) command3 ;;
...
*) command ;;
esac
其原理为从上到下依次比较VAR和var1、var2、var3的值是否相等,如果匹配相等则执行后面的命令语句,在无一匹配的情况下匹配最后的默认*,并执行后面的默认命令。要注意的是,case判断结构中的var1、var2、var3等这些值只能是常量或正则表达式。
下面的脚本可以用于检测用户的输入中是否含有大写字母、小写字母或者数字,这里case匹配的值是正则表达式。
[root@localhost ~]# cat detect_input.sh
#!/bin/bash
read-p "Give me a word: " input
echo-en "You gave me some "
case $input in
*[[:lower:]]*) echo-en "Lowercase " ;;
*[[:upper:]]*) echo-en "Uppercase " ;;
*[[:digit:]]*) echo-en "Numerical " ;;
*) echo "unknown input." ;;
esac
最后
以上就是柔弱大雁为你收集整理的shell脚本--判断判断的全部内容,希望文章能够帮你解决shell脚本--判断判断所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复