我正在尝试创建一个脚本来帮助我将端口源代码备份到debian文件。
尝试编写debian / rules文件
~$ echo -e "#!/usr/bin/make -f\n%:\n\tdh \$@" > debian/rules
bash: !/usr/bin/make: event not found
我认为#和!搞砸了。如何在没有shell尝试执行它们的情况下回显字符串的这些组件? 我试过用“#”和“!”但后来我会得到那个:“!”
我想要一个看起来完全像这样的规则文件:
#!/usr/bin/make -f
%:
dh $@
我该怎么办?
答案 0 :(得分:3)
!不会被双引号转义
'#!/usr/bin/make -f\n%:\n\tdh \'"$@"
应该没问题。但是,请看这里 - 文件:
cat <<MAKEFILE
#!/usr/bin/make -f
%:
dh $@
MAKEFILE
答案 1 :(得分:0)
我有另一种方法,使用ANSI十六进制代码(如果您很聪明,甚至可以使用Unicode十六进制代码)。
$ echo -e "\x23\x21/usr/bin/make -f\n\x25:\n\tdh \x24\x40"
#!/usr/bin/make -f
%:
dh $@
尽管@sehe对here documents的使用非常巧妙,但是我的方法对我来说更直观。 (如果您对ANSI不太熟悉,它也将需要较少的查找。)我需要知道#
是U+0023
; !
是U+0021
;等等。我一直都在使用Unicode代码点,因此速度很快。