侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

第4章 处理用户输入与显示数据------------(参数计数、获取所有数据)

2023-11-22 星期三 / 0 评论 / 0 点赞 / 57 阅读 / 2849 字

4.1.4 参数计数 可以不必测试每个参数,而只对命令行中输入的参数个数进行计数。特殊变量$#中存储执行脚本时包含的命令行参数的个数。在脚本中的任意位置都可以使用这个特殊变量。 这个变量($#)还

4.1.4 参数计数

         可以不必测试每个参数,而只对命令行中输入的参数个数进行计数。特殊变量$#中存储执行脚本时包含的命令行参数的个数。在脚本中的任意位置都可以使用这个特殊变量。

  这个变量($#)还提供了一个很酷的方法来获取命令行中的最后一个参数,使用这种方法不必知道使用的参数个数。当命令行中没有任何参数时,$#的值为零。${!#}变量返回最后一个命令行参数值,当命令行为空时,返回命令行中使用的脚本名称。

         参数计数的实例如下:       

#!/bin/bash#参数计数$#与${!#}的使用para=$#case $para in0) echo "${!#}  $para";;1) echo $1;;2) echo $[ $1+$2 ];;3) echo "$1   $2   $3";;*) echo "参数大于4个!";;esac

4.1.5 获取所有数据

         有些情况下,会需要获取命令行中提供的所有参数,并对它们进行迭代。变量$*和$@都是在一个变量中包含所有命令行参数。变量$*将命令行中提供的所有参数作为一个单词处理。这个单词中包含出现在命令行中的每一个参数值。本质上,变量$*不是将参数视为多个对象,而是将它们看作一个参数。而另一方面,变量$@将命令行中提供的所有参数作为同一个字符串中的多个单词处理。允许对其中的值进行迭代,分隔开所提供的不同参数。通常使用for命令来进行迭代。         这要看相应的系统而定。

         PS:$*将所有的参数视为一个单词;$@将所有参数视为一个字符串。

         在本机操作系统的获取所有数据实例:

         

#!/bin/bash#$*将所有的参数视为一个单词#$@将说有的参数视为一个字符串echo "使用/$*方法:$*"echo "使用/$@方法:$@"count=1for par in $*do   echo "/$*参数 #$count=$par"   count=$[ $count+1 ]donecount=1for par in $@do   echo "/$@参数 #$count=$par"   count=$[ $count+1 ]done

         

广告 广告

评论区