我正在尝试将一些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
答案 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"