Saya memiliki skrip shell tempat kami mengikuti baris if [ -z "$xyz" ]
dan if [ -n "$abc" ]
, tetapi saya tidak yakin apa tujuan mereka. Adakah yang bisa menjelaskannya?
Saya memiliki skrip shell tempat kami mengikuti baris if [ -z "$xyz" ]
dan if [ -n "$abc" ]
, tetapi saya tidak yakin apa tujuan mereka. Adakah yang bisa menjelaskannya?
Jawaban:
Anda dapat menemukan referensi yang sangat bagus untuk operator bash di sini . Jika Anda menggunakan shell yang berbeda, cari saja <my shell> operators
dan Anda akan menemukan semua yang Anda butuhkan. Dalam kasus khusus Anda, Anda menggunakan:
-n
string is not null.
-z
string is null, that is, has zero length
Menggambarkan:
$ foo="bar";
$ [ -n "$foo" ] && echo "foo is not null"
foo is not null
$ [ -z "$foo" ] && echo "foo is null"
$ foo="";
$ [ -n "$foo" ] && echo "foo is not null"
$ [ -z "$foo" ] && echo "foo is null"
foo is null
man test
atau man [
akan memberi Anda semua opsi untuk menguji perintah. Dalam kasus ini, -n sedang menguji untuk melihat apakah konten $ abc memiliki panjang non-nol dan -z menguji untuk melihat apakah konten $ xyz adalah string dengan panjang nol.
man test
(selalu?) Memberikan halaman manual untuk versi program eksternal, yang (untuk versi GNU-coreutils setidaknya) secara eksplisit memperingatkan bahwa beberapa (kebanyakan IME) shell memiliki versi bawaan yang mungkin berbeda.