1.利用test指令测试功能
test -[] filename
-e :该文件是否存在
-f :该文件是否存在且是file
-d :该文件名存在且是否为目录
-b :是否存在且是block device
-c :是否存在且是character device
-S:是否存在且是Socket
-P:是否存在且是pipe
test -[rwxugks] filename
test file1 -[] file2
-nt:(newer than)判断file1是否比file2新
-ot:(older than)判断file1是否比file2旧
-ef:判断是否为同一文件
test -z string :判断字符串是否为空
test str1=str2
注意:使用中括号两端必须要有空格来分割,在中括号里不能使用符号如:|| ,&&等
[ "$HOME" == "$MAIL" ]
在中括号[]内的每一个组件需要空格键来分割;
在括号内的变数,最好斗医双引号括起来
在括号内的常数,最好都以单或双引号括起来
3.shift:
会移动变量,而且shift后面可以接数字,代表拿掉前面的几个参数的意思
![](https://img-blog.csdn.net/20141009214933357)
![](https://img-blog.csdn.net/20141009214953169)
成立执行的指令
fi #结束判断
[ "$yn" == "Y" -o "$yn" == "y" ]
可以替换为:
[ "$yn" == "Y" ] || [ "$yn" == "y"]
多层判断
if[判断条件];then
成立,执行命令
else
不成立,执行命令
fi
if[判断条件];then
条件一成立,执行命令
elif[条件二];then
条件二成立,执行命令
else
if
test -[] filename
-e :该文件是否存在
-f :该文件是否存在且是file
-d :该文件名存在且是否为目录
-b :是否存在且是block device
-c :是否存在且是character device
-S:是否存在且是Socket
-P:是否存在且是pipe
test -[rwxugks] filename
test file1 -[] file2
-nt:(newer than)判断file1是否比file2新
-ot:(older than)判断file1是否比file2旧
-ef:判断是否为同一文件
test -z string :判断字符串是否为空
test str1=str2
实例演示:
输入一个文件夹,测试这个文件类型,权限等信息。
注意:使用中括号两端必须要有空格来分割,在中括号里不能使用符号如:|| ,&&等
[ "$HOME" == "$MAIL" ]
在中括号[]内的每一个组件需要空格键来分割;
在括号内的变数,最好斗医双引号括起来
在括号内的常数,最好都以单或双引号括起来
实例演示:
3.shift:
会移动变量,而且shift后面可以接数字,代表拿掉前面的几个参数的意思
实例演示:
你可以看到当输入五个参数时,每shift一次就会,参数的就会变少,并且支持一次跳过多个参数
4.条件判断式:
if....then
单层条件判断式:
if[条件判断式];then成立执行的指令
fi #结束判断
[ "$yn" == "Y" -o "$yn" == "y" ]
可以替换为:
[ "$yn" == "Y" ] || [ "$yn" == "y"]
多层判断
if[判断条件];then
成立,执行命令
else
不成立,执行命令
fi
if[判断条件];then
条件一成立,执行命令
elif[条件二];then
条件二成立,执行命令
else
if
实例演示: