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 ]
Ungkapan [ -f ]
mengembalikan 0, iaitu, kejayaan jika wujud, dan jika ia tidak wujud ia mengembalikan status bukan sifar. Biasanya, ini digunakan sebagai syarat dalam if
pernyataan.
if [ -f ]
then
fi
Untuk menafikan nilai yang dikembalikan , hanya mendahului -f
dengan operator penolakan ( !
).
if [ ! -f ]
then
fi
Dalam kes ini, syarat 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 keadaan if
pernyataan.
if [ -d ]
then
fi
Untuk menafikan status yang dikembalikan, dahului -d
dengan operator penolakan ( !
).
if [ ! -d ]
then
fi
Keadaan akan memuaskan (status 0) dalam kes ini jika direktori tidak wujud, dan akan gagal (status bukan sifar) jika direktori 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 test
. Pilihan -f
dan -d
merupakan ciri arahan ini. Untuk maklumat lanjut, lihat halaman manual ujian ( man test
).
Semak daripada Skrip Bash
Dalam contoh di atas, kami telah menggunakan sintaks secara langsung pada terminal. Cangkang apabila ia menemui gelung, atau pernyataan bersyarat ( if
dalam kes kami), ia meneruskan gesaan dan membenarkan pengguna memasuki blok teruskan.
Sintaks yang sama boleh digunakan dari dalam skrip Bash.
The #!/bin/bash
at the start menentukan penterjemah yang akan digunakan apabila fail dilaksanakan. Walaupun Bash ialah shell yang paling biasa digunakan pada masa kini, sesetengah pengguna lebih suka shell seperti zsh
, yang harus dinyatakan sebagai ganti bash pada permulaan fail ini.
Untuk memberikan kebenaran laksana untuk fail ini, jalankan:
chmod +x test.sh
Akhir sekali, untuk melaksanakan fail , jalankan:
./test.sh