2016-10-04 126 views
0

在下面的bash腳本中,我將獲取服務器上的所有IP並返回它們的GPS座標。這個腳本在沒有if語句的情況下效果很好,但是它返回了「請提供一個有效的IP地址」,然後它返回大約10個IP地址,並帶有它們各自的座標。因此,我認爲問題在於,即使「ip」爲空,trace trace命令也被調用。因此,我把如果bash腳本中的語句語法錯誤

「如果[[$ IP]」

在此之前

,使其只有當IP不爲空執行。不過,現在的腳本不能運行......我的錯誤

「行6:附近意外的標記‘如果’ 線6語法錯誤:‘如果[$ IP];’」

我有許多不同的if語句的變體,以使它只能再次得到相同的錯誤。請幫忙嗎?

在此先感謝!

Bash Script

+2

你的'if'在第一個for循環中的'do'之前,那麼你在那裏試圖做什麼?你沒有'fi'來結束它,所以我不確定什麼應該是它的塊的一部分。另外,請不要在此放置代碼的圖像,將實際代碼作爲代碼塊,以便人們可以搜索它並複製/粘貼它以自行嘗試。 –

+0

是的,就是這樣。我花了幾分鐘的時間來理解爲什麼,但現在我明白了。愚蠢的錯誤在我身上。謝謝! – boppa

回答

0

正如評論所指出的@Eric,你的語法不是proper.You可以在shellcheck檢查你的代碼的語法。

此外,檢查你需要使用-z選項

在你的情況爲空字符串:if [[ -z "$ip" ]]

去下面的鏈接瞭解詳情: Null & empty string comparision in Unix Bash Shell Script

而且,這是一個很好實踐雙重報價"變量