=
の前後に空白は許可されていません
dir="${file%%.*}"
逆に、空白は必須です テスト中。
if [ -e $dir ]; then
^ ^
スタイルの改善に関しては、不必要な mkdir -p
を実行しても害はありません 、だから if
を取り除くことができます
課題では引用符は必要ないため、dir=
から削除できます。 ライン。ただし、引用はどこでも良い考えなので、他の引用を削除しないでください。
.*
を追加すると良いかもしれません for ループに。そうすれば、スクリプトを複数回実行しても、新しく作成されたサブディレクトリを移動しようとしません。 BR*.* W0*.*
を短くすることは (必ずしも改善とは限りませんが) 巧妙なトリックです。 {BR,W0}*.*
まで .
for file in {BR,W0}*.*; do
dir=${file%%.*}
mkdir -p "$dir"
mv "$file" "$dir"
done