如何将grep值存储到数组中然后打印数组?

时间:2015-01-28 01:16:41

标签: arrays bash shell sed grep

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")

1 个答案:

答案 0 :(得分:0)

1st:man bash

第二名:i似乎不是数字,包含对象文件的字符串,因此您无法使用i${cppfield[i]}中进行索引,请将${i}本身用作文件名< / p>

第3代:temp=$(...)未创建数组,请使用($(...)),注意文件名中的空格,更新IFS=$'\n'

第4次:使用索引z寻址数组中的元素应该看起来像array[${z}]如果z是数字并且它不是关联数组