变量中带空格的Bash if语句

变量中带空格的Bash if语句,bash,if-statement,Bash,If Statement,前几天,我正在为一个if语句而挣扎。我们的my变量在开头有一个空格。所以我尝试用下面的代码来克服这个问题,但是我没有运气 if [ "$COMMAND_WAIT" == "*REBOOT" ]; then sudo /etc/kca/scripts/reboot.sh echo "REBOOTING" fi 我应该能够通配符这个语句,还是有其他方法可以解决这个问题?下面应该可以。它使用[[而不是[,并且模式周围没有引号 [[expression]]是一个复合表达式,具有关于展开和引用的特殊规则

前几天,我正在为一个if语句而挣扎。我们的my变量在开头有一个空格。所以我尝试用下面的代码来克服这个问题,但是我没有运气

if [ "$COMMAND_WAIT" == "*REBOOT" ]; then
sudo /etc/kca/scripts/reboot.sh
echo "REBOOTING"
fi

我应该能够通配符这个语句,还是有其他方法可以解决这个问题?

下面应该可以。它使用
[[
而不是
[
,并且模式周围没有引号


[[expression]]
是一个复合表达式,具有关于展开和引用的特殊规则。相反,
[
是一个内置命令,即,
*重新启动
将展开为路径名。在大多数情况下,使用
[
而不是
[

太棒了,非常好用[[~]]有什么区别
if [[ "$COMMAND_WAIT" == *REBOOT ]]; then
    sudo /etc/kca/scripts/reboot.sh
    echo "REBOOTING"
fi