Shell 脚本学习 — 访问 Shell 脚本的参数

所谓的位置参数指的也就是Shell脚本的命令行参数。在Shell函数里,它们同事也可以是函数的参数。各参数都有整数来命名。基于历史原因,当它超过9,就应该用大括号把数字框起来:

echo first arg is $1
echo tenth arg is ${10}

此外,通过特殊变量,我们还可以取得参数的总数,以及一次取得所有参数。

案例

假设你想知道某个用户正使用的终端是什么,你当然可以直接使用who命令,然后在输出中自己慢慢找。这么做很麻烦又容易出错——特别是当系统的用户很多的时候。你想做的只不过是在who的输出中找到那位用户,这个时候你可以用grep命令来进行查找操作,它会列出与grep第一个参数匹配的每一行。假设你要找的用户是 betsy:

who | grep betsy
betsy   pts/3   Dec 27 11:07   (flags-r-us.example.com)

知道如何寻找特定的用户后,我们可以将命令放进脚本里,这段脚本的第一个参数就是我们要找的用户名称:

cat > finduser    #建立新文件
#! /bin/sh

# finduser --- 查看第一个参数所指定的用户是否登录

who | grep $1
^D                #以 End-of-file 结尾
chmod +x finduser        #设置执行权限
./finduser betsy         #测试:寻找 betsy
betsy          pts/3      Dec 27 11:07   (flags-r-us.example.com)
./finduser benjamin      #再找找好友 Ben
benjamin       dtlocal    Dec 27 17:55   (kites.example.com)
mv finduser $HOME/bin    #将这个文件存进自己的bin目录

当然,这个程序还没有达到完美。要是我们没给任何参数,会发生什么事?

finduser
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.

具体的测试参数,待续...

转载于:https://www.cnblogs.com/bruceleeliya/archive/2012/05/15/2501450.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值