[英]Print “\n” into file using bash
我要打印此字符串:
.asciz "%d\n"
到文件中。 当我现在尝试时,它说:
.asciz "0\n"
似乎它将%d解释为0。
现在我写echo ".asciz "\\""%d\\\\\\n"\\""
在现代GNU / Linux系统上,在单引号字符串内没有任何解释,您可以简单地运行以下命令:
echo '.asciz "%d\n"' > file
其中的单引号应转义,但是:
echo '13'\'''
# outputs 13'
但是也有例外 。 例如,如果将some-script.sh
echo '1\\n2'
放入some-script.sh
文件中,并使用修改后的BASHOPTS
环境变量进行调用,则该命令可以用换行符替换\\n
:
$ env BASHOPTS=xpg_echo bash some-script.sh
1
2
因此,严格来说, echo
是不安全的。 另外,您可以调用printf
:
printf '%s' '.asciz "%d\n"'
或内置版本:
builtin printf '%s' '.asciz "%d\n"'
(请参阅info bash printf
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.