我在安装时尝试通过 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}"
似乎什么都不起作用。
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
。
根据ZMO的答案:尝试运行sudo dkms install -m spl -v $version
看,它返回的是什么?:STDERR或STDOUT。
万一,如果它失败了,它不会在 sploutput 中显示任何内容。它只将 STDOUT 写入变量。
使用 2>&1(将标准错误写入标准输出)。您可以参考 IO 重定向
您可以使用以下内容:
sploutput=$(sudo dkms install -m spl -v $version 2>&1)
echo $sploutput