文件我想打印該字符串:打印 「 n」 到使用bash
.asciz "%d\n"
到文件中。 當我現在嘗試它說:
.asciz "0\n"
看起來它interpretes的%d爲0
現在我寫echo ".asciz "\""%d\\\n"\""
文件我想打印該字符串:打印 「 n」 到使用bash
.asciz "%d\n"
到文件中。 當我現在嘗試它說:
.asciz "0\n"
看起來它interpretes的%d爲0
現在我寫echo ".asciz "\""%d\\\n"\""
在現代的GNU/Linux系統,內部的單引號串什麼都不解釋,你可以簡單的運行以下命令:
echo '.asciz "%d\n"' > file
單引號內應該逃脫,但是:
echo '13'\'''
# outputs 13'
但there are exceptions。例如,如果你把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
)。
無法重現,儘管您顯示的行與未加引號的'''不匹配,更簡單的'echo「.asciz \」%d \ n \「」'應該可以正常工作,儘管(儘管由Ruslan奧斯曼諾夫更好) – chepner