我正在尝试将(相当长的)脚本从 csh 翻译为 bash。它需要一个“Makefile”并执行命令:
cpp_begin_line=`grep -n cpp_flags Makefile | sed 's/:/ /' `
cpp_end_line=`grep -n lioapi Makefile | sed 's/:/ /' `
这里的值是cpp_开始行是:
48 cpp_flags = \
71 CPP_FLAGS = $(cpp_flags)
和价值cpp_结束行是:
73 IOAPI = -L$(LIB)/ioapi/lib -lioapi
这些数字来自 Makefile 中的第 48、71 和 73 行。然后,脚本尝试执行操作
diff=1+$cpp_end-$cpp_begin
head -n $cpp_end Makefile | tail -n $diff | sed 's/-Dparallel/-Dparallel -Dtwoway/' >> Makefile.twoway
失败是因为差异等于
1+73 IOAPI = -L$(LIB)/ioapi/lib -lioapi[1]-1-48 cpp_flags = \
71 CPP_FLAGS = $(cpp_flags)[1]
在这里,我期待着差异将成为尾部使用的一些数字差异。