사람이 읽을 수 있는 형식으로 PATH 표시

사람이 읽을 수 있는 형식으로 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
...

답변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'

관련 정보