A teszt parancsot a Linux parancssori vonalon lehet egy elemet egy másikhoz hasonlítani, de a BASH shell-parancsfájlokban gyakrabban használják a feltételes utasítások részeként, amelyek szabályozzák a logikát és a programfolyamatot.
Egy alapvető példa
Ezek a parancsok egyszerűen megnyithatók a terminál ablak megnyitásával.
teszt 1 -eq 2 && echo "yes" || visszhang "nem"
A fenti parancs a következőképpen osztható meg: Lényegében a parancs összehasonlítja az 1-2 értéket, és ha azok megegyeznek, az echo "yes" utasítás végrehajtásra kerül, amely "yes" -et jelenít meg, és ha nem egyeznek meg, akkor a "no" kijelzésű echo "no" utasítás végrehajtásra kerül. Ha olyan elemeket hasonlít össze, amelyek számként értelmezhetők, használhatja a következő összehasonlító operátorokat: Példák teszt 1 -eq 2 && echo "yes" || visszhang "nem"
(a képernyőn "nem" jelenik meg, mert 1 nem egyenlő 2) teszt 1 -ge 2 && echo "yes" || visszhang "nem"
(a képernyőn "nem" jelenik meg, mert 1 nem nagyobb vagy egyenlő 2-vel) teszt 1 -gt 2 && echo "yes" || visszhang "nem"
(a képernyőn "nem" jelenik meg, mivel 1 nem nagyobb, mint 2) teszt 1 -le 2 && echo "yes" || visszhang "nem"
(a kijelzőn "igen" jelenik meg, mert 1 kisebb vagy egyenlő 2-vel) teszt 1 -lt 2 && echo "yes" || visszhang "nem"
(a kijelzőn "igen" jelenik meg, mert 1 kisebb vagy egyenlő 2-vel) teszt 1 -ne 2 && echo "yes" || visszhang "nem"
(a képernyőn megjelenik "igen", mert 1 nem egyenlő 2) Ha olyan elemeket hasonlít össze, amelyek sztringként értelmezhetők, használhatja az alábbi összehasonlító operátorokat: Példák teszt "string1" = "string2" && echo "yes" || visszhang "nem"
("nem" jelenik meg a képernyőn, mert "string1" nem egyenlő a "string2" -rel) teszt "string1"! = "string2" && echo "yes" || visszhang "nem"
("igen" jelenik meg a képernyőn, mert "string1" nem egyenlő a "string2" -rel) teszt -n "string1" && echo "igen" || visszhang "nem"
("igen" jelenik meg a képernyőn, mert a "string1" hossza nagyobb mint nulla) teszt -z "string1" && echo "igen" || visszhang "nem"
(a képernyőn "nem" jelenik meg, mert a "string1" hossza nagyobb mint nulla) Ha fájlokat hasonlít össze, használhatja a következő összehasonlító operátorokat: Példák teszt / elérési út / file1 -nt / path / to / file2 && echo "yes"
(Ha a fájl1 újabb, mint a 2. fájl, akkor megjelenik az "igen" szó) teszt -e / path / to / file1 && echo "igen"
(ha a fájl1 létezik, az "igen" szó jelenik meg) teszt -O / path / to / file1 && echo "igen"
(ha saját fájl1 van, akkor megjelenik az "igen" szó) Terminológia Eddig minden össze hasonlított egy dolgot a másik ellen, de mi van, ha két körülményt szeretne összehasonlítani? Például, ha egy állatnak 4 lába van és "moo" -ra megy, akkor valószínűleg egy tehén. Egyszerűen 4 lábbal való ellenőrzése nem garantálja, hogy tehened van, de ellenőrizni fogja a hangot, amit biztosan csinál. Mindkét feltétel egyszerre történő teszteléséhez használja a következő kijelentést: teszt 4-ek 4 -a "moo" = "moo" && echo "ez egy tehén" || echo "ez nem tehén"
A legfontosabb rész itt az -a, amely jelzi és . Van egy jobb és gyakoribb módja ugyanazon teszt elvégzésére, és ez a következő: teszt 4 -eq 4 && teszt "moo" = "moo" && echo "ez egy tehén" || echo "ez nem tehén"
Egy másik teszt, amit érdemes csinálni, ha két állítást hasonlít össze, és ha igaz, akkor egy stringet kell kiadnia. Ha például ellenőrizni szeretné, hogy létezik-e a "file1.txt" nevű fájl vagy létezik-e a "file1.doc" nevű fájl, akkor a következő parancsot használhatja: test -e file1.txt -o -e file1.doc && echo "fájl1 létezik" || echo "file1 nem létezik"
A legfontosabb rész itt a -o, amely jelzi vagy . Van egy jobb és gyakoribb módja ugyanazon teszt elvégzésére, és ez a következő: teszt -e file1.txt || test -e file1.doc && echo "fájl1 létezik" || echo "file1 nem létezik" Igazából nem kell használni a szó tesztet az összehasonlítás elvégzéséhez. Mindössze annyit kell tenned, hogy mellékeljük a következőket a szögletes zárójelben: -e file1.txt && echo "fájl1 létezik" || echo "file1 nem létezik"
A és alapvetően ugyanazt jelenti, mint a teszt. Most már tudod, hogy javíthatja a több feltétel összehasonlítását az alábbiak szerint: 4-eq 4 && "moo" = "moo" && echo "ez egy tehén" || echo "ez nem tehén"-e file1.txt || -e file1.doc && echo "fájl1 létezik" || echo "file1 nem létezik" A teszt parancs hasznosabb a szkriptekben, mert egy változó értékét ellenőrizheti a másikra és a vezérlő programfolyamatát. A szabványos parancssori vonalon használhatja annak tesztelésére, hogy van-e fájl, vagy sem.
Számok összehasonlítása
Szöveg összehasonlítása
Fájlok összehasonlítása
Összehasonlítva a több feltételeket
A teszt kulcsszó megszüntetése
összefoglalás




