脚本linux参数获取,shell脚本获取参数&在线执行shell脚本

场景介绍

本文介绍以下2个知识点,为后后续在工作过程中安装一键安装脚本打好基础:

shell 脚本中经常需要传入一些命令参数,如 cmd -a abc -b -c dddd或者,cmd -name nick -disable,本文介绍如前面列子中的参数在脚本中如何提取命令;

如gitlab或者github上面有一个shell脚本,如何在线的执行git服务器上的shell文件。

提取命令办法

按位置获取

如下shell脚本中传入的参数依次值如下:

echo "第一个参数:"$1

echo "第二个参数:"$2

echo "第三个参数:"$3

getopts获取

while getopts 'a:bcd:' OPT; do

case ${OPT} in

a)

echo "选项-a已经生效"

echo "选项-a是可以带参数的,参数值为:"${OPTARG}

;;

b)

echo "选项-b已经生效"

echo "选项-b是不需要参数的"

;;

c)

echo "选项-c已经生效"

echo "选项-c是不需要参数的"

;;

d)

echo "选项-d已经生效"

echo "选项-d是可以带参数的,参数值为:"${OPTARG}

;;

*)

echo "无效的参数"

;;

esac

done

执行./getopts.sh -a dd -b,打印如下结果

选项-a已经生效

选项-a是可以带参数的,参数值为:dd

选项-b已经生效

选项-b是不需要参数的

遍历获取

# ./for.sh -a --banana blala

while true; do

case "$1" in

-a | --apple)

echo "I have an apple!"

shift

;;

-b | --banana)

echo "I have a banana,banana is $2"

shift 2

;;

-c | --cherry)

case $2 in

'')

echo "I have a cherry!"

shift 2

;;

*)

echo "I have a cherry!It is $2"

shift 2

;;

esac

;;

-d)

echo "I have a dog!"

shift

;;

--)

shift

break

;;

*)

echo "get parameters success.!"

# exit 1

break

;;

esac

done

echo "end of get parameters success."

执行命令测试

nick@nicks-MacBook-Pro  ~/Desktop/study/notes-everything/docs/Linux/content   master ●  ./for.sh -a --banana blala

I have an apple!

I have a banana,banana is blala

get parameters success.!

end of get parameters success.

在线执行shell脚本

有时候shell脚本可以放在http页面上,不用download,可以直接执行。

一般方法:

curl http://XXX.com/xx/xx.sh | bash

带参数

curl -s http://XXX.com/xx/xx.sh | bash -s arg1 arg2

使用带有具名参数的脚本

# 基本格式

curl -L http://XXX.com/xx/xx.sh | bash -s -- -x abc -y xyz

# 例子

curl -L https://gitee.com/nickqiu/notes-everything/raw/master/docs/Linux/content/for.sh | bash -s -- -a --banana blala

参考文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值