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:
- proba - honek konparazio bat egin nahi du
- 1 - konparatu nahi duzun lehenengo elementua
- -eq (nola alderatzen ari zara, kasu honetan, zenbaki bat berdina den ala ez egiaztatzen ari zara)
- 2 - lehen elementua alderatzen ari zaren elementua berriro
- && - exekutatu hurrengo adierazpena emaitza zuzena bada
- echo "yes" - konparaketa itzultzen bada true exekutatzeko komandoa
- || - exekutatu hurrengo adierazpena emaitza faltsua bada
- echo "no" - konparaketa faltsua itzultzen den komandoa exekutatzeko
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:
- -eq - balio berdina 1 balio du
- -ge - balioa 1 balio handiagoa edo berdina da 2
- -gt - balio 1 baino handiagoa da 2
- -le - balioa 2 balioa baino txikiagoa edo berdina da 2
- -lt - balioa 2 baino balio txikiagoa da 2
- -ne - balioa 1 ez da balio berdina 2
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:
- = - 1 kate bat datorren katearekin 2
- ! = - Kate 1 katearekin 2 da
- -n - katearen luzera 0 baino handiagoa da
- -z - katearen luzera 0 da
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:
- -ef - Fitxategiak bera gailu eta inode zenbakiak dituzte (fitxategi bera dira)
- -nt - Bigarren fitxategiarena baino lehen fitxategi berria da
- -ot - Bigarren fitxategiaren aurretik dagoen lehen fitxategia da
- -b - Fitxategia badago eta bloke berezia da
- -c - Fitxategia existitzen da eta izaera berezia da
- -d - Fitxategia badago eta direktorio bat da
- -e - Fitxategia badago
- -f - Fitxategia existitzen da eta fitxategi arrunta da
- -g - Fitxategia badago eta zehaztutako taldearen zenbakia dauka
- -G - Fitxategia existitzen da eta erabiltzaileak taldearen jabea
- -h - Fitxategia existitzen da eta lotura sinbolikoa da
- -k - Fitxategia badago eta bit-bit segurua dauka
- -L - -h-ren berdina
- -O - Jabea zara jabea
- -p - Fitxategia badago eta izendatutako hodi bat da
- -r - Fitxategia badago eta irakurgarria da
- -s - Fitxategia existitzen da eta zero baino handiagoa dauka
- -S - Fitxategia badago eta socket bat da
- -t - Fitxategi deskriptorea terminal batean irekitzen da
- -u - Fitxategia badago eta set-user-id bit ezarri da
- -w - Fitxategia existitzen da eta idazgarria da
- -x - Fitxategia existitzen da eta exekutagarria da
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
- Bloke berezia - Fitxategia bloke gailu bat da eta horrek esan nahi du datuek byte blokeetan irakurtzen direla. Hauek dira, oro har, gailuko fitxategiak, adibidez, disko gogorrak.
- Karaktere berezia - Fitxategia idaztean berehala jokatzen da eta normalean serieko ataka bezalako gailu bat da
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