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