Kolem =
nejsou povoleny žádné mezery v úkolu.
dir="${file%%.*}"
Naopak mezery jsou povinné v testu.
if [ -e $dir ]; then
^ ^
Co se týče stylistických vylepšení, neuškodí udělat zbytečnou mkdir -p
, takže se můžete zbavit if
prohlášení.
Uvozovky nejsou v úkolu povinné, takže je můžete odstranit z dir=
čára. Citace je však dobrý nápad všude jinde, takže ostatní uvozovky nemažte.
Možná by bylo dobré přidat navíc .*
do smyčky for. Pokud tedy skript spustíte více než jednou, nebude se snažit přesunout nově vytvořené podadresáře. A úhledným trikem (i když ne nutně zlepšením) je zkrátit BR*.* W0*.*
na {BR,W0}*.*
.
for file in {BR,W0}*.*; do
dir=${file%%.*}
mkdir -p "$dir"
mv "$file" "$dir"
done
Koncept 'Hold space' a 'Pattern space' v sed
Proč je jádro mapováno do stejného adresního prostoru jako procesy?