内容一:Shell脚本语言-基本运算符
1、算术运算符
1.1 "+"运算
注意:'expr'规定命令
a=8388
b=9388
c=`expr $a + $b`
echo "C的值:$c"
1.2 "-"运算
注意:'expr'规定命令
a=8388
b=9388
c=`expr $a - $b`
echo "C的值:$c"
1.3 "*"运算
注意:'expr'规定命令
a=8388
b=9388
c=`expr $a \* $b`
echo "C的值:$c"
1.4 "/"运算
注意:'expr'规定命令
a=8388
b=9388
c=`expr $a / $b`
echo "C的值:$c"
1.5 "%"运算
注意:'expr'规定命令
a=8388
b=9388
c=`expr $a % $b`
echo "C的值:$c"
1.6 "="运算
注意:'expr'规定命令
a=8388
b=$a
echo "B的值:$b"
1.7 "=="运算
注意:"expr"规定命令 空格
a=8388
b=9688
if [ $a == $b ]
then
echo "a等于b"
else
echo "a不等于b"
fi
2、关系运算符
2.1 "-eq":检测两个数是否相等,相等返回true
a=100
b=200
if [ $a -eq $b ]
then
echo "a等于b"
else
echo "a不等于b"
fi
2.2 "-ne":检测两个数是否相等,不相等返回true
a=100
b=200
if [ $a -ne $b ]
then
echo "a不等于b"
else
echo "a等于b"
fi
2.3 “-gt”:检测左边数是否大于右边数,如果是,就返回true
a=100
b=200
if [ $a -gt $b ]
then
echo "a大于b"
else
echo "a不大于b"
fi
2.4 “lt”:检测左边数是否小于右边数,如果是,返回true
a=100
b=200
if [ $a -lt $b ]
then
echo "a小于b"
else
echo "a不小于b"
fi
2.5 “-ge” 检测左边数据是否(大于+等于)右边数 如果是,返回true
a=100
b=200
if [ $a -ge $b ]
then
echo "a大于等于b"
else
echo "a小于b"
fi
2.6 “-le”:检测左边数是否(小于+等于)右边数,如果是返回true
a=100
b=200
if [ $a -le $b ]
then
echo "a小于等于b"
else
echo "a大于b"
fi
3、布尔值运算符
3.1 "!":非运算,表达式true,返回true,否则返回false
a=100
b=200
if [ $a != $b ]
then
echo "a不等于b"
fi
3.2 “-o”:或运算,有一个表达式为true,则返回true
a=100
b=200
if [ $a -lt 200 -o $b -gt 200 ]
then
echo "成立"
fi
3.3 “-a”:与运算。两个表达式为true,则返回true
a=100
b=200
if [ $a -lt 200 -a $b -gt 200 ]
then
echo "成立"
else
echo "不成立"
fi
4、逻辑运算符
4.1 "&&":逻辑且 -and
a=100
b=200
if [ $a -lt 200 -a $b -gt 200 ]
then
echo "成立"
else
echo "不成立"
fi
4.2 "||":逻辑OR
a=100
b=200
if [ $a -lt 200 ] || [ $b -gt 200 ]
then
echo "成立"
else
echo "不成立"
fi
5、字符串运算
5.1 "=":检测两个字符串是否相等,如果相等返回true
a="aa"
b="bb"
if [ $a = $b ]
then
echo "字符串a等于字符串b"
else
echo "字符串a不等于字符串b"
fi
5.2 “!=” 检测两个字符串是否相等,如果不相等返回true
a="aa"
b="bb"
if [ $a != $b ]
then
echo "字符串a不等于字符串b"
else
echo "字符串a等于字符串b"
fi
5.3 “-z”: 检测字符串长度是否为0,如果是返回true
a="aa"
if [ -z $a ]
then
echo "a不存在值"
else
echo "a不为空,存在"
fi
5.4 "-n":检测字符串长度是否为0, 如果不是0,返回true
a="aa"
if [ -n "$a" ]
then
echo "a不为空,存在"
else
echo "a不存在值"
fi
5.5 “字符串”:检测字符串是否为空,不为空返回true
a="aa"
if [ $a ]
then
echo "a不为空"
else
echo "a为空"
fi
6、文件测试运算符
file=“/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh”
6.1 “-d file” :检测文件是不是一个目录,如果是,那么返回true
file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
if [ -d $file ]
then
echo "是一个目录"
else
echo "不是一个目录"
fi
6.2 ”-r file“:检测文件是否可读,如果是,那么返回true
file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
if [ -r $file ]
then
echo "可读"
else
echo "不可读"
fi
6.3 ”-w file“:检测文件是否可写,如果是,那么返回true
file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
if [ -w $file ]
then
echo "可写"
else
echo "不可写"
fi
6.4 “-x file”:检测文件是否是可执行文件,如果是返回true
file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
if [ -x $file ]
then
echo "可执行"
else
echo "不可执行"
fi
6.5 “-f file”:检测文件是否是一个普通文件(既不是目录,也不是普通文件),如果是,那么返回true
file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
if [ -f $file ]
then
echo "文件为普通文件"
else
echo "文件为特殊文件"
fi
6.6 “-s file”:检测文件是否为空(文件有内容),如果是,那么返回true
file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
if [ -s $file ]
then
echo "文件有内容"
else
echo "文件没有内容"
fi
6.7 “-e file”:检测文件是否存在(包含了:目录和文件),如果是,返回true
file="/Users/Wisdom/Desktop/进阶代码/流媒体/第三天/hello.sh"
if [ -e $file ]
then
echo "存在"
else
echo "不存在"
fi
内容二:Shell脚本语言-流程控制
1、“if”语句
语法结构
if[条件]
then
代码
fi
代码结构
a="aa"
b="bb"
if [ $a = $b ]
then
echo "字符串a等于字符串b"
fi
2、"if else"语句
语法结构
if[条件]
then
代码
else
代码
fi
代码结构
a="aa"
b="bb"
if [ $a = $b ]
then
echo "字符串a等于字符串b"
else
echo "字符串a不等于字符串b"
fi
3、“if-else-if-else”
语法结构
if[条件]
then
代码
elif[条件]
then
代码
else
代码
fi
代码结构
a="aa"
b="bb"
if [ $a = $b ]
then
echo "字符串a等于字符串b"
elif [ $a ]
then
echo "字符串a不能为空"
else
echo "字符串a不等于字符串b"
fi
4、“for”循环语句
语法变量
for 变量名 in item1 item2 item2...
do
代码
done
代码案例一
for name in "aa" "bb" "cc"
do
echo $name
done
5、"while"循环
语法结构
while(条件)
do
代码
done
代码案例一
a=1
while(($a<3))
do
echo $a
a=`expr $a + 1`
done
6、 “case”语句
语法结构
case 值 in
模式1)
代码
;;
模式2)
代码
;;
模式3)
代码
;;
esac
代码结构
number=2
case $number in
1)
echo "等于1"
;;
2)
echo "等于2"
;;
3)
echo "等于3"
;;
esac