Bandymo komandą galima naudoti "Linux" komandinėje eilutėje, kad palygintumėte vieną elementą su kitu, tačiau ji dažniausiai naudojama BASH shell scenarijose kaip sąlyginių teiginių, kurie kontroliuoja logiką ir programos srautą, dalis.
Pagrindinis pavyzdys
Galite išbandyti šias komandas tiesiog atidarę terminalo langą.
1 testas-ek 2 && echo "taip" || echo "no"
Pirmiau nurodyta komanda gali būti suskirstyta taip: Iš esmės komanda lygina nuo 1 iki 2 ir, jei jos atitinka, atsiranda užrašas "taip", kuris parodo "taip", ir jei jie nesutampa, vykdomas "echo" nerašas, kuris rodo "ne". Jei lyginate elementus, kurie analizuojami kaip skaičiai, galite naudoti šiuos palyginimo operatorius: Pavyzdžiai 1 testas-ek 2 && echo "taip" || echo "no"
(ekrane rodomas "ne", nes 1 nėra lygus 2) test 1 -ge 2 && echo "taip" || echo "no"
(ekrane rodomas "ne", nes 1 yra ne didesnis arba lygus 2) 1 bandymas-gt 2 && echo "taip" || echo "no"
(ekrane rodomas "ne", nes 1 yra ne didesnis kaip 2) test 1-second 2 && echo "taip" || echo "no"
(ekrane parodomas "taip", nes 1 yra mažesnis arba lygus 2) bandymas 1 -lt 2 && echo "taip" || echo "no"
(ekrane parodomas "taip", nes 1 yra mažesnis arba lygus 2) test 1 -ne 2 && echo "taip" || echo "no"
(ekrane parodomas "taip", nes 1 nėra lygus 2) Jei lyginate elementus, kurie analizuojami kaip eilutės, galite naudoti šiuos palyginimo operatorius: Pavyzdžiai test "string1" = "string2" && echo "taip" || echo "no"
(rodomas ekranas "ne", nes "string1" nėra lygus "string2") test "string1"! = "string2" && echo "taip" || echo "no"
(ekrane rodomas "taip", nes "string1" nėra lygus "string2") bandymas -n "string1" && echo "taip" || echo "no"
(ekrane rodomas "taip", nes "string1" eilutės ilgis yra didesnis nei nulis) test -z "string1" && echo "taip" || echo "no"
(ekrane rodomas "ne", nes "string1" eilutės ilgis yra didesnis nei nulis) Jei lyginate failus, galite naudoti šiuos palyginimo operatorius: Pavyzdžiai test / path / to / file1-nt / path / to / file2 && echo "taip"
(Jei failas1 yra naujesnis nei failas2, tada rodomas žodis "taip") bandymas -e / path / to / file1 && echo "taip"
(jei failas1 egzistuoja, bus rodomas žodis "taip") bandymas -O / path / to / file1 && echo "taip"
(jei turite failą1, tada rodomas žodis "taip") Terminologija Iki šiol viskas palygino vieną dalyką su kitu, bet kas, jei norite palyginti dvi sąlygas? Pavyzdžiui, jei gyvūnas turi 4 kojas ir eina "moo", tai tikriausiai yra karvė. Tiesiog patikrinkite 4 kojas negarantuoja, kad turite karvę, bet tikriausiai patikrinsite garsą. Norėdami išbandyti abi sąlygas vienu metu, naudokite šį teiginį: testas 4-eq 4 -a "moo" = "moo" && echo "tai karvė" || echo "tai nėra karvė"
Svarbiausia čia yra "-a", kuri reiškia ir . Yra geresnis ir dažniau naudojamasis tas pats bandymas, kuris yra toks: testas 4-eq 4 && bandymas "moo" = "moo" && echo "tai karvė" || echo "tai nėra karvė"
Kitas testas, kurį galbūt norėsite padaryti, yra palyginti du teiginius ir, jei tai yra tiesa, išvesti eilutę. Pavyzdžiui, jei norite patikrinti, ar egzistuoja failas su pavadinimu "file1.txt" arba failas "file1.doc", galite naudoti šią komandą: test -e file1.txt -o -e file1.doc && echo "file1 exists" || echo "failas1 neegzistuoja"
Svarbiausia čia yra "-o" arba . Yra geresnis ir dažniau naudojamasis tas pats bandymas, kuris yra toks: test-e file1.txt || test-e file1.doc && echo "file1 exists" || echo "failas1 neegzistuoja" Jūs neturite iš tikrųjų naudoti žodžio testą palyginimui atlikti. Viskas, ką jums reikia padaryti, yra pridėti pareiškimą skliaustuose taip: -e file1.txt && echo "failas1 egzistuoja" || echo "failas1 neegzistuoja"
Ir iš esmės reiškia tą patį kaip bandymą. Dabar žinote, kad galite tobulinti kelias sąlygas lyginant taip: 4-eq 4 && "moo" = "moo" && echo "tai karvė" || echo "tai nėra karvė"-e file1.txt || -e file1.doc && echo "file1 exists" || echo "failas1 neegzistuoja" Bandymo komanda yra labiau naudinga scenarijose, nes galite patikrinti vieno kintamojo reikšmę kitai ir valdymo programos srautą. Standartinėje komandų eilutėje galite naudoti ją patikrinti, ar egzistuoja failas.
Lyginant numerius
Teksto palyginimas
Failų palyginimas
Kintamųjų sąlygų palyginimas
Testo rakto pašalinimas
Santrauka