簡體   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