Как сохранить многострочный вывод в массиве bash? - PullRequest
5 голосов
/ 27 июля 2011

У меня есть оператор выбора

sqlplus [credentials] select variable from table;

Он возвращает 6 строк, и мне нужно сохранить их как массив в переменной массива bash.

Ответы [ 2 ]

5 голосов
/ 27 июля 2011
array=(`sqlplus [credentials] select variable from table;`)
echo ${array[*]}
3 голосов
/ 02 ноября 2012

Если ваши переменные содержат пробелы и вы хотите, чтобы в массиве был элемент для каждой строки вывода (в отличие от каждого слова вывода), вам также необходимо установить IFS.И вы можете использовать кавычки при использовании массива:

SaveIFS="$IFS"

IFS=$'\n'
array=( $(sqlplus [credentials] select variable from table;) )
echo "${array[*]}"

IFS="$SaveIFS"
...