4

前几天,我在一个 if 语句中苦苦挣扎。我们的 my 变量在开始时有一个空格。所以我试图用下面的代码来克服这个问题,但我没有运气。

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

我应该能够通配这个语句还是有另一种方法来解决这个问题?

4

1 回答 1

5

以下应该工作。它使用[[代替,并且在模式[周围没有引号。

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

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

于 2013-10-13T08:57:18.023 回答