z=0
for i in "${ofield[@]}"; do
temp=$(grep '#include "' ${cppfield[z]} | sed s/#include// | sed s/\"//g)
echo "${ofield[$i]} : ${cppfield[$i]} ${temp[@]}" >> Makefile
echo " g++ -ansi -Wall -g -c ${cppfield[i]}" >> Makefile
((z++))
done
我试图遍历一个.cpp文件数组和一个.o文件数组来打印.o数组的每个组件,然后是.cpp数组,然后是头文件的.cpp数组的grepping 。 我一直收到错误"无效的算术运算符(错误标记是" .0")
答案 0 :(得分:0)
1st:man bash
第二名:i
似乎不是数字,包含对象文件的字符串,因此您无法使用i
在${cppfield[i]}
中进行索引,请将${i}
本身用作文件名< / p>
第3代:temp=$(...)
未创建数组,请使用($(...))
,注意文件名中的空格,更新IFS=$'\n'
第4次:使用索引z
寻址数组中的元素应该看起来像array[${z}]
如果z是数字并且它不是关联数组