嵌入式爱好者

嵌入式爱好者 门户 知识库 查看内容

shell脚本传参方式

2023-3-27 17:32| 发布者: 奥卡姆剃刀| 查看: 106| 评论: 0

类目:  >  知识库     文档编号: 958

一、位置参数

shell脚本会根据参数的位置来接收他们的值,所以命令行传递给shell脚本的参数又称为位置参数。shell脚本内,用户可以通过系统变量来获取参数。

 

以下是常用的几个系统变量

$n

表示传递给脚本的第n个参数

$#

传入参数的个数

$0

当前脚本名称

$*

以“参数1 参数2 ……”的形式返回所有参数的值

$@

以“参数1参数2”……的形式返回所有参数的值

$_

最后一个参数

 

这种方式有一个弊端,就是用户传递的参数不能大于9个。若想表示第10个参数的话,需要先处理或保存$1,然后使用shift命令删除$1并将所有剩余的参数左移1位,使$10变成$9

 

二、参数扩展 getopts

实践中,经常会遇到特殊情况。如常用命令tar,我们经常使用tar -cvftar -xvf。不同的参数执行不同的操作,这样单纯使用$1$2已经不能满足,这时候就需要使用参数扩展。

 

基本语法如下:

Getopts optstring [arg]

其中optstring是一个字符串,包含一个可以为getopts命令识别的选项名称列表。我们让s表示一个字符,语法为:

 

optstring如果以:开头,表示是静默模式,忽略一般错误消息

s

有效选项并且后面不带参数值

s

有效选项并且后面必须带参数值

 

getopts会依次遍历每个选项并将选项名称保存到arg中,OPTARG将保存对于选项的参数值。


已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2025-7-9 09:55

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部