如何在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 标准输出流,这允许您捕获命令的标准输出和标准错误输出到变量中。

我的开源项目

相关推荐
小肝一下5 天前
7. 库制作与原理
linux·c语言·操作系统·bash·shell·动静态库
德福危险6 天前
从目录枚举到bash破壳漏洞、从流量抓包到组权限提权:靶机练习之symfonos3
开发语言·bash
至乐活着11 天前
Shell脚本编写最佳实践:打造健壮、可维护的自动化利器
自动化·bash·shell·脚本·最佳实践
风向决定发型丶14 天前
Shell中的特殊变量
linux·运维·bash
tiana_16 天前
写了个零依赖的 Go 版本管理器,curl | bash 完事
开发语言·golang·bash
无足鸟ICT18 天前
【RHCA+】bash命令
linux·开发语言·bash
甄同学18 天前
第十七篇:Bash Executor命令执行器,安全运行Shell命令
开发语言·安全·bash
儒雅的名19 天前
GoF设计模式——策略模式
设计模式·bash·策略模式
hai31524754321 天前
九章空间几何对照直译法:通用芯片 / 定制专用芯片 编译适配规则
linux·汇编·bash
wok15722 天前
Git Bash 执行中文命令报错 127:MSYS 参数编码 bug 排查与修复
git·bug·bash