BASH-programmering

Bash if -e och -s och andra filtestoperatörer

Bash if -e och -s och andra filtestoperatörer

När du arbetar med filer i vilket operativsystem som helst är det obligatoriskt för användaren att testa filerna för vissa aspekter som deras ägande, åtkomsträttigheter, innehåll, existens osv. Dessa aspekter kan räknas ut när man kopplar "if" -uttalandet till olika filtestoperatörer i Bash. “If -e” och “if -s” är sådana operatörer i Bash, som används för att testa förekomsten av en fil. Skillnaden mellan de två är att den först bara testar förekomsten av en fil, medan den senare också kontrollerar om det finns något innehåll i den filen eller inte. Idag kommer vi att försöka förstå användningen av dessa två operatörer, tillsammans med några andra filtestoperatörer i Bash.

Obs! För att visa användningen av filtestoperatörer i Bash har vi använt Linux Mint 20.

Exempel på användning av filtestoperatörer i Bash

Det finns olika sätt på vilka filtestoperatörerna "if -e" och "if -s" kan användas. För att förklara deras användning delar vi några exempel med dig.

Exempel på användning av "if -e" -operatören

För att använda operatören “if -e” i Bash måste du följa dessa steg:

Först har vi skapat en tom textfil med namnet Test.txt i vår hemkatalog. Sedan skapade vi en bash-fil med namnet FileTestOperators.sh i samma katalog. Efter att ha skapat den här filen skrev vi in ​​skriptet som visas i följande bild i vår fil. I detta bash-skript förklarade han en variabel med namnet “fil” och tilldelade den vår textfil med namnet Test.txt som dess värde. Sedan har vi ett "if -e" -uttalande, vilket ger en "sann" utgång om någon specifik fil finns.

För att testa vårt skript kommer vi att köra det med kommandot som anges nedan:

$ bash FileTestOperators.sh

I vårt fall, eftersom textfilen fanns, är det därför som resultatet av vårt skript kommer att vara sant, som visas i följande bild:

Exempel på användning av "if -s" -operatören

För att använda operatören “if -s” i Bash bör du utföra stegen nedan:

För detta exempel är vårt bash-skript detsamma som vi använde ovan. Vi har just ändrat "if -e" uttalandet till "if -s". Vi har också använt samma tomma textfil Test.Text.

När vi kör det här skriptet kommer utdata att vara falsk eftersom operatören “if -s” returnerar true om en fil finns och även om den inte är tom. Eftersom filen i vårt fall fortfarande fanns tom, var det därför som vårt resultat visade sig vara falskt som visas i följande bild:

För att denna flagga ska vara sant kommer vi att skriva lite dummytext i vår textfil, som visas nedan:

Sedan kör vi vårt bash-skript igen, och den här gången kommer utdata att vara sant, som visas i följande bild eftersom textfilen har lite text i den nu.

Exempel på användning av andra filtestoperatörer

Förutom operatörerna “if -e” och “if -s” finns det även andra filtestoperatörer. Nedan kommer vi att dela med dig några av de viktigaste filtestoperatörerna förutom de som diskuteras ovan.

Exempel på användning av "if -d" -operatör

För att använda operatören “if -d” i Bash bör du utföra stegen nedan:

För detta exempel är vårt bash-skript detsamma som vi använde ovan. Vi har just ändrat "if -s" uttalandet till "if -d". Vi har också använt samma textfil Test.Text.

Operatören “om -d” returnerar true om din fil är en katalog, annars är den falsk. Eftersom vår textfil inte var en katalog så kommer resultatet att vara falskt, vilket visas i följande bild:

Exempel på användning av "if -h" -operatören

För att använda operatören “if -h” i Bash måste du följa dessa steg:

För detta exempel är vårt bash-skript detsamma som vi använde ovan. Vi har just ändrat "if -d" uttalandet till "if -h". Vi har dock använt en annan fil för att testa den här gången, vilket faktiskt var en symbolisk länk med namnet NewBash.sh.

Operatören “om -h” returnerar true om din fil är en symbolisk länk, annars är den falsk. Eftersom vår testfil var en symbolisk länk, kommer resultatet därför att vara sant, som visas i följande bild:

Exempel på användning av "if -r" -operatör

För att använda operatören “if -r” i Bash måste du följa dessa steg:

För detta exempel är vårt bash-skript detsamma som vi använde ovan. Vi har just ändrat "if -h" -uttalandet till "if -r". Vi har också använt samma textfil Test.Text.

Utdata från operatören “if -r” kommer att vara sant om den nuvarande användaren kan läsa filen, annars är den falsk. Eftersom vår textfil var läsbar av oss kommer resultatet därför att vara sant, vilket visas i följande bild:

På samma sätt kan du använda operatörerna “if -w” och “if -x” för att kontrollera om en fil är skrivbar och exekverbar av den aktuella ägaren.

Exempel på användning av "om -O" -operatör

För att använda operatören “if -O” i Bash bör du utföra stegen nedan:

För detta exempel är vårt bash-skript detsamma som vi använde ovan. Vi har just ändrat "if -r" uttalandet till "if -O". Vi har också använt samma textfil Test.Text.

Utdata från operatören “om -O” kommer att vara sant om den nuvarande användaren äger filen, annars är den falsk. Eftersom vår textfil ägdes av oss kommer resultatet därför att vara sant som visas i följande bild:

Slutsats

Denna artikel informerade läsaren om användningen av de olika filtestoperatörerna i Bash med Linux-operativsystemet. Genom att använda dessa filtestoperatörer blir det mycket bekvämt för användaren att arbeta med filer utan några potentiella svårigheter. Det finns också några andra filtestoperatörer som kan användas för olika ändamål. De som diskuteras i den här artikeln används dock oftast.

Bästa kommandoradsspel för Linux
Kommandoraden är inte bara din största allierade när du använder Linux, det kan också vara källan till underhållning eftersom du kan använda den för a...
Bästa Gamepad Mapping Apps för Linux
Om du gillar att spela spel på Linux med en gamepad istället för ett typiskt tangentbord och musinmatningssystem, finns det några användbara appar för...
Användbara verktyg för Linux-spelare
Om du gillar att spela spel på Linux är chansen att du kan ha använt appar och verktyg som Wine, Lutris och OBS Studio för att förbättra spelupplevels...