используйте -a ,-p в команде чтения вместе

используйте -a ,-p в команде чтения вместе

В скрипте bash можно ли прочитать несколько переменных массива из одной строки?

Как можно использовать -a& -pодновременно в команде чтения?

Я пытался:

read -ap 'vi:' var_1
read -pa 'vi:' var_1
read -a -p 'v1:' var_1
read -p -a 'v1:' var_1

Ни один из них не работает. Есть ли другие варианты?

решение1

Вы можете добавлять входные строки в массив с помощью цикла.

#!/bin/bash

array=()
while true; do
    read -rp "vi: " input
    [[ -z $input ]] && break || array+=("$input")
done

echo "${array[@]}"

решение2

Ваш метод работает bashс небольшой модификацией:

Очистить переменную

$ unset asdf

Поставьте опцию -aпосле опции-p 'string'

$ read -p 'enter 4 items separated by space ' -a asdf
enter 4 items separated by space  1 2 3 4

Проверьте результат

$ echo ${asdf[@]}
1 2 3 4
$ echo ${asdf[3]}
4
$ echo ${asdf[0]}
1

Связанный контент