2
有一天,我在if語句中掙扎。打開我們的變量在開始時有一個空白區域。所以我試圖用下面的代碼來征服這個,但我沒有運氣。Bash if變量中帶空格的語句
if [ "$COMMAND_WAIT" == "*REBOOT" ]; then
sudo /etc/kca/scripts/reboot.sh
echo "REBOOTING"
fi
我應該能夠通配符此聲明或有其他解決方法嗎?
有一天,我在if語句中掙扎。打開我們的變量在開始時有一個空白區域。所以我試圖用下面的代碼來征服這個,但我沒有運氣。Bash if變量中帶空格的語句
if [ "$COMMAND_WAIT" == "*REBOOT" ]; then
sudo /etc/kca/scripts/reboot.sh
echo "REBOOTING"
fi
我應該能夠通配符此聲明或有其他解決方法嗎?
以下應該工作。它使用[[
而不是[
,並且模式附近沒有引號。
if [[ "$COMMAND_WAIT" == *REBOOT ]]; then
sudo /etc/kca/scripts/reboot.sh
echo "REBOOTING"
fi
[[ expression ]]
是化合物表達式中,用特殊的規則有關的擴展和引用。相反,[
是內置命令,即*REBOOT
將被擴展爲路徑名。在大多數情況下,使用[[
代替[
更容易。
多數民衆贊成在很好,完美的作品使用[[〜]] –