如何运行包含shell命令和管道的变量?

时间:2016-04-22 22:37:07

标签: linux bash shell eval

bash 中,我需要运行包含命令变量,然后将输出分配给另一个变量。问题是有几个命令,有一些管道或类似的东西。

以下是一个示例:

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.6574.1.2.0 | awk "{print $ 2}"

upsc ups | grep input.voltage: | cut -d" " -f2

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以将任何命令或管道的stdout捕获到这样的变量:

result=$(upsc ups | grep input.voltage: | cut -d" " -f2)

答案 1 :(得分:0)

这是一种方式:

cmd='upsc ups | grep input.voltage: | cut -d" " -f2'
result=`echo "$cmd" | bash`