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
...
답변1
당신은 그것을 사용할 수 있습니다 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
...
여기서는 이러한 <<<
연산자를 문자열이라고 합니다. 여기서 문자열은 오른쪽에 있는 단어를 왼쪽에 있는 명령의 표준 입력으로 전달합니다.
$ cat <<< 'Hello there'
Hello there
쉘이 이를 지원하지 않으면 echo
파이프를 사용하십시오.
$ echo 'Hello there' | cat
Hello there
답변2
이것은 빠른 방법입니다bash
OLDIFS=$IFS IFS=: arr=($PATH) IFS=$OLDIFS
printf "%s\n" "${arr[@]}"
답변3
확장됨스미스 존스의해결책은 다음과 같은 멋진 별칭을 제공합니다 .bash_profile
.
alias MyPath='echo -e ${PATH//:/\\n}'
답변4
sed
파이프를 사용하는 것이 더 직관적 이라고 생각합니다 .
$ echo $PATH | sed 's/:/\n/g'
:
요소를 구분하는 문자를 개행 문자( )로 대체하여 각 요소를 별도의 줄에 표시합니다.$PATH
\n
또는 원하는 경우 tr
(저는 종종 그렇게 합니다) 동일한 목표를 달성할 수 있습니다.
$ echo $PATH | tr ':' '\n'