2009-03-18 5 views

Antwort

22

Verwenden

echo -e "\012" 
+2

Dies erfordert Funktionalität das ist mit POSIX völlig nicht kompatibel (nicht nur eine Erweiterung, sondern * durch die Spezifikation * nicht erlaubt), die keine anderen Flags als "-n" berücksichtigt) und auch im POSIX-Modus nicht von bash akzeptiert wird, wenn ' xpg_echo' Flag ist gesetzt. –

28

Wenn Sie Portabilität kümmern, werden Sie fallen Echo und verwenden printf (1):

printf '\012' 
+3

... oder, wenn Sie die Escape-Sequenz von einer nicht vertrauenswürdigen Quelle nehmen, 'printf'% b '' \ 012'', um solche Sequenzen zu honorieren, aber nicht andere Formatzeichenfolge. –

11

Auf meinem Terminal

printf '\012' >>output.txt 

funktioniert sowohl für die Darstellung des oktalen ASCII- Zeichen, und der entsprechenden Hexadezimal:

printf '\xA' >>output.txt 

Der Befehl

echo -en '\012' >>output.txt 

jedoch nicht richtig funktioniert. Nur Hexadezimale scheinen mit Echo -e zu arbeiten. Die Option -n löscht die Standard-Zusatzzeile von echo.

+2

_Meine Frage war tatsächlich, wie man hexadezimal zu einem Terminal drucken kann - fand dies durch Google, und das beantwortete meine Frage sehr gut. Es beantwortet auch die Frage des Fragestellers. Es verdient mehr Punkte. – Wyatt8740

1

Ich nahm Nicht-ASCII-Unicode zu bedeuten, zumindest in meinem Fall, aber printf "\x##" war für meine 2-Byte-Lösung nicht genug, so habe ich diese etwas andere Syntax statt:

> printf "\u25ba" 
►