Bash

如何檢查有效的 $PATH 目錄,並輸出它們告訴每個目錄是否有效?

  • November 19, 2015

好的,我得到了這個:

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

以上以簡化的方式為我提供了每條路徑,並將其很好地格式化為變數。現在我如何檢查每一行是否存在,並結合 echo 聲明每一行(我想我會使用 echo。)?

我知道它可能涉及 for 或 while 循環,但我不確定如何執行此操作。

BASH請只回答。

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

read -d: dir將輸入讀入變數dir,在:.

[ -d "$dir" ]測試目錄是否存在

||僅目前面的語句返回 false 時才執行後面的語句。

<<<"${PATH%:}:"使用here-string向循環提供輸入。該表單"${PATH%:}:"確保:遵循 PATH 字元串。這分兩步完成。第一個使用後綴刪除, ${PATH%:}, 從 PATH 中刪除尾隨:(如果有的話)。其次,添加一個冒號。

引用自:https://unix.stackexchange.com/questions/243762