0
我已經檢查了其他人的問題,雖然我遵循給予他們的建議,但我的腳本仍然無法正常工作。Bash if-statement總是觸發「然後...」
如果我的腳本獲取參數「test」並測試目標是否可達,我想ping一個ip-address。
如果腳本執行時沒有命令,我想發送一個WakeOnLan包。
這裏是我的代碼:
#!/bin/bash
if [ "$1"="test" ];
then
if ping -c 5 -i 1 192.168.178.27; then echo "Desktop is reachable"; else echo "Desktop not (yet) reachable"; fi
else
echo "sending magic package"
sudo wakeonlan FC:AA:14:E7:CD:95
fi
你需要等號周圍的空間:'如果[ 「$ 1」 =「test」]'。 –
我很抱歉在這個平臺上發送垃圾郵件。非常感謝!我確定我的支架和條件之間有空格,但我完全忘記了「=」......現在已經搞亂了1個小時。 謝謝,它現在有效! –
@FranzHutterer:語法檢查類似POSIX的shell代碼的優秀工具是[shellecheck.net](http://shellcheck.net);它會發現你的錯誤。 – mklement0