纷纭教育
您的当前位置:首页Shell参数选项解析

Shell参数选项解析

来源:纷纭教育

两种shell选项参数解析工具

原理

  • test.sh
#!/bin/bash

while [[ $# -ge 1 ]]; do
    case $1 in
        -a|--aa )
            A=$2
            echo "经过a"
            shift 2
            ;;
        -b|--bb )
            B=$2
            echo "经过b"
            shift 2
            ;;
        -c|--cc )
            C="true"
            echo "经过c"
            shift
            ;;
        * )
            echo "经过*:$1"
            shift   
            ;;
    esac
done
echo "A = $A"
echo "B = $B"
echo "C = $C"
  • 执行:sh test.sh --bb bbb -c -d -a aaa
经过b
经过c
经过*:-d
经过a
A = aaa
B = bbb
C = true
  • $# -ge 1:参数个数大于等于1

  • case esac语句
    • ;;:与其他语言中的break,但是此时不能省略贯穿后面,语法报错
    • *)*表示通配符,相当于其他语言的default未匹配项
  • shfit:位置参数左移命令
    • 例子:shift 3表示原来的$4现在变成$1,原来的$5现在变成$2,原来的$1$2$3丢弃,$0不移动,$#参数个数会减3。

转载于:https://www.cnblogs.com/leocll/p/11078260.html

因篇幅问题不能全部显示,请点此查看更多更全内容