Le code habituel pour vérifier la variable $ PATH echo $ PATH
affiche souvent une ligne longue et encombrante comme:
/anaconda2/bin:/anaconda2/condabin:/usr/local/Cellar/root/6.16.00/bin:~/bin:/usr/local/bin:/usr/bin:/bin:/usr/ sbin: / sbin: / Bibliothèque / TeX / texbin: / opt / X11 / bin
qui a une mauvaise lisibilité. Est-il possible d'imprimer tous les chemins ligne par ligne à la place sur une seule ligne? Comme ceci:
/anaconda2/bin /anaconda2/condabin /usr/local/Cellar/root/6.16.00/bin ~/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /Library/TeX/texbin /opt/X11/bin
4 Réponses :
Essayez ce code:
function printpath() { echo $PATH | sed 's|:|\ |g' }
sed est un éditeur de flux, et ce qu'il fait ici est de rechercher chaque instance du caractère ':' et de le remplacer par un caractère \ newline. 'g' est un indicateur indiquant que la recherche et le remplacement sont globaux (la valeur par défaut est de remplacer une instance par ligne).
Vous pouvez également enrouler le code autour d'une fonction dans le profil bash:
echo $PATH | sed 's|:|\ |g'
donc vous pouvez simplement taper printpath
pour obtenir la sortie souhaitée.
Pour imprimer la ligne variable $ PATH pour la ligne, vous pouvez utiliser une boucle for dans bash. Un exemple qui permet d'y parvenir facilement est.
for EACH in $PATH; do echo $EACH; done;
Il n'imprime pas les chemins dans les nouvelles lignes.
Utilisation de tr
:
echo $PATH | tr : '\n'
Vous pouvez également utiliser l'une des méthodes awk
suivantes:
$ echo $PATH | awk 'BEGIN{RS=":"}1' /usr/local/git/current/bin /usr/local/bin /usr/bin /bin /usr/local/sbin /usr/sbin /sbin /usr/local/go/bin
sortie:
/usr/local/git/current/bin /usr/local/bin /usr/bin /bin /usr/local/sbin /usr/sbin /sbin /usr/local/go/bin