3000字扫盲shell基础知识(新手必备)

2020-06-25 12:02:14刘景俊

查看结果:

➜  ~ ./operation.sh
addition=3 , subtraction=-1 , multiplication=4 , division=2 , mod=0
i 不等于 j

关系运算符

操作:(编写脚本)

#!/bin/bash
num1=5
num2=8
if [ $num1 -eq $num2 ]
then
 echo "$num1 是否等于 $num2 : num1 等于 num2"
else
 echo "$num1 是否等于 $num2: num1 不等于 num2"
fi
if [ $num1 -ne $num2 ]
then
 echo "$num1 是否不等于 $num2: num1 不等于 num2"
else
 echo "$num1 是否不等于 $num2 : num1 等于 num2"
fi
if [ $num1 -gt $num2 ]
then
 echo "$num1 是否大于 $num2: num1 大于 num2"
else
 echo "$num1 是否大于 $num2: num1 不大于 num2"
fi
if [ $num1 -lt $num2 ]
then
 echo "$num1 是否小于 $num2: num1 小于 num2"
else
 echo "$num1 是否小于 $num2: num1 不小于 num2"
fi
if [ $num1 -ge $num2 ]
then
 echo "$num1 是否大于等于 $num2: num1 大于或等于 num2"
else
 echo "$num1 是否大于等于 $num2: num1 小于 num2"
fi
if [ $num1 -le $num2 ]
then
 echo "$num1 是否小于等于 $num2: num1 小于或等于 num2"
else
 echo "$num1 是否小于等于 $num2: num1 大于 num2"
fi

操作结果:

➜  ~ ./relation.sh
5 是否等于 8: num1 不等于 num2
5 是否不等于 8: num1 不等于 num2
5 是否大于 8: num1 不大于 num2
5 是否小于 8: num1 小于 num2
5 是否大于等于 8: num1 小于 num2
5 是否小于等于 8: num1 小于或等于 num2

布尔运算符

编写脚本:

#!/bin/bash
num1=3
num2=23
if [ $num1 != $num2 ]
then
 echo "$num1 != $num2 : num1 不等于 num2"
else
 echo "$num1 != $num2: num1 等于 num2"
fi
if [ $num1 -lt 25 -a $num2 -gt 15 ]
then
 echo "$num1 小于 25 且 $num2 大于 15 : 返回 true"
else
 echo "$num1 小于 25 且 $num2 大于 15 : 返回 false"
fi
if [ $num1 -lt 25 -o $num2 -gt 25 ]
then
 echo "$num1 小于 25 或 $num2 大于 25 : 返回 true"
else
 echo "$num1 小于 25 或 $num2 大于 25 : 返回 false"
fi

查看结果:

➜  ~ ./bool.sh
3 != 23 : num1 不等于 num2
3 小于 25 且 23 大于 15 : 返回 true
3 小于 25 或 23 大于 25 : 返回 true

字符串运算符

编写脚本:

#!/bin/bash
apple="apple"
pen="pen"

if [ $apple = $pen ]
then
 echo "$apple = $pen : apple 等于 pen"
else
 echo "$apple = $pen: apple 不等于 pen"
fi
if [ $apple != $pen ]
then
 echo "$apple != $pen : apple 不等于 pen"
else
 echo "$apple != $pen: apple 等于 pen"
fi
if [ -z $apple ]
then
 echo "-z $apple : 字符串长度为 0"
else
 echo "-z $apple : 字符串长度不为 0"
fi
if [ -n "$apple" ]
then
 echo "-n $apple : 字符串长度不为 0"
else
 echo "-n $apple : 字符串长度为 0"
fi
if [ $apple ]
then
 echo "$apple : 字符串不为空"
else
 echo "$apple : 字符串为空"
fi