shell编程总结10(入参)

1、向命令行脚本传入参数的方法举例:
    ./shell 10 30
这种就是传入shell脚本里面两个参数10和30

2、命令行内部访问传入的变量的方法:
$0:表示的是程序名;$1:表示的是传入的第一个参数;$2:表示的是传入的第二个参数
    注意:
    (1)如果传入的参数是有空格的话,必须加上单引号
    (2)如果脚本需要多于9个的命令行参数的话,在第九个变量之后,你必须使用加上花括号的,例如:${10}

3、测试参数:当脚本传入的参数,并没有脚本内部使用的参数的时候,就会报错。所以我们在使用脚本传入的参数之前,最好进行参数的校验
    举例:
        #!/bin/bash
        if[ -n "$1" ]
        then
            echo Hello $1.
        else
            echo "Sorry"
        fi
    说明:使用-n参数进行检测是否有数据

4、特殊参数变量:$#(表示命令行运行时输入了多少个参数)
    访问最后一个传入参数:
        (1)${!#}
        (2)params=$#
             $params

5、$*与$@两个变量的使用
    $*:会将传入的所有参数当成一个整体的参数
    $@:会将传入的所有参数当成每一个单独的参数来处理

6、移动变量:使用shift命令,默认情况下他会将每个参数变量减一,所以变量$3的值会移动到$2,变量$2的值会移动到$1,变量$1的值则会被删除,$0不会变,主要用来遍历不太清楚传入的参数情况
    另外:我们可以给shift命令提供一个参数,来改变移动的位数,例如:shift 2
    提醒:一旦使用shift之后,被删除的参数将被丢掉并且无法恢复

7、处理简单的选项方法:
    使用case语句:
        #!/bin/bash
        while [ -n "$1" ]
        do
            case "$1" in
            -a) echo "1";;
            -b) echo "2";;
            -c) echo "3";;
            *) echo "4";;
            esac
            shift
        done
8、简单的将参数与选项分隔开来的方法:使用--来分隔

9、使用复杂的输入:例如输入的时候选项放到一起:-abc,或者一个选项后面接选项参数:-a test -b tess,平时用的不多,这些先略过,在书中的282页开始看

10、获取用户的输入:使用read命令接受从标准输入(键盘)或是另一个文件描述符的输入
    举例:
        #!/bin/bash
        echo -n "Enter you name:"
        read name
        echo "Hello $name,welcome to my program"
    参数:-p(允许直接在read命令行指定提示符)
          read -p "Enter you name:" age
          另外,可以在read后面接多个参数,输入的时候以空格分隔的将每个输入分配各个参数,分配完了,还有输入的话,将会将剩余的输入分配给最后一个参数变量
          -t(指定read命令超时选项):read -t 5
          -n1(指定read命令接受单个字符,只要你按下单个字符回答后,read命令就会接受输入并将它传给变量)
          -s(静默输入,输入的时候不显示输入字符,例如输入密码)

11、从文件中读取输入:主要使用cat与read命令结合的方式
    举例:
        #!/bin/bash
        cat test | while read line
        do
            echo "Line : $line"
        done
    说明:while循环会继续通过read命令处理文件中的行,知道read命令读取不到内容的时候,就会非零的退出码,然后结束while循环

    
 

转载于:https://my.oschina.net/UBW/blog/846385

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值