Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Shell 笔记

说明

  • 本页记录常见 Shell 条件判断和命令拼接写法.
  • 适合快速回忆 test, 退出码判断和基础脚本控制流.

[[[

  • [ 本质上是 test 命令的一种写法, 对空格要求严格.
  • [[ 是更现代的 Shell 条件表达式, 在模式匹配和字符串判断上通常更安全.

示例:

if [ "$num1" -gt "$num2" ]; then
    echo ok
fi

if [[ -n "$name" && "$name" == test* ]]; then
    echo matched
fi

常见判断

[ $? -eq 0 ] && command
[ -f ./a.txt ]
[ -d ./build ]
[ -n "$value" ]
[ -z "$value" ]

使用建议

  • [ 和参数之间必须有空格, 否则很容易语法错误.
  • 涉及变量时尽量加引号, 避免空字符串或空格导致判断异常.
  • 只要脚本运行环境允许, 条件表达式优先使用 [[ ... ]] 可减少很多转义问题.
  • 链式执行时, 可用 && 表示前一步成功才继续, 用 || 表示失败时兜底.