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

我的开源项目

相关推荐
MarkHD14 小时前
RPA工程化实践:重构电商抓取项目——从混乱脚本到模块化、可配置化系统
重构·bash·rpa
晨曦蜗牛21 小时前
Windows 上 Claude Code 报错 “requires git-bash“ 的完整解决方案
windows·git·bash
淮北4942 天前
bash下好用的快捷键以及linux常用指令
linux·开发语言·ubuntu·bash
JobDocLS4 天前
Bash调试方法
开发语言·bash
dys_Codemonkey5 天前
ROS 2 环境配置与 Shell 配置文件详解(zsh/bash)ROS 2 多工作空间规范配置
开发语言·chrome·bash
zhangfeng11335 天前
Windows 的 Git Bash 中使用 md5sum 命令非常简单 md5做文件完整性检测 WinRAR 可以计算文件的 MD5 值
人工智能·windows·git·bash
佳木逢钺6 天前
ROS Noetic 中自定义编译和替换 cv_bridge 的完整指南
人工智能·bash·ros
IMPYLH9 天前
Linux 的 basename 命令
linux·运维·服务器·ssh·bash
IMPYLH9 天前
Linux 的 b2sum 命令
linux·运维·服务器·bash
波特率11520010 天前
bash命令进阶学习(Shell 元字符)
linux·bash·shell