在Shell脚本中传递命令行参数的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
创新互联网站建设提供从项目策划、软件开发,软件安全维护、网站优化(SEO)、网站分析、效果评估等整套的建站服务,主营业务为网站设计、做网站,app软件开发公司以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。创新互联深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!命令行参数在命令行操作系统(如DOS或Linux)中的程序名称之后传递,并从操作系统传递到程序中。Shell脚本也接受类似于nix命令的命令行参数。命令行参数对于在运行时将输入数据传递给脚本很有用。
要传递命令行参数,我们只需在用空格分隔的脚本名之后编写它们。所有命令行参数都可以使用$来访问其位置编号。向shell脚本传递命令行参数的示例。
# sh myScript.sh 10 red admin.net
sh:Linux shell
myScript.sh:Linux shell 脚本
10:$1可访问的第一个命令行参数
red:第二个命令行参数,可以通过$2访问
admin.net:$3可访问的第三个命令行参数
访问带位置编号的命令行参数
如上所示,命令行参数可以在$1、$2、$3...$9、$10…$100等处访问。命令行参数的大长度不是由shell定义的,而是由操作系统定义的,以千字节为单位。
$*:存储所有命令行参数
$@:存储所有命令行参数
$:存储命令行参数的计数
$0:脚本本身的存储名称
$1:存储第一个命令行参数
$2:存储第二个命令行参数
$3:存储第三个命令行参数
…
$9:存储第9个命令行参数
$10:存储第10个命令行参数
…
$99:存储第99个命令行参数
例1:
使用脚本名称和传递的参数总数创建一个shell脚本来打印所有参数。创建脚本文件myScript.sh要求以下内容。
#vim myScript.sh
#!/bin/bash echo Script Name: "$0" echo Total Number of Argument Passed: "$#" echo Arguments List - echo 1. $1 echo 2. $2 echo 3. $3 echo All Arguments are: "$*"
执行脚本
# sh myScript.sh 10 rahul tecadmin.net Script Name: myScrit.sh Total Number of Argument Passed: 3 Arguments List - 1. 10 2. red 3. admin.net All Arguments are: 10 red admin.net
例2:
通过shell脚本中的所有参数创建循环。为此,请创建一个shell脚本文件myscript2.sh,其中包含以下内容。
# vim myScript2.sh
#!/bin/bash for i in "$@" do echo Argument: $i done
执行脚本
# ./myScript2.sh 10 rahul tecadmin.net Argument: 10 Argument: red Argument: admin.net
通过移位来访问命令行参数
我们还可以通过改变命令行参数在shell脚本中的位置来访问它们。比如用$1访问第一个命令行参数。现在将参数换成1.意味着第二个参数现在位于第一个位置,相同的第三个位于第二个位置,依此类推。
使用下面的内容创建shell脚本myscript3.sh,并使用参数执行。现在现在观察如何在shell脚本中使用“shift
#!/bin/bash echo First Argument is: $1 echo " >> Shifting argument position by 1" shift 1 echo Now first Argument is: $1 echo " >> Now Shifting position with 2" shift 2 echo Now first Argument is: $1 echo " >> Now shifting position with 4" shift 4 echo Now first Argument is: $1
执行脚本并密切观察脚本中$1的输出。
[root@tecadmin ~]# sh myScrit3.sh a friend in need is a friend indeed First Argument is: a >> Shifting argument position by 1 Now first Argument is: friend >> Now Shifting position with 2 Now first Argument is: need >> Now shifting position with 4 Now first Argument is: indeed
感谢各位的阅读!看完上述内容,你们对在Shell脚本中传递命令行参数的方法大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注创新互联成都网站设计公司行业资讯频道。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。