
利用test指令的测试功能
- 判断文件或文件夹是否存在:
test -e ./eli && echo "Exist" || echo "Not exist"
- 判断是否存在该文件:
test -f ./eli && echo "Exist" || echo "Not exist"
- 判断是否存在该文件夹:
test -d ./eli && echo "Exist" || echo "Not exist"
- 判断该文件(夹)是否具有可读权限:
test -r ./eli && echo "Exist" || echo "Not exist"
- 判断该文件(夹)是否具有可写权限:
test -w ./eli && echo "Exist" || echo "Not exist"
- 判断该文件(夹)是否具有可执行权限:
test -x ./eli && echo "Exist" || echo "Not exist"
- 判断字符串/变量是不是空串or空值,是的话,则为true,反之为false:
test -z "" && echo "true" || echo "false"
- 判断字符串/变量是不是空串or空值,是的话,则为false,反之为true(-n可省略):
test -n "" && echo "true" || echo "false"
写个例子
#!/bin/bash
read -p "输入文件名 : " filename
# 判断文件名是否为空串
test -z ${filename} && echo "你需要输入一个名称." && exit 0
# 判断文件是否存在
test ! -e ${filename} && echo "文件 '${filename}' 不存在" && exit 0
# 判断是文件夹,还是文件
test -f ${filename} && filetype="文件"
test -d ${filename} && filetype="文件夹"
# 判断权限
test -r ${filename} && perm="可读"
test -w ${filename} && perm="${perm} 可写"
test -x ${filename} && perm="${perm} 可执行"
# 输出结果
echo "该名称: ${filename} 是一个 ${filetype}"
echo "权限如下: : ${perm}"
利用判断符号[]
使用中括号也可以判断变量是否为空或空串
常用于if语句
-
[ -z "eli" ] ; echo $?
用法与test命令类似 -
[ '${name}' = "eli" ] ; echo $?
- 注意1:中括号里有4个空格,不能少。
- 注意2:变量要用单引号引起来,字符串用双引号
写个例子
#!/bin/bash
read -p "请输入 (Y/N): " yn
# 使用-o表示"或"
[ "${yn}" == "Y" -o "${yn}" == "y" ] && echo "OK!" && exit 0
[ "${yn}" == "N" -o "${yn}" == "n" ] && echo "No!" && exit 0
echo "输入错误。" && exit 0
网友评论