linux shell java 参数_【Linux】shell脚本参数传递

这里介绍参数传递的两种方式。

方式一:$0,$1,$2...

采用$0,$1,$2..等方式获取脚本命令行传入的参数

$0:脚本名称

$1....: 参数

例子:

#编写一个shell

$ vim test.sh

echo "参数0参数为:"$0

echo "参数1参数为:"$1

echo "参数2参数为:"$2

#执行shell传递两个参数

$ bash test.sh 我是参数1 我是参数2

参数0参数为:test.sh

参数1参数为:我是参数1

参数2参数为:我是参数2

方式二:getopts

getopts引用的三个环境变量:

OPTARG: 上一个由getopts内置命令处理的选项参数的值, option argument(存放选项参数),当选项需要选项参数时,getopts 命令就将其置于变量 OPTARG 中

OPTIND:  下一个由getopts内置命令处理的参数的序号,option index,每次调用脚本它都会被初始值为1,会逐次递增。

OPTERR: 如果设为1,bash会显示getopts的错误。设为0,不显示getopts的错误。

语法格式:getopts [option[:]] [DESCPRITION] VARIABLE

option:表示为某个脚本可以使用的选项

":":如果某个选项(option)后面出现了冒号(":"),则表示这个选项后面可以接参数(即一段描述信息DESCPRITION)

VARIABLE:表示将某个选项保存在变量VARIABLE中

A、前面没有冒号:

会按照系统的定义报错

a. 指定了非法选项,即不存在的选项,会报错:scriptname: illegal option — p

b. 选项需要参数但没有指定,会报错:scriptname: : option requires an argument –

c. 不论是指定了错误的选项或者指定了带选项的参数没有指定参数,variable都设置为”?”,对应的OPTARG为出错的选项

B、选项前面有冒号,可以屏蔽这些错误信息,使用自己的反馈信息

a. 当指定的参数不存在时,variable设置为”:”,对应的$OPTARG为”对应的选项”

b. 指定的选项是带参数的而没有提供参数,variable设置为”?”,对应的$OPTARG为”这时候的选项”

while getopts ":a:b:c:" opt

do

case $opt in

a)

echo "参数a的值$OPTARG"

;;

b)

echo "参数b的值$OPTARG"

;;

c)

echo "参数c的值$OPTARG"

;;

?)

echo "未知参数"

exit 1;;

esac

done

用一个while循环加case分支获取不同参数,:a:b:c相当于定义参数的变量名,有时候可能会有未知参数,所以增加一个?的分支。

在shell中执行脚本,结果如下

$ bash test.sh -a 1 -c 3 -d 4

#在shell中的输出

参数a的值1

参数c的值3

未知参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值