Panduan Pemula Untuk BASH - Membandingkan Hal

01 08

Panduan Pemula Untuk BASH - Membandingkan Hal

Tutorial BASH - Membandingkan String.

Di bagian sebelumnya dari tutorial BASH kami melihat pernyataan kondisional .

Panduan itu sangat panjang tetapi benar-benar hanya menunjukkan bagaimana mengontrol aliran logika. Panduan ini menunjukkan berbagai cara di mana Anda dapat membandingkan variabel.

Gambar di atas menunjukkan contoh pertama dalam panduan minggu ini:

#! / bin / bash

name1 = "gary"
name2 = "bob"

jika ["$ name1" = "$ name2"]
kemudian
echo "nama-nama cocok"
lain
echo "nama tidak cocok"
fi


Dalam skrip di atas saya telah mendefinisikan dua variabel bernama name1 dan name2 dan menugaskan mereka nilai "gary" dan "bob". Sebagai variabel yang terdapat di antara tanda kutip mereka disebut variabel string yang menjadi lebih relevan sebagai tutorial berlangsung.

Semua skrip tidak membandingkan nilai $ name1 dan $ name2 dan jika mereka cocok dengan output string "the name match" dan jika mereka tidak menampilkan string "nama tidak cocok".

Tanda kutip di sekitar variabel $ name1 dan $ name2 penting karena jika nilai salah satu dari mereka belum diatur maka skrip akan tetap berfungsi.

Misalnya jika $ name1 tidak pernah diatur maka Anda akan membandingkan "" dengan "bob". Tanpa tanda kutip, Anda akan diberi = "bob" yang jelas gagal.

Anda juga dapat menggunakan notasi = untuk mendefinisikan tidak sama dengan sebagai berikut:

jika ["$ name1"! = "$ name2"]

02 08

Panduan Pemula Untuk BASH - Membandingkan String

Tutorial BASH - Membandingkan String.

Dalam contoh di atas tes membandingkan dua string yang sama dan menanyakan pertanyaan apakah gary datang sebelum bob dalam alfabet?

Jelas jawabannya tidak.

Script ini memperkenalkan operator yang kurang dari (<). Karena operator kurang dari juga digunakan untuk pengalihan Anda harus melarikan diri dengan sebuah garis miring (\) untuk itu berarti kurang dari yang mengapa dalam skrip di atas saya membandingkan "$ name1" \ <"$ name2".

Kebalikannya kurang dari jelas lebih besar dari. Alih-alih menggunakan \ .

Sebagai contoh

jika ["$ name1" \> "$ name2"]

03 dari 08

Panduan Pemula Untuk BASH - Membandingkan String

Tutorial BASH - Membandingkan String.

Jika Anda ingin menguji apakah suatu variabel memiliki nilai Anda dapat menggunakan tes berikut:

jika [-n $ name2]

Di skrip di atas saya telah menguji apakah $ name2 telah diberi nilai dan jika tidak ada pesan "Tidak ada bob, tidak pernah ada bob muncul".

04 dari 08

Panduan Pemula Untuk BASH - Membandingkan String

Tutorial BASH - Membandingkan String.

Pada slide sebelumnya kita membahas apakah suatu variabel telah ditetapkan atau tidak. Kadang-kadang meskipun variabel mungkin telah ditetapkan tetapi mungkin tidak benar-benar memiliki nilai.

Contohnya:

name1 = ""

Untuk menguji apakah suatu variabel memiliki nilai atau tidak (mis. Memiliki panjang nol) gunakan -z sebagai berikut:

jika [-z $ name1]

Dalam skrip di atas saya telah menetapkan $ name1 ke string panjang nol dan kemudian membandingkannya menggunakan -z. Jika $ name1 adalah nol panjang, pesan "gary telah keluar untuk malam" akan ditampilkan.

05 dari 08

Panduan Pemula Untuk BASH - Membandingkan Nomor

Tutorial BASH - Membandingkan Angka.

Sejauh ini semua perbandingan telah digunakan untuk string. Bagaimana dengan membandingkan angka?

Naskah di atas menunjukkan contoh membandingkan dua angka:

#! / bin / bash

a = 4
b = 5

jika [$ a = $ b]
kemudian
echo "4 = 5"
lain
echo "4 tidak sama dengan 5"
fi

Untuk menetapkan variabel menjadi angka cukup atur tanpa tanda kutip. Anda kemudian dapat membandingkan angka dengan tanda sama dengan.

Namun saya lebih suka menggunakan operator berikut untuk membandingkan dua nomor:

Jika [$ a -eq $ b]

06 08

Panduan Pemula Untuk BASH - Membandingkan Nomor

Tutorial BASH - Membandingkan Angka.

Jika Anda ingin membandingkan apakah suatu bilangan kurang dari nomor lain, Anda dapat menggunakan operator yang lebih sedikit daripada (<). Seperti halnya string, Anda harus melarikan diri dari operator yang kurang dengan garis miring. (\ <).

Cara yang lebih baik untuk membandingkan angka adalah dengan menggunakan notasi sebagai berikut:

Sebagai contoh:

jika [$ a -t $ b]

jika [$ a -le $ b]

jika [$ a -ge $ b]

jika [$ a -gt $ b]

07 08

Panduan Pemula Untuk BASH - Membandingkan Nomor

Tutorial BASH - Membandingkan Angka.

Akhirnya untuk panduan ini, jika Anda ingin menguji apakah dua angka berbeda, Anda dapat menggunakan operator yang kurang dari dan lebih besar dari yang sama (<>) atau -sebagai berikut:

jika [$ a <> $ b]

jika [$ a -ne $ b]

08 08

Panduan Pemula Untuk BASH - Operator Perbandingan - Ringkasan

Jika Anda melewatkan tiga bagian pertama dari panduan ini, Anda dapat menemukannya dengan mengklik tautan berikut:

Di bagian selanjutnya dari panduan ini saya akan membahas aritmatika.