如何在Bash中捕获标准错误到一个变量 ?

在 Bash 中,您可以使用 2>&1 操作符和 $() 命令替换语法将命令的标准错误输出存储到一个变量中。这里 2>&1 将错误消息重定向到 &1 (标准输出)。默认情况下,shell 作为标准输出设备。

例如,要将 ls 命令的标准错误输出存储到名为 errors 的变量中,可以使用以下命令:

复制代码
errors=$(ls non-existent-file 2>&1)

或者,您可以使用 $? 特殊参数,将命令的退出状态存储到一个变量中。退出状态是一个数字值,指示命令是否成功。值"0"表示成功,而非"0"表示错误。

例如,要将 ls 命令的退出状态存储到一个名为 status 的变量中,可以使用以下命令:

复制代码
ls non-existent-file 
status=$?

然后可以使用 $status 变量检查 ls 命令的退出状态,并根据结果采取适当的操作。例如:

复制代码
ls non-existent-file
status=$?

if [ $status -ne 0 ]; then
echo "Last command failed with an error."
fi

请记住,$() 命令替换语法允许您执行命令并替换其输出。 2> 操作符将命令的标准错误输出重定向到 &1 标准输出流,这允许您捕获命令的标准输出和标准错误输出到变量中。

我的开源项目

相关推荐
典典分享指南1 天前
一品牌多产品线的 GEO 内容矩阵:从策略到落地
java·c#·bash·symfony
tangwangbi4 天前
Linux 系统配置文件:/etc/profile、~/.bashrc 和 ~/.bash_profile 三者之间的区别与作用
linux·运维·bash
Draw Stars4 天前
Git BASH安装教程
开发语言·git·bash
vortex54 天前
一文讲透 Zsh 与 Bash 的区别
开发语言·bash
蜀道山老天师4 天前
Shell Bash变量与运算符(含条件测试与流程控制)
linux·运维·bash
s_w.h4 天前
【 计网 】序列化与反序列化
linux·服务器·网络·算法·bash
典典分享指南10 天前
短视频分镜提示词:让 AI 出片的产品口播
java·c#·bash·composer·symfony
Tanner_SL10 天前
Linux笔记之BASH命令行操作
linux·bash
苦猿的大模型日记13 天前
Day51|从0学习Claude Code(一):一个while循环加一个Bash,复刻Claude Code的心脏
人工智能·学习·bash
RisunJan18 天前
Linux命令-wait(Bash 内建 —— 等待后台进程完成)
linux·chrome·bash