linux 脚本 传参数,shell中脚本传参

shell中脚本传参

shell脚本传参有下面两种方式

1. $0,$1,$2..

采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${10},${11}....才能获取到参数,但是一般很少会超过10个参数的情况。

1.1 示例:

新建一个test.sh的文件

#!/bin/bash

echo "脚本名$0"

echo "第一个参数$1"

echo "第二个参数$2"

echo "第三个参数$3"

echo "第四个参数$4"

……

echo "第十个参数$10"

echo "第十个参数${10}"

在shell中执行脚本

$ ./test.sh a b c d e f g h i j

脚本名./test.sh

第一个参数a

第二个参数b

第三个参数c

第四个参数d

第五个参数e

第六个参数f

第七个参数g

第八个参数h

第九个参数i

第十个参数a0

第十个参数j

可以看到

math?formula=%7B10%7D%E6%AD%A3%E7%A1%AE%E8%AF%BB%E5%8F%96%E5%88%B0%E4%BA%86%E7%AC%AC%E5%8D%81%E4%B8%AA%E5%8F%82%E6%95%B0%EF%BC%8C%E8%80%8C10被分成$1读取到第一个参数a然后拼接字符串0,于是输出a0。

优点:获取参数更容易,执行脚本时需要的输入少

缺点:必须按照顺序输入参数,如果中间漏写则参数对应就会错误

2. getopts

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

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

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

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

2.1 示例:

同样新建一个test.sh文件

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

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

$ ./test.sh -a 1 -b 2 -c 3

#在shell中的输出

参数a的值1

参数b的值2

参数c的值3

优点:由于使用了-a加参数值的方式进行一一匹配,所以不会参数匹配错误,同时也可以缺省参数,并不会导致参数错误,同时也便于后期参数的扩展和移植

缺点:脚本执行时参数需要的输入会增多

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值