如何在Bash中存储/保存命令的输出?

时间:2016-08-11 10:54:42

标签: linux bash variables command

我想将命令输出保存到bash脚本中的变量中。我已经尝试过在这个论坛中找到的可能性,但它对我的脚本不起作用。

我使用命令cangen vcan0 -g 4 -I 7E -L 8 -D r -v生成CAN数据。 -g,-I,-L,-D,-V是定义如何生成CAN数据的参数。

通常我会在终端上打印数据:

cangen output on bash

我想将此输出存储在变量中:

#!/bin/bash

#We have to generate a virtual CAN bus Interface

sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0

candata= `(cangen vcan0 -g 0.008 -I 7E -L 8 -D r -v)`
echo $candata

当我运行我的脚本时,我没有从我的cangen命令获得输出。我得到了输出:

RTNETLINK answers: File exists

我对Linux和bash脚本编程没有多少经验。有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

我认为你的脚本有效,这条消息是$ candata的内容,以及vcan0设备已经存在的原因。 (你有几次尝试过吗?)

无论如何我建议写:

candata=$(cangen vcan0 -g 0.008 -I 7E -L 8 -D r -v)

candata=`cangen vcan0 -g 0.008 -I 7E -L 8 -D r -v`

正如你所写的那样,你打开一个子壳,它会增加复杂性。