Solo una domanda veloce. È possibile eseguire il tab dell'output su Ubuntu 16.04 LTS? Ho creato due immagini qui sotto per cercare di illustrare cosa intendo con questo.
Solo una domanda veloce. È possibile eseguire il tab dell'output su Ubuntu 16.04 LTS? Ho creato due immagini qui sotto per cercare di illustrare cosa intendo con questo.
Risposte:
Potresti fare qualcosa del genere - con i descrittori di file:
salva il descrittore di output corrente in modo da poterlo ripristinare in seguito
exec 3>&1
reindirizzare il flusso di output su una sostituzione di processo che inserisce la scheda, ad esempio
exec 1> >(paste /dev/null -)
Da questo punto, qualsiasi processo che scrive nell'output standard avrà quell'output "filtrato" tramite il paste
comando per inserire le schede all'inizio.
Al termine, è possibile riprendere il normale comportamento ripristinando il descrittore di file salvato e chiudendo quello temporaneo
exec 1>&3 3>&-
less
o strumenti simili per consentire lo scorrimento dell'output, come ad es man
.
Capisco che questa risposta non sia ottimale per te, ma potresti fare una funzione di Bash con il semplice nome _
(o qualsiasi altra cosa che non è ancora stata usata) che esegue il comando che ottiene come argomenti e rientra tutto il suo output con una scheda.
Un esempio:
$ _ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
Il codice di questa funzione sarebbe solo questo:
_(){ sed "s/^/\t/" <($*); }
Puoi aggiungerlo al tuo ~/.bashrc
file in modo che sia disponibile in tutte le sessioni Bash del tuo utente eseguendo:
echo '_(){ sed "s/^/\t/" <($*); }' >> ~/.bashrc
Se vuoi renderlo disponibile a tutti gli utenti, aggiungilo /etc/bash.bashrc
invece (richiede i diritti di amministratore):
echo '_(){ sed "s/^/\t/" <($*); }' | sudo tee -a /etc/bash.bashrc
In alternativa puoi anche creare un file di script simile /usr/local/bin/_
al seguente contenuto per ottenere lo stesso senza le funzioni di Bash e per tutti gli utenti:
#!/bin/bash
sed "s/^/\t/" <($*)
È necessario rendere eseguibile lo script dopo aver salvato il file utilizzando
sudo chmod +x /usr/local/bin/_
Con in echo
particolare, puoi fare in modo che interpreti le escape di barra rovesciata come \t
(un punto di tabulazione ) con l' -e
interruttore:
echo -e "\tHello World"
Ma sarebbe quasi impossibile (o probabilmente possibile) modificare l'output di ogni comando in quel modo. Se la facilità di lettura è il tuo obiettivo, potresti voler esaminare la personalizzazione dell'aspetto (ad esempio la colorazione) del prompt dei comandi, come mostrato qui:
È possibile personalizzare il prompt modificando il contenuto della variabile di ambiente PS1
. Puoi vedere un piccolo esempio di come farlo nel post del blog di cui sopra lo screenshot. Come utilizzare in dettaglio le cosiddette sequenze di escape ANSI, come utilizzare strumenti più comodi, come applicare le modifiche per impostazione predefinita nei nuovi terminali, ecc., Vanno oltre lo scopo di questa risposta. Ma se decidi di utilizzare quella tecnica, ci sono molti tutorial e ulteriori informazioni sul Web.
YOUR COMMAND | indent
o se devi digitare un altro comando davanti ad esso (potrebbe anche essere solo un trattino basso) come_ YOUR COMMAND
?