sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #95353
Re: Jeg forstår ikke denne bash-script særhed
> runtest $each | cat
> echo ""echo "Loopet uden pipe virker ikke"for each in "${INPUTS[@]}"do
> runtest $each
Årsagen er at getopts først "nulstiller" OPTIND (indekset) til 1 når man
starter en ny shell.
Det kan man se i "help getopts":
OPTIND is initialized to 1 each time the shell or
a shell script is invoked.
I "man bash" kan man se:
Each command in a pipeline is executed as a separate process (i.e., in a
subshell).
Så man får den samme reaktion ved at bruge subshell sådan:
(runtest $each)
En anden løsning er:
OPTIND=1
inden man kalder getopts når den ikke kaldes i en subshell.
Follow ups
References