Skip to main content

Průvodce pro začátečníky BASH - Srovnání věcí

Stopařův průvodce pro Galaxii Mluvené slovo (Sci fi, Komédie) 1 (Smět 2024)

Stopařův průvodce pro Galaxii Mluvené slovo (Sci fi, Komédie) 1 (Smět 2024)
Anonim
01 z 08

Průvodce pro začátečníky BASH - Srovnání věcí

V předchozí části kurzu BASH jsme se zabývali podmíněnými tvrzeními.

Tento průvodce byl velmi dlouhý, ale skutečně jen ukázal, jak řídit tok logiky. Tato příručka ukazuje různé způsoby porovnání proměnných.

Výše uvedený obrázek ukazuje první příklad v tomto týdnu:

#! / bin / bashname1 = "gary"jméno2 = "bob"pokud "$ name1" = "$ name2"pak echo "názvy odpovídají"jiný echo "jména neodpovídají"fi

Ve výše uvedeném skriptu jsem definoval dvě proměnné nazvané jméno1 a jméno2 a přiřadila jim hodnoty "gary" a "bob". Protože jsou proměnné mezi uvozovkami, nazývají se řetězcovými proměnnými, které se stávají mnohem relevantnějšími, jak pokračuje tutoriál.

Veškerý skript dělá porovnávat hodnotu $ name1 a $ name2 a pokud se shodují s výstupním řetězcem "match names" a pokud nevystupují řetězec "názvy neodpovídají".

Uvozovky kolem proměnných $ name1 a $ name2 jsou důležité, protože pokud hodnota jedné z nich nebyla nastavena, skript bude stále fungovat.

Například pokud $ name1 nebyl nikdy nastaven, pak byste porovnávali "" s "bob". Bez uvozovek byste zůstali s = "bob", což zjevně selže.

Můžete také použít značku! = Pro definici, která se nerovná následujícím způsobem:

pokud "$ name1"! = "$ name2" 02 z 08

Průvodce pro začátečníky k BASH - Porovnání řetězců

Ve výše uvedeném příkladu test porovnává stejné dva řetězce a ptá se otázka, zda gary přijde před bob v abecedě?

Je zřejmé, že odpověď je ne.

Skript představuje méně než operátor (<). Protože méně než operátor je také používán k přesměrování, musíte ho uniknout lomítkem (), protože to znamená méně než proto, že ve výše uvedeném skriptu jsem porovnal "$ name1" <"$ name2".

Opak je menší než je zjevně větší než. Namísto použití <použití >.

Například

pokud "$ name1" > "$ name2" 03 ze dne 08

Průvodce pro začátečníky k BASH - Porovnání řetězců

Chcete-li otestovat, zda má proměnná hodnotu, můžete použít následující test:

pokud -n $ name2

Ve výše uvedeném skriptu jsem ověřil, zda je hodnota $ name2 daná hodnotou a pokud se neobjeví zpráva "Není bob, nikdy se neobjevil bob".

04 ze dne 08

Průvodce pro začátečníky k BASH - Porovnání řetězců

Na minulém snímku jsme pokryli, zda byla proměnná nastavena, nebo ne. Někdy může být proměnná nastavena, ale nemusí mít hodnotu.

Například:

název1 = ""

Chcete-li otestovat, zda má proměnná hodnotu nebo ne (tj. Má délku nula), použijte -z následujícím způsobem:

pokud -z $ název1

Ve výše uvedeném skriptu jsem nastavil $ name1 na řetězec s nulovou délkou a poté jej porovnal pomocí příkazu -z. Pokud $ name1 má nulovou délku, zobrazí se zpráva "gary out for evening".

05 z 08

Průvodce pro začátečníky BASH - Porovnávání čísel

Dosud všechna srovnání byla u řetězců. A co porovnávání čísel?

Výše uvedený skript ukazuje příklad porovnání dvou čísel:

#! / bin / basha = 4b = 5pokud $ a = $ bpak echo "4 = 5"jiný echo "4 není rovno 5"fi

Chcete-li nastavit proměnnou jako číslo, jednoduše ji nastavte bez uvozovek. Potom můžete porovnat čísla se znaménkem rovnosti.

Preferuji však použít následující operátor pro porovnání dvou čísel:

Pokud $ a -eq $ b 06 z 08

Průvodce pro začátečníky BASH - Porovnávání čísel

Pokud chcete porovnat, zda je číslo menší než jiné číslo, můžete použít méně než operátor (<). Stejně jako u řetězců musíte s lomítkem uniknout méně než operátor. ( <).

Lepším způsobem porovnání čísel je místo toho použít následující zápis:

  • Méně než -lt
  • Méně nebo rovné -le
  • Větší než -gt
  • Větší než nebo rovno -ge

Například:

pokud $ a -lt $ bpokud $ a -le $ bpokud $ a -ge $ bpokud $ a -gt $ b 07 z 08

Průvodce pro začátečníky BASH - Porovnávání čísel

Konečně pro tuto příručku, chcete-li otestovat, zda jsou dvě čísla různá, můžete použít společně méně než operátory a větší než operátory (<>) nebo -ne takto:

pokud $ a <> $ bpokud $ a -ne $ b 08 z 08

Průvodce pro začátečníky BASH - Srovnávací operátoři - Shrnutí

Pokud jste vynechali první tři části této příručky, najdete je kliknutím na následující odkazy:

  • Ahoj světe
  • Vstupní parametry
  • Podmínky a proměnné

V další části průvodce budu počítat s aritmetikou.