Nola erabili Testen baldintzak Bash Script baten barruan

Probako komandoa Linux komando lerroan erabil daiteke elementu bat alderatzeko beste baten aurka, baina normalean BASH shell script- ekin erabiltzen da, kontrol-logika eta programa-fluxua baldintzazko adierazpenen zati gisa.

Oinarrizko adibidea

Komando hauek probatu ditzakezu terminaleko leiho bat irekitzean .

proba 1 -eq 2 eta & echo "bai" || echo "ez"

Goiko agindua hauxe da honela banatuta:

Funtsean, komandoa 1etik 2ra bitartekoa da eta "yes" adierazpena exekutatzen duen oihartzuna betetzen dute eta "bai" bistaratzen dute eta "ez" adierazpenarekin bat datozen ez badute betetzen "ez" bistaratzen dira.

Zenbakiak alderatzea

Zenbaki gisa analizatzen dituzten elementuak alderatzen badituzu, hurrengo konparazio operadoreak erabil ditzakezu:

Adibideak:

proba 1 -eq 2 eta & echo "bai" || echo "ez"

(pantaila "ez" bistaratzen du 1 ez delako 2)

proba 1 -ge 2 eta & echo "bai" || echo "ez"

(pantaila "ez" bistaratzen du 1 ez delako 2 edo handiagoa)

proba 1 -gt 2 eta & echo "bai" || echo "ez"

(pantaila "ez" bistaratzen du 1 ez delako 2 baino handiagoa)

proba 1 -le 2 eta & echo "bai" || echo "ez"

(Pantailan "bai" bistaratzen du 1 edo 2 baino txikiagoa delako)

proba 1 -lt 2 eta & echo "bai" || echo "ez"

(Pantailan "bai" bistaratzen du 1 edo 2 baino txikiagoa delako)

proba 1 -ne 2 eta & echo "bai" || echo "ez"

(pantaila "bai" bistaratzen du 1ek ez baitu berdina 2)

Testua alderatuz

Kateak analizatzen dituzten elementuak alderatzen badituzu, ondorengo konparazio operadoreak erabil ditzakezu:

Adibideak:

test "string1" = "string2" && echo "yes" || echo "ez"

(pantaila "ez" bistaratzen du, "string1" ez delako "string2" berdina).

test "string1"! = "string2" && echo "yes" || echo "ez"

(pantaila "bai" bistaratzen du "string1" ez delako "string2" berdina).

test -n "string1" && echo "yes" || echo "ez"

(Pantailan "bai" bistaratzen du "string1" kate luzera zero baino handiagoa delako ".

test -z "string1" && echo "yes" || echo "ez"

(pantaila "ez" bistaratzen du, "string1" katearen luzera zero baino handiagoa delako ".

Fitxategiak alderatzea

Fitxategiak alderatzen badituzu, konparazio operadore hauek erabil ditzakezu:

Adibideak:

test / path / to / file1 -n / path / to / file2 eta & echo "yes"

(File1 fitxategi2 baino berriagoa bada, "yes" hitza agertuko da)

test -e / path / to / file1 eta & echo "yes"

(fitxategia "existitzen bada" hitza agertuko da)

test -O / path / to / file1 eta & echo "yes"

(file1 badaukazu, orduan "bai" hitza bistaratuko da) ")

terminologia

Baldintza anitzak alderatuz

Orain arte dena alderantzizkoa da, baina bi baldintza alderatu nahi badituzu.

Adibidez, animalia batek 4 hankatxo ditu eta "moo" doa ziurrenik behi bat da. 4 hankak bakarrik egiaztatuz ez du bermatzen behi bat baizik, ziur asko egiten duen soinua egiaztatuz.

Bi baldintza aldi berean probatzeko, erabili hurrengo adierazpena:

test 4 -eq 4 -a "moo" = "moo" && echo "behi bat da" || echo "ez da behi"

Hemen gakoa da -a zein den eta.

Proba bera egiteko modu hobe eta erabilerraza da eta honako hau da:

test 4 -eq 4 && test "moo" = "moo" && echo "behi bat da" || echo "ez da behi"

Egin nahi duzun beste proba bi adierazpenen alderaketa da eta egiazkoa bada kate bat irteera. Adibidez, "file1.txt" izeneko fitxategi bat dagoela egiaztatzea nahi baduzu edo "file1.doc" izeneko fitxategi bat existitzen bada komando hau erabil dezakezu

test -e file1.txt -o -e file1.doc eta & echo "file1 exists" || echo "file1 ez dago"

Hemen gakoa da -o edo.

Proba bera egiteko modu hobe eta erabilerraza da eta honako hau da:

test -e file1.txt || test -e file1.doc eta & echo "file1 exists" || echo "file1 ez dago"

Proba Keyword ezabatzea

Ez duzu benetan hitza probatzeko erabili behar konparazioa egiteko. Egin behar duzun guztia kortxeteen adierazpena da honela:

[-e file1.txt] && echo "file1 exists" || echo "file1 ez dago"

[Eta] funtsean, test bezalaxe esan nahi du.

Orain badakizue honela baldintza hauek alderatuz gero hobetzeko:

[4 -eq 4] && ["moo" = "moo"] && echo "behi bat da" || echo "ez da behi"

[-e file1.txt] || [-e file1.doc] && echo "file1 exists" || echo "file1 ez dago"

Laburpen

Test komandoa scriptetan erabilgarria da, aldagai bateko balioa probatzeko eta programaren fluxua kontrolatzeko. Komando lerro estandarrean, erabil dezakezu fitxategi bat dagoen ala ez egiaztatzeko