It testbehearder kin brûkt wurde op de Linux-kommandorigel om ien elemint tsjin in oar te fergelykjen, mar it wurdt mear brûkber brûkt yn BASH-shell-skripts as in bedrach fan betingsten dy't logika en programma-stream kontrolearje.
In Basic foarbyld
Jo kinne dizze kommando ienfâldig besykje troch in terminalfinster te iepenjen .
test 1 -eq 2 && echo "ja" || echo "nee"
It boppesteande kommando kin sa ferdield wurde:
- test - dit betsjut dat jo in fergeliking meitsje
- 1 - it earste elemint dat jo fergelykje
- -eq (hoe fergelykje jo, yn dit gefal binne jo teste oft ien nûmer liket op in oare)
- 2 - it elemint dat jo it earste elemint noch fergelike
- && - útfiere de folgjende deklaraasje as it resultaat wier is
- Echo "ja" - it kommando om te rinnen as it fergeliking wier is wier
- || - de folgjende deklaraasje útfiere as it resultaat falsk is
- Echo "nee" - it kommando om te fieren as it fergelings falsk weromkommt
Yn essinsje is it kommando 1 oant 2 fergelike en se passe by de echo "ja" -Antjefte wurdt útfierd, dy 'ja' jout, en as se net passe by de echo "no" -Antjefte wurdt útfierd dy't 'gjin' werjûn.
Fergelykjen fan nûmers
As jo eleminten fergelykje dy't as getallen parseare, kinne jo de folgjende ferwizingsoperators brûke:
- -eq - hat wearde 1 lykweardich wearde 2
- -ge - is wearde 1 grutter of lyk oan wearde 2
- -gt - is wearde 1 grutter as wearde 2
- -le - is wearde 1 minder as of lyk oan wearde 2
- -lt - is wearde 1 minder as wearde 2
- -ne - makket wearde 1 net lykweardich 2
Foarbylden:
test 1 -eq 2 && echo "ja" || echo "nee"
(lit gjin "no" oan it skerm sjen, om't 1 net lyk is 2)
test 1 -ge 2 && echo "ja" || echo "nee"
(lit gjin "no" oan it skerm sjen, om't 1 net grutter is of 2)
test 1 -t 2 && echo "ja" || echo "nee"
(lit gjin "no" oan it skerm sjen, om't 1 net grutter is as 2)
test 1 -le 2 && echo "ja" || echo "nee"
(jout "ja" oan it skerm omdat 1 minder as of 2 is)
test 1 -tal 2 && echo "ja" || echo "nee"
(jout "ja" oan it skerm omdat 1 minder as of 2 is)
test 1 -n 2 && echo "ja" || echo "nee"
(lit jo "ja" oan it skerm sjen, om't 1 net lyk is 2)
Fergelykje tekst
As jo eleminten fergelykje as strings, kinne jo de folgjende ferwizingsoperators brûke:
- = - sprekt string 1 oanmakke string 2
- ! = - is string 1 ferskillend oan string 2
- -n - is de snarenlange grutter as 0
- -z - is de snarenlange 0
Foarbylden:
test "string1" = "string2" && echo "ja" || echo "nee"
(lit gjin "no" oan it skerm sjen, om't "string1" net equal is "string2")
test "string1"! = "string2" && echo "ja" || echo "nee"
(jout "ja" nei it skerm omdat "string1" net lyk is "string2")
test -n "string1" && echo "ja" || echo "nee"
(jout "ja" nei it skerm omdat "string1" in stringlange grutter dan nul hat)
test -z "string1" && echo "ja" || echo "nee"
(lit gjin "no" oan it skerm sjen, om't "string1" in stringlange grutter dan nul hat)
Fergelykjen fan triemmen
As jo de bestannen befetsje, kinne jo de folgjende ferwizingsoperators brûke:
- -ef - Binne de triemen deselde apparaat en inod-getallen (binne it deselde triem)
- -nt - Is it earste triem neer as it twadde bestân
- -ot - is it earste bestân as de twadde bestân
- -b - De bestân is besteand en spesjale blok
- -c - De bestân is besteand en is teken spesjaal
- -d - De bestân bestiet en is in map
- -e - De bestân bestiet út
- -f - De bestân bestiet en is in gewoane bestân
- -g - De bestân bestiet en hat it spesifisearre groepnûmer
- -G - De bestân bestiet en eigner troch de groep fan de brûker
- -h - De bestân bestiet en is in symboalyske keppeling
- -k - De bestân bestiet en hat syn kleverige bit set
- -L - itselde as -h
- -O - It bestân bestiet út jo eigener
- -p - De bestân bestiet en is in namme krige
- -r - De bestân bestiet en is lêsber
- -s - De bestân bestiet en hat in grutte grutter as nul
- -S - It bestân bestiet en is in socket
- -t - De triem-descriptor wurdt iepene op in terminal
- -u - De bestân is besteand en it set-user-id bit is ynsteld
- -w - De bestân bestiet en is skriuwber
- -x - De bestân bestiet út en is útfierber
Foarbylden:
test / path / to / file1 -n / path / to / file2 && echo "ja"
(As triem1 is nijere as file2 dan sil it wurd "ja" werjûn wurde)
test -e / path / to / file1 && echo "ja"
(as bestân1 bestiet it wurd "ja" sil werjûn wurde)
test -O / paad / nei / file1 && echo "ja"
(as jo bestân1 hawwe dan it wurd "ja" werjûn)
Terminology
- Spesjale spesjale - De triem is in blokapparaat dat betsjut dat gegevens yn blokken fan bytes lêzen wurde. Dit binne algemien apparaatbestannen lykas hurddraaien.
- Sertifikaat spesjaal - De triem wurdt fuortendaliks tapast as jo derop skriuwe en is gewoanlik in apparaat lykas in serial port
Mearfâldich betingsten fergelykje
Hjirmei hat alles alles ien tsjin in oar fergeliking, mar wat as jo twa betingsten fergelykje wolle.
Bygelyks, as in dier hat 4 skonken en giet "moo" it is wierskynlik in ko. Einichste kontrôle foar 4 skonken jouwt gjin garânsje dat jo in ko net hawwe, mar kontrolearje it lûd dat it makket.
Om beide betingsten op ien kear de folgjende statement te brûken:
test 4 -eq 4 -a "moo" = "moo" && echo "it is in koe" || echo "it is gjin ko"
It kaaipart is hjir de -a dy't stiet foar en.
Der is in bettere en meast brûkte manier fan itselde test en dat is sa:
test 4 -eq 4 && test "moo" = "moo" && echo "it is in koe" || echo "it is gjin ko"
In oare test dy't jo wolle wolle meitsje, fertsjinnet twa ferklearrings en as ien fan 'e echte útfier in string is. As jo wolle kontrolearje dat in triem mei de namme "file1.txt" bestiet, of in triem neamd "file1.doc" bestiet kinne jo it folgjende kommando brûke
test -e file1.txt -o -e file1.doc && echo "file1 bestiet" || echo "file1 bestiet net"
It kaaipart is hjir de -o dy't stiet of of.
Der is in bettere en meast brûkte manier fan itselde test en dat is sa:
test -e file1.txt || test -e file1.doc && echo "bestân1 bestiet" || echo "file1 bestiet net"
Eliminating The Test Keyword
Jo hawwe eins net it wurdtest te brûken om it fergeliking út te fieren. Alles wat jo dwaan moatte, is de ferklearring yn fjouwerkant klanken lykas folget:
[-e file1.txt] && echo "bestân1 bestiet" || echo "file1 bestiet net"
De [en] betsjut benammen as deselde test.
No wite jo dat jo ferbetterje kinne op it fergelykje meardere betingsten as folgjend:
[4 -eq 4] && ["moo" = "moo"] && echo "it is in koe" || echo "it is gjin ko"
[-e file1.txt] || [-e file1.doc] && echo "bestân1 bestiet" || echo "file1 bestiet net"
Gearfetting
It testkommando is nuttich yn skripts, om't jo de wearde fan ien fariabele tsjin in oar en kontrôleprogramma-flug besjen kinne. Op de standert kommando-rigel kinne jo it brûke om te hifkjen oft in bestân bestiet