其他分享
首页 > 其他分享> > shel 流程控制 if语句

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