• 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.

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

  • 相关阅读:
    #Leetcode# 204. Count Primes
    #Leetcode# 202. Happy Number
    #Leetcode# 8. String to Integer (atoi)
    VMWare(虚拟机) 网络配置模式 :桥接模式、nat模式、主机模式
    领域的建立
    需求获取的前期工作(不断更新)
    2.4文件查找与文件列表
    2.3录制并回放终端会话
    2命令之乐,2.1简介
    1.7比较与测试
  • 原文地址:https://www.cnblogs.com/bruceleeliya/p/2501450.html
Copyright © 2020-2023  润新知