.bash 程序帮助

.bash 程序帮助

我需要向 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是要移走的主要参数的数量。因此,这可以一次删除多个参数,或者如果第一个参数不是数字,则给出错误。

相关内容