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