Skip to main content

Cara Menggunakan Ketentuan Uji dalam Skrip Bash

Input Data Kuisioner (Februari 2025)

Input Data Kuisioner (Februari 2025)
Anonim

Perintah tes dapat digunakan pada baris perintah Linux untuk membandingkan satu elemen dengan yang lain, tetapi ini lebih umum 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:

  • tes - Ini berarti Anda akan melakukan perbandingan
  • 1 - Elemen pertama yang akan Anda bandingkan
  • -eq - Bagaimana Anda membandingkan. Dalam hal ini, Anda menguji apakah satu nomor sama dengan yang lain.
  • 2 - Elemen yang Anda bandingkan elemen pertama melawan
  • && - Jalankan pernyataan berikut jika hasilnya benar
  • echo "yes" - Perintah untuk dijalankan jika perbandingan mengembalikan nilai true
  • || - Jalankan pernyataan berikut jika hasilnya salah
  • echo "no" - Perintah untuk dijalankan jika perbandingan mengembalikan false

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

Membandingkan Angka

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

  • -eq - apakah nilai 1 bernilai sama 2
  • -ge - adalah nilai 1 lebih besar atau sama dengan nilai 2
  • -gt - adalah nilai 1 lebih besar dari nilai 2
  • -le - adalah nilai 1 kurang dari atau sama dengan nilai 2
  • -lt - adalah nilai 1 kurang dari nilai 2
  • -ne - apakah nilai 1 tidak sama dengan nilai 2

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:

  • = - melakukan string 1 string pertandingan 2
  • ! = - adalah string 1 berbeda dengan string 2
  • -n - adalah panjang string lebih besar dari 0
  • -z - adalah panjang string 0

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:

  • -ef - Apakah file memiliki nomor perangkat dan inode yang sama (apakah itu file yang sama)
  • -nt - Apakah file pertama lebih baru daripada file kedua
  • -ot - Apakah file pertama lebih tua dari file kedua
  • -b - File ada dan merupakan blok khusus
  • -c - File ada dan bersifat khusus
  • -d - File ada dan merupakan direktori
  • -e - File itu ada
  • -f - File ada dan merupakan file biasa
  • -g - File ada dan memiliki nomor grup yang ditentukan
  • -G - File ada dan pemilik oleh grup pengguna
  • -h - File ada dan merupakan tautan simbolis
  • -k - File ada dan memiliki bit set yang lengket
  • -L - Sama dengan -h
  • -O - ​​File itu ada Anda adalah pemiliknya
  • -p - File ada dan merupakan pipa bernama
  • -r - File ada dan dapat dibaca
  • -s - File ada dan memiliki ukuran lebih besar dari nol
  • -S - File ada dan merupakan soket
  • -t - File descriptor dibuka di terminal
  • -u - File ada dan set-user-id bit diatur
  • -w - File ada dan dapat ditulis
  • -x - File ada dan dapat dieksekusi

Contoh

test / path / to / file1 -nt / path / ke / file2 && echo "ya"

(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

  • Block special - File adalah perangkat blok yang berarti data dibaca dalam blok byte. Ini umumnya file perangkat seperti hard drive.
  • Khusus karakter - File akan segera bertindak saat Anda menulis dan umumnya berupa perangkat seperti port serial

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 berarti 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 satunya benar, lepaskan 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 berarti 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 tidak.