Dav*_*ice 1 bash directory path string
好的,所以我得到了这个:
check="${PATH//:/'\n'}"
Run Code Online (Sandbox Code Playgroud)
以上以简化的方式为我提供了每条路径,并将其很好地格式化为一个变量。现在我如何检查每一行是否存在,并将每一行与回声结合起来(我想我会使用回声。)?
我知道它可能涉及 for 或 while 循环,但我不确定如何执行此操作。
BASH只回答请。
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 中删除尾随(如果有)。其次,添加一个冒号。