Come puoi personalizzare il tuo prompt bash terminale con faccine?


11

Sto cercando di capire come personalizzare il prompt bash del mio terminale per usare le faccine. Quello che voglio (come si vede nel colpo di esempio) è che la CWD sia separata dal prompt da un \ n e mostri una faccina verde se il comando ha avuto successo, e una faccia triste rossa se fallisce.

Qualche idea?

Questo è stato ispirato da uno screencast Peepcode.

Esempio

Risposte:


15

Dopo aver trascorso circa mezz'ora a giocare con il codice di andhrimnir e aver fatto ulteriori ricerche, ho finalmente ottenuto quello che volevo.

PS1="\w \`if [ \$? = 0 ]; then echo -e '\[\e[01;32m\]\n\xE2\x98\xBA'; else echo -e '\[\e[01;31m\]\n\xE2\x98\xB9'; fi\` \[\e[01;34m\]\[\e[00m\]"

Puoi trovare un elenco di emoticon qui e poi convertirle nel codice byte a 3 cifre che vedi dopo il carattere di nuova riga.

Per ottenere cwd, tutto quello che dovevo fare era usare \w. Potresti anche mostrare l'utente corrente facendo \u@\w, che produrrebbe qualcosa di simile joshsmith@~.


6

Sembra che la faccina mostrata sopra sia un carattere unicode 0x263a. Quindi avrai bisogno di un terminale compatibile con Unicode (non sono sicuro che terminal.app supporti questo, immagino che lo faccia comunque).

Ecco un codice di esempio che stampa una faccina verde per i codici di ritorno di 0 e le facce cipiglio rosse altrimenti.

PS1="\[\e[01;32m\]\u@\h \[\e[01;34m\]\W \`if [ \$? = 0 ]; then echo -e '\[\e[01;32m\]:)'; else echo -e '\[\e[01;31m\]:('; fi\` \[\e[01;34m\]$\[\e[00m\]"

Il merito va a Fingel sui forum Arch (lo ha pubblicato qui ).


Ottimo lavoro sul campione if / then. Sono curioso di come fare la nuova riga, rimuovere il $, effettivamente utilizzare il simbolo Unicode e far sì che mostri il pieno cwd.
Josh Smith,

... e un'ora dopo, ho risposto alla mia domanda (grazie a te!).
Josh Smith,

1
Sono contento di poterti aiutare! Ci sono molte informazioni nel thread al link che ho pubblicato sopra se vuoi approfondire le $PS1cose personalizzate .
jake-low

Sì, metà della mia ricerca è iniziata in quel thread. Super utile. Inoltre, per chiunque desideri approfondire la riga di comando, Peepcode ha un grande screencast avanzato.
Josh Smith,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.