簡體   English   中英

檢查 bash 腳本中是否至少有兩個參數

[英]Check that there are at least two arguments given in a bash script

我正在嘗試編寫一個模仿 cp 的腳本,其中有源和目標輸入。 如何計算命令行上給出的參數數量

例如

./myscript src dest

檢查是否至少提供了 2 件事。

使用$#特殊變量。 它的值是參數的數量。 因此,如果您的腳本僅包含:

echo $#

並像這樣執行它:

thatscript foo bar baz quux

它會打印 4。

在您的情況下,您可能想要執行以下操作:

if [ $# -lt 2 ]; then
    # TODO: print usage
    exit 1
fi

根據參數應包含“至少兩件事”的問題的要求,我認為檢查可能更准確:

if (( $# < 2 )); then
    # TODO: print usage
    exit 1
fi

使用算術擴展(( ))將防止它在任何不等於 2 的值時到達exit 1

如果你使用if [ $# -ne 2 ]; 它將為除 2 以外的任意數量的參數觸發條件。

編輯:看起來已接受的答案已更新為包含一個等效的(並且更便攜?)示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM