[英]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.