Saya setuju dengan jawaban lain mengenai cara yang benar untuk mengulang melalui file. Namun OP bertanya:
Kode diatas tidak berfungsi, tahukah anda kenapa?
Iya!
Artikel yang sangat baik Apa perbedaan antara test, [dan [[?] Menjelaskan secara rinci bahwa di antara perbedaan lainnya, Anda tidak dapat menggunakan expression matching
atau pattern matching
dalam test
perintah (yang merupakan singkatan dari [
)
Menampilkan pengujian baru [[pengujian lama [Contoh
Pencocokan pola = (atau ==) (tidak tersedia) [[$ name = a *]] || echo "nama tidak dimulai dengan 'a': $ name"
Ekspresi Reguler = ~ (tidak tersedia) [[$ (tanggal) = ~ ^ Jum \ ... \ 13]] && echo "Ini hari Jumat tanggal 13!"
sesuai
Jadi inilah alasan skrip Anda gagal. Jika OP tertarik dengan jawaban dengan [[
sintaks (yang memiliki kelemahan karena tidak didukung pada banyak platform seperti [
perintah), saya akan dengan senang hati mengedit jawaban saya untuk memasukkannya.
EDIT: Protips apa pun tentang cara memformat data dalam jawaban sebagai tabel akan sangat membantu!
for i in $(ls *.java); do echo "do something with file $i"; done
?