2

我写了这样一个脚本:

#!/usr/bin/ksh93

while read -A value; do
  print -- "I am here"
  print -- ${value[@]}
done < `<command>`

我的意图是重定向 stdout 的输出command以填充数组。上述用法的灵感来自此链接:http ://www.unix.com/shell-programming-scripting/66884-array-ksh-elems- contains-spaces.html ,但在我的情况下不起作用。

谁能告诉我失败的原因?

谢谢!

4

1 回答 1

3

使用的示例命令是ls -1- 带有 shell /bin/ksh。这将命令的输出存储在数组中。

ls -1 | { \
   n=0;
   set -A array
   while read line; do
        array[$n]=$line
        let n=$n+1
   done;
}

 # output commands here
    for l in ${array[@]}
    do
        echo $l
    done
于 2013-04-24T17:10:26.453 回答