所谓的位置参数(positional parameters)指的也就是Shell脚本的命令行参数(command-line arguments)。在Shell函数里,它们同时也可以是函数的参数。各参数都由整数来命令。基于历史的原因,当其超过9,就应该用大括号把数字框起来: echo first arg is $1 echo tenth arg is ${10} 假设你想知道某个用户正使用的终端是什么,你当然可以直接使用who命令,然后再输出中慢慢找。这么做很麻烦又容易出错--特别是当系统的用户很多的时候。你想做的只不过是在 who 的输出中找到那位用户,这个时候你可以用 grep 命令来进行查找操作,它会列出第一个参数(所指定的模式)匹配的每一行。我的虚拟机上的用户较少,以many为例。 [many@avention Desktop]$ who | grep many many :0 2018-09-25 00:26 (:0) many pts/0 2018-09-25 00:26 (:0) \[many@avention Desktop\]$ 知道如何寻找特定的用户后,我么可以将命令房间脚本里,这段脚本的额第一个参数就是要找的用户名称: [many@avention my\_sh]$ cat > finduser.sh #建立新的脚本文件 #! /bin/sh who | grep $1 #查看第一个参数所指定你的用户是否登录 [many@avention my\_sh]$ chmod u+x finduser.sh #为脚本的拥有者设置可执行权限 \[many@avention my\_sh\]$ [many@avention my\_sh]$ ./finduser.sh many #测试,寻找 many用户 many :0 2018-09-25 00:26 (:0) many pts/0 2018-09-25 00:26 (:0) \[many@avention my\_sh\]$ 在shell脚本中,注释(comment)是以 # 开头的。为了增加脚本的可读性,多写注释。 关于命令行参数的更多细节,在后续章节中补充。

标签: none

相关文章推荐

添加新评论,含*的栏目为必填