Bash hvis -e og -s og andre filtestoperatører

Bash hvis -e og -s og andre filtestoperatører
I Linux -filer brukes testoperatører for å sjekke attributtene tilknyttet en fil som: Forfatteren av filen, administrative rettigheter og eierskap til filen, og for å sjekke om de er symlink eller ikke. Når vi har å gjøre med filer, blir det nødvendig å sjekke deres eksistens og om de inneholder noe innhold eller ikke for dette formålet; eller hvis en uttalelse brukes sammen med testoperatørene.

Filtestoperatører i bash brukes også til å teste filene som navnet forklarer. Ved hjelp av disse operatørene kan vi teste forskjellige aspekter av en fil som om den filen bare er skrivbar eller lesbar. Det er mange filtestoperatører, og hver og en har en annen rolle og bruk. Filtestoperatører hjelper oss med å forhindre feil mens du skriver i bash. For å utføre den oppgaven bruker vi en IF-Else-uttalelse. If-Else-uttalelsen fungerer som et veldig nyttig verktøy for feilhåndtering i bash-skripting.

Formålet med "-e" -operatøren er å fortelle oss om en fil eksisterer i den spesifiserte katalogen eller ikke. "-S" -operatøren forteller oss at filen ikke er en nullstørrelse som betyr at denne operatøren forteller oss om filen i den spesifiserte katalogen inneholder data eller ikke. Andre operatører er vant til å håndtere filer, men "-e" og "-s" er de viktigste og brukes ofte.

Hvordan bruke testoperatører:

I denne illustrasjonen vil vi prøve å bruke alle testoperatørene til å utføre forskjellige oppgaver på filene.

Eksempel nr. 1: Bruke If -e -tekstoperatøren

I dette eksemplet vil vi prøve å bruke IF -e -testoperatøren som hovedsakelig brukes til å bekrefte om filen eksisterer i en katalog eller ikke. Nå vil vi først opprette en ny fil.

linux@linux-virtualbox: ~ $ nano testoperator.sh

Når vi kjører kommandoen over, vil den åpne den tomme filen nå, vi skriver koden der vi vil opprette en betingelse som filen “ansatt.txt ”eksisterer den vil vise ekkokommandoen som inneholder meldingen“ Fil eksisterer ”. Ellers vil den utføre meldingen “Fil ikke eksisterer”. Filtestoperatøren vil inneholde innholdet som er nevnt nedenfor.

#!/bin/sh
fil = "Ansatt.tekst"
if [-e $ fil]
deretter
ekko "fil eksisterer"
ellers
ekko "Filen eksisterer ikke"
fi

Etter å ha lagret filen ved hjelp av bash-kommandoen, kjører vi den nedenfor-nevnte kommandoen som vil utføre testoperatøren.SH -fil.

linux@linux-virtualbox: ~ $ bash testoperator.sh

Når vi kjører kommandoen ovenfor, vil den lese koden til testoperatorfilen som kjøres og se etter filen i hjemmekatalogen. I dette tilfellet har vi ingen filer i katalogen, så den utførte utdataene nedenfor.

Produksjon:

Filen eksisterer ikke

Nå vil vi først opprette en ny fil som heter “Ansatt.tekst". Kjør igjen kommandoen for å sjekke om den vil oppdage filen eller ikke. Som vist nedenfor finnes denne gangen filen i hjemmekatalogen.

La oss nå kjøre kommandoen ovenfor igjen. Denne gangen viser den utdataene som vises nedenfor der meldingen “Fil eksisterer”.

Produksjon:

Filen eksisterer

Eksempel nr. 2: Bruke If -d -tekstoperatøren

I dette eksemplet vil vi prøve en annen testoperatør som er "-D" -operatøren som brukes til å bekrefte om filen vi sjekker er en katalog eller ikke. Denne gangen oppretter vi en ny katalog som vi kalte “ansatt”, som det kan sees i utdraget nedenfor.

Nå vil vi endre “Testoperator.SH ”-filen der vi vil endre filnavnet“ Ansatt.txt ”til bare“ ansatt ”. Deretter passerer "-D" -operatøren i IF-setningen sammen med “$ -filen” som vil bli hentet ut. Og endre meldingen, som vises som utdata, lagrer vi filen. Nå, “Testoperator.SH ”-filen inneholder følgende innhold.

#!/bin/sh
fil = "ansatt"
if [-d $ fil]
deretter
ekko "Den ansatte er en katalog"
ellers
ekko "Den ansatte er ikke en katalog"
fi

Etter å ha endret “Testoperator.SH ”, vi kjører Bash -kommandoen sammen med filnavnet:

linux@linux-virtualbox: ~ $ bash testoperator.sh

Når kommandoen ovenfor kjøres, vil den vise utdataene nedenfor der den skriver ut meldingen som er:

Produksjon:

Den ansatte er en katalog

Eksempel nr. 3: Bruke IF -S -tekstoperatøren

I dette eksemplet vil vi prøve å bruke "-s" -operatøren som brukes til å sjekke om filen inneholder noe innhold eller ikke. For det vil vi bruke den allerede opprettet filen som vi brukte i eksempel 1 som heter “Ansatt.tekst". La oss først endre filtestoperatøren.SH hvor vi vil gi alternativet “-s” sammen med filnavnet til vår IF-uttalelse og tilordne filen “Ansatt.tekst". Det vil også endre meldingen som vises som en utgang.

#!/bin/sh
fil = "Ansatt.tekst"
if [-d $ fil]
deretter
ekko "ansatt.TXT er tom "
ellers
ekko "ansatt.TXT er ikke tom "
fi

Nå vil vi lagre og lukke filen “Testoperator.sh ”og kjør kommandoen nevnt nedenfor i terminalen.

linux@linux-virtualbox: ~ $ bash testoperator.sh

Når kommandoen over kjører, vil den utføre den andre uttalelsen fordi den ansatte.TXT inneholder innholdet. Så den ignorerer den daværende uttalelsen Echo -kommandoen.

Produksjon:

ansatt.TXT er ikke tom

Nå vil vi fjerne innholdet fra “ansatte.txt ”og kjør deretter kommandoen igjen. Når kommandoen over blir utført igjen, viser den den daværende uttalelsesmeldingen fordi den ikke inneholder noe innhold i den. Eksemplet nedenfor er output fra kommandoen som vi utførte etter å ha slettet innholdet i filen.

Produksjon:

ansatt.TXT er tom

Eksempel nr. 4: Bruke IF -R -tekstoperatøren

I dette eksemplet vil vi implementere en annen testoperatør som er "-R". Denne operatøren brukes til å sjekke om filen er lesbar for brukeren eller ikke. For dette vil vi endre testoperatøren.txt-fil ved å erstatte “-d” -operatøren med “-R”. Det vil også endre utdata -meldingen som er hvis filen er lesbar. Den vil vise meldingen “Ansatt.TXT er lesbar, og hvis filen ikke er lesbar, vil den vise andre setning. Nå, “Testoperator.TXT ”inneholder følgende innhold:

#!/bin/sh
fil = ”ansatt.tekst"
if [-r $ fil]
deretter
ekko “ansatt.TXT er lesbar ”
ellers
ekko “ansatt.TXT er lesbar “
fi

Nå vil vi kjøre kommandoen nedenfor for å utføre koden som er skrevet inni den.

linux@linux-virtualbox: ~ $ bash testoperator.sh

Etter å ha kjørt kommandoen ovenfor, vil den viste utdata nedenfor bli skrevet ut på terminalen.

Produksjon:

ansatt.TXT er lesbar

Konklusjon

Vi har diskutert den viktigste delen av arkiveringssystemet, testoperatørene. Mens du jobber med filer, er testoperatørene det viktigste verktøyet levert av Linux -pakker. Etter å ha introdusert formålet med testoperatørene, forklarte vi dem ved å implementere disse operatørene i forskjellige eksempler.