我有一個名為“s1”的檔案,它包含以下內容:
#!/bin/bash
var1=5
var2=4
if (( var1 > var2 ))
then
echo "$var1 more than $var2"
fi
在執行檔案時,我得到以下資訊:
s1: 4: var1: not found
大多數情況下,這種錯誤的發生是由于變數宣告不正確,例如:
var1 = 5
但我宣告的變數沒有任何額外的空格。
在執行這個腳本時,我注意到我已經創建了兩個檔案,分別命名為4和var2為什么會出現這樣的錯誤?
uj5u.com熱心網友回復:
您正在運行腳本sh,而不是bash. 例如,您可能正在做sh s1. 您應該這樣做./s1,以便系統將使用 shebang ( #!/bin/bash) 來確定使用哪個解釋器來運行腳本。
我不確定如何sh解釋 double-parens (( )),但它肯定與 Bash 不同,所以它試圖運行一個名為的命令var1并將輸出重定向到一個名為var2.
至于為什么你有一個名為 的檔案,你可能嘗試在某個時候4添加一個美元符號。$
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/467880.html
標籤:重击
下一篇:Bash日期回圈跳過二月
