千家信息网

在Shell脚本中传递命令行参数的方法

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,在Shell脚本中传递命令行参数的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!命令行参数在命令行操作系统(如D
千家信息网最后更新 2025年01月31日在Shell脚本中传递命令行参数的方法

在Shell脚本中传递命令行参数的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

命令行参数在命令行操作系统(如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/bashecho Script Name: "$0"echo Total Number of Argument Passed: "$#"echo Arguments List -echo 1. $1echo 2. $2echo 3. $3echo All Arguments are: "$*"

执行脚本

# sh myScript.sh  10 rahul tecadmin.netScript Name: myScrit.shTotal Number of Argument Passed: 3Arguments List -1. 102. red3. admin.netAll Arguments are: 10 red admin.net

例2:

通过shell脚本中的所有参数创建循环。为此,请创建一个shell脚本文件myscript2.sh,其中包含以下内容。

# vim myScript2.sh
#!/bin/bashfor i in "$@"do  echo Argument: $idone

执行脚本

# ./myScript2.sh  10 rahul tecadmin.netArgument: 10Argument: redArgument: admin.net

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

我们还可以通过改变命令行参数在shell脚本中的位置来访问它们。比如用$1访问第一个命令行参数。现在将参数换成1.意味着第二个参数现在位于第一个位置,相同的第三个位于第二个位置,依此类推。

使用下面的内容创建shell脚本myscript3.sh,并使用参数执行。现在现在观察如何在shell脚本中使用"shift "命令移动参数。

#!/bin/bashecho First Argument is: $1echo " >> Shifting argument position by 1"shift 1echo Now first Argument is: $1echo " >> Now Shifting position with 2"shift 2echo Now first Argument is: $1echo " >> Now shifting position with 4"shift 4echo Now first Argument is: $1

执行脚本并密切观察脚本中$1的输出。

[root@tecadmin ~]# sh myScrit3.sh a friend in need is a friend indeedFirst Argument is: a  >> Shifting argument position by 1Now first Argument is: friend >> Now Shifting position with 2Now first Argument is: need >> Now shifting position with 4Now first Argument is: indeed

感谢各位的阅读!看完上述内容,你们对在Shell脚本中传递命令行参数的方法大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。

0