如何检查有效的 $PATH 目录,并输出它们告诉每个目录是否有效?

Dav*_*ice 1 bash directory path string

好的,所以我得到了这个:

check="${PATH//:/'\n'}"
Run Code Online (Sandbox Code Playgroud)

以上以简化的方式为我提供了每条路径,并将其很好地格式化为一个变量。现在我如何检查每一行是否存在,并将每一行与回声结合起来(我想我会使用回声。)?

我知道它可能涉及 for 或 while 循环,但我不确定如何执行此操作。

BASH只回答请。

Joh*_*024 6

while read -d: dir
do
    [ -d "$dir" ] || echo "Missing: $dir"
done <<<"${PATH%:}:"
Run Code Online (Sandbox Code Playgroud)

read -d: dir将输入读入变量dir,在 处中断输入:

[ -d "$dir" ] 测试目录是否存在

|| 如果前面的语句返回 false,则仅执行后面的语句。

<<<"${PATH%:}:"使用here-string为循环提供输入。该表单"${PATH%:}:"确保:遵循 PATH 字符串。这是分两步完成的。第一个使用后缀删除, ${PATH%:}:从 PATH 中删除尾随(如果有)。其次,添加一个冒号。