В скрипте 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