Hoe het bestaan ​​van invoerargumenten in een Bash Shell-script te controleren

Hoe Het Bestaan Van Invoerargumenten In Een Bash Shell Script Te Controleren



Bash shell-scripting is een krachtige tool voor het automatiseren van repetitieve taken en het uitvoeren van complexe bewerkingen op de opdrachtregel. Een van de fundamentele concepten bij shellscripting is het accepteren van invoerargumenten van de gebruiker of van andere scripts. Bij het omgaan met invoerargumenten is het essentieel om te controleren of het invoerargument al dan niet bestaat om onverwacht gedrag in het script te voorkomen. Dit artikel bespreekt verschillende manieren om het bestaan ​​van invoerargumenten in een Bash-shellscript te controleren.

Hoe het bestaan ​​van invoerargumenten in een Bash Shell-script te controleren

Er zijn drie verschillende manieren:

  1. Gebruik de opdracht 'testen'.
  2. De variabele '$#' gebruiken
  3. Gebruik de optie '-n'.

Methode 1: de opdracht 'test' gebruiken

Het 'test' -commando, ook wel bekend als het '[' -commando, is een ingebouwd commando in Bash dat test op verschillende voorwaarden. Een van de voorwaarden die we kunnen testen met de opdracht 'test' is of een variabele bestaat of niet. Hier is een voorbeeldcode om te controleren of er een invoerargument bestaat met behulp van de opdracht 'test':







#!/bin/bash

als [ -Met '$1' ]

Dan

echo 'Invoerargument ontbreekt.'

Uitgang 1

zijn

echo 'Invoerargument bestaat.'

Hier wordt de optie '-z' gebruikt met de opdracht 'test' om te controleren of het invoerargument een lege string is of niet. Het script geeft een foutmelding en sluit af met een statuscode van 1 als het invoerargument een lege tekenreeks is. Anders zal het script doorgaan met uitvoeren, hieronder heb ik een argument voor de code opgegeven en ingevoerd, zodat het bericht van het bestaan ​​van de invoer van het argument wordt weergegeven:





Methode 2: de variabele '$#' gebruiken

De '$#' variabele slaat het aantal invoerargumenten op dat aan een script is doorgegeven. Als het script ten minste één invoerargument verwacht, kunnen we controleren of het '$#' variabele is groter dan nul. Hier is een voorbeeldcode om te controleren of er ten minste één invoerargument bestaat met behulp van de '$#' variabele:





#!/bin/bash

als [ $# -eq 0 ]

Dan

echo 'Invoerargument ontbreekt.'

Uitgang 1

zijn

echo 'Invoerargument bestaat.'

Hier de '-eq' operator wordt gebruikt om te controleren of de '$#' variabele gelijk is aan nul of niet en als de variabele '$#' gelijk is aan nul, zal het script een foutmelding weergeven en afsluiten met een statuscode van 1. Anders zal het script doorgaan met uitvoeren, hieronder heb ik opgegeven en ingevoerd argument voor de code, zodat het bericht van bestaan ​​van invoer van argument wordt weergegeven:



Methode 3: de optie '-n' gebruiken

De '-N' optie wordt gebruikt om te controleren of een variabele niet leeg is. We kunnen deze optie gebruiken om te controleren of het invoerargument bestaat of niet. Hieronder heb ik een voorbeeldcode gegeven die controleert of er een invoerargument bestaat met behulp van de '-N' keuze:

#!/bin/bash

als [ -N '$1' ]

Dan

echo 'Invoerargument bestaat.'

anders

echo 'Invoerargument ontbreekt.'

Uitgang 1

zijn

Hier de '-N' optie wordt gebruikt om te controleren of het invoerargument niet leeg is en of het invoerargument niet leeg is, het script zal een succesbericht weergeven. Anders geeft het script een foutmelding weer en sluit het af met een statuscode van 1, hieronder heb ik een argument voor de code opgegeven en ingevoerd, zodat het bericht van het bestaan ​​van de invoer van het argument wordt weergegeven:

Conclusie

Bij shell-scripting is het controleren van het bestaan ​​van invoerargumenten een essentiële stap om ervoor te zorgen dat het script werkt zoals verwacht. We kunnen verschillende technieken gebruiken om het bestaan ​​van invoerargumenten te controleren, zoals het gebruik van de opdracht 'test', de variabele '$#' of de optie '-n'. Door deze technieken te implementeren, creëren we robuustere en betrouwbaardere shellscripts die invoerargumenten aankunnen.