前几天我在处理一个if语句时遇到了问题。结果发现我的变量开头有一个空格。因此,我尝试使用以下代码解决问题,但没有成功。
if [ "$COMMAND_WAIT" == "*REBOOT" ]; then
sudo /etc/kca/scripts/reboot.sh
echo "REBOOTING"
fi
我应该能够使用通配符来处理此语句,还是有其他方法可以解决这个问题?
前几天我在处理一个if语句时遇到了问题。结果发现我的变量开头有一个空格。因此,我尝试使用以下代码解决问题,但没有成功。
if [ "$COMMAND_WAIT" == "*REBOOT" ]; then
sudo /etc/kca/scripts/reboot.sh
echo "REBOOTING"
fi
[[
替代 [
,并且在 pattern 周围没有引号。if [[ "$COMMAND_WAIT" == *REBOOT ]]; then
sudo /etc/kca/scripts/reboot.sh
echo "REBOOTING"
fi
[[ expression ]]
是一个复合表达式,其扩展和引用具有特殊规则。相比之下,[
是一个内置命令,即*REBOOT
将被扩展为路径名。在大多数情况下,使用[[
而不是[
更容易。