shel 流程控制 if语句
作者:互联网
1、if 条件判断
①单分支if条件语句
语法:
if [条件判断式] ;then
程序
fi
注意事项:
if语句的使用fi结尾
条件判断式就是使用test命令判断,所以中括号和条件判断式之间必须有空格
then后面跟符合条件之后执行的语句,可以放在[]之后,用“:”分割,也可以换行写入,就不需要“:”分割
例如1:判断利率是否大于10,是输出警告
gjl@gjl-virtual-machine:~/shellTest$ cat test09.sh #!/bin/bash aa=$(grep "meim" test08.txt | awk ' { print $5}' | cut -d "%" -f 1) if [ "$aa" -gt 10 ];then echo "12312" fi gjl@gjl-virtual-machine:~/shellTest$
②双分支if条件语句
语法:
if [条件判断式]
then
条件成立时,执行程序
else
条件不成立时,执行的另外一个程序
fi
③多分支if条件语句
语法:
if [ 条件判断式1 ]
then
当条件判断式1成立时,执行程序
elif [ 条件判断式2 ]
then
当条件判断式2成立时,执行程序
...省略更多条件...
else
当所有条件都不成立时,最后执行程序
fi
例如1:判断用户输入的是一个文件还是一个目录
#!/bin/bash read -p "please input a filename:" filename if [ -z "$filename" ] #panduan file shifou wei kong then echo "qing shu ru wenjian ming" exit 1 elif [ ! -e "$filename" ] #panduan file shifou cunzai then echo "wen jian bu cun zai" exit 2 elif [ -f "$filename" ] #panduan file shifoushi putongwenjian] then echo "wenjian wei putongwenjian" elif [ -d "$filename" ] #panduan file shifoushi muluwenjian then echo "gai wenjian wei mulu wenjian" else #ruguo dou bushi echo "$file is an other file" fi
例如2:计算器(完整版)
#!/bin/bash read -t 30 -p "please input a num1:" num1 read -t 30 -p "pleasr input a num2:" num2 read -t 30 -p "please input a operato:" ope
#判断输入的是否有值 if [ -n "$num1" -a -n "$num2" -a -n "$ope" ] then
#判断是否输入的是数字,如果是数字,则为空,否则不为空
#sed 将输入的数字替换为空,如果输入的存在非数字,则最终为非空 test1=$(echo $num1 | sed 's/[0-9]//g') test2=$(echo $num2 | sed 's/[0-9]//g')
#判断是否为空,为空,说明输入的是数字 if [ -z "$test1" -a -z "$test2" ] then
#判断操作符号是否为+-*/ if [ "$ope" == "+" ] then value=$(( $num1 + $num2 )) elif [ "$ope" == "-" ] then value=$(( $num1 - $num2 )) elif [ "$ope" == "*" ] then value=$(( $num1 * $num2 )) elif [ "$ope" == "/" ] then value=$(( $num1 / $num2 )) else
#如果操作符不为+-*/,提示输入正确操作符 echo "please input a valid symbol" exit 10 fi
#如果输入的值处理后不为空,代表输入了非数字字符,提示请输入有效值 else echo "please input a valid value" exit 11 fi
#如果输入的字符中存在空值,则提示请输入值 else echo "please input content" exit 12 fi echo "$num3 $ope $num2 = $value"
标签:语句,判断,num1,num2,shel,echo,fi,流程,输入 来源: https://www.cnblogs.com/recommencer/p/12737920.html