我需要向 shell 脚本添加一个部分,该部分将计算命令行参数的数量,每秒将一个参数打印到屏幕上并报告剩余的命令行参数数量(例如,通过shift
在循环中使用内置函数)。因此屏幕会倒计时 6 5 4 3 2 1(如果我输入了六个命令行参数)。
此外,当到达最后一个命令行参数(转移到 $1)时,程序将在语句中告诉用户命令行参数的值,例如“您输入的最后一个命令行参数是 ______ 。(无论什么)它的值将被打印在那里。)
到目前为止,我有这段代码,但它只打印第一个参数,并且不打印数字。
while read -n 1 -p "Press Enter to Continue.." key
do
if [ "$key" = '' ]; then
sleep $#
shift $1
echo "The last command line parameter you entered at the command line was: $1"
break
else
echo "no key was pressed"
fi
done
我究竟做错了什么?我应该做什么来修复它?
答案1
并且它不打印数字。
$#
包含参数的数量,因此请echo "$#"
在您想要的地方使用类似的内容。
sleep $#
如果有六个参数,这将在运行中休眠六秒钟。您可能想一次睡一秒钟。
shift $1
的参数shift
是要移走的主要参数的数量。因此,这可以一次删除多个参数,或者如果第一个参数不是数字,则给出错误。