当我在sh
中执行以下命令时,它按预期工作:
sed -i "s/^\\(const SIZE int = \\).*\$/\\1`du -bs myfile.exe | sed 's/[[:blank:]].*//'`"/g myfile.go
但是当我在Makefile中运行它时,我得到了这个:
sed -i "s/^\\(const SIZE int = \\).*\\\1`du -bs myfile.exe | sed 's/[[:blank:]].*//'`"/g myfile.go
sed: -e expression #1, char 38: unterminated `s' command
看起来make正在改变Makefile中的命令。关于如何正确运行命令的想法如何?
答案 0 :(得分:1)
找到解决方案here:显然让 需要转义一些内容。 $
之后的const SIZE int = \\).*\
需要转义才能生成不想进行自己的变量替换。
使用\$$
转义它。