如何在bash数组中存储多行输出?

bat*_*tty 6 bash shell sqlplus

我有一个选择声明

sqlplus [credentials] select variable from table;
Run Code Online (Sandbox Code Playgroud)

它返回6行,我需要将它们存储为bash数组变量中的数组.

jma*_*man 6

array=(`sqlplus [credentials] select variable from table;`)
echo ${array[*]}
Run Code Online (Sandbox Code Playgroud)


miv*_*ivk 5

如果您的变量包含空格,并且您希望数组为每行输出(而不是每个输出字)都有一个元素,则还需要设置 IFS。并且您可能希望在使用数组时使用引号:

SaveIFS="$IFS"

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

IFS="$SaveIFS"
Run Code Online (Sandbox Code Playgroud)