繁体   English   中英

使用bash将“ \\ n”打印到文件中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM