Fokus panduan ini adalah untuk membincangkan keberadaan fail dalam sistem anda melalui skrip bash:
Cara memeriksa keberadaan fail menggunakan skrip bash:
1) Dengan memasukkan nama fail di terminal:
Pertama, kita perlu membuat fail skrip bash, menggunakan arahan yang disebutkan di bawah:
$sentuhantestfile.sh
Nama fail yang saya buat adalah testfile.sh, sambungan .sh menunjukkan fail skrip shell:
Buka testfile.sh di mana-mana penyunting teks. Kemudian tulis skrip, simpan dengan menekan save.
Salah satu cara adalah mencari fail dengan meminta nama fail dari pengguna di terminal.
Gunakan -f untuk memeriksa kewujudan fail.
Tulis skrip di bawah:
#! / bin / bashmembuang 'Masukkan nama fail anda'
membacafail baru1
sekiranya [ -f '$ newfile1' ]
kemudian
membuang 'Fail dijumpai'
yang lain
membuang 'Fail tidak dijumpai'
menjadi
Kembali ke terminal dan jalankan fail untuk mencetak output:
./nama fail.shMesej ditolak kebenaran akan dipaparkan di terminal.
Jadikannya dapat dilaksanakan dengan melaksanakan perintah yang disebutkan di bawah:
$chmod+ x testfile.sh
Masukkan nama fail, dan ia akan mencetak output:
2) Dengan memasukkan nama fail semasa menulis skrip:
Cara lain untuk mencari fail dengan memberikan nama fail semasa menulis skrip. Kami mempunyai tiga cara untuk memeriksa ketersediaan fail. Yang pertama menggunakan perintah ujian, yang kedua menggunakan jika dengan ekspresi dalam tanda kurung siku, dan yang ketiga juga dengan tanda kurung siku dua tetapi jika seperti yang ditunjukkan di bawah:
- ujian EKSPRESI.
- jika [EKSPRESI]
- jika [[EKSPRESI]]
Mari kita fahami dengan contoh:
1) ujian [Ekspresi]
Salin skrip yang diberikan dan tempelkan ke editor, simpan:
nama fail= fail1
sekiranya ujian -f '$ nama fail';
kemudian
membuang 'fail $telah jumpa.'
yang lain
membuang 'fail $belum dijumpai '
menjadi
Pengeluaran:
Oleh kerana tidak ada fail seperti itu di dalam direktori saya, oleh itu kod memaparkan mesej Fail tidak dijumpai.
2) jika [Ungkapan]
Salin skrip berikut untuk memeriksa apakah ada fail atau tidak:
#! / bin / bashnama fail= myfile.txt
sekiranya [ -f '$ nama fail' ];
kemudian
membuang '$ nama failtelah jumpa.'
yang lain
membuang 'nama fail belum dijumpai'
menjadi
Pengeluaran:
3) jika [[Ekspresi]]
Salin skrip yang ditulis di bawah dan tampal di terminal:
#! / bin / bashnama fail= fail ujian
sekiranya [[ -f '$ nama fail' ]];
kemudian
membuang '$ nama failtelah jumpa.'
yang lain
membuang '$ nama failbelum dijumpai '
menjadi
Pengeluaran:
Untuk memeriksa direktori:
3) Dengan memasukkan nama direktori semasa menulis skrip
Menggunakan -d bendera untuk memeriksa kewujudan direktori.
Dalam skrip yang disebutkan di bawah, dir11 adalah pemboleh ubah di mana anda menyimpan fail yang anda cari; dalam contoh ini, saya ingin memeriksa nama direktori testDir ada atau tidak.
#! / bin / bashdir11= ujianDir
sekiranya [ -d '$ dir11' ]
kemudian
membuang 'Direktori telah dijumpai'
yang lain
membuang 'Direktori belum dijumpai'
menjadi
Pengeluaran:
2) Dengan memasukkan nama fail di terminal:
Semasa anda menjalankan perintah di terminal untuk memeriksa apakah direktori ada atau tidak, anda diminta memasukkan nama direktori yang anda cari:
membuang 'taipkan nama direktori anda.'
membacaDir1
sekiranya [ -d 'Dir1' ]
kemudian
membuang 'direktori telah dijumpai'
yang lain
membuang 'direktori belum dijumpai'
menjadi
Pengeluaran:
Memeriksa fail tanpa menggunakan pernyataan if:
Perintah ujian boleh dilaksanakan tanpa pernyataan if. Ia hanya akan memaparkan output jika fail itu ada; jika tidak, tidak akan ada output:
Tulis skrip:
- ujian -fmyfile.txt&& membuang 'fail telah dijumpai'
- [ -fmyfile.txt] && membuang 'fail $telah dijumpai.'
- [[ -fmyfile.txt]] && membuang 'fail $telah dijumpai.'
Pengeluaran:
Memeriksa direktori tanpa menggunakan pernyataan if:
Gunakan pernyataan yang disebutkan di bawah ini untuk memeriksa direktori yang ada atau tidak:
- [[ -dujianDir]] && membuang 'direktori memang ada'
- 2) [ -dujianDir] && membuang 'direktori memang ada'
Pengeluaran:
Memeriksa banyak fail / Direktori:
1) Memeriksa beberapa fail dengan pernyataan jika:
Gunakan bendera -a untuk memeriksa keberadaan pelbagai fail dan bukannya menggunakan pernyataan bersarang jika / lain:
sekiranya [ -fnew_file.txt-kepada -fnewfile.txt];kemudian
membuang 'Kedua-dua fail ada.'
menjadi
Cara lain ialah:
#! / bin / bashsekiranya [[ -fnew_file.txt&& -fnewfile.txt]];kemudian
membuang 'Kedua-dua fail ada.'
menjadi
Pengeluaran:
2) Memeriksa banyak fail tanpa menggunakan pernyataan if:
Gunakan pernyataan berikut untuk memeriksa banyak fail secara serentak 1 tanpa menggunakan jika:
- [[ -fnew_file.txt&& -fnewfile.txt]] && membuangKedua-dua fail keluar.
- [[ -fnew_file.txt&& -fnewfile.txt]] && membuangKedua-dua fail keluar.
Pengeluaran:
Kesimpulan:
Artikel ini telah menunjukkan cara menggunakan skrip bash untuk memeriksa file atau direktori. Kami menggunakan pelbagai pilihan untuk memeriksa ketersediaan fail. Pertama, kami menggunakan arahan ujian dengan bendera yang berbeza. Kemudian kami mengetahui penggunaan if, bersarang if-else, dan tanpa pernyataan if untuk memeriksa fail atau direktori. Kami juga melihat bagaimana memeriksa banyak fail atau direktori.