如何在Shell脚本中传递命令行参数


本文摘自PHP中文网,作者不言,侵删。

命令行参数在命令行操作系统(如DOS或Linux)中的程序名称之后传递,并从操作系统传递到程序中。Shell脚本也接受类似于nix命令的命令行参数。命令行参数对于在运行时将输入数据传递给脚本很有用,本文将介绍关于在shell脚本中传递命令行参数。

要传递命令行参数,我们只需在用空格分隔的脚本名之后编写它们。所有命令行参数都可以使用$来访问其位置编号。向shell脚本传递命令行参数的示例。

1

# 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要求以下内容。

1

#vim myScript.sh

1

2

3

4

5

6

7

8

9

10

#!/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: "$*"

执行脚本

1

2

3

4

5

6

7

8

9

# 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,其中包含以下内容。

1

# vim myScript2.sh

1

2

3

4

5

6

#!/bin/bash

 

for i in "$@"

do

  echo Argument: $i

done

执行脚本

1

2

3

4

5

# ./myScript2.sh  10 rahul tecadmin.net

 

Argument: 10

Argument: red

Argument: admin.net

通过移位来访问命令行参数

阅读剩余部分

相关阅读 >>

如何在shell脚本中以隐藏字符的形式输入密码

shell脚本命令示例

linux怎么运行shell程序

shell脚本命令示例

如何在shell脚本中使用逻辑或&和

linux默认使用的shell是什么

如何在shell脚本中提取文件名和扩展名

启动bash shell有哪些方式?

linux终端执行shell脚本时提示权限不足

一文读懂shell编程三剑客之一的sed命令

更多相关阅读请进入《shell》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...