将sqlite输出移动到bash数组中

时间:2016-07-08 05:34:37

标签: bash sqlite

我正在尝试将一些sqlite3输出加载到/ n分隔的bash数组中。 看起来它应该是一件简单的事情,但是read语句似乎不会产生任何输出。在IFS语句之前回显fqry确认sqlite查询正在将其输出正确加载到字符串中。但似乎没有任何东西可以进入远方。

cmd="SELECT * FROM format"
fqry=`sqlite3 data.db "$cmd"`
IFS=$'\n' 
read -ra farray <<< "$fqry"
for f in "${farray[@]}"
do
echo "$f"
done

2 个答案:

答案 0 :(得分:3)

使用复合数组赋值创建索引数组而不是read

cmd="SELECT * FROM format"
IFS=$'\n'
fqry=(`sqlite3 data.db "$cmd"`)

for f in "${fqry[@]}"; do
    echo "$f"
done

答案 1 :(得分:1)

您需要使用read -d选项来定义另一个分隔符,而不是默认的换行符\n,以指示输入行的终止,

read -d '' -ra farray <<< "$fqry"