前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell脚本的参数传递一例

shell脚本的参数传递一例

作者头像
qsjs
发布2020-06-09 09:00:41
7480
发布2020-06-09 09:00:41
举报
文章被收录于专栏:MyPanda的学习笔记

在shell脚本中,我们也可以像其他编程语言一样处理传递的option以及对应的值,比如: 既支持 --name=<NAME>, 也支持 --name <NAME>, 那么如何才能做到呢? 看下面的例子:

代码语言:javascript
复制
[root@localhost ~]# cat test.sh
#!/bin/bash
name="Bingo"
while [ $# -gt 0 ];do
        case $1 in
        --name*)
                if [[ $1 == --name\=* ]];then  #如果option后面有等号,那么需要用#来截取变量$1获得对应的值,
                name=${1#--name=}
                else
                name=$2     #如果option后面没有等号,那么后面的参数,也就是$2必然是option对应的值,因为没有用等号进行连接,所以需要用shift 来对位置参数进行移位处理;
                shift   
                fi
                ;;
        *)
                args=$1
                ;;
        esac
        shift
done
echo Welcome.$name.$args
[root@localhost ~]# ./test.sh --name China
Welcome.China.
[root@localhost ~]# ./test.sh --name=China
Welcome.China.
[root@localhost ~]#

在这个例子中,通过判断传递的参数是否包含"=", 从而获取相应参数对应的参数值. 实现对传入参数以及参数值的获取。

这个使用技巧在系统中的很多shell脚本中都有体现,所以想提高shell 脚本的能力,多多阅读系统中的shell脚本吧,一定会有意外的收获哦。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档