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

相关推荐
八年。。2 小时前
simulink与python联合仿真(一)安装MATLAB引擎
开发语言·python
爱吃KFC的大肥羊3 小时前
Redis 基础完全指南:从全局命令到五大数据结构
java·开发语言·数据库·c++·redis·后端
Kiri霧3 小时前
Go 结构体
java·开发语言·golang
沐知全栈开发3 小时前
《jQuery 密码验证》
开发语言
-大头.3 小时前
Java泛型实战:类型安全与高效开发
java·开发语言·安全
charlie1145141913 小时前
现代C++工程实践:简单的IniParser4——实现ini_parser
开发语言·c++·笔记·学习·工程
lsx2024063 小时前
R 注释:全面指南与最佳实践
开发语言
jimy13 小时前
ps aux|grep pid 和 ps -p pid 的区别
java·linux·开发语言
西西弗Sisyphus3 小时前
C++ 实现支持 32 位和 64 位进程的模块枚举
开发语言·c++·操作系统