BASH-programmering

Bash if -z och if -n för att testa strängar

Bash if -z och if -n för att testa strängar

Uttrycket "om" i Bash kan användas med olika parametrar för att tjäna flera syften. Närhelst vi arbetar med strängar i Bash är det mycket viktigt för oss att kontrollera om en sträng är noll eller inte så att den inte kan orsaka några problem i genomförandet av vårt program. Både flaggorna “-z” och “-n” kan användas med ”if” -uttrycket för att testa strängarna, och vi kommer att förklara för dig hur detta kan göras i dagens artikel.

Obs! Linux Mint 20 används för att testa följande exempel.

Metod för att använda Bash "if -z" och "if -n" för att testa strängar

För att förklara användningen av Bash "if -z" och "if -n" för att testa strängar vill vi dela med dig av följande exempelscenarier.

Exempel 1: Använd “if -n” för att visa att en sträng är noll

För att visa att en sträng i Bash är noll med "if -n" -uttrycket kommer vi att utföra följande steg:

Först kommer vi att skapa en Bash-fil i vår hemkatalog med namnet Strings.sh, som visas i bilden nedan:

Efter att ha skapat den här filen skriver vi in ​​skriptet som visas i följande bild i vår fil. Som alla Bash-skript, den första raden, jag.e. “#!/ bin / bash, ”är obligatoriskt. Sedan har vi förklarat en nullsträng med namnet "namn". En nollsträng i Bash kan deklareras genom att utjämna en variabel till “”. Sedan har vi ett "if" -uttalande följt av "-n" -flaggan, som returnerar true om en sträng inte är noll. Vi har använt den här flaggan för att testa vårt sträng "namn", vilket är null. Det betyder att "if" -villkoret inte kommer att utföras eftersom värdet på "-n" -flaggan är falsk i detta fall. Därför har vi också en ”annan” del som kommer att köras genom att skriva ut ett meddelande på terminalen.

Nu är det dags att köra den här filen, vilket kan göras med kommandot som visas nedan:

$ bash strängar.sh

Eftersom strängen som vi förklarade var noll, är det därför "den andra" delen av vårt skript har körts och motsvarande meddelande har skrivits ut på terminalen som visas i följande bild:

Exempel 2: Använd “if -n” för att visa att en sträng inte är noll

För att visa att en sträng i Bash inte är noll med "if -n" -uttrycket kommer vi att utföra följande steg:

Vi skriver följande skript i vår Bash-fil. Den enda ändringen som vi har gjort i skriptet som vi skapade ovan för detta scenario är att den här gången har vi tilldelat strängen "namn" ett giltigt namn. Det betyder att vår sträng inte är noll denna gång, vilket innebär att "if" -delen av skriptet ska köras.

Kör nu skriptet igen, och du kommer att märka att vårt modifierade skript fungerar precis som vi ville genom att köra "om" -delen av skriptet den här gången som visas i bilden nedan:

Exempel # 3: Använd “if -z” för att visa att en sträng inte är noll

För att visa att en sträng i Bash inte är null med "if -z" -uttrycket kommer vi att utföra följande steg:

Skriptet för detta scenario är nästan detsamma som för scenariot som diskuterats ovan. Vi har bara ersatt "-n" -flaggan med "-z" -flaggan, men den här gången har vi också bytt ut "if" och "else" -delarna i skriptet eftersom "-z" -flaggan returnerar true om strängen är inget. Det betyder att den här "andra" delen av skriptet kommer att köras eftersom vår sträng inte var null.

Du kan verifiera detta genom att köra skriptet som du just har modifierat och du kommer att kunna se att din sträng inte var noll, som visas i bilden nedan:

Exempel 4: Använd “if -z” för att visa att en sträng är noll

För att visa att en sträng i Bash är null med "if -z" -uttrycket kommer vi att utföra följande steg:

Vi har använt samma skript för detta scenario som vi gjorde för exempel # 3. Den enda ändringen som vi har gjort i detta skript är att vi har gjort vår sträng noll genom att tilldela den nollvärdet, som du kan se i bilden som visas nedan:

Nu när vi kör det här skriptet kommer "om" -delen av skriptet att köras eftersom strängen är noll, och därmed kommer värdet på "-z" -flaggan att vara sant, som du kan se från följande bild:

Exempel nr 5: Ta stränganvändarinmatning och testa det med “if -z”

För att testa stränginmatningen som tillhandahålls av användaren med uttalandet “if -z” kommer vi att utföra följande steg:

Vi kopierar manuset som visas i bilden nedan i vår Bash-fil. Här ber vi användaren att ange en sträng och sedan sparar vi den strängen i variabeln "string" med kommandot "read". Sedan testar vi den här strängen med "if -z" -uttrycket, som kommer att köras om strängen är null. Om så är fallet kommer detta skript att uppmana användaren att ange en giltig sträng och sedan kommer den att skriva ut den strängen. Men om användaren anger en giltig sträng för första gången kommer den "andra" delen av skriptet att köras.

Efter att ha kört detta Bash-skript, när vi uppmanades att ange en sträng, angav vi avsiktligt en nullsträng, dvs.e., vi tryckte helt enkelt på Enter-tangenten. Det är därför vår terminal uppmanade oss att ange en giltig sträng, som visas i följande bild:

Den här gången har vi angett en giltig sträng “hej” och terminalen skrev därmed ut motsvarande meddelande enligt bilden nedan:

Slutsats

Den här artikeln lärde dig alla olika metoder med vilka du kan testa dina strängar för att vara noll eller inte när du använder flaggorna "-z" och "-n" med "if" -uttalandet. Genom att använda dessa flaggor kan vi testa alla strängar och därmed använda dem mycket effektivt i våra skript.

Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...
Portar med öppen källkod för kommersiella spelmotorer
Gratis, öppen källkod och plattformsmekaniska rekreationer kan användas för att spela gamla såväl som några av de ganska senaste speltitlarna. I den h...
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...