有効な$PATHディレクトリを確認して出力して、各ディレクトリが有効であることをどのように確認しますか?

有効な$PATHディレクトリを確認して出力して、各ディレクトリが有効であることをどのように確認しますか?

わかりました。次の情報を入手しました。

check="${PATH//:/'\n'}"

上記は、各パスを単純化された方法で取り、それを変数としてきれいにフォーマットします。では、各行が存在することを確認し、echoと組み合わせて各行を宣言するかどうかを確認します(echoを使用するようです)。

おそらくforまたはwhileループが関連していることを知っていますが、どうすればよいかわかりません。

強く打つ答えだけをしてください。

ベストアンサー1

while read -d: dir
do
    [ -d "$dir" ] || echo "Missing: $dir"
done <<<"${PATH%:}:"

read -d: dir入力を変数として読み、dirその時点の入力を削除します:

[ -d "$dir" ]ディレクトリが存在するかテスト

||次の文は、前の文がfalseを返した場合にのみ実行されます。

<<<"${PATH%:}:"以下を使用してループに入力を提供します。ここにある文字列。この形式を"${PATH%:}:"使用すると、:PATH文字列に従います。これは2段階で行われる。初めて使用サフィックスの削除、、、は${PATH%:}PATHから末尾(:ある場合)を削除します。第二に、コロンを追加します。

おすすめ記事