Beginnersgids voor BASH - Dingen vergelijken
In het vorige deel van de BASH-tutorial hebben we gekeken naar voorwaardelijke uitspraken.
Die gids was erg lang maar liet alleen maar zien hoe je de stroom van logica kon beheersen. Deze gids toont de verschillende manieren waarop u variabelen kunt vergelijken.
De bovenstaande afbeelding toont het eerste voorbeeld in de gids van deze week:
#! / Bin / bashname1 = "Gary"name2 = "bob"als "$ name1" = "$ name2"dan echo "de namen komen overeen"anders echo "de namen komen niet overeen"fiIn het bovenstaande script heb ik twee variabelen genaamd naam 1 en naam2 gedefinieerd en hun de waarden "gary" en "bob" toegewezen. Omdat de variabelen tussen aanhalingstekens staan, worden ze stringvariabelen genoemd die relevanter worden naarmate de tutorial verdergaat. Alle script doet is de waarde van $ name1 en $ name2 vergelijken en als ze overeenkomen met de uitvoer de string "de namen match" en als ze niet de string "de namen komen niet overeen". De aanhalingstekens rond de $ name1 en $ name2 variabelen zijn belangrijk omdat als de waarde van een van beide niet is ingesteld, het script nog steeds werkt. Als $ name1 bijvoorbeeld nooit is ingesteld, zou u "" vergelijken met "bob". Zonder de aanhalingstekens zou u overblijven met = "bob" wat duidelijk faalt. U kunt ook de! = Notatie gebruiken om niet als volgt te definiëren: In het bovenstaande voorbeeld vergelijkt de test dezelfde twee strings en stelt de vraag of Gary vóór Bob in het alfabet komt? Het antwoord is duidelijk nee. Het script introduceert de minder dan operator (<). Omdat de minder dan operator ook wordt gebruikt voor doorverwijzing, moet je eraan ontsnappen met een schuine streep (), want dit betekent minder dan waarom ik in het bovenstaande script "$ name1" <"$ name2" heb vergeleken. Het tegenovergestelde van minder dan is duidelijk groter dan. In plaats van <gebruik > te gebruiken. Bijvoorbeeld Als u wilt testen of een variabele een waarde heeft, kunt u de volgende test gebruiken: In het bovenstaande script heb ik getest of $ name2 een waarde heeft gekregen en als dat niet het geval is "Er is geen bob, er is nooit een bob weergegeven". Op de vorige dia hebben we besproken of een variabele is ingesteld of niet. Soms is een variabele mogelijk ingesteld, maar heeft deze mogelijk geen waarde. Bijvoorbeeld: Om te testen of een variabele al dan niet een waarde heeft (d.w.z. een lengte heeft van nul), gebruik -z als volgt: In het bovenstaande script heb ik $ name1 ingesteld op een tekenreeks met een lengte nul en vervolgens vergeleken met -z. Als $ name1 nul is, wordt het bericht 'gary is uit voor de avond' weergegeven. Tot dusverre zijn alle vergelijkingen voor snaren geweest. Hoe zit het met het vergelijken van nummers? Het bovenstaande script toont een voorbeeld van het vergelijken van twee getallen: Als u een variabele als een getal wilt instellen, stelt u deze eenvoudig zonder aanhalingstekens in. Je kunt dan de getallen vergelijken met een gelijkteken. Ik geef echter de voorkeur aan de volgende operator om twee getallen te vergelijken: Als u wilt vergelijken of een getal kleiner is dan een ander getal, kunt u de operator <operator> gebruiken. Net als bij strings moet je de minder dan operator met een schuine streep ontsnappen. ( <). Een betere manier om getallen te vergelijken is om in plaats daarvan de volgende notatie te gebruiken: Bijvoorbeeld: Als u tenslotte voor deze handleiding wilt testen of twee getallen verschillend zijn, kunt u de operators kleiner dan en groter dan samen (<>) of -ne als volgt gebruiken: Als je de eerste drie delen van deze gids hebt gemist, kun je ze vinden door op de volgende links te klikken: In het volgende deel van de gids behandel ik de rekenkunde. Beginnersgids voor BASH - Strings vergelijken
Beginnersgids voor BASH - Strings vergelijken
Beginnersgids voor BASH - Strings vergelijken
Beginnershandleiding voor BASH - Nummers vergelijken
Beginnershandleiding voor BASH - Nummers vergelijken
Beginnershandleiding voor BASH - Nummers vergelijken
Beginnersgids voor BASH - Comparison Operators - Samenvatting