【发布时间】:2014-05-01 19:32:21
【问题描述】:
我知道管道正在子shell中进行,但需要一点帮助.. 得到以下代码:
#!/bin/bash
first=""
second=""
for item1 in $(ls *.o)
do
first=`nm $item1 | grep -e '\<U\>' | awk '{print2}'`
for item2 in $(ls *.o)
do
second=`nm $item2 | grep -e '\<T\>' | awk '{print3}'`
if [ "$first" == "$second" ]; then
echo "$item1 => $item2 ($second)"
else
echo "Error!"
fi
done
done
脚本执行后,我收到了空的 $second(在括号中):
print_recursive.o => print_recursive.o ()
print_recursive.o => recfun.o ()
print_recursive.o => recursive.o ()
print_recursive.o => timeout.o ()
您介意按正确的顺序重写此代码吗?提前致谢。
【问题讨论】:
-
我建议你正确缩进。请注意,您有两个嵌套的
fors,if/else在其中。 -
for ... in *.o。无需在此处致电ls。