BASH-programmering

Bash if -e en -s en andere bestandstestoperators

Bash if -e en -s en andere bestandstestoperators

Bij het werken met bestanden in elk besturingssysteem is het verplicht voor de gebruiker om die bestanden te testen op bepaalde aspecten, zoals hun eigendom, toegangsrechten, inhoud, bestaan, enz. Deze aspecten kunnen worden uitgezocht door de "if" -instructie te koppelen aan verschillende bestandstestoperators in Bash. De "if -e" en "if -s" zijn zulke operators in Bash, die worden gebruikt om het bestaan ​​van een bestand te testen testing. Het verschil tussen de twee is dat de eerste alleen het bestaan ​​van een bestand test, terwijl de laatste ook controleert of er inhoud in dat bestand zit of niet. Vandaag zullen we proberen het gebruik van deze twee operators te begrijpen, samen met een paar andere bestandstestoperators in Bash.

Opmerking: om het gebruik van bestandstestoperators in Bash te demonstreren, hebben we Linux Mint 20 . gebruikt.

Voorbeelden van het gebruik van bestandstestoperators in Bash

Er zijn verschillende manieren waarop de bestandstestoperators "if -e" en "if -s" kunnen worden gebruikt. Om het gebruik ervan uit te leggen, zullen we enkele voorbeelden met u delen.

Voorbeeld van het gebruik van de operator "if -e"

Om de operator "if -e" in Bash te gebruiken, moet u deze stappen volgen:

Eerst hebben we een leeg tekstbestand gemaakt met de naam Test.txt in onze Home directory. Vervolgens hebben we een bash-bestand gemaakt met de naam FileTestOperators.sh in dezelfde map. Nadat we dit bestand hebben gemaakt, hebben we het script in de volgende afbeelding in ons bestand getypt:. In dit bash-script een variabele met de naam "bestand" gedeclareerd en toegewezen aan ons tekstbestand met de naam Test.txt als zijn waarde. Dan hebben we een “if -e” statement, die een “true” output produceert als een gespecificeerd bestand bestaat.

Om ons script te testen, zullen we het uitvoeren met behulp van de onderstaande opdracht:

$ bash FileTestOperators.sh

In ons geval, aangezien het tekstbestand bestond, is dat de reden waarom de uitvoer van ons script waar zal zijn, zoals weergegeven in de volgende afbeelding:

Voorbeeld van het gebruik van de operator "if -s"

Om de operator "if -s" in Bash te gebruiken, moet u de onderstaande stappen uitvoeren:

Voor dit voorbeeld is ons bash-script hetzelfde als dat we hierboven hebben gebruikt. We hebben zojuist de instructie "if -e" gewijzigd in "if -s". We hebben ook hetzelfde lege tekstbestand gebruikt Test.tekst.

Wanneer we dit script nu uitvoeren, is de uitvoer onwaar omdat de operator "if -s" waar retourneert als een bestand bestaat en ook als het niet leeg is. Omdat in ons geval, hoewel het bestand bestond, het nog steeds leeg was, daarom bleek onze uitvoer onwaar te zijn, zoals weergegeven in de volgende afbeelding:

Om ervoor te zorgen dat deze vlag waar is, zullen we wat dummy-tekst in ons tekstbestand schrijven, zoals hieronder weergegeven:

Daarna voeren we ons bash-script opnieuw uit, en deze keer zal de uitvoer waar zijn, zoals weergegeven in de volgende afbeelding omdat het tekstbestand nu wat tekst bevat.

Voorbeelden van het gebruik van andere bestandstestoperators

Behalve de operatoren "if -e" en "if -s", zijn er ook andere operatoren voor bestandstests. Hieronder zullen we enkele van de belangrijkste bestandstestoperators met u delen, behalve degene die hierboven zijn besproken.

Voorbeeld van het gebruik van de operator "if -d"

Om de operator "if -d" in Bash te gebruiken, moet u de onderstaande stappen uitvoeren:

Voor dit voorbeeld is ons bash-script hetzelfde als dat we hierboven hebben gebruikt. We hebben zojuist de instructie "if -s" gewijzigd in "if -d". We hebben ook hetzelfde tekstbestand gebruikt Test.tekst.

De operator "if -d" retourneert waar als uw bestand een map is, anders is het onwaar. Aangezien ons tekstbestand geen map was, zal de uitvoer dus onwaar zijn, zoals weergegeven in de volgende afbeelding:

Voorbeeld van het gebruik van de operator "if -h"

Om de operator "if -h" in Bash te gebruiken, moet je deze stappen volgen:

Voor dit voorbeeld is ons bash-script hetzelfde als dat we hierboven hebben gebruikt. We hebben zojuist de instructie "if -d" gewijzigd in "if -h". We hebben deze keer echter een ander bestand gebruikt om te testen, wat in feite een symbolische link was met de naam NewBash.sh.

De operator "if -h" retourneert waar als uw bestand een symbolische link is, anders is het onwaar. Aangezien ons testbestand een symbolische link was, zal de uitvoer waar zijn, zoals weergegeven in de volgende afbeelding:

Voorbeeld van het gebruik van de operator "if -r"

Om de operator "if -r" in Bash te gebruiken, moet je deze stappen volgen:

Voor dit voorbeeld is ons bash-script hetzelfde als dat we hierboven hebben gebruikt. We hebben zojuist de instructie "if -h" gewijzigd in "if -r". We hebben ook hetzelfde tekstbestand gebruikt Test.tekst.

De uitvoer van de operator "if -r" is waar als de huidige gebruiker het bestand kan lezen, anders is het onwaar. Aangezien ons tekstbestand door ons leesbaar was, zal de uitvoer waar zijn, zoals weergegeven in de volgende afbeelding:

Op dezelfde manier kunt u de operators "if -w" en "if -x" gebruiken om te controleren of een bestand respectievelijk schrijfbaar en uitvoerbaar is door de huidige eigenaar.

Voorbeeld van het gebruik van de operator "if -O"

Om de operator "if -O" in Bash te gebruiken, moet u de onderstaande stappen uitvoeren:

Voor dit voorbeeld is ons bash-script hetzelfde als dat we hierboven hebben gebruikt. We hebben zojuist de instructie "if -r" gewijzigd in "if -O". We hebben ook hetzelfde tekstbestand gebruikt Test.tekst.

De uitvoer van de "if -O" -operator is waar als de huidige gebruiker eigenaar is van het bestand, anders is het onwaar. Aangezien ons tekstbestand eigendom was van ons, zal de uitvoer waar zijn, zoals weergegeven in de volgende afbeelding:

Conclusie

Dit artikel informeerde de lezer over het gebruik van de verschillende bestandstestoperators in Bash met behulp van het Linux-besturingssysteem. Door gebruik te maken van deze bestandstestoperators, wordt het erg handig voor de gebruiker om zonder mogelijke problemen met bestanden te werken. Er zijn ook enkele andere bestandstestoperators die voor verschillende doeleinden kunnen worden gebruikt. Degenen die in dit artikel worden besproken, worden echter het meest gebruikt.

Emuleer muisklikken door te zweven met Clickless Mouse in Windows 10
Het gebruik van een muis of toetsenbord in de verkeerde houding of overmatig gebruik kan leiden tot veel gezondheidsproblemen, waaronder spanning, car...
Voeg muisbewegingen toe aan Windows 10 met deze gratis tools
In de afgelopen jaren zijn computers en besturingssystemen sterk geëvolueerd. Er was een tijd dat gebruikers opdrachten moesten gebruiken om door best...
Beheer en beheer muisbewegingen tussen meerdere monitoren in Windows 10
Muisbeheer voor twee schermen laat je muisbewegingen tussen meerdere monitoren controleren en configureren door de bewegingen nabij de grens te vertra...