4-4(shell4-运算符、条件判断、循环)
2019-08-22 本文已影响0人
不知名的二狗
shell注释
以#开头,没有多行注释
Shell基本运算符
expr是一款表达式计算工具
注意
1.两数相加(使用反引号`而不是单引号’)
- 表达式中间有空格需要多注意
3.7/3=2(结果为商)
4.7%3=1 (结果为余数)
#!/bin/bash
sum=`expr 2 + 2`
# jieguo
echo "sum:$sum"
a=7
b=3
echo `expr $a / $b`
echo `expr $a % $b`
echo `expr [$a == $b]`
echo `expr [$a != $b]`
执行结果
cc@ubuntu:~$ /bin/bash exprtest.sh
sum:4
2
1
0
1
条件判断语句
语法格式一
if [条件判断]
then
语句块(echo '条件成立输出的语句')
fi
语法格式二
if [条件判断]
then
语句块(echo '条件成立输出的语句')
else
语句块(echo '条件不成立输出的语句')
fi
#!/bin/bash
read score
if [ $score -ge 60 -a $score -le 100 ]
then
echo "good"
elif [ $score -le 59 -a $score -gt 10 ]
then
echo "terrible"
elif [ $score -le 10 ]
then
echo "genius"
fi
执行结果(第一行22为终端输入)
cc@ubuntu:~$ /bin/bash iftest.sh
22
terrible
关系运算符
-eq 相等
-ne 不相等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
#!/bin/bash
a=20
b=50
if [ $a -eq $b ]
then
echo "true_eq"
else
echo "false_eq"
fi
执行结果
cc@ubuntu:~$ /bin/bash guanxi.sh
false_eq
布尔运算符
!非运算
-o 或运算
-a 与运算
字符串运算符
= 相等
!= 不相等
-z 检测字符串长度是否为0,为0返回true
str 检测字符串是否为空,不为空返回true
#!/bin/bash
a="abc"
b="eee"
if [ $a = $b ]
then
echo "wa"
else
echo "nono"
fi
执行结果
cc@ubuntu:~$ /bin/bash strtest.sh
nono
文件测试运算符
-d file 检测是否目录
-f file 是否普通文件
-r file 是否可读
-s file 是否为空
#!/bin/bash
f=guanxi.sh
if [ -d $f ]
then
echo "no"
else
echo "yes"
fi
执行结果
cc@ubuntu:~$ /bin/bash io.sh
yes
case...esac
#!/bin/bash
read num
case $num in
1)
echo 1
;;
2)
echo 2
;;
3)
echo 3
;;
esac
执行结果
cc@ubuntu:~$ /bin/bash casetest.sh
3
3
循环
break 跳出所有循环
continue 跳出本次循环
输出1-5的数字
#!/bin/bash
int=1
while(($int<=5))
do
echo $int
let "int++"
done
或者
#!/bin/bash
for((i=1;i<5;i++))
do
echo $i
done
执行结果
cc@ubuntu:~$ /bin/bash whiletest.sh
1
2
3
4
5