Kumaha Paké Kaayaan Test Dina hiji Bash Script

Paréntah test bisa dipaké dina garis paréntah Linux Ubuntu pikeun ngabandingkeun hiji unsur ngalawan sejen tapi geus leuwih ilahar dipake dina Aksara BASH cangkang salaku bagian tina pernyataan kondisional nu ngatur logika jeung program aliran.

Hiji Conto Dasar

Anjeun tiasa nyobian Paréntah ieu cukup ku muka jandela terminal .

test 1 -eq 2 && bahana "enya" || bahana "euweuh"

Paréntah luhur bisa direcah saperti kieu:

Dina panggih, sorana geus ngabandingkeun 1 ka 2 na aranjeunna cocog bahana "enya" pernyataan ieu dibales anu mintonkeun "enya" na lamun maranéhna teu cocog bahana teh "euweuh" pernyataan ieu dibales anu mintonkeun "euweuh".

ngabandingkeun Nomer

Mun anjeun ngabandingkeun elemen anu parse salaku angka anjeun tiasa nganggo operator ngabandingkeun handap:

conto:

test 1 -eq 2 && bahana "enya" || bahana "euweuh"

(Mintonkeun "euweuh" ka layar lantaran 1 henteu sarua jeung 2)

test 1 -ge 2 && bahana "enya" || bahana "euweuh"

(Mintonkeun "euweuh" ka layar lantaran 1 teu gede atawa sarua jeung 2)

test 1 -gt 2 && bahana "enya" || bahana "euweuh"

(Mintonkeun "euweuh" ka layar lantaran 1 teu leuwih gede ti 2)

test 1 -le 2 && bahana "enya" || bahana "euweuh"

(Mintonkeun "enya" ka layar lantaran 1 nyaeta kurang atawa sarua jeung 2)

test 1 -lt 2 && bahana "enya" || bahana "euweuh"

(Mintonkeun "enya" ka layar lantaran 1 nyaeta kurang atawa sarua jeung 2)

test 1 -ne 2 && bahana "enya" || bahana "euweuh"

(Mintonkeun "enya" ka layar lantaran 1 henteu sarua jeung 2)

ngabandingkeun téks

Mun anjeun ngabandingkeun elemen anu parse salaku senar anjeun tiasa nganggo operator ngabandingkeun handap:

conto:

test "string1" = "string2" && bahana "enya" || bahana "euweuh"

(Mintonkeun "euweuh" ka layar sabab "string1" henteu sarua jeung "string2")

test "string1"! = "string2" && bahana "enya" || bahana "euweuh"

(Mintonkeun "enya" ka layar sabab "string1" henteu sarua jeung "string2")

test -n "string1" && bahana "enya" || bahana "euweuh"

(Mintonkeun "enya" ka layar sabab "string1" ngabogaan panjang string gede ti nol)

test -z "string1" && bahana "enya" || bahana "euweuh"

(Mintonkeun "euweuh" ka layar sabab "string1" ngabogaan panjang string gede ti nol)

ngabandingkeun Payil

Mun anjeun ngabandingkeun payil anjeun tiasa nganggo operator ngabandingkeun handap:

conto:

test / jalur / ka / file1 -n / jalur / ka / file2 && bahana "enya"

(Mun file1 téh leuwih anyar ti file2 lajeng kecap "enya" bakal ditampilkeun)

test -e / jalur / ka / file1 && bahana "enya"

(Lamun file1 aya kecap "enya" bakal ditampilkeun)

test -o / jalur / ka / file1 && bahana "enya"

(Lamun sorangan file1 lajeng kecap "enya" dipintonkeun ")

hal istilah

Ngabandingkeun langkung Kaayaan

Kituna tebih sagalana geus ngabandingkeun hiji hal ngalawan sejen tapi kumaha upami anjeun hoyong pikeun ngabandingkeun dua kaayaan.

Contona, upami sato boga 4 suku na mana "moo" éta meureun sapi. Kantun ngecék 4 suku teu ngajamin yén anjeun gaduh sapi tapi mariksa sora ngajadikeun pasti manten.

Pikeun nguji duanana kaayaan sakaligus nganggo pernyataan di handap:

test 4 -eq 4 -a "moo" = "moo" && bahana "éta sapi" || bahana "teu sapi"

Bagian konci didieu teh -a nu nangtung pikeun tur.

Aya jalan hadé tur leuwih lengkep ilahar dipaké di ngajalankeun tes sarua jeung nu saperti kieu:

test 4 -eq 4 && test "moo" = "moo" && bahana "éta sapi" || bahana "teu sapi"

test sejen nu bisa hayang nyieun nyaeta ngabandingkeun dua pernyataan jeung lamun boh mangrupa kaluaran leres a string. Contona, upami anjeun hoyong pariksa yén hiji file ngaranna "file1.txt" aya atawa file disebut "file1.doc" aya anjeun tiasa nganggo paréntah di handap

nguji -e file1.txt -o -e file1.doc && bahana "file1 aya" || bahana "file1 teu aya"

Bagian konci didieu teh -o nu nangtung pikeun atanapi.

Aya jalan hadé tur leuwih lengkep ilahar dipaké di ngajalankeun tes sarua jeung nu saperti kieu:

test -e file1.txt || test -e file1.doc && bahana "file1 aya" || bahana "file1 teu aya"

Ngaleungitkeun The Test keyword

Anjeun teu sabenerna kudu nganggo test Kecap nedunan ngabandingkeun dina. Kabéh geus maneh mun geus ngalampirkeun pernyataan dina kurung kuadrat saperti kieu:

[-e file1.txt] && bahana "file1 aya" || bahana "file1 teu aya"

[Palaŋ] dasarna hartina sarua jeung test.

Ayeuna anjeun terang kieu anjeun bisa ngaronjatkeun kana ngabandingkeun sababaraha kondisi saperti kieu:

[4 -eq 4] && [ "moo" = "moo"] && bahana "éta sapi" || bahana "teu sapi"

[-e file1.txt] || [-e file1.doc] && bahana "file1 aya" || bahana "file1 teu aya"

singgetan

Paréntah test leuwih hade dipake dina Aksara sabab bisa nguji nilai hiji variabel ngalawan sejen tur kadalikeun aliran program. Dina garis paréntah baku, Anjeun bisa make eta pikeun nguji naha file a aya atawa