gebruik je bash if -z en if -n om strings te testen in Linux

Er zijn verschillende string operatoren beschikbaar in de bash scripting taal die gebruikt kunnen worden om strings te testen. De -z en -n operatoren worden gebruikt om na te gaan of de string Null is of niet. In deze gids zullen we deze string operatoren testen met behulp van het if statement in Centos 8.

In deze gids leer je over de volgende test strings:

  • If-n wanneer String Null is.
  • Als-n wanneer String niet Null is
  • Als-z als String null is
  • Als-z wanneer String niet Null is
  • Als-z tijdens het nemen van String Gebruikersinvoer

Gebruik van de if -n operator als String null is

Ons hoofddoel om hier de if-n operator te gebruiken is aan te tonen dat de specifieke string Null is. Volg de geciteerde stappen om deze opdracht uit te voeren:

Maak een nieuw bestand met de naam CheckString.sh. Je kunt het direct in je thuismap aanmaken of met het volgende commando in de terminal:

$ touch CheckString.sh

Maak test script

Je ziet dat het bestand CheckString.sh in je thuismap is aangemaakt zoals in de afbeelding.

Testbestand

Open het bestand CheckString.sh en schrijf een bash script zoals het in de onderstaande afbeelding staat. Hier zie je dat we een string geïnitialiseerd hebben met de naam StdName gevolgd door de waarde Null. In onze if verklaring hebben we de -n string test operator gebruikt, gevolgd door de string StdName. Omdat string StdName null is, zal de -n operator het else gedeelte van het script uitvoeren.

Controleer op null waarde

Nu zullen we het onderstaande commando uitvoeren om te controleren of de string Null is of niet.

$ bash CheckStrings.sh

Omdat onze string StdName Null is, voert de -n string operator het else gedeelte uit. De uitvoer zal dus zijn Sorry! Je hebt geen naam in de terminal zoals in de onderstaande afbeelding.

Voer testscript uit

Gebruik van if -n als String niet Null is

We gebruiken hier de if-n operator om aan te tonen dat de opgegeven string in het bestand niet Null is. Je moet de onderstaande stappen doorlopen om deze activiteit uit te voeren:

Je hoeft geen nieuw bestand of string aan te maken. Je gebruikt voor deze opdracht hetzelfde bestand CheckString.sh met een kleine wijziging. Deze keer moet de string StdName in je bestand een andere waarde hebben dan null. Je moet dus aan je string een waarde toekennen (niet null) terwijl al het andere script hetzelfde blijft. Zoals je ziet hebben we dus aan de string StdName de waarde Aqsa Yasin toegekend. Deze keer wordt dus Als deel van het script uitgevoerd door de -n operator.

als -n wanneer String niet Null is

Nu zullen we het onderstaande commando uitvoeren om te controleren of de string een waarde heeft of niet.

$ bash CheckStrings.sh

Omdat onze string StdName nu een waarde Aqsa Yasin heeft, voert de -n string operator het if deel uit. De uitvoer wordt dus Hy! Aqsa Yasin in de terminal, zoals te zien is in de bijgevoegde afbeelding.

Test script resultaat

Gebruik van if -z als String null is

We gebruiken hier de if-z operator om aan te tonen dat de opgegeven string in het bestand Null is. Je moet de onderstaande stappen doorlopen om deze activiteit uit te voeren:

Er is niets nieuws te doen voor deze opdracht. Gebruik gewoon hetzelfde oude bestand CheckString.sh met de -z string operator. Zoals we weten voert -z operator het True deel uit als de string Null is. Omdat string StdName een null waarde heeft, wordt dus het if gedeelte van het script uitgevoerd door de -z operator.

als -z wanneer String null is

Nu zullen we het onderstaande commando uitvoeren om te controleren of de string null is.

$ bash CheckStrings.sh

Omdat onze string StdName nu geen waarde meer heeft, en de -z string operator weet dat de string null is, voert hij het if gedeelte uit. De uitvoer zal dus zijn Sorry You have no name in the terminal, zoals in de bijgevoegde afbeelding te zien is.

Testresultaat

Gebruik van if -z als String niet null is

We gebruiken hier de if-z operator om aan te tonen dat de opgegeven string in het bestand niet Null is. Door deze stappen te doorlopen zou je in staat zijn deze activiteit uit te voeren:

Je hoeft niets nieuws te doen. We gebruiken voor deze opdracht hetzelfde oude bestand CheckString.sh met een kleine wijziging. Deze keer vervangen we de -n string operator door de -z string operator. Ook moet je if en else deel van het script met elkaar verwisselen. Zoals we weten voert -z operator het True deel uit als de string Null is. Omdat string StdName de waarde Aqsa Yasin heeft die niet null is, wordt het else statement dus uitgevoerd door de -z operator.

als -z wanneer String niet Null is

Nu zullen we het onderstaande commando uitvoeren om te controleren of de string null is of niet.

$ bash CheckStrings.sh

Omdat onze string StdName nu een waarde heeft Aqsa Yasin, en de -z string operator weet dat de string niet null is, voert hij het else gedeelte uit. De uitvoer wordt dus Hy Aqsa Yasin in de terminal, zoals in de onderstaande afbeelding.

Testresultaat

Gebruik van if -z bij het nemen van string-gebruikersinvoer

Tenslotte gebruiken we de if-z operator om de string invoer te testen die door gebruik tijdens de runtime wordt toegevoegd. Je moet de volgende stappen uitvoeren om de string-invoer van de gebruiker te testen:

Deze keer moet je je script in het bestand enigszins aanpassen. Allereerst gebruiken we de -z operator in het if statement gevolgd door de variabele string. Het systeem zal de gebruiker vragen wat string waarden toe te voegen. De gebruiker zal wat string toevoegen. Tijdens het gebruik van het lees statement slaat het systeem de door de gebruiker geschreven string op in de variabele string. Zoals we weten voert de -z operator het if deel van het statement uit als de string geldig is. Als de door de gebruiker ingevoerde string null is, vraagt het systeem je de string opnieuw in te voeren. Als de door de gebruiker ingevoerde string niet null is, toont het systeem de string.

if -z while Taking String User Input

Nu voeren we het onderstaande commando uit om de door de gebruiker ingevoerde string te controleren:

$ bash CheckStrings.sh

Toen het systeem de gebruiker vroeg een of andere string toe te voegen, voegt de gebruiker geen waarde toe. Dus -z operator herkent de string als null en voert dus het if statement uit. Het systeem vroeg de gebruiker opnieuw om een of andere stringwaarde toe te voegen. Nu voegde de gebruiker een geldige stringwaarde New World Order toe. Vandaar dat het systeem de boodschap De string die je invoerde is: New World

Script resultaat

Conclusie

In deze gids heb je ontdekt hoe je string operatoren kunt gebruiken om een stringwaarde te testen die ofwel null ofwel non-null is. Ik hoop dat dit artikel je veel geholpen heeft om de string operatoren -z en -n voldoende onder de knie te krijgen en verklaringen te manipuleren.