Makefile 只打印 echo 语句的一部分
Makefile only prints part of echo statement
我正在编写我的第一个 makefile 以多种方式编译乳胶代码(使用 beamer 包),但我陷入了一个非常基本的问题,甚至与乳胶无关。考虑我的 makefile 的以下 MWE:
test.tex:
echo '\input{1-slidepreamble} \changemode{handout}' > Xtest.tex
它创建了一个文件Xtest.tex,但该文件只包含文本
\input{1-slidepreamble}
我不知道为什么?更重要的是,当我复制同一行时
echo '\input{1-slidepreamble} \changemode{handout}' > Xtest.tex
进入终端,它会创建一个包含两个命令的文件。我迷路了。谁能给我解释一下这是怎么回事?
更新: 好像和\c
有点关系。当我写
test2 :
echo '\input{1-slidepreamble}' > test2.tex
echo '\changemode{handout}' >> test2.tex
echo 'more text' >> test2.tex
echo '\c see this?' >> test2.tex
然后它只会将第 1 行和第 3 行打印到文件中。
有没有一种方法可以让 makefile 不尝试计算 \c
代码而只是将其复制到文件中?
可能是您使用的 echo
版本。
改用 printf
可能更好?
如果你使用:
test.tex:
printf '%s\n' '\input{1-slidepreamble} \changemode{handout}' > Xtest.tex
我正在编写我的第一个 makefile 以多种方式编译乳胶代码(使用 beamer 包),但我陷入了一个非常基本的问题,甚至与乳胶无关。考虑我的 makefile 的以下 MWE:
test.tex:
echo '\input{1-slidepreamble} \changemode{handout}' > Xtest.tex
它创建了一个文件Xtest.tex,但该文件只包含文本
\input{1-slidepreamble}
我不知道为什么?更重要的是,当我复制同一行时
echo '\input{1-slidepreamble} \changemode{handout}' > Xtest.tex
进入终端,它会创建一个包含两个命令的文件。我迷路了。谁能给我解释一下这是怎么回事?
更新: 好像和\c
有点关系。当我写
test2 :
echo '\input{1-slidepreamble}' > test2.tex
echo '\changemode{handout}' >> test2.tex
echo 'more text' >> test2.tex
echo '\c see this?' >> test2.tex
然后它只会将第 1 行和第 3 行打印到文件中。
有没有一种方法可以让 makefile 不尝试计算 \c
代码而只是将其复制到文件中?
可能是您使用的 echo
版本。
改用 printf
可能更好?
如果你使用:
test.tex:
printf '%s\n' '\input{1-slidepreamble} \changemode{handout}' > Xtest.tex