zoukankan      html  css  js  c++  java
  • 向脚本传递参数

    1.使用$#

    $ pg opt.sh

    #!/bin/sh
    #opt.sh

    usage()
    {
        echo "usage:'basename $0' start|stop process name "
    }
    OPT=$1
    PROCESSID=$1
    if [ $# -ne 2 ]
    then
        usage
        exit 1
    fi
    case $OPT in
    start|Start) echo "Starting..$PROCESSID"
      ;;
    stop|Stop) echo "Stopping...$PROCESSID"
      ;;
    *) usage
      ;;
    esac

    $# 表示命令行的个数,执行时用

    $ opt.sh start named

    Starting..start

    $ opt.sh start

    usage:'basename /home/dongjichao/bin/opt.sh' start|stop process name

    2.shift命令

    shift可以从左至右的选择命令行参数,如

    $ cat -n opt2.sh
         1    #!/bin/sh
         2    # opt2.sh
         3    loop=0
         4    while [ $# -ne 0 ]
         5    do
         6        echo $1
         7        shift
         8    done

    $ history | tail -n 10
     1541  cat opt
     1542  cat opt.sh
     1543  opt.sh start named
     1544  opt.sh start
     1545  cat -n opt2.sh
     1546  history | tail 100
     1547  history | tail -n 100
     1548  opt2.sh file1 file2 file3
     1549  history | tail -n 30
     1550  history | tail -n 10
    dongjichao@dongjichao:~/bin$ !1548
    opt2.sh file1 file2 file3
    file1
    file2
    file3

    3.使用shift处理文件转换

    $ cat opt3.sh
    #!/bin/sh
    #opt3.sh

    usage()
    {
        echo "usage:`basename $0` -[l|u] file [files] ">&2
        exit 1
    }

    if [ $# -eq 0 ]; then
        usage
    fi

    while [ $# -gt 0 ]
    do
        case $1 in
            -u|-U) echo "-u option specified"
                shift
                ;;
            -l|-L) echo "-l option specifed"
                shift
                ;;
            *) usage
                  ;;
        esac
    done

    运行

    $ opt3.sh -u -l -k
    -u option specified
    -l option specifed
    usage:opt3.sh -[l|u] file [files]

    4.getopts

    有时需要写类似  $ 命令 -l -c 23这样的命令,这时需要用到getopts

    以下getopts脚本接受下列选项或参数

    a  设置变量ALL为true

    h  设置变量HELP为true

    f  设置变量FILE为true

    v  设置变量VERBOSE为true

    $ cat getopt1.sh

    #!/bin/sh
    #getopt1

    ALL=false
    HELP=false
    FILE=false
    VERBOSE=false

    while getopts ahfgv OPTION
    do
        case $OPTION in
        a)ALL=true
          echo "ALL is $ALL"
          ;;
        h)HELP=true
          echo "HELP is $HELP"
          ;;
        f)FILE=true
          echo "FILE is $FILE"
          ;;
        v)VERBOSE=true
          echo "VERBOSE is $VERBOSE"
          ;;
        esac
    done

    运行上面的脚本

    $ getopt1.sh -a -h  

    ALL is true
    HELP is true

  • 相关阅读:
    Python3.x与Python2.x的区别
    Python3.x:打包为exe执行文件(window系统)
    Python3.x:常用基础语法
    关于yaha中文分词(将中文分词后,结合TfidfVectorizer变成向量)
    关于:cross_validation.scores
    list array解析(总算清楚一点了)
    pipeline(管道的连续应用)
    关于RandomizedSearchCV 和GridSearchCV(区别:参数个数的选择方式)
    VotingClassifier
    Python的zip函数
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2053615.html
Copyright © 2011-2022 走看看