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í"fiVe 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: 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 Chcete-li otestovat, zda má proměnná hodnotu, můžete použít následující test: 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". 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: Chcete-li otestovat, zda má proměnná hodnotu nebo ne (tj. Má délku nula), použijte -z následujícím způsobem: 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". 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: 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 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: Například: 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 jste vynechali první tři části této příručky, najdete je kliknutím na následující odkazy: V další části průvodce budu počítat s aritmetikou. Průvodce pro začátečníky k BASH - Porovnání řetězců
Průvodce pro začátečníky k BASH - Porovnání řetězců
Průvodce pro začátečníky k BASH - Porovnání řetězců
Průvodce pro začátečníky BASH - Porovnávání čísel
Průvodce pro začátečníky BASH - Porovnávání čísel
Průvodce pro začátečníky BASH - Porovnávání čísel
Průvodce pro začátečníky BASH - Srovnávací operátoři - Shrnutí