簡體   English   中英

bash/ksh 如果沒有給定 echo 添加值的參數請添加

[英]bash/ksh add if no argument given echo add value please

我有使用多個不同的 arguments 執行單個命令的代碼:

for ((i = $#; i > 0 ; i--)) ; do
    grep -w -- "$1" codelist.lst || echo "'$1' not found"
    shift
done

對於每個參數,此腳本為我提供包含該參數的行的正確 output,或者指示未找到任何行。

如果用戶沒有提供 arguments,我想添加一條消息,例如“請插入一個值”。 我怎么做?

您可以在嘗試運行循環之前簡單地檢查$#

if [[ $# -eq 0 ]] ; then
    echo "Please insert a value."
else
    for ((i = $#; i > 0 ; i--)) ; do
        grep -w -- "$1" codelist.lst || echo "'$1' not found"
        shift
    done
fi

零值意味着沒有提供 arguments。


如果您看重代碼的簡單性,另一種形式是意識到即使循環本身已執行,零也會導致循環體不運行,因此您可以執行以下操作:

[[ $# -eq 0 ]] && echo "Please insert a value."
for ((i = $#; i > 0 ; i--)) ; do
    grep -w -- "$1" codelist.lst || echo "'$1' not found"
    shift
done

暫無
暫無

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

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