OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

shift - 访问许多参数

但是当我们为程序提供大量参数时会发生什么,例如:


图片

[我@linuxbox ~]$ 位置参数 *


参数数量:82

$0 = /home/me/bin/posit-param

$1 = 地址.ldif

$2 = 垃圾箱

$3 = 书签.html

$4 = debian-500-i386-netinst.iso

$5 = debian-500-i386-netinst.jigdo

$6 = debian-500-i386-netinst.template

$7 = debian-cd_info.tar.gz


8 美元 = 台式机

$9 = 目录-bin.txt

8 美元 = 台式机

$9 = 目录-bin.txt


在这个示例系统中,通配符 * 扩展为 82 个参数。 我们如何处理这么多? shell 提供了一种方法,尽管是一种笨拙的方法来执行此操作。 这 转移 命令每次执行时都会导致所有参数“下移一个”。 事实上,通过使用 转移, 可以只用一个参数(除了 $0,永远不会改变):



#!/斌/庆典


# posit-param2: 显示所有参数的脚本 count=1

而 [[ $# -gt 0 ]]; 做

echo "参数 $count = $1" count=$((count + 1))

转移完成

#!/斌/庆典


# posit-param2: 显示所有参数的脚本 count=1

而 [[ $# -gt 0 ]]; 做

echo "参数 $count = $1" count=$((count + 1))

转移完成


每一次 转移 被执行,值 $2 移至 $1, 的价值 $3 移至 $2 等等。 的价值 $# 也减一。

位置参数2 在程序中,我们创建了一个循环来评估剩余的参数数量,只要至少有一个,就会继续。 我们显示当前参数,增加变量 随着循环的每次迭代,提供处理的参数数量的运行计数,最后,执行一个 转移 装载

$1 与下一个参数。 这是工作中的程序:


[我@linuxbox ~]$ 位置参数2 abcd

参数 1 = a 参数 2 = b 参数 3 = c 参数 4 = d

[我@linuxbox ~]$ 位置参数2 abcd

参数 1 = a 参数 2 = b 参数 3 = c 参数 4 = d


OnWorks 的顶级操作系统云计算: