【发布时间】:2012-08-04 01:49:43
【问题描述】:
我想将某个命令的输出捕获到我的 bash 脚本中(在一个变量中),该命令将其输出打印到终端。我尝试了以下方法:
TEST_OUT=`the_command ARG1` #Nope
#Putting the line "the_command ARG1" into a separate script, testing2.sh,
TEST_OUT=$(./testing2.sh) #Nope
testing2.sh
TEST_OUT=$? #Nope
我 100% 确定当我跑步时...
> the_command ARG1
...在终端中,它将我想要捕获的信息准确地打印到终端。
感谢您的帮助!
【问题讨论】:
-
您的脚本中似乎没有捕获标准错误输出,因此它将被打印到终端。
-
如果输出被发送到stderr,你需要将它重定向到stdout,然后才能在你的var中捕获它。试试
TEST_OUT=$(the_command ARG1 2>&1) -
嘿抱歉,这里是 bash 和脚本的新手...有两种方法可以打印到终端、stderr 和 stdout?
-
@ShawnChin 哦,它成功了!好的!发表你的答案,我会接受的
-
已发布。顺便说一句,您通常使用 stdout 打印到终端,并且仅将 stderr 用于错误消息(因此当有人将输出重定向到文件或 var 时它不会被隐藏)。有关 stdout 和 stderr 的快速说明,请参阅en.wikipedia.org/wiki/…。