• 向脚本传递参数


    我们知道,使用位置变量可以获取传递给脚本的参数,但是位置变量最多只能获取9个参数,当要使用的选项、参数大于9时,位置变量就无能为力了。

    一、使用shift命令处理参数

    参数操作命令shift的用法比较特殊,它没有选项和参数,直接运行命令即可。运行shift命令时,位置变量就像一个可以移动的“指针”,每执行一次,位置变量指向的参数将向后移动一位。即使用shift命令后,位置变量$1的值等于使用shift命令前$2的值,$2的值等于使用shift命令前$3的值,以此类推。随着shift命令的使用,位置变量$1的值会不断变化,直到移动到最后一个参数之后。

    (1)演示shift命令操作位置变量的原理和使用方法的示例脚本:

    这个示例脚本会先判断传递给脚本的参数个数是否等于0,如果等于0就调用usage函数输出错误信息并退出。如果参数个数不为0,脚本将使用while循环和shift命令逐一输出所有参数。

    [root@localhost shell]# cat shift_param.sh 
    #!/bin/bash
    
    #This is a example script.
    #2013-12-18
    
    function usage()
    {
            echo "Error: Must huave a parameter."
            echo "$0 parameter..."
            return 1
    }
    
    if [ $# = 0 ]
     then
            usage
            exit 1
    fi
    
    I=1
    while [ $# != 0 ]
     do
            echo "$"$I"="$1
            shift
            I=`expr $I + 1`
    done
    exit 0
    [root@localhost shell]# ./shift_param.sh 1 2 3 4 5 6 7 8 9 10
    $1=1
    $2=2
    $3=3
    $4=4
    $5=5
    $6=6
    $7=7
    $8=8
    $9=9
    $10=10

    二、使用shift命令处理选项参数

    对于一个脚本编写者而言,脚本参数的含义与命令中的参数含义不同。脚本的参数应该包括类似于命令选项的选项参数,以及脚本需要操作的对象参数,它们都以参数的形式传递给脚本。因此编写脚本时,如果为脚本添加了选项参数,在处理脚本参数时,应该将选项参数和脚本参数分开。

    一个典型的处理脚本的选项参数和对象参数的格式如下:

    while [ $# -gt 0 ]
    do
        case $1 in
        -a) #功能语句块
            #出现选项a时应该执行的语句
           shift
           ;;
        -b) #功能语句块
             #出现选项b时执行的语句
             shift
             ;;
        -c) #功能语句块
             #出现选项c时执行的语句
             shift
             ;;
        esac
    done
  • 相关阅读:
    互联网架构的三马车
    云时代架构读后感
    支付宝架构师眼里的高并发架构
    支付宝架构
    架构层级的“开闭原则”2
    架构层级的“开闭原则”1
    互联网架构微服务
    关于第三方支付
    分布式架构中数据一致性常见的几个问题
    Java多线程学习笔记二
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3479770.html
Copyright © 2020-2023  润新知