BASH-programmering

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

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

Når du arbejder med filer i ethvert operativsystem, er det obligatorisk for brugeren at teste disse filer for visse aspekter såsom deres ejerskab, adgangsrettigheder, indhold, eksistens osv. Disse aspekter kan regnes ud, mens "if" -erklæringen kobles til forskellige filtestoperatører i Bash. “If -e” og “if -s” er sådanne operatorer i Bash, der bruges til at teste eksistensen af ​​en fil. Forskellen mellem de to er, at førstnævnte kun tester eksistensen af ​​en fil, mens sidstnævnte også kontrollerer, om der er noget indhold i den fil eller ej. I dag vil vi forsøge at forstå brugen af ​​disse to operatører sammen med et par andre filtestoperatører i Bash.

Bemærk: For at demonstrere brugen af ​​filtestoperatører i Bash har vi brugt Linux Mint 20.

Eksempler på brug af filtestoperatører i Bash

Der er forskellige måder, hvorpå filtestoperatørerne "if -e" og "if -s" kan bruges. For at forklare deres brug deler vi nogle eksempler med dig.

Eksempel på brug af "if -e" -operatør

For at bruge operatøren “if -e” i Bash skal du følge disse trin:

Først har vi oprettet en tom tekstfil ved navn Test.txt i vores hjemmekatalog. Derefter oprettede vi en bash-fil ved navn FileTestOperators.sh i samme bibliotek. Efter oprettelse af denne fil skrev vi scriptet vist i det følgende billede i vores fil. I dette bash-script erklærede han en variabel med navnet “fil” og tildelte den vores tekstfil med navnet Test.txt som dens værdi. Så har vi en "if -e" -erklæring, der producerer en "sand" output, hvis der findes en bestemt fil.

Til test af vores script kører vi det ved hjælp af kommandoen nedenfor:

$ bash FileTestOperators.sh

I vores tilfælde, da tekstfilen eksisterede, er det derfor, at output af vores script vil være sandt, som vist i følgende billede:

Eksempel på brug af "if -s" -operatør

For at bruge operatøren “if -s” i Bash skal du udføre nedenstående trin:

I dette eksempel er vores bash-script det samme som vi brugte ovenfor. Vi har netop ændret “if -e” udsagnet til “if -s”. Vi har også brugt den samme tomme tekstfil Test.txt.

Når vi kører dette script, vil output være falsk, fordi operatøren "hvis -s" returnerer sandt, hvis der findes en fil, og også hvis den ikke er tom. Da i vores tilfælde, selvom filen eksisterede, stadig var den tom, hvorfor vores output viste sig at være falsk som vist i følgende billede:

For at dette flag skal være sandt, skriver vi noget dummy-tekst i vores tekstfil som vist nedenfor:

Derefter kører vi vores bash-script igen, og denne gang vil output være sandt, som vist i det følgende billede, fordi tekstfilen har noget tekst i det nu.

Eksempler på brug af andre filtestoperatører

Bortset fra “if -e” og “if -s” operatorerne er der også andre filtestoperatorer. Nedenfor deler vi nogle af de vigtigste filtestoperatører med andre end dem, der er beskrevet ovenfor.

Eksempel på brug af "hvis -d" operatør

For at bruge operatøren “if -d” i Bash skal du udføre nedenstående trin:

I dette eksempel er vores bash-script det samme som vi brugte ovenfor. Vi har lige ændret “if -s” udsagnet til "if -d". Vi har også brugt den samme tekstfil Test.txt.

Operatøren “hvis -d” returnerer sandt, hvis din fil er en mappe, ellers er den falsk. Da vores tekstfil ikke var en mappe, vil output derfor være falsk, som vist på følgende billede:

Eksempel på brug af "if -h" operatør

For at bruge operatøren “if -h” i Bash skal du følge disse trin:

I dette eksempel er vores bash-script det samme som vi brugte ovenfor. Vi har netop ændret “if -d” udsagnet til “if -h”. Vi har dog brugt en anden fil til test af denne gang, hvilket faktisk var et symbolsk link ved navn NewBash.sh.

Operatøren “hvis -h” returnerer sandt, hvis din fil er et symbolsk link, ellers er den falsk. Da vores testfil var et symbolsk link, vil output derfor være sandt som vist i følgende billede:

Eksempel på brug af "if -r" operatør

For at bruge operatøren “if -r” i Bash skal du følge disse trin:

I dette eksempel er vores bash-script det samme som vi brugte ovenfor. Vi har netop ændret “if -h” udsagnet til “if -r”. Vi har også brugt den samme tekstfil Test.txt.

Outputtet fra "if -r" -operatøren vil være sandt, hvis den aktuelle bruger kan læse filen, ellers er den falsk. Da vores tekstfil var læsbar af os, vil output derfor være sandt, som vist på følgende billede:

På samme måde kan du bruge operatorerne "hvis -w" og "hvis -x" til at kontrollere, om en fil er henholdsvis skrivbar og eksekverbar af den aktuelle ejer.

Eksempel på brug af "hvis -O" operatør

For at bruge operatøren “hvis -O” i Bash skal du udføre nedenstående trin:

I dette eksempel er vores bash-script det samme som vi brugte ovenfor. Vi har netop ændret “if -r” udsagnet til “if -O”. Vi har også brugt den samme tekstfil Test.txt.

Output fra "hvis -O" -operatøren vil være sandt, hvis den aktuelle bruger ejer filen, ellers er den falsk. Da vores tekstfil var ejet af os, vil output derfor være sandt som vist i følgende billede:

Konklusion

Denne artikel orienterede læseren om brugen af ​​de forskellige filtestoperatører i Bash ved hjælp af Linux-operativsystemet. Ved at bruge disse filtestoperatører bliver det meget praktisk for brugeren at arbejde med filer uden eventuelle problemer. Der er også nogle andre filtestoperatører, som kan bruges til forskellige formål. De, der diskuteres i denne artikel, bruges dog mest.

OpenTTD Tutorial
OpenTTD er et af de mest populære forretningssimuleringsspil derude. I dette spil skal du oprette en vidunderlig transportvirksomhed. Du starter dog i...
SuperTuxKart til Linux
SuperTuxKart er en fantastisk titel designet til at give dig Mario Kart-oplevelsen gratis på dit Linux-system. Det er ret udfordrende og sjovt at spil...
Kæmp om Wesnoth-vejledning
Slaget om Wesnoth er et af de mest populære open source-strategispil, som du kan spille på dette tidspunkt. Ikke kun har dette spil været under udvikl...