hush: teach getopts to set/unset OPTARG
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
18
shell/hush_test/hush-getopts/getopt_optarg.right
Normal file
18
shell/hush_test/hush-getopts/getopt_optarg.right
Normal file
@@ -0,0 +1,18 @@
|
||||
*** no OPTIND, optstring:'w:et' args:-q -w e -r -t -y
|
||||
./getopt_optarg.tests: invalid option -- q
|
||||
var:'?' OPTIND:2 OPTARG:''
|
||||
var:'w' OPTIND:4 OPTARG:'e'
|
||||
./getopt_optarg.tests: invalid option -- r
|
||||
var:'?' OPTIND:5 OPTARG:''
|
||||
var:'t' OPTIND:6 OPTARG:''
|
||||
./getopt_optarg.tests: invalid option -- y
|
||||
var:'?' OPTIND:7 OPTARG:''
|
||||
exited: var:'?' OPTIND:7 OPTARG:''
|
||||
*** OPTIND=0, optstring:'w:et' args:-w 1 -w2 -w -e -e -t -t
|
||||
var:'w' OPTIND:3 OPTARG:'1'
|
||||
var:'w' OPTIND:4 OPTARG:'2'
|
||||
var:'w' OPTIND:6 OPTARG:'-e'
|
||||
var:'e' OPTIND:7 OPTARG:''
|
||||
var:'t' OPTIND:8 OPTARG:''
|
||||
var:'t' OPTIND:9 OPTARG:''
|
||||
exited: var:'?' OPTIND:9 OPTARG:''
|
16
shell/hush_test/hush-getopts/getopt_optarg.tests
Executable file
16
shell/hush_test/hush-getopts/getopt_optarg.tests
Executable file
@@ -0,0 +1,16 @@
|
||||
set -- -q -w e -r -t -y
|
||||
echo "*** no OPTIND, optstring:'w:et' args:$*"
|
||||
var=QWERTY
|
||||
OPTARG=ASDFGH
|
||||
while getopts "w:et" var; do
|
||||
echo "var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'"
|
||||
done
|
||||
echo "exited: var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'"
|
||||
|
||||
set -- -w 1 -w2 -w -e -e -t -t
|
||||
echo "*** OPTIND=0, optstring:'w:et' args:$*"
|
||||
OPTIND=0
|
||||
while getopts "w:et" var; do
|
||||
echo "var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'"
|
||||
done
|
||||
echo "exited: var:'$var' OPTIND:$OPTIND OPTARG:'$OPTARG'"
|
@@ -4,5 +4,4 @@ var=QWERTY
|
||||
while getopts "we" var; do
|
||||
echo "var:'$var' OPTIND:$OPTIND"
|
||||
done
|
||||
# unfortunately, "rc:0" is shown since while's overall exitcode is "success"
|
||||
echo "exited: var:'$var' OPTIND:$OPTIND"
|
||||
|
Reference in New Issue
Block a user