Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何将屏幕输出存储到变量(linux)_Bash_Variables_Capture - Fatal编程技术网

Bash 如何将屏幕输出存储到变量(linux)

Bash 如何将屏幕输出存储到变量(linux),bash,variables,capture,Bash,Variables,Capture,使用Ubuntu。我有一个程序,当你使用-I参数时输出它的版本。程序本身不会执行任何进一步的操作,它只显示版本号,然后退出 问题是如何在变量中捕获输出(所以版本信息)。我想稍后在bourne shell中使用它 假设程序名为“ABC”。当我执行命令时:ABC-I 然后在终端屏幕上显示:版本1.00。但是,当我在终端中输入NR=ABC-I;echo${NR}那么NR中没有存储任何内容 root@shuttle:~# ABC -i version 1.00 root@shuttle:~# NR=`A

使用Ubuntu。我有一个程序,当你使用-I参数时输出它的版本。程序本身不会执行任何进一步的操作,它只显示版本号,然后退出

问题是如何在变量中捕获输出(所以版本信息)。我想稍后在bourne shell中使用它

假设程序名为“ABC”。当我执行命令时:ABC-I 然后在终端屏幕上显示:版本1.00。但是,当我在终端中输入NR=
ABC-I
;echo${NR}那么NR中没有存储任何内容

root@shuttle:~# ABC -i
version 1.00
root@shuttle:~# NR=`ABC -i`
version 1.00
root@shuttle:~# echo ${NR}

root@shuttle:~#
我也试过:

root@shuttle:~# NR=$(ABC -i)
version 1.00
root@shuttle:~# echo $NR

root@shuttle:~#
我做错了什么?

发现了:

NR=$(ABC -i 2>&1 >/dev/null)

多亏了Paul,因为他让我走上了正确的方向(stderr)

也许你的程序会在stderr而不是stdout上发布版本信息?多亏了Paul。但是,既然信息在终端窗口中可见,有没有办法将其捕获到变量中?@ni_hao,你应该将你的解决方案作为答案发布,并将其标记为已接受。