2016-10-17 88 views
0

文件我想打印該字符串:打印 「 n」 到使用bash

.asciz "%d\n" 

到文件中。 當我現在嘗試它說:

.asciz "0\n" 

看起來它interpretes的%d爲0

現在我寫echo ".asciz "\""%d\\\n"\""

+0

無法重現,儘管您顯示的行與未加引號的'''不匹配,更簡單的'echo「.asciz \」%d \ n \「」'應該可以正常工作,儘管(儘管由Ruslan奧斯曼諾夫更好) – chepner

回答

1

在現代的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)。

+0

我試過這個,它在文件 – Louise

+0

@Louise中得到了一個換行符,我已經更新了答案 –

+0

我不熟悉腳本,因此我並不期待任何先進的東西。文件,然後確實回聲,而不是回聲file1 >> file2,類似的東西,謝謝! – Louise