Shell-Parametererweiterung für Arrays
Say Ich habe einige Daten in ein Bash-Array eingelesen:
$ IFS=" " read -a arr <<< "hello/how are/you iam/fine/yeah"
Nun, ich möchte das erste @ druck/
-geschnittenes Feld für jedes Element im Array.
Was ich tue, ist eine Schleife über die Elemente und die Verwendung der Shell-Parameter-Erweiterung, um alles vom ersten @ zu entferne/
:
$ for w in "${arr[@]}"; do echo "${w%%/*}"; done
hello
are
iam
Jedoch, seitprintf
it @ können wir den gesamten Inhalt des Arrays in einem einzigen Ausdruck drucken:
$ printf "%s\n" "${arr[@]}"
hello/how
are/you
iam/fine
... Ich frage mich, ob es eine Möglichkeit gibt, die Shell-Parameter-Erweiterung zu verwenden.${w%%/*}
zum Zeitpunkt der Verwendung vonprintf
, anstatt alle Elemente zu durchlaufen und es gegen jedes einzelne zu tun.