2013-01-16 58 views
0

我知道如何給bash中的參數提供默認值,或者如果一個未設置,就會通過錯誤消息退出。 (從here如何在bash中檢查args並在沒有設置某個參數的情況下執行某些命令?

我想檢查一下是否設置了一個參數,如果不是,則執行一些代碼並退出。

if [$1 is not set]; then 
    execute command 
fi 

我正在寫另一個命令的包裝。如果沒有設置第一個參數(它實際上是一個輸入文件名),它有它自己的用法消息。它還有其他的輸入,我現在正在編碼。在bash腳本實際命令是這樣的:我想要調用它自己的幫助信息,如果沒有$ 1發送到腳本

command $1 12 3124 534 

回答

4

只是檢查參數的長度:

if (($# < 1)); then 
    echo 'There are no arguments, so you can bet that $1 was not set.' 
fi 

它通常是微不足道的檢查,如果一個變量有殼非空值:,

[ -n "$val" ] 

但是,如果你想確定一個名字已被宣佈爲我會引用你的BashFAQ 83

+1

如果$ 1也必須是一個文件名,使用'[-r「$ 1」] || {echo「Error 1:you shuold provides a(readable)filename:$ 0 filename。I STOP HERE」;出口1; ''。請參閱'man test'進行其他有用的測試。在最近的shell中,'[['更好(在bash中:'help'[['') –

相關問題