当前位置: 代码迷 >> 综合 >> shell 算术,{if,elif,else}判断语句,布尔运算符,字符串比较,文件判断命令
  详细解决方案

shell 算术,{if,elif,else}判断语句,布尔运算符,字符串比较,文件判断命令

热度:80   发布时间:2023-12-23 18:30:15.0

 

shell基础算术:

      a=20

      b=10

     加 : echo `expr $a 空格+空格(下同) $b `  输出:30

     减: echo `expr $a - $b `  输出:10

     乘 : echo `expr $a空格 \*空格 $b `  输出:200

     除 : echo `expr $a / $b `  输出:2

     取余 : echo `expr $a % $b `  输出:0

 

if,else判断语句:

基本语法:

a=10

b=20

if 空格[空格 $a 空格-gt(大于)空格 $b空格];then

echo "$a>$b"

else

echo "$a<=$b"

fi

输出:"10<=20"

 

判断比较命令:

-eq   意思:=

-ne   !=

-gt   >

-lt   <

-ge  >=

-le   <=

 

布尔运算符:

!  非

-o  or  且

-a  and 与

例:

#!/bin/bash
a=20
b=30
if [ $a -lt $b -a $a -eq $b ]
then
echo "$a<$b and $a=$b"
else
echo "not and"
#!/bin/bash
a=20
b=30
if [ $a -lt $b -a $a -eq $b ]
then
echo "$a<$b and $a=$b"
else
echo "not and"
fi

if [  $a -lt $b -o $a -eq $b ];then
echo "$a < $b  or $a = $b  "
else
echo "not or"
fi

if [ $a -ge $b ];then
echo "20>=30"
elif [ $a -le $b ];then
echo "20<=30"
else
echo "no"

fi

结果:

 

字符串比较

-z : 字符串为空时返回true

-n:  字符串非空时返回true

例:

输出:

注意:当一个字符串为空时,$a就为空,那if [ $a = $b ]就等于if[   = $b ],有些情况会报错;

 

文件判断命令:

-x:判断是否为可执行文件

-e:判断文件是否存在

-w:判断文件可写

-r:判断文件可读

例:

输出:

 

 

  相关解决方案