我想運行一個相同的代碼,它在Unix中工作正常,但在Linux中不工作。
示例代碼:
if [「$ 1」-eq「」] then echo「No parameter passed!Please pass the number of rows are queued。」 exit 1 fi echo「Parameter is $ 1」;如果條件在Unix和Linux env
在Linux環境
當運行SH /tmp/script.sh它引發錯誤 /tmp/script.sh:第1行:[::整數表達預期 參數是
當我運行SH /tmp/script.sh 100它thows錯誤 /tmp/script.sh:第1行:[::整數表達預期 參數是100
在Unix環境
當我運行SH /tmp/script.sh它說沒有參數傳遞!請傳遞要排隊的行數。
當我運行SH /tmp/script.sh 100它說參數是100
當我運行SH /tmp/script.sh ABCD它說沒有參數傳遞!請傳遞要排隊的行數。
任何人都可以解釋我爲什麼表現不同?我認爲這些功能不應該取決於環境。
輸入'man test'。搜索'-eq'。 –
我在Linux中使用if [[「$ 1」-eq「」]]替換if [「$ 1」-eq「」],並且它工作正常。我仍然想知道如何以及爲什麼。 –
它看起來像你在'-eq'的描述中找到的和我發現的不一樣。我想知道你的版本說什麼。 –