我试图在安装时通过shell脚本安装zfs我遇到了一些错误,所以要完全自动化,我想从错误本身安装版本。对于所有其他命令,我在一个变量中得到错误,但对于一个命令,它根本不会出现。我尝试了所有解决方案。
我需要输出此命令
sploutput=$(sudo dkms install -m spl -v $version)
echo $sploutput
echo $sploutput # This is giving nothing.
我尝试将它包裹在字符串周围,如"sploutput=$(sudo dkms install -m spl -v $version)"
echo "{sploutput}"
似乎没什么用。
答案 0 :(得分:1)
sploutput=$(sudo dkms install -m spl -v $version)
echo $sploutput
可能是因为dkms install
上的STDERR
输出而不是STDOUT
上的输出,并且您使用的是命令变量中的STDOUT
输出。要同时采取这两种方法,您可以尝试:
sploutput=$(sudo dkms install -m spl -v $version 2>&1)
将STDERR
重定向到STDOUT
。
答案 1 :(得分:1)
根据ZMO的回答:尝试运行sudo dkms install -m spl -v $version
看,它又回来了什么? :STDERR或STDOUT。
如果失败,它将不会在sploutput中显示任何内容。 它只将STDOUT写入变量。
使用 2>& 1(将标准错误写入标准输出)。 您可以参考IO redirection
您可以使用以下内容:
sploutput=$(sudo dkms install -m spl -v $version 2>&1)
echo $sploutput