Показать 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 ... 

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 
  • Установка длинной переменной среды ломает много команд
  • Установите переменную среды (TZ) для всех сценариев запуска и inittab
  • Могу ли я использовать переменные среды, если #including другой файл Xresources
  • Как запустить скрипт, как если бы он запускался при загрузке?
  • Как установить PATH для пользователей в марионетке?
  • Как добавить путь к системе $ PATH для оболочки всех пользователей без входа и оболочки входа в debian
  • Где можно установить глобальные параметры Java?
  • Переменные среды не попадают в bash_profile
  • Как добавить путь к системе $ PATH для оболочки всех пользователей, не входящей в систему для debian
  • CentOS не запускается после изменения среды
  • Linux и Unix - лучшая ОС в мире.