所以基本上我試圖檢查傳入腳本的參數。如果它有三個參數,第三個參數是1,那麼我希望它繼續。我也希望它繼續如果它有四個參數,第三個參數是不是1Bash腳本中的參數檢查問題
所以基本上我認爲我可能只是這樣做......
if ([ $# -ne 3 ] and [ "$3" -ne "2" ])
then
exit 0
fi
但是似乎擊不有和用於if的,所以我想我可以使用嵌套的if,但是現在它仍在抱怨。所以這就是我目前的...
if [ $# -ne 3 ]
then
if [ "$3" -ne "1" ]
then
echo "Improper number of arguments.
FORMAT make-csv-data <STUDY> <TAG> <MODE> <SELECT>
Select can be left off if you want all data (Mode=1)
"
exit 0
fi
fi
if [ $# -ne 4 ]
then
if [ "$3" -ne "2" ]
then
echo "Improper number of arguments.
FORMAT make-csv-data <STUDY> <TAG> <MODE> <SELECT>
Select can be left off if you want all data (Mode=1)
"
exit 0
fi
fi
那麼我哪裏錯了?我不能在Bash中嵌套if語句嗎?有沒有超級禪宗的做法,我完全錯過了?
感謝您給我的任何幫助。
新問題......
現在,出於某種原因或其他,代碼是不工作的。沒有任何錯誤或任何錯誤,它只是不起作用。它不檢查參數的數量。我沒有任何參數運行腳本,它只是跳過它,就像它甚至沒有。
奇怪的是,我是肯定該代碼昨天工作。今天回來,不是那麼多。關於什麼問題的任何想法? (對不起,我不得不刪除這個公認的答案。)
if [[ $# = 3 && "$3" != "1" ]]
then
echo "Improper number of arguments.
FORMAT make-csv-data <STUDY> <TAG> <MODE> <SELECT>
Select can be omitted if all data is required (Mode=1)
"
exit 0
fi
if [[ $# > 4 ]]
then
echo "Improper number of arguments.
FORMAT make-csv-data <STUDY> <TAG> <MODE> <SELECT>
Select can be omitted if all data is required (Mode=1)
"
exit 0
fi
編輯II:
有幾件事情,Bash shell中不喜歡這個劇本,我試圖去做。我最終可能會用另一種腳本語言來重寫它,併爲項目做更多的事情。感謝任何情況下的幫助。
你會得到什麼錯誤? – Glen 2009-05-26 15:48:10