读取从命令输出(输出)的线到一个数组
问题描述:
我写这样一个脚本:读取从命令输出(输出)的线到一个数组
#!/usr/bin/ksh93
while read -A value; do
print -- "I am here"
print -- ${value[@]}
done < `<command>`
我的目的是重定向command
的标准输出输出来填充所述阵列。以上用法受此链接启发:http://www.unix.com/shell-programming-scripting/66884-array-ksh-elems-containing-spaces.html,但在我的情况下不起作用。
任何人都可以告诉我失败的原因?
谢谢!
答
使用的示例命令是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-24 17:26:03
非常有帮助。我也想更多地解释为什么你的例子可行,为什么OP的代码失败。 – zarose 2014-09-18 19:12:14