Я хочу показать мою переменную окружения PATH более понятным для человека способом.
$ echo $PATH
/Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin:/Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/bin:/usr/local/git/bin:/Users/arturo/.gvm/groovy/current/bin:/Users/arturo/.gvm/grails/current/bin:/Users/arturo/.gvm/griffon/current/bin:/Users/arturo/.gvm/gradle/current/bin:/Users/arturo/.gvm/lazybones/current/bin:/Users/arturo/.gvm/vertx/current/bin:/Users/arturo/.gvm/bin:/Users/arturo/.gvm/ext:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin
Я думаю примерно так:
$ echo $PATH | some cut and awk magic
/Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin
/Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin
/Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin
/Users/arturo/.rvm/bin
...
shell
environment-variables
path
Артуро Эрреро
источник
источник
Ответы:
Вы можете использовать
tr
.Вы также можете сделать это в некоторых оболочках (протестировано в bash и zsh):
В zsh вы можете использовать
$path
переменную, чтобы увидеть путь с пробелами вместо двоеточий.Который может быть объединен с
printf
илиprint
.Эти
<<<
операторы называются herestrings. Herestrings передают слово справа от стандартного ввода команды слева.Если ваша оболочка не поддерживает их, используйте
echo
и трубу.источник
echo $PATH | tr ':' '\n'
но более понятно ваше решение.print -l $path
сохраняет несколько нажатий клавиш. Он не работает, если$path
содержит обратную косую черту, но это весьма необычно.$PATH
.Вот быстрый способ
bash
источник
IFS
, используя подоболочку. например(IFS=: arr=($PATH); printf "%s\n" "${arr[@]})")
/bin:/usr/bin:
раньше она использовалась как общее значение$PATH
)$PATH
содержит некоторые символы подстановки (маловероятно)bash
любом случае, вы можете использоватьIFS=: read -a arr <<< "$PATH"
для разделения части. Таким образомIFS
, новое значение будет использоваться только во время выполненияread
, поэтому нет необходимости его восстанавливать. pastebin.com/7E7C4AcRIFS
новое значение сохраняется после создания массива, а не после выполненияread
?Расширение на решение Смита Джона , это делает хороший псевдоним в вашем
.bash_profile
:источник
Обратите внимание, что неустановленный PATH имеет значение, отличное от пустого PATH. Пустая переменная PATH содержит один пустой элемент, а это означает, что поиск исполняемых файлов возможен только в текущем каталоге, а неустановленная переменная PATH означает поиск исполняемых файлов в списке каталогов по умолчанию (но следует отметить, что в некоторых системах не все инструменты соглашаются с содержанием этот список)
В
zsh
:В оболочках POSIX (обратите внимание, что
zsh
даже вsh
режиме не POSIX в этом отношении):источник