Juste une petite question. Est-il possible de tabuler la sortie sur Ubuntu 16.04 LTS? J'ai créé deux images ci-dessous pour essayer d'illustrer ce que je veux dire par là.
Juste une petite question. Est-il possible de tabuler la sortie sur Ubuntu 16.04 LTS? J'ai créé deux images ci-dessous pour essayer d'illustrer ce que je veux dire par là.
Réponses:
Vous pourriez faire quelque chose comme ça - avec des descripteurs de fichiers:
enregistrer le descripteur de sortie actuel afin que nous puissions le restaurer plus tard
exec 3>&1
rediriger le flux de sortie vers une substitution de processus qui insère l'onglet - par exemple
exec 1> >(paste /dev/null -)
À partir de ce point, tout processus qui écrit sur la sortie standard verra cette sortie «filtrée» via la paste
commande pour insérer des onglets au début.
Lorsque vous avez terminé, vous pouvez reprendre un comportement normal en restaurant le descripteur de fichier enregistré et en fermant le descripteur temporaire
exec 1>&3 3>&-
less
ou des outils similaires pour permettre le défilement de la sortie, comme par exemple man
.
Je comprends que cette réponse n'est pas optimale pour vous, mais vous pouvez créer une fonction Bash avec le nom simple _
(ou toute autre chose qui n'est pas encore utilisée) qui exécute la commande qu'elle obtient en tant qu'arguments et met en retrait toute sa sortie avec un onglet.
Un exemple:
$ _ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
Le code de cette fonction ne serait que ceci:
_(){ sed "s/^/\t/" <($*); }
Vous pouvez l'ajouter à votre ~/.bashrc
fichier afin qu'il soit disponible dans toutes les sessions Bash de votre utilisateur en exécutant:
echo '_(){ sed "s/^/\t/" <($*); }' >> ~/.bashrc
Si vous souhaitez le rendre disponible à tous les utilisateurs, ajoutez-le à la /etc/bash.bashrc
place (nécessite des droits d'administrateur):
echo '_(){ sed "s/^/\t/" <($*); }' | sudo tee -a /etc/bash.bashrc
Alternativement, vous pouvez également créer un fichier de script /usr/local/bin/_
avec le contenu suivant pour obtenir le même sans fonctions Bash et pour tous les utilisateurs:
#!/bin/bash
sed "s/^/\t/" <($*)
Vous devez rendre le script exécutable après avoir enregistré le fichier à l'aide de
sudo chmod +x /usr/local/bin/_
Avec echo
spécifiquement, vous pouvez lui faire interpréter les échappements antislash comme \t
(un taquet de tabulation ) avec le -e
commutateur:
echo -e "\tHello World"
Mais il ne serait guère possible (ou probablement possible) de modifier la sortie de chaque commande de cette façon. Si la facilité de lecture est votre objectif, vous pouvez envisager de personnaliser l'apparence (par exemple la coloration) de votre invite de commande, comme illustré ici:
Vous pouvez personnaliser votre invite en modifiant le contenu de la variable d'environnement PS1
. Vous pouvez voir un petit exemple de la façon de le faire dans le billet de blog de la capture d'écran ci-dessus. Comment utiliser en détail ces soi-disant séquences d'échappement ANSI, comment utiliser des outils plus confortables, comment appliquer les modifications par défaut dans de nouveaux terminaux, etc., dépassent le cadre de cette réponse. Mais si vous décidez d'utiliser cette technique, il existe de nombreux didacticiels et d'autres informations sur le Web.
YOUR COMMAND | indent
ou si vous devez taper une autre commande devant elle (pourrait même être seulement un trait de soulignement) comme_ YOUR COMMAND
?