我写了这样一个剧本:
#!/usr/bin/ksh93
while read -A value; do
print -- "I am here"
print -- ${value[@]}
done < `<command>`
我的目的是重定向command
的stdout输出以填充数组。以上用法的灵感来自以下链接:http://www.unix.com/shell-programming-scripting/66884-array-ksh-elems-containing-spaces.html,但在我的情况下不起作用。
有人能告诉我失败的原因吗?
谢谢!
答案 0 :(得分: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