需要将nm函数的内容保存到变量中。 nm应该运行的文件是脚本的参数。 目前我有:
while [ $i -le $#]
do
eval nm "\$$i"
i=$(( i+1 ))
done
列出每个文件的nm结果。
但我需要将nm文件的结果保存到变量中。 我试过了
eval CONTENT=$(nm "\$$i")
但这显示错误“nm:'$ 1':没有这样的文件。”
答案 0 :(得分:1)
@devnull解决了你的问题(在他的评论中),但我建议你按如下方式重写你的循环:
for f
do
CONTENT=$(nm "$f")
# ... work with $CONTENT
done
for
的{{1}}循环隐式循环遍历传递给脚本的所有参数。in ...
将直接包含每个参数的值,因此无需使用f
。(顺便说一下,您的原始代码不会按发布的方式运行,因为eval
条件会因2个原因而中断:(a)[ ... ]
未初始化且(b)结束{ {1}}之前必须有空格。)
答案 1 :(得分:0)
“eval”是您需要重定向的命令的一部分:
CONTENT=$(eval nm "\$$i")
您必须设置一个数组来存储结果:
CONTENT[$i]=$(eval nm "$\$$i")