Cara Menyemak sama ada Fail atau Direktori Wujud dalam Skrip Bash Shell

Menyemak sama ada fail atau direktori wujud daripada skrip Bash

Bash digunakan untuk mengautomasikan arahan yang kerap dilaksanakan dalam Linux. Perintah yang dimaksudkan untuk operasi pada fail/direktori agak kerap digunakan, dan biasanya, sebelum kita melaksanakan arahan sedemikian, kita perlu menyemak sama ada fail atau direktori tertentu wujud. Mari kita lihat cara melakukan pemeriksaan ini.

Sintaks dan Penggunaan

Fail

Untuk menyemak sama ada fail wujud, gunakan sintaks berikut:

[ -f ]

Ekspresi [ -f ] mengembalikan 0, iaitu, kejayaan jika wujud, dan jika ia tidak wujud ia mengembalikan status bukan sifar. Biasanya, ini digunakan sebagai syarat dalam jika kenyataan.

jika [ -f ] maka fi

Untuk menafikan nilai yang dikembalikan, hanya mendahului -f dengan pengendali penafian (!).

jika [ ! -f ] kemudian fi

Dalam kes ini, keadaan akan memuaskan jika fail tidak wujud, kerana status bukan sifar yang dikembalikan (palsu) akan dinafikan dan dianggap sebagai 0 (benar).

Ambil perhatian bahawa jika fail yang akan disemak tidak wujud dalam direktori semasa dan wujud dalam beberapa direktori lain, laluan penuh fail hendaklah disebut dan bukannya nama fail sahaja.

Direktori

Sintaks yang sama seperti yang digunakan untuk menyemak fail digunakan untuk menyemak direktori.

[ -d ]

Sama seperti pernyataan untuk fail, pernyataan ini mengembalikan 0, iaitu, kejayaan, jika direktori wujud, dan bukan sifar, iaitu status kegagalan dikembalikan jika ia tidak wujud. Ini juga biasa digunakan dalam jika syarat pernyataan.

jika [ -d ] maka fi

Untuk menafikan status yang dikembalikan, dahului -d dengan pengendali penafian (!).

jika [ ! -d ] kemudian fi

Keadaan akan memuaskan (status 0) dalam kes ini jika direktori tidak wujud, dan akan gagal (status bukan sifar) jika direktori itu wujud.

Seperti yang dinyatakan sebelum ini untuk fail, jika direktori yang akan disemak wujud di lokasi lain dan bukan direktori semasa, keseluruhan laluan direktori perlu dimasukkan dan bukannya hanya nama direktori.

💡 Sintaks kurungan ( [...] ) yang digunakan di sini sebenarnya adalah arahan Linux yang dipanggil ujian. Pilihan -f dan -d adalah ciri-ciri arahan ini. Untuk maklumat lanjut, lihat halaman manual ujian ( ujian lelaki ).

Semak daripada Skrip Bash

Dalam contoh di atas, kami telah menggunakan sintaks secara langsung pada terminal. Cangkang apabila ia menemui gelung, atau pernyataan bersyarat (jika dalam kes kami), ia meneruskan gesaan dan membenarkan pengguna memasuki blok teruskan.

Sintaks yang sama boleh digunakan dari dalam skrip Bash.

The #!/bin/bash pada permulaan menentukan penterjemah untuk digunakan apabila fail dilaksanakan. Walaupun Bash ialah shell yang paling biasa digunakan pada masa kini, sesetengah pengguna lebih suka shell seperti itu zsh, yang harus dinyatakan sebagai ganti bash pada permulaan fail ini.

Untuk memberi kebenaran laksana untuk fail ini, jalankan:

chmod +x test.sh

Akhirnya, untuk melaksanakan fail, jalankan:

./test.sh