上下观古今,起伏千万途。这篇文章主要讲述处理用户输入与显示数据------------(参数计数获取所有数据)相关的知识,希望能为你提供帮助。
4.1.4 参数计数
可以不必测试每个参数,而只对命令行中输入的参数个数进行计数。特殊变量$#中存储执行脚本时包含的命令行参数的个数。在脚本中的任意位置都可以使用这个特殊变量。
这个变量($#)还提供了一个很酷的方法来获取命令行中的最后一个参数,使用这种方法不必知道使用的参数个数。当命令行中没有任何参数时,$#的值为零。$!#变量返回最后一个命令行参数值,当命令行为空时,返回命令行中使用的脚本名称。
参数计数的实例如下:
#!/bin/bash
#参数计数$#与$!#的使用
para=$#
case $para in
0) 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=1
for par in $*
do
echo "\\$*参数 #$count=$par"
count=$[ $count+1 ]
done
count=1
for par in $@
do
echo "\\$@参数 #$count=$par"
count=$[ $count+1 ]
done
推荐阅读
- 处理用户输入与显示数据------------(移位shift命令行参数选项)
- 蓝牙降噪耳机测试维度
- MySQL数据库(32)(触发器 trigger)
- 处理用户输入与显示数据------------(读取参数读取程序名称测试参数)
- spring4.1.8扩展实战之五(改变bean的定义(BeanFactoryPostProcessor接口))
- 结构化命令------------(if语句)
- Java字节流和字符流详解
- 基本脚本编译------------(重定向输入输出与数学计算)
- #云原生征文#深入了解k8s的Pod