Android

Hogyan ellenőrizhető, hogy a karakterlánc tartalmaz-e bash-ban alszöveget?

How To Install NOS

How To Install NOS

Tartalomjegyzék:

Anonim

Az egyik leggyakoribb művelet a bash-karakterláncokkal való munka során annak meghatározása, hogy egy karakterlánc tartalmaz-e másik karakterláncot., többféle módszert mutatunk be annak ellenőrzésére, hogy a karakterlánc tartalmaz-e egy alsávot.

A helyettesítő karakterek használata

A legegyszerűbb megközelítés az alsó karakterlánc körülvétele csillag helyettesítő karakterekkel (csillag) * és összehasonlítása a karakterlánccal. A helyettesítő karakter egy szimbólum, amelyet a nulla, egy vagy több karakter jelölésére használnak.

Ha a teszt true , akkor az alsó karakterlánc szerepel a karakterláncban.

Az alábbi példában az if utasításot és az egyenlőség operátort ( == ) használjuk annak ellenőrzésére, hogy a SUB alsó karakterlánc megtalálható-e az STR karakterláncban:

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

A szkript végrehajtása után kiadja:

It's there.

A házkezelő használata

Az if utasítás használata helyett a case utasítás segítségével ellenőrizheti, hogy a karakterlánc tartalmaz-e egy másik karakterláncot.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac

A Regex Operator használata

Egy másik lehetőség annak meghatározására, hogy egy megadott alsáv előfordul-e egy karakterláncon belül, a =~ regex operátor használata. Ennek az operátornak a használatakor a jobb oldali karakterláncot szabályos kifejezésnek tekintik.

A csillaggal jelölt időszak .* Nulla vagy annál több előfordulást mutat, bármely karakter megegyezik egy új sor karakterrel.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

A szkript a következőket fogja visszhangozni:

It's there.

A Grep használatával

A grep parancs felhasználható egy másik karakterláncban található karakterláncok keresésére is.

A következő példában átadjuk a $STR karakterláncot bemenetként a grep számára, és ellenőrizzük, hogy a $SUB karakterlánc megtalálható-e a bemeneti karakterláncban. A parancs adott esetben true vagy false vissza.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi

A -q opció azt mondja a grep-nek, hogy legyen csendes, és hagyja ki a kimenetet.

Következtetés

Az egyik legalapvetőbb és leggyakrabban használt művelet a Bash parancsfájlokban annak ellenőrzése, hogy egy karakterlánc tartalmaz-e egy alsávot.

Az oktatóanyag elolvasása után jól meg kell értenie, hogyan kell tesztelni, hogy egy karakterlánc tartalmaz-e egy másik karakterláncot. Használhat más parancsokat is, például az awk vagy a sed a teszteléshez.

bash terminál