2009-03-18 14 views

risposta

22

Usa

echo -e "\012" 
+2

Questo richiede funzionalità questo è completamente non conforme a POSIX (non solo un'estensione, ma * disabilitato attivamente * dalla specifica, che non consente l'uso di flag diversi da '-n'), e non sarà onorato nemmeno da bash in modalità POSIX se il' il flag xpg_echo' è impostato. –

28

Se vi preoccupate per la portabilità, farai cadere eco e utilizzare printf (1):

printf '\012' 
+3

... o, se si prende la sequenza di escape da una fonte non attendibile, 'printf '% b' '\ 012'', per onorare tali sequenze ma non altri contenuti di stringhe di formato. –

11

Sul mio terminale,

printf '\012' >>output.txt 

funziona sia per la rappresentazione ottale del carattere ASCII e esadecimale corrispondente:

printf '\xA' >>output.txt 

Il comando

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

tuttavia, non funziona correttamente. Solo gli esadecimali sembrano funzionare con echo -e. -n rimuove il newline extra predefinito da echo.

+2

_La mia domanda era in realtà su come stampare esadecimale su un terminale - trovato tramite google, e questo ha risposto molto bene alla mia domanda. Risponde anche alla domanda del richiedente. Merita più punti. – Wyatt8740

1

ho preso non ASCII per significare Unicode, almeno nel mio caso, ma printf "\x##" non era abbastanza per la mia soluzione a 2 byte, così ho usato questa sintassi leggermente diversa invece:

> printf "\u25ba" 
►