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-й строке
25 --)
26 shift
27 break
28 ;;
Какое значение хочет выразить кодер?
*)
в 29-й строке
В зависимости от того, какое условие или какой аргумент вызовут вывод «Внутренняя ошибка!»в терминале?