1,
if <command>; then 语句
- 当
<command>返回 0 时,表示成功 ,条件为真 ,会执行then分支 - 当
<command>返回非 0 值时,表示失败 ,条件为假 ,不会执行then分支
示例
# 示例 1:命令成功(返回 0)
if ls /tmp; then
echo "列出 /tmp 目录成功"
fi
# 示例 2:命令失败(返回非 0)
if ls /nonexistent; then
echo "这不会执行"
else
echo "目录不存在"
fi
# 示例 3:测试退出码
if grep "pattern" file.txt; then
echo "找到匹配项"
fi
2,
你可以用 $? 查看上一个命令的退出状态码:
eg 1
在file文件里面查找 'pattern' 单词,实际上file文件不存在,grep返回2.
如果文件存在,grep找到返回0;grep找不到,返回1
y@vpsaaa-0:~$ grep "pattern" file
grep: file: No such file or directory
y@vpsaaa-0:~$ echo $?
2
ls /tmp
echo $? # 输出 0(成功)
ls /nonexistent
echo $? # 输出非 0 值(失败,通常是 2)
3,
bash 的标准:0 表示成功/真,非 0 表示失败/假 。
这与很多编程语言(如 C)的函数返回值约定一致。