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

我的开源项目

相关推荐
longzhizhui9266 天前
Ubuntu 全版本 CVE-2026-98432 内核安全升级操作手册
ubuntu·网络安全·云计算·bash
行走的陀螺仪8 天前
Claude Code 从入门到实战(二):Bash工具、Plan模式与后台任务
开发语言·bash
SEO_juper11 天前
Bash 交叉验证 robots.txt 和 sitemap:两个文件自相矛盾,页面永远收录不了
开发语言·python·node.js·json·bash
无足鸟ICT12 天前
【RHCA+】type命令(判断命令类型)
linux·ssh·bash
SEO_juper14 天前
Node.js 重定向链检测工具:301 跳了几跳、有没有成环,一次看清
xml·开发语言·python·node.js·json·bash
云计算练习生14 天前
什么是 Bash?Linux 默认 Shell 的核心功能
linux·操作系统·bash·shell·命令解释器
qetfw16 天前
Bash 函数与流程控制:read、if、for、case 验证
linux·前端·javascript·bash
qetfw17 天前
Bash 基础:脚本执行、引号与命令替换验证
linux·开发语言·chrome·bash
qetfw18 天前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
ZYH_060118 天前
rhcsa课程复习题
服务器·bash