String 将输出捕获到终端的Bash脚本

String 将输出捕获到终端的Bash脚本,string,bash,shell,String,Bash,Shell,我想在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%确信当我跑步的时候 > th

我想在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,然后才能将其捕获到变量中。请尝试:

TEST_OUT=$(the_command ARG1 2>&1)

标准错误输出似乎未在脚本中捕获,因此将打印到终端。如果输出被发送到stderr,则需要将其重定向到stdout,然后才能在变量中捕获。请尝试
TEST\u OUT=$(命令ARG1 2>&1)
嘿,抱歉,这里是bash和脚本的新手。。。有两种方式可以打印到终端,stderr和stdout吗?@ShawnChin噢,该死,它成功了!美好的把你的答案贴出来,我会接受的。顺便说一句,您通常使用stdout打印到终端,并且只使用stderr处理错误消息(因此当有人将输出重定向到文件或var时,它不会被隐藏)。要快速解释stdout和stderr,请参阅。太棒了,我不知道带stderr和stdout的区别。好东西。如果您只需要stderr,请使用
$(命令ARG1 2>&1>/dev/null)