에 나열된 모든 디렉토리를 표시하는 방법은 무엇입니까 $PATH
?
답변1
printf '%s' "$PATH" | tr ':' '\n'
이 tr
명령을 사용하는 이유는힌트내부에질문의 원래 버전그것을 사용하는 것이 좋습니다.
답변2
가정(또한 bash
쉘 변수의 값을 사용하거나 표시하는 방법을 알고 있다고 가정)echo
printf
printf "${PATH//:/\\n}"
이는 쉘 내의 매개변수 확장을 활용합니다. 확장 자체는 ${parameter/pattern/string}
매개변수 PATH
, /:
패턴 및 \\n
(대체) 문자열입니다. 패턴의 선행 지시문은 /
모든 inside 항목을 대체해야 합니다.:
PATH
답변3
내용을 나열하려는 경우 POSIX 셸에서 다음을 수행할 수 있습니다.
(IFS=:; set -o noglob; ls -Hl -- $PATH)
$PATH
(현재 디렉터리에 대해) 빈 구성 요소가 없다고 가정합니다 .
쉘을 사용하면 fish
다음과 같습니다.
ls -Hl -- $PATH
( 환경 변수를 빈 구성 요소가 다음으로 변경된 쉘 배열 변수로 fish
변환합니다 .)PATH
.
그리고 (t)csh
:
ls -Hl -- $path:q
( $PATH
예매핑된$path
거기의 배열 로 변환하고 빈 문자열을 .
)로 변환합니다.
in zsh
에서도 $PATH
배열로 매핑되지만 빈 구성 요소는 변경되지 않으므로 다음과 같은 것이 필요합니다.$path
.
ls -Hl -- "${path[@]/#%/.}"
수동으로 변환하세요.
원하는 것이 해당 디렉토리의 내용을 나열하는 대신 한 줄에 이러한 경로를 출력하는 ls -Hl --
것이라면 printf '%s\n'
.
답변4
여기있어:
echo $PATH | sed 's/:/\n/g'
편집 : 내용을 표시하려면
ls `echo $PATH | sed 's/:/\n/g'`