vim mytest.sh
1 #!/bin/bash
2
3 ARGS=`getopt -o ab: -l "argv3:,help" -- "$@"`
4 eval set -- "${ARGS}"
5
6 while true;
7 do
8 case "$1" in
9 -a)
10 echo "i am a"
11 shift
12 ;;
13 -b)
14 echo "i am b, my value is $2"
15 shift 2
16 ;;
17 --argv3)
18 echo "i am argv3, my value is $2"
19 shift 2
20 ;;
21 --help)
22 echo "i am help info"
23 exit 0
24 ;;
25 --)
26 shift
27 break
28 ;;
29 *)
30 echo "Internal error!"
31 exit 1
32 ;;
33 esac
34 done
"$@"
扩展为单独的参数列表。 -- "$@"
在getopt中的含义是什么?如果我将第3行改为
ARGS=`getopt -o ab: -l "argv3:,help"`
test.sh?
--)
25 --)
26 shift
27 break
28 ;;
编码员想要表达的含义是什么?
*)
在什么条件或什么参数会引起“内部错误!”的输出在终端?
答案 0 :(得分:0)
Order
。编辑:正如@axiac所提到的,this parameter usually has a special meaning, it signify the end of command options。
匹配上面的参数。
Wild card,可以视为--
中的default
,在之前没有任何案例匹配时会被触发。