Bash 如何将屏幕输出存储到变量(linux)
使用Ubuntu。我有一个程序,当你使用-I参数时输出它的版本。程序本身不会执行任何进一步的操作,它只显示版本号,然后退出 问题是如何在变量中捕获输出(所以版本信息)。我想稍后在bourne shell中使用它 假设程序名为“ABC”。当我执行命令时:ABC-I 然后在终端屏幕上显示:版本1.00。但是,当我在终端中输入NR=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
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,你应该将你的解决方案作为答案发布,并将其标记为已接受。