首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

shell入门第五讲

1、位置变量

位置变量指的是脚本(或者函数)后跟的第n个参数。我们这里暂时先讨论脚本传参的用法。

位置变量需要使用到形如 $1、$2、$3、$4、$5、$6。其中$1表示第一个参数,$2表示第二个参数,依次往后类推即可,我们来看看使用效果。

1.1、简单的脚本参数传递

先写个简单的脚本

bash [root@localhost ~]# cat test.sh !/bin/bash echo "第一个参数:$1" echo "第二个参数:$2" echo "第三个参数:$3"

我们写了这样的一个脚本,一共是传入三个参数,然后在脚本里面分别引用三个参数的值,现在来执行一下。

注意先赋予x权限

bash [root@localhost ~]# ./test.sh 11 22 33 第一个参数:11 第二个参数:22 第三个参数:33

我们使用 ./ 执行的时候,分别在脚本后面传入11、22、33这三个数值,然后在脚本内部我们已经提前定义好了引用变量,那么在执行的时候就可以把三个参数的值打印出来。

1.2、位置变量控制

使用shift关键字可以实现对位置变量的控制,比如我们写个脚本

bash [root@localhost ~]# cat test.sh !/bin/bash echo "第一个参数:$1" shift echo "第二个参数:$2" echo "第三个参数:$3"

现在来执行一下,这次我们传入四个参数

bash [root@localhost ~]# ./test.sh 11 22 33 44 第一个参数:11 第二个参数:33 第三个参数:44

喔?我们发现打印的结果中,第二个参数居然是33,然而我们传参的时候的22这个参数并没有引用到,这就是shift的作用,每执行依次shift命令,位置变量个数就会减一,而变量值则提前一位。

当然也可以设置移动n位,我们不必写上n个shift命令,而直接使用shift n即可,比如:

bash [root@localhost ~]# cat test.sh !/bin/bash shift 3 echo "第一个参数:$1" echo "第二个参数:$2" echo "第三个参数:$3"

再来执行一下

bash [root@localhost ~]# ./test.sh 11 22 33 44 55 66 第一个参数:44 第二个参数:55 第三个参数:66

使用shift n,那么位置变量向前移动n位,因此我们的结果是从第四个参数开始引用的,大家都学会了嘛?

1.3、注意事项

当然小伙伴可能会问 $0 表示什么呢?我们来执行一下看看,还是先写个脚本

bash [root@localhost ~]# cat test.sh !/bin/bash echo "第0个参数:$0" echo "第一个参数:$1" echo "第二个参数:$2" echo "第三个参数:$3"

执行一下看看

bash [root@localhost ~]# ./test.sh 11 22 33 第0个参数:./test.sh 第一个参数:11 第二个参数:22 第三个参数:33

或者使用bash执行看看

bash 第三个参数:33 [root@localhost ~]# bash test.sh 11 22 33 第0个参数:test.sh 第一个参数:11 第二个参数:22 第三个参数:33

发现他们两个共同点就是,$0表示执行的文件名本身,我想这里大家应该都明白了吧?

还有一个注意点就是:我们使用$1、$2…像这样的传递的参数引用时,从第10个开始我们要加上花括号来调用,比如:${10}、${11},一定要加上花括号!!!

文章转载于马哥教育官网;http://www.magedu.com/83989.html

下一篇
举报
领券