linux中逻辑判断核心用&&(与)、||(或)、!(非),配合[ ]测试命令,依据命令退出码0为真、非0为假;&&实现全满足才执行,||用于失败兜底,!取反,括号控制优先级,if语句更清晰。

Linux 中组合多个条件做逻辑判断,核心靠 &&(与)、||(或)、!(非)这三个运算符,配合 [ ] 测试命令使用。关键不是堆砌符号,而是理解每个运算符的执行逻辑和返回值含义——命令成功(退出码 0)视为“真”,失败(非 0)视为“假”。
用 && 实现“全部满足才执行”
当需要多个条件同时成立时才运行后续命令,就用 && 连接。它从左到右执行:前一个命令成功,才执行下一个;一旦某个失败,整个链停止。
-
[ -d /tmp ] && [ -w /tmp ] && echo "可写目录":只有 /tmp 是目录 且 当前用户有写权限,才会打印提示 -
ping -c1 google.com >/dev/null && curl -s https://api.example.com/health | grep ok:先测网络连通,再调接口,两步都成功才继续
用 || 实现“任一满足就执行”
|| 的作用是“兜底”或“备选”:前面命令失败,才执行后面的。常用于错误处理或提供默认行为。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
-
[ -f config.conf ] && source config.conf || echo "配置文件缺失,使用默认设置":有配置就加载,没有就提醒 -
command1 || command2 || command3:依次尝试三个命令,只要有一个成功就停,不继续执行后面的
用 ! 取反 + 括号控制优先级
! 放在条件前可反转结果,比如 ! [ -e file ] 表示“文件不存在”。多个条件混用时,建议加括号明确逻辑顺序,避免歧义。
-
if [ -f log.txt ] && ! [ -s log.txt ]; then rm log.txt; fi:存在日志文件 且 文件为空,才删除它 -
if ! ([ -d data ] && [ -r data ]); then echo "data 目录不可读或不存在"; exit 1; fi:括号确保“与”先算,再整体取反
在 if 语句里写更清晰的多条件判断
脚本中推荐用标准 if 结构,比一行链式命令更易读、易调试。条件部分仍可用 && 和 || 组合。
if [ "$USER" = "admin" ] && [ -n "$HOME" ]; then ... fiif [ -f /etc/passwd ] || [ -f /etc/shadow ]; then echo "关键系统文件至少存在一个"; fi










