2009-03-18 10 views

Répondre

22

Utilisez

echo -e "\012" 
+2

Cela nécessite une fonctionnalité Ceci est totalement non conforme à POSIX (pas seulement une extension, mais * activement non autorisée * par la spécification, qui ne permet pas d'honorer d'autres flags que -n), et ne sera pas honorée par bash même en mode POSIX si le ' Le drapeau de xpg_echo' est fixé. –

28

Si vous vous souciez de la portabilité, vous laissez tomber écho et utilisez printf (1):

printf '\012' 
+3

... ou, si vous prenez la séquence d'échappement d'une source non fiable, 'printf '% b' '\ 012'', pour honorer de telles séquences mais pas d'autres contenus de chaînes de format. –

11

Sur mon terminal,

printf '\012' >>output.txt 

fonctionne à la fois la représentation octal du caractère ascii, et hexadécimal correspondant:

printf '\xA' >>output.txt 

La commande

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

cependant, ne fonctionne pas correctement. Seuls les hexadécimaux semblent fonctionner avec echo -e. Le -n supprime le retour à la ligne supplémentaire par défaut de l'écho.

+2

_Mon_ question était en fait sur la façon d'imprimer hexadécimal à un terminal - trouvé cela par google, et cela a très bien répondu à ma question. Il répond également à la question du demandeur. Cela mérite plus de points. – Wyatt8740

1

Je pris non ASCII pour signifier Unicode, au moins dans mon cas, mais printf "\x##" ne suffisait pas pour ma solution à 2 octets, donc j'utilisé cette syntaxe légèrement différente à la place:

> printf "\u25ba" 
► 
Questions connexes