什么是位置参数
位置参数指的是 shell 脚本的命令行参数,同时也表示 shell 函数的函数参数。
Bash中的位置参数是除0以外的一个或者多个数字表示的参数。当这个整数大于 9 时(也就是包含两个或两个以上的阿拉伯数字),就应该使用花括号({})将其括起来。
如变量 $1、$2、$9、${11} 分别表示第一个、第二个、第九个、第十一个位置参数,依次类推。
位置参数是 shell 中唯一使用全部阿拉伯数字的特殊变量。
[root@linux-node1 ~]# set 1 2 3 four five six 7 8 9 ten
[root@linux-node1 ~]# echo "$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}"
1 2 3 four five six 7 8 9 ten
#请注意当多于一个数字的位置参数在扩展时必须放在大括号中。比如,位置参数10在扩展时使用${10}
位置参数不能通过赋值语句来赋值,一般只能通过Bash的内部命令set和shift来设置和取消他们。当Shell函数运行时,位置参数会被临时的替换。
下面写个简介的脚本来让大家明白位置参数在脚本中的使用方法:
[root@linux-node1 ~]# vim show.sh
#!/bin/bash
echo "Argument 1: $1"
echo "Argument 2: $2"
echo "Argument 3: $3"
echo "Argument 4: $4"
echo "Argument 5: $5"
[root@linux-node1 ~]# chmod +x show.sh
[root@linux-node1 ~]# ./show.sh one tow 3 four five
Argument 1: one
Argument 2: tow
Argument 3: 3
Argument 4: four
Argument 5: five
生产位置参数的使用
我们常用的zabbix邮件脚本就用到了位置参数,以下是zabbix邮件发送脚本。
#!/bin/bash
#export LANG=zh_CN.UTF-8
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
dos2unix -k $FILE
/bin/mail -s "$2" $1 < $FILE
END.
OK今天就为大家介绍这么多了。
我是EC君,如果你喜欢我的文章,请帮忙点个关注!点个喜欢吧!
也可以点击作者信息,扫描微信二维码关注我的个人微信公众号。
你的鼓励将是我们共同进步的源泉。