Wenn Sie die Argumentliste mit einem Index aufzählen müssen (z. B. um nach einem bestimmten Wort zu suchen), können Sie dies tun, ohne die Liste zu kopieren oder zu verändern.
Angenommen, Sie möchten eine Argumentliste an einem Doppelstrich ("--") aufteilen und die Argumente vor den Strichen an einen Befehl und die Argumente nach den Strichen an einen anderen übergeben:
toolwrapper() {
for i in $(seq 1 $#); do
[[ "${!i}" == "--" ]] && break
done || return $? # returns error status if we don't "break"
echo "dashes at $i"
echo "Before dashes: ${@:1:i-1}"
echo "After dashes: ${@:i+1:$#}"
}
Die Ergebnisse sollten wie folgt aussehen:
$ toolwrapper args for first tool -- and these are for the second
dashes at 5
Before dashes: args for first tool
After dashes: and these are for the second