Um =
sind keine Leerzeichen erlaubt in einer Aufgabe.
dir="${file%%.*}"
Umgekehrt sind Leerzeichen erforderlich im Test.
if [ -e $dir ]; then
^ ^
Was stilistische Verbesserungen betrifft, schadet es nicht, unnötige mkdir -p
zu machen , damit Sie die if
loswerden können Aussage.
Anführungszeichen sind in einer Aufgabe nicht erforderlich, daher können Sie sie aus dir=
entfernen Linie. Zitieren ist jedoch überall sonst eine gute Idee, also löschen Sie nicht die anderen Anführungszeichen.
Es könnte gut sein, ein zusätzliches .*
hinzuzufügen zur for-Schleife. Wenn Sie das Skript mehr als einmal ausführen, versucht es auf diese Weise nicht, diese neu erstellten Unterverzeichnisse zu verschieben. Und ein netter Trick (wenn auch nicht unbedingt eine Verbesserung) besteht darin, BR*.* W0*.*
zu kürzen bis {BR,W0}*.*
.
for file in {BR,W0}*.*; do
dir=${file%%.*}
mkdir -p "$dir"
mv "$file" "$dir"
done