ディレクトリにファイルがあるかどうかをbashにチェックします。 私のコードはこちらです。ファイル名展開の結果をbashでテストする方法は?
for d in {,/usr/local}/etc/bash_completion.d ~/.bash/completion.d
do
[ -d "$d" ] && [ -n "${d}/*" ] &&
for f in $d/*; do
[ -f "$f" ] && echo "$f" && . "$f"
done
done
"〜/ .bash/completion.d"にはファイルがありません。 したがって、$ d/*は単純な文字列 "〜/ .bash/completion.d/*"とみなされ、ファイル名の拡張の結果である空の文字列ではありません。 そのコードの結果として、bashは
. "~/.bash/completion.d/*"
を実行しようとすると、もちろん、それはエラーメッセージを生成します。
誰かが私を助けることができますか?
単純な言葉では、無効なファイル名文字列のファイル名拡張を強制する方法を知りたいです。 – user159087