Membandingkan string dalam bash tutorial langsung

Membandingkan string dalam bash tutorial langsung

Membandingkan string adalah tugas umum saat bekerja dengan skrip shell, input pengguna, atau data string. Di shell, Anda mungkin perlu memeriksa apakah nilai ada di string lain, temukan apakah dua string memiliki panjang yang sama, tes untuk awal atau akhir kata, atau jenis perbandingan lainnya. Alat UNIX standar tidak menyediakan banyak opsi untuk membandingkan string; Perbandingan leksikal tradisional (seperti memeriksa jika dua kata memiliki panjang yang sama dan membandingkan setiap karakter secara individual) sulit untuk diimplementasikan secara efisien dalam kode dan tidak berharga untuk bahasa yang dinamis seperti bash.

Artikel ini menjelaskan berbagai cara untuk membandingkan string di Bash dan beberapa perintah terkait.

Operator Perbandingan String

Kita dapat menggunakan operator perbandingan dengan pernyataan bash jika untuk membandingkan dua string. Berikut adalah daftar operator perbandingan untuk bekerja dengan string di shell bash.

OperatorDetail
[“String1” == “String2”]Mengembalikan benar jika kedua string itu sama.
[“String1” != "String"Mengembalikan benar jika kedua string tidak sama.
[“String = ~ Regex]Bandingkan String1 dengan ekspresi reguler dan kembalikan kecocokan true
[-Z “String”]Kembalikan true jika panjang string yang diberikan adalah nol (0)
[-n “String”]Kembalikan true jika panjang string yang diberikan bukan nol

Sekarang, kita akan membahas operator perbandingan di atas satu per satu dengan contoh.

Membandingkan dua string sama?

Jika Anda perlu memeriksa apakah dua string sama, gunakan == operator. Operator ini membandingkan operan kiri dengan operan kanan dan mengembalikan true jika keduanya cocok.

Mari kita pahami dengan sebuah contoh. Dalam skrip shell menginisialisasi dua variabel dengan string. Kemudian gunakan pernyataan if untuk membandingkan apakah kedua string sama atau tidak menggunakan == operator.

#!/usr/bin/env bash str1 = "tecadmin" str2 = "tecadmin" if ["$ str1" == "$ str2"] kemudian gema "Kedua string sama" lain gema "Kedua string tidak sama" fi fi
1234567891011#!/usr/bin/env bash str1 = "tecadmin" str2 = "tecadmin" if ["$ str1" == "$ str2"] kemudian gema "Kedua string sama" lain gema "Kedua string tidak sama" fi fi

Jalankan skrip shell di atas dalam shell bash dan periksa hasilnya.

Output: Kedua string sama 

Sekarang, ubah nilai kedua variabel dengan string yang berbeda. Sekali lagi skrip dan lihat hasilnya.

Periksa dua string tidak sama (!=)

Terkadang kami diharuskan memeriksa apakah kedua string tidak sama. Anda dapat gunakan != operator untuk menguji apakah dua string tidak sama. Mari kita periksa dengan contoh:

#!/usr/bin/env bash str1 = "tecadmin" str2 = "helloWorld" ## Periksa apakah kedua string tidak sama jika ["$ str1" != "$ Str2"] Kemudian gema "Benar, kedua string tidak sama" lain echo "false, kedua string sama" fi
123456789101112#!/usr/bin/env bash str1 = "tecadmin" str2 = "helloWorld" ## Periksa apakah kedua string tidak sama -sama ["$ str1" != "$ Str2"] Kemudian gema "Benar, kedua string tidak sama" lain echo "false, kedua string sama" fi

Jalankan skrip shell di atas dalam shell bash dan periksa hasilnya.

Output: Benar, kedua string tidak sama 

Bandingkan string dengan ekspresi reguler

Untuk membandingkan string dengan ekspresi reguler dalam bash, Anda dapat menggunakan perintah "grep" dengan opsi "-e" (Extended Regex). Perintah "GREP" mencari string untuk suatu pola dan mengembalikan kode keluar keberhasilan (0) jika polanya ditemukan dan kode keluar kegagalan (1) jika polanya tidak ditemukan.

Berikut adalah contoh menggunakan perintah "GREP" untuk membandingkan string dengan ekspresi reguler:

String = "Hello World" if echo "$ string" | grep -e "^halo"; Kemudian echo "pertandingan ditemukan" else echo "pertandingan tidak ditemukan" fi
123456String = "Hello World" if echo "$ string" | grep -e "^halo"; Kemudian echo "pertandingan ditemukan" else echo "pertandingan tidak ditemukan" fi

Kami juga dapat membandingkan string dengan ekspresi reguler dalam skrip bash. Saat menggunakan perbandingan string dengan ekspresi reguler dengan pernyataan IF, Anda harus selalu melampirkan [[]] kutipan. Contoh di bawah ini akan menampilkan membantu Anda untuk memeriksa apakah variabel tersebut berisi string yang dimulai dengan string tertentu.

#!/usr/bin/env bash str = "tecadmin" if [["$ str" = ~ ^tec]] kemudian gema "ya, ekspresi reguler cocok dengan" lain elso "ekspresi reguler tidak cocok" fi
12345678910#!/usr/bin/env bash str = "tecadmin" if [["$ str" = ~ ^tec]] kemudian gema "ya, ekspresi reguler cocok dengan" lain elso "ekspresi reguler tidak cocok" fi
Output: ya, ekspresi reguler cocok 

Mari kita periksa contoh lain. Dalam skrip ini, kami akan meminta pengguna untuk memasukkan nomor. Kemudian verifikasi apakah nilai input adalah angka atau tidak. Wadah angka digit antara 0 hingga 9.

#!/usr/bin/env bash baca -p "input angka:" var ## Periksa apakah nilai input adalah angka jika [["$ var" = ~ ^[0-9]+$]] maka echo "diberikan Input adalah angka "lain gema" maaf, input bukan angka "fi
1234567891011#!/usr/bin/env bash baca -p "input nomor:" var ## Periksa apakah nilai inputnya adalah angka [["$ var" = ~ ^[0-9]+$]] kemudian echo "diberikan input yang diberikan adalah angka "lain gema" maaf, input bukan angka "fi

Jalankan skrip bash di atas dan berikan input saat diminta.

First Run: Input A Number: 12 Input yang Diberikan adalah angka 

Lagi jalankan skrip ini tetapi kali ini masukkan nilai non-numerik dan lihat hasilnya.

Run kedua: masukan nomor: 1234a maaf, input bukan angka 

Periksa apakah string kosong

Untuk memeriksa apakah string kosong dalam bash, Anda dapat menggunakan sintaks berikut:

if [-z "$ string"]; Kemudian echo "string kosong" else echo "string tidak kosong" fi
12345if [-z "$ string"]; Kemudian echo "string kosong" else echo "string tidak kosong" fi

Itu "-Z" Operator digunakan untuk menguji jika panjang string nol. Jika panjang string adalah nol, ekspresi di dalam kurung persegi kembali benar dan klausa "lalu" dieksekusi. Jika panjang string lebih besar dari nol, ekspresi mengembalikan false dan klausa "lain" dieksekusi.

Kesimpulan

Sebagai kesimpulan, membandingkan string dalam bash adalah aspek mendasar dari skrip shell yang dapat digunakan untuk membuat keputusan, mengontrol aliran skrip Anda, dan memproses data. Dalam tutorial langsung ini, kami telah membahas dasar-dasar perbandingan string di Bash, termasuk berbagai operator perbandingan, sintaks, dan jebakan umum. Kami juga telah memberikan contoh dan latihan untuk membantu Anda berlatih dan menguasai konsep yang disajikan dalam tutorial ini. Dengan mengikuti praktik terbaik yang diuraikan dalam tutorial ini, Anda dapat menulis skrip yang lebih kuat, andal, dan efisien. Apakah Anda seorang pemula atau pengguna yang berpengalaman, perbandingan string dalam Bash adalah keterampilan berharga yang dapat membantu Anda mengotomatiskan tugas, menyelesaikan masalah, dan memanfaatkan skrip shell Anda sebaik -baiknya.