bash “ if <command>; then”语句,<command>返回0,then后面语句才执行

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)的函数返回值约定一致。

相关推荐
艾莉丝努力练剑4 分钟前
【AI大模型接入SDK】C++ ChatSDK使用手册
开发语言·网络·c++·人工智能·学习·大模型
“AI国潮设计-小江”9 小时前
《Python+SDXL实战:用ControlNet精准控制“英歌舞翻糖吐司”构图,附批量生成脚本》
开发语言·人工智能·python·prompt·aigc
程序喵大人9 小时前
【C++入门】编译链接模型 - 01 一个 C++ 程序是怎样变成可执行文件的
开发语言·c++·编译链接模型
sunshine22 girl10 小时前
Java学习七 Java 项目实战1-项目创建和主页面搭建
java·开发语言·学习
菜鸟~noob23311 小时前
【电子战】第三季预告—波武器与电子系统强力毁伤
开发语言·数据库·matlab·电子战
惊讶的猫12 小时前
工具选对之后还不够:商城 Agent 的参数与权限治理
开发语言·python
cmpxr_12 小时前
【MicroPython】如何刷新ESP8266的固件
开发语言·micropython
搭贝12 小时前
上厕所的时间搭好一套系统:AI自动生成实测
开发语言·人工智能·低代码·ai·php·搭贝
智感子13 小时前
智能称重·数据上云:从仪表读数到可追溯的计量凭证
开发语言·php
\光辉岁月/13 小时前
7.javase-面向对象
java·开发语言