GNU/Linux >> Znalost Linux >  >> Linux

Jak používat if-else ve skriptech Shell?

Přejdeme-li vpřed od našeho předchozího tutoriálu o polích ve skriptech shellu, pojďme pochopit, jak můžeme použít if-else ve skriptech shellu.

Podmíněné programování je důležitou součástí každého programovacího jazyka, protože provádění každého jednotlivého příkazu v našem programu je častěji než nežádoucí.

A potřebujeme způsob, jak podmíněně provádět příkazy. If-else ve skriptech shellu slouží přesně k této situaci.

Podmínky ve skriptech Shell

Jednou z nejdůležitějších částí podmíněného programování jsou příkazy if-else. Příkaz if-else vám umožňuje provádět iterativní podmíněné příkazy ve vašem kódu.

If-else ve skriptech shellu používáme, když chceme vyhodnotit podmínku a pak se rozhodneme provést jednu sadu mezi dvěma nebo více sadami příkazů pomocí výsledku.

To nám v podstatě umožňuje vybrat odezvu na výsledek, ke kterému se náš podmíněný výraz vyhodnotí.

Jak funguje if-else ve skriptech shellu?

Nyní víme, co je to if-else funkce a proč je důležitá pro každého programátora bez ohledu na jeho doménu. Abychom pochopili if-else ve skriptech shellu, musíme rozdělit fungování podmíněné funkce.

Pojďme se podívat na syntaxi bloku podmínky if-else.

if [condition]
then
   statement1
else
   statement2
fi

Zde máme čtyři klíčová slova, konkrétně if, then, else a fi.

  1. Klíčové slovo if za ním následuje podmínka .
  2. Tato podmínka se vyhodnotí, aby se rozhodlo, který příkaz bude procesorem proveden.
  3. Pokud je podmínka vyhodnotí jako TRUE, procesor provede příkaz(y) následovaný klíčovým slovem then . V syntaxi je uveden jako příkaz1 .
  4. V případě, že podmínka vyhodnotí jako FALSE, procesor provede příkaz(y) následovaný klíčovým slovem else . Toto je označeno jako příkaz2 v syntaxi funkce.

Důležitá věc, kterou je třeba mít na paměti, je, že podobně jako programování v jazyce C i skriptování v shellu rozlišuje velká a malá písmena. Při používání klíčových slov v kódu proto musíte být opatrní.

Jak použít if-else ve skriptu shellu

Je snadné vidět syntaxi funkce a věřit, že víte, jak ji používat. Vždy je ale lepší porozumět funkci pomocí příkladů, protože vám pomohou pochopit roli, kterou hrají různé aspekty funkce.

Zde je několik užitečných příkladů if-else ve skriptech shellu, abyste získali lepší představu, jak tento nástroj používat.

Příkaz Popis
&& Logické AND
|| Logické NEBO
0 $ Argument 0, tj. příkaz, který se používá ke spuštění skriptu
1 $ První argument (změňte číslo pro přístup k dalším argumentům)
-eq Kontrola rovnosti
-ne Kontrola nerovnosti
-lt Méně než
-le Menší než nebo rovno
-gt Větší než
-ge Větší než nebo rovno

1. Pomocí if-else zkontrolujte, zda se dvě čísla rovnají

Když se pokoušíte porozumět fungování funkce jako if-else ve skriptu shellu, je dobré začít věci jednoduše. Zde inicializujeme dvě proměnné a a b, poté pomocí funkce if-else zkontrolujeme, zda jsou tyto dvě proměnné stejné. Skript bash by měl pro tento úkol vypadat následovně.

#!/bin/bash
m=1
n=2

if [ $n -eq $m ]
then
        echo "Both variables are the same"
else
        echo "Both variables are different"
fi

Výstup:

Both variables are different

2. Použití if-else k porovnání dvou hodnot

Běžnější použití if-else ve skriptech shellu je pro porovnávání dvou hodnot. Porovnání proměnné s jinou proměnnou nebo pevnou hodnotou pomáhá v různých případech používají nejrůznější programátoři.

Pro tento příklad budeme inicializovat dvě proměnné a pomocí funkce if-else najdeme proměnnou, která je větší než druhá.

#!/bin/bash
a=2
b=7
if [ $a -ge $b ]
then
  echo "The variable 'a' is greater than the variable 'b'."
else
  echo "The variable 'b' is greater than the variable 'a'."
fi

Výstup:

The variable 'b' is greater than the variable 'a'.

3. Použití if-else ke kontrole, zda je číslo sudé

Někdy se setkáváme se situacemi, kdy se potřebujeme zabývat a rozlišovat mezi sudými a lichými čísly. To lze provést pomocí if-else ve skriptech shellu, pokud použijeme operátor modulus.

Modulový operátor dělí číslo dělitelem a vrací zbytek.

Protože víme, že všechna sudá čísla jsou násobkem 2, můžeme pomocí následujícího shellového skriptu zkontrolovat, zda je číslo sudé nebo liché.

#!/bin/bash
n=10
if [ $((n%2))==0 ]
then
  echo "The number is even."
else
  echo "The number is odd."
fi

Výstup:

The number is even

Jak vidíte, část podmínky jsme uzavřeli do dvojitých závorek. Je to proto, že potřebujeme, aby byla operace modulu provedena před kontrolou podmínky.

Také uzavření do dvojitých závorek spustí příkazy ve stylu C, což vám umožní zpracovat některé příkazy ve stylu C v bash skriptech.

4. Použití if-else jako jednoduchou výzvu k zadání hesla

Funkce if-else je známá svou všestranností a rozsahem použití. V tomto příkladu použijeme if-else ve skriptu shellu k vytvoření rozhraní pro výzvu k zadání hesla.

Za tímto účelem požádáme uživatele o zadání hesla a jeho uložení do proměnné pass.

Pokud se shoduje s předdefinovaným heslem, což je v tomto příkladu ‚heslo‘, uživatel dostane výstup jako -“Heslo je správné“.

Jinak shellový skript řekne uživateli, že heslo bylo nesprávné, a požádá ho, aby to zkusil znovu.

#!/bin/bash
echo "Enter password"
read pass
if [ $pass="password" ]
then
  echo "The password is correct."
else
  echo "The password is incorrect, try again."
fi

Závěr

Funkce if-else ve skriptu shellu je důležitým přínosem pro programátory shellu. Je to nejlepší nástroj, který můžete použít, když potřebujete provést sadu příkazů na základě předem definovaných podmínek.

Blok if-else je jednou, ne-li nejpodstatnější částí podmíněného programování. Regulací provádění konkrétních příkazů nejen zefektivníte svůj kód, ale také ušetříte drahocenný čas, který by procesor mohl plýtvat prováděním příkazů, které jsou pro konkrétní případ zbytečné.

Doufáme, že vám tento tutoriál pomohl pochopit, jak používat funkci if-else. Pokud máte nějaké dotazy, zpětnou vazbu nebo návrhy, neváhejte se na nás obrátit v komentářích níže.


Linux
  1. Jak používat vstupy ve skriptech shellu

  2. Jak používat booleovské hodnoty v rybí skořápce?

  3. Co jsou Shell Scripts? Jak vytvořit Shell skripty?

  1. Jak zrušit kořenová oprávnění ve skriptech Shell?

  2. Jak otestovat shodu skriptů Shell s Posix?

  3. Jak spouštět skripty Pythonu ze shellu

  1. Jak zopakovat nový řádek ve skriptech Bash Shell

  2. Jak používat aliasy shellu v Linuxu

  3. Jak používat příkaz su přes adb shell?