大佬教程收集整理的这篇文章主要介绍了Shell学习之传递参数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
SHell 传递参数
我们可以在执行 SHell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
实例
以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:
#!/bin/bash@H_301_11@
# author:菜鸟教程@H_301_11@
# url:www.runoob.com@H_301_11@
echo@H_301_11@ "SHell 传递参数实例!"@H_301_11@;
echo@H_301_11@ "执行的文件名:$0@H_301_11@"@H_301_11@;
echo@H_301_11@ "第一个参数为:$1@H_301_11@"@H_301_11@;
echo@H_301_11@ "第二个参数为:$2@H_301_11@"@H_301_11@;
echo@H_301_11@ "第三个参数为:$3@H_301_11@"@H_301_11@;
为脚本设置可执行权限,并执行脚本,输出结果如下所示:
$ chmod +x@H_301_11@ test.sh@H_301_11@
$ ./test.sh@H_301_11@ 1@H_301_11@ 2@H_301_11@ 3@H_301_11@
SHell 传递参数实例!
执行的文件名:./test.sh@H_301_11@
第一个参数为:1@H_301_11@
第二个参数为:2@H_301_11@
第三个参数为:3@H_301_11@
另外,还有几个特殊字符用来处理参数:
参数处理 | 说明 |
---|---|
$# |
传递到脚本的参数个数 |
$* |
以一个单字符串显示所有向脚本传递的参数。 如”$* “用「”」括起来的情况、以”$1 $2 … $n “的形式输出所有参数。 |
$$ |
脚本运行的当前进程ID号 |
$! |
后台运行的最后一个进程的ID号 |
$@ |
与$* 相同,但是使用时加引号,并在引号中返回每个参数。如”$@ “用「”」括起来的情况、以”$1 ” “$2 ” … “$n ” 的形式输出所有参数 |
$- |
显示SHell使用的当前选项,与set命令功能相同 |
$? |
显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误 |
#!/bin/bash@H_301_11@
# author:菜鸟教程@H_301_11@
# url:www.runoob.com@H_301_11@
echo@H_301_11@ "SHell 传递参数实例!"@H_301_11@;
echo@H_301_11@ "第一个参数为:$1@H_301_11@"@H_301_11@;
echo@H_301_11@ "参数个数为:$#@H_301_11@"@H_301_11@;
echo@H_301_11@ "传递的参数作为一个字符串显示:$*"@H_301_11@;
执行脚本,输出结果如下所示:
$ @H_301_11@chmod +x test.sh
$ @H_301_11@./test.sh 1@H_301_11@ 2@H_301_11@ 3@H_301_11@
SHell@H_301_11@ 传递参数实例!
第一个参数为:1@H_301_11@
参数个数为:3@H_301_11@
传递的参数作为一个字符串显示:1@H_301_11@ 2@H_301_11@ 3@H_301_11@
$*
与 $@
区别:
#!/bin/bash@H_301_11@
# author:菜鸟教程@H_301_11@
# url:www.runoob.com@H_301_11@
echo@H_301_11@ "-- \$* 演示 ---"@H_301_11@
for@H_301_11@ i in@H_301_11@ "$*"@H_301_11@; do@H_301_11@
echo@H_301_11@ $i@H_301_11@
done@H_301_11@
echo@H_301_11@ "-- \$@ 演示 ---"@H_301_11@
for@H_301_11@ i in@H_301_11@ "$@@H_301_11@"@H_301_11@; do@H_301_11@
echo@H_301_11@ $i@H_301_11@
done@H_301_11@
执行脚本,输出结果如下所示:
$ chmod +x test.sh
$ ./test.sh 1 2 3
-- $*@H_301_11@ 演示 --- @H_301_11@1 2 3
-- $@@H_301_11@ 演示 --- @H_301_11@1
2
3
转自:http://www.runoob.com/linux/linux-sHell-passing-arguments.html
以上是大佬教程为你收集整理的Shell学习之传递参数全部内容,希望文章能够帮你解决Shell学习之传递参数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。