当前第2页 返回上一页
也可以使用不带if语句的test命令。仅当测试命令的退出状态为true时,才会执行&&运算符后的命令,
1 | test -f /etc/resolv.conf && echo "$FILE exist"
|
1 | [ -f /etc/resolv.conf ] && echo "$FILE exist"
|
1 | [[ -f /etc/resolv.conf ] && echo "$FILE exist"
|
如果要在&&运算符之后运行一系列命令,只需将命令括在以“;”或“&&”分隔的大括号中即可。
1 | [ -f /etc/resolv.conf ] && { echo "$FILE exist" ; cp "$FILE" /tmp/; }
|
与&相反,||运算符后面的语句只在测试命令的退出状态为false时执行。
1 | [ -f /etc/resolv.conf ] && echo "$FILE exist" || echo "$FILE does not exist"
|
如何检查目录是否存在?
-d运算符允许测试文件是否是目录。
例如,要检查/etc/docker目录是否存在,需要使用:
1 2 3 4 | FILE=/etc/docker
if [ -d "$FILE" ]; then
echo "$FILE is a directory"
fi
|
1 | [ -d /etc/docker ] && echo "$FILE is a directory"
|
同样,也可以使用双括号[[而不是单个括号[。
如何检查文件是否不存在?
与许多其他语言类似,可以使用!(感叹号)逻辑非运算符来否定测试表达式:
1 2 3 4 | FILE=/etc/docker
if [ ! -f "$FILE" ]; then
echo "$FILE exist and it is a directory"
fi
|
与上述相同:
1 | [ ! -f /etc/docker ] || echo "$FILE does not exist"
|
如何检查是否存在多个文件?
如果存在多个文件,可以使用-a(或&&with[])来测试,而不是使用复杂的嵌套if/else构造:
1 2 3 4 | FILE=/etc/docker
if [ -f /etc/resolv.conf -a -f /etc/hosts ]; then
echo "$FILE is a directory"
fi
|
1 2 3 4 | FILE=/etc/docker
if [ -f /etc/resolv.conf && -f /etc/hosts ]; then
echo "$FILE is a directory"
fi
|
不使用IF语句的等效变体:
1 | [ -f /etc/resolv.conf -a -f /etc/hosts ] && echo "both files exist"
|
1 | [[ -f /etc/resolv.conf && -f /etc/hosts ]] && echo "both files exist"
|
相关视频教程推荐:《Linux教程》
以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!
以上就是如何检查Bash中是否存在文件或目录的详细内容,更多文章请关注木庄网络博客!
返回前面的内容
相关阅读 >>
linux系统中的用户管理
确保安全组内不存在实例之后怎么删除一个安全组
如何在bash脚本中将密码传递给ssh/scp命令
启动bash shell有哪些方式?
linux系统引导流程
linux下apache重启的方法是什么
linux命令rmdir的用法总结
linux系统中的755权限是什么意思
linux安装oracle出现界面乱码
linux下编译程序找不到头文件
更多相关阅读请进入《bash》频道 >>
转载请注明出处:木庄网络博客 » 如何检查Bash中是否存在文件或目录