我的GitHub
在 Bash 脚本中,$?
是一个特殊的变量,它表示上一个执行的命令的退出状态。在 Unix-like 系统中,命令成功执行通常返回 0,而非零的返回值通常表示命令执行失败或发生错误。
if [ $? -eq 0 ]; then
这行代码的意思是:
if
: Bash 中的条件语句关键字,用于开始一个条件判断。[
: 测试命令的开始,与]
配对使用。$?
: 上一个命令的退出状态。-eq 0
: 检查$?
是否“等于(equal)”0。then
: 如果[ $? -eq 0 ]
的结果为真(即上一个命令成功执行),则执行then
后面的代码块。
如果上一个命令成功执行,退出状态将会是 0,if
条件将评估为真,然后执行 then
后面的代码块。如果上一个命令失败,退出状态将非 0,if
条件将评估为假,then
后面的代码块将不会执行,脚本会继续执行 else
部分(如果有的话)或者跳过整个 if
块。