modprobe命令的输出包含一个尾随空格。
bash的if语句一直返回true,我不知道它出了什么问题。下面是我的脚本。尽管运行modprobe命令;install/bin/true";在我的终端中,它总是返回true,这与";不符合";而不是";符合";当我运行我的脚本时,这应该是预期的结果。
#!/bin/bash
if [[ "$(modprobe -n -v cramfs 2> /dev/null | tail -1)" != "install /bin/true" ]];
then
echo "Not Compliant";
else
echo "Compliant";
fi
尝试:
if ! [[ "$(modprobe -n -v cramfs 2> /dev/null | tail -1)" =~ 'install /bin/true' ]];
或:
if ! modprobe -n -v cramfs 2> /dev/null | tail -1 | grep -q 'install /bin/true'
或者(我认为这就是你想要完成的全部(:
if ! modprobe -q cramfs; then ...