Tidak ada spasi kosong yang diperbolehkan di sekitar =
dalam tugas.
dir="${file%%.*}"
Sebaliknya, spasi putih diperlukan dalam ujian.
if [ -e $dir ]; then
^ ^
Sejauh peningkatan gaya, tidak ada salahnya untuk melakukan mkdir -p
yang tidak perlu , sehingga Anda dapat membuang if
pernyataan.
Kutipan tidak diperlukan dalam tugas, jadi Anda dapat menghapusnya dari dir=
garis. Mengutip adalah ide bagus di tempat lain, jadi jangan hapus kutipan lainnya.
Mungkin bagus untuk menambahkan .*
tambahan ke loop for. Dengan begitu, jika Anda menjalankan skrip lebih dari sekali, skrip tidak akan mencoba memindahkan subdirektori yang baru dibuat tersebut. Dan trik yang rapi (walaupun belum tentu perbaikan) adalah mempersingkat BR*.* W0*.*
ke {BR,W0}*.*
.
for file in {BR,W0}*.*; do
dir=${file%%.*}
mkdir -p "$dir"
mv "$file" "$dir"
done
Konsep 'Hold space' dan 'Pattern space' di sed
Mengapa kernel dipetakan ke ruang alamat yang sama dengan proses?