Bash if语句中带有变量的空格

Mat*_*and 4 bash if-statement

有一天,我正在努力进行if声明.转动我们的变量在开头有一个空格.所以我试着用下面的代码来征服它,但我没有运气.

if [ "$COMMAND_WAIT" == "*REBOOT" ]; then
sudo /etc/kca/scripts/reboot.sh
echo "REBOOTING"
fi
Run Code Online (Sandbox Code Playgroud)

我是否应该能够对此声明进行通配符,还是有另外一种解决方法?

nos*_*sid 5

以下应该有效.它使用[[而不是模式[周围没有引号.

if [[ "$COMMAND_WAIT" == *REBOOT ]]; then
    sudo /etc/kca/scripts/reboot.sh
    echo "REBOOTING"
fi
Run Code Online (Sandbox Code Playgroud)

[[ expression ]]是一个复合表达式,有关扩展和引用的特殊规则.相反,[是内置命令,*REBOOT即将作为路径名扩展.在大多数情况下,它更容易使用[[而不是[.