我有問題:猛砸如果或聲明,命令沒有找到
if [ "$(lsb_release -r -s)" == "16.04" ] || [ "$(lsb_release -r -s)" == "17.04" ]; then
我得到「[:未找到命令」運行腳本時。我不懂爲什麼。
+ '[' -f /etc/debian_version ']'
++ lsb_release -r -s
+ '[' 17.04 == 16.04 ']'
++ lsb_release -r -s
+ ' [' 17.04 == 17.04 ']'
./mhn/scripts/install_mongo.sh: line 8: [: command not found
如果在17.04上運行,而不是在16.04上,我只會得到錯誤。如果我改變陳述並首先檢查17.04,它將在16.04,而不是17.04中斷。聲明後半部分的內容正在打破。
添加OS(Ubuntu的?)和bash版本的問題。 – Cyrus
如果將該行復制粘貼到新腳本中並單獨運行該腳本,是否還會出現相同的錯誤? –
@thatotherguy它工作正常,如果它只是if語句。但在完整的腳本中,它在第8行,而bash告訴我「第8行:[未找到命令」 – d1str0