Cara Menggunakan Ketentuan Uji dalam Skrip Bash

Perintah tes dapat digunakan pada baris perintah Linux untuk membandingkan satu elemen dengan yang lain tetapi lebih sering digunakan dalam skrip shell BASH sebagai bagian dari pernyataan kondisional yang mengontrol logika dan aliran program.

Contoh Dasar

Anda dapat mencoba perintah ini hanya dengan membuka jendela terminal .

uji 1 -eq 2 && echo "ya" || gema "tidak"

Perintah di atas dapat diuraikan sebagai berikut:

Intinya, perintahnya adalah membandingkan 1 hingga 2 dan mereka cocok dengan pernyataan echo "ya" yang dieksekusi yang menampilkan "ya" dan jika mereka tidak cocok dengan pernyataan echo "tidak" dijalankan yang menampilkan "tidak".

Membandingkan Angka

Jika Anda membandingkan elemen yang menguraikan sebagai angka, Anda dapat menggunakan operator perbandingan berikut:

Contoh:

uji 1 -eq 2 && echo "ya" || gema "tidak"

(menampilkan "tidak" ke layar karena 1 tidak sama dengan 2)

uji 1 -ge 2 && echo "ya" || gema "tidak"

(menampilkan "tidak" ke layar karena 1 tidak lebih besar atau sama dengan 2)

uji 1-gt 2 && echo "ya" || gema "tidak"

(menampilkan "tidak" ke layar karena 1 tidak lebih besar dari 2)

uji 1 -le 2 && echo "ya" || gema "tidak"

(menampilkan "ya" ke layar karena 1 kurang dari atau sama dengan 2)

uji 1 -lt 2 && echo "ya" || gema "tidak"

(menampilkan "ya" ke layar karena 1 kurang dari atau sama dengan 2)

uji 1 -ne 2 && echo "ya" || gema "tidak"

(menampilkan "ya" ke layar karena 1 tidak sama dengan 2)

Membandingkan Teks

Jika Anda membandingkan elemen yang mengurai string, Anda dapat menggunakan operator perbandingan berikut:

Contoh:

uji "string1" = "string2" && echo "ya" || gema "tidak"

(menampilkan "tidak" ke layar karena "string1" tidak sama dengan "string2")

uji "string1"! = "string2" && echo "ya" || gema "tidak"

(menampilkan "ya" ke layar karena "string1" tidak sama dengan "string2")

uji-n "string1" && echo "ya" || gema "tidak"

(menampilkan "ya" ke layar karena "string1" memiliki panjang string lebih besar dari nol)

uji -z "string1" && echo "ya" || gema "tidak"

(menampilkan "tidak" ke layar karena "string1" memiliki panjang string lebih besar dari nol)

Membandingkan File

Jika Anda membandingkan file, Anda dapat menggunakan operator perbandingan berikut:

Contoh:

test / path / to / file1 -n / path / ke / file2 && echo "yes"

(Jika file1 lebih baru dari file2 maka kata "ya" akan ditampilkan)

uji -e / path / ke / file1 && echo "ya"

(jika file1 ada kata "ya" akan ditampilkan)

uji -O / path / ke / file1 && echo "ya"

(jika Anda memiliki file1 maka kata "ya" ditampilkan ")

Terminologi

Membandingkan Beberapa Kondisi

Sejauh ini semuanya telah membandingkan satu hal dengan yang lain tetapi bagaimana jika Anda ingin membandingkan dua kondisi.

Sebagai contoh, jika seekor binatang memiliki 4 kaki dan pergi "moo" itu mungkin seekor sapi. Cukup memeriksa 4 kaki tidak menjamin bahwa Anda memiliki sapi tetapi memeriksa suara itu pasti membuatnya.

Untuk menguji kedua kondisi sekaligus gunakan pernyataan berikut:

uji 4 -eq 4 -a "moo" = "moo" && echo "itu sapi" || echo "itu bukan sapi"

Bagian kunci di sini adalah -a yang merupakan singkatan dan.

Ada cara yang lebih baik dan lebih umum digunakan untuk melakukan tes yang sama dan itu adalah sebagai berikut:

test 4 -eq 4 && test "moo" = "moo" && echo "itu sapi" || echo "itu bukan sapi"

Tes lain yang mungkin ingin Anda lakukan adalah membandingkan dua pernyataan dan jika salah satu output benar adalah string. Misalnya, jika Anda ingin memeriksa bahwa file bernama "file1.txt" ada atau file bernama "file1.doc" ada Anda dapat menggunakan perintah berikut

test -e file1.txt -o -e file1.doc && echo "file1 exist" || echo "file1 tidak ada"

Bagian kunci di sini adalah -o yang mewakili atau.

Ada cara yang lebih baik dan lebih umum digunakan untuk melakukan tes yang sama dan itu adalah sebagai berikut:

uji -e file1.txt || test -e file1.doc && echo "file1 exist" || echo "file1 tidak ada"

Menghilangkan Kata Kunci Uji

Anda sebenarnya tidak perlu menggunakan tes kata untuk melakukan perbandingan. Yang harus Anda lakukan adalah melampirkan pernyataan dalam tanda kurung siku sebagai berikut:

[-e file1.txt] && echo "file1 ada" || echo "file1 tidak ada"

[Dan] pada dasarnya berarti sama dengan tes.

Sekarang Anda tahu ini Anda dapat meningkatkan membandingkan beberapa kondisi sebagai berikut:

[4 -eq 4] && ["moo" = "moo"] && echo "itu sapi" || echo "itu bukan sapi"

[-e file1.txt] || [-e file1.doc] && echo "file1 ada" || echo "file1 tidak ada"

Ringkasan

Perintah tes lebih berguna dalam skrip karena Anda dapat menguji nilai satu variabel terhadap yang lain dan mengontrol aliran program. Pada baris perintah standar, Anda dapat menggunakannya untuk menguji apakah file ada atau