Können wir in einem Bash-Skript mehrere Array-Variablen aus derselben Zeile lesen?
Wie kann ich beim Lesebefehl -a
„&“ -p
gleichzeitig verwenden?
Ich habe versucht:
read -ap 'vi:' var_1
read -pa 'vi:' var_1
read -a -p 'v1:' var_1
read -p -a 'v1:' var_1
Nichts davon funktioniert. Gibt es noch andere Möglichkeiten?
Antwort1
Sie können Eingabezeichenfolgen mit einer Schleife an ein Array anhängen.
#!/bin/bash
array=()
while true; do
read -rp "vi: " input
[[ -z $input ]] && break || array+=("$input")
done
echo "${array[@]}"
Antwort2
Ihre Methode funktioniert bash
mit einer kleinen Änderung:
Löschen Sie die Variable
$ unset asdf
Setzen Sie die Option -a
nach der Option-p 'string'
$ read -p 'enter 4 items separated by space ' -a asdf
enter 4 items separated by space 1 2 3 4
Überprüfen Sie das Ergebnis
$ echo ${asdf[@]}
1 2 3 4
$ echo ${asdf[3]}
4
$ echo ${asdf[0]}
1