verwenden Sie -a und -p gleichzeitig für den Lesebefehl

verwenden Sie -a und -p gleichzeitig für den Lesebefehl

Können wir in einem Bash-Skript mehrere Array-Variablen aus derselben Zeile lesen?

Wie kann ich beim Lesebefehl -a„&“ -pgleichzeitig 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 bashmit einer kleinen Änderung:

Löschen Sie die Variable

$ unset asdf

Setzen Sie die Option -anach 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

verwandte Informationen