sql输出为ksh中的列表

时间:2014-11-12 12:34:07

标签: unix ksh

我有一个脚本,其中函数的sql输出是多行(一列),我试图循环遍历那些for循环函数,但似乎无法让它工作......

rslt=sqlquery {}

echo $rslt
1
2
3
4

for i in $rslt
do
echo "lvl$i"
done

但是对于循环...我一直回来四次

lvl1
2
3
4

我希望得到这个......

lvl1
lvl2
lvl3
lvl4

我该怎么做?

2 个答案:

答案 0 :(得分:1)

要遍历ksh数组中的值,您需要使用${array[@]}语法:

$ set -A rslt 1 2 3 4
$ for i in ${rslt[@]}
> do
> echo "lvl$i"
> done
lvl1
lvl2
lvl3
lvl4

答案 1 :(得分:1)

为了在您的脚本中获得所需的结果,您需要在双引号$rslt下使用"。这将确保您不会丢失您期望在循环中获得的结果中的新行\n

for i in "$rslt"
do
echo "lvl$i"
done