にリストされているすべてのディレクトリを表示するには$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
そこの配列に変換し、空の文字列を.
)に変換します。
inzsh
でも配列に$PATH
マップされますが、空のコンポーネントは変更されませんので、次のようなものが必要です。$path
.
ls -Hl -- "${path[@]/#%/.}"
手動で変換してください。
必要なのは、そのディレクトリの内容をリストするのではなく、1行にこれらのパスを出力することls -Hl --
ですprintf '%s\n'
。
答え4
ここにいる:
echo $PATH | sed 's/:/\n/g'
編集:コンテンツを表示するには
ls `echo $PATH | sed 's/:/\n/g'`