Показать PATH в удобном для восприятия человеком способом

Я хочу показать свою переменную среды 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 ... 

  • CentOS не запускается после изменения среды
  • экспортировать PATH только один раз для входа в zsh
  • Переменные среды не попадают в bash_profile
  • Где можно установить глобальные параметры Java?
  • Могу ли я использовать переменные среды, если #including другой файл Xresources
  • Как добавить путь к системе $ PATH для оболочки всех пользователей, не входящей в систему для debian
  • Изменение переменных группы и сохранения окружающей среды
  • Как запустить скрипт, как если бы он запускался при загрузке?
  • 3 Solutions collect form web for “Показать PATH в удобном для восприятия человеком способом”

    Вы можете использовать tr .

     $ tr ':' '\n' <<< "$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 ... 

    Вы также можете сделать это в некоторых оболочках (проверенных в bash и zsh):

     echo -e ${PATH//:/\\n} 

    В zsh вы можете использовать переменную $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 

    Которые могут быть объединены с printf или print .

     $ printf "%s\n" $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 ... $ print -l $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 ... 

    Операторы <<< называются herestrings. Herestrings передает слово справа от стандартного ввода команды слева.

     $ cat <<< 'Hello there' Hello there 

    Если ваша оболочка не поддерживает их, используйте echo и канал.

     $ echo 'Hello there' | cat Hello there 

    Вот быстрый способ с bash

     OLDIFS=$IFS IFS=: arr=($PATH) IFS=$OLDIFS printf "%s\n" "${arr[@]}" 

    Обратите внимание, что непонятная PATH имеет другое значение из пустой PATH. Пустой PATH содержит один пустой элемент, и это означает поиск исполняемых файлов только в текущем каталоге. Неиспользуемый PATH означает поиск исполняемых файлов в списке каталогов по умолчанию (но обратите внимание, что в некоторых системах не каждый инструмент соглашается с содержанием этот список)

    В zsh :

     if (($+PATH)); then echo "$#path element(s):" printf '%q\n' "$path[@]" else echo "PATH unset" fi 

    В оболочках POSIX (обратите внимание, что zsh даже в режиме sh не является POSIX в этом отношении):

     if [ -n "${PATH+.}" ]; then ( p=$PATH: set -f IFS=: set -- $p echo "$# element(s):" printf '"%s"\n' "$@" ) else echo "PATH unset" fi 
    Linux и Unix - лучшая ОС в мире.