Mooc Maîtriser le shell Bash - le Grand direct - Posez vos questions sur FUN
Cuprins:
- Operatori de comparație
- Verificați dacă o șir conține o substrat
- Verificați dacă o șir este gol
- Compararea șirurilor cu operatorul de caz
- Comparație lexicografică
- Concluzie
Când scrieți scripturi Bash, va trebui să comparați adesea două șiruri pentru a verifica dacă sunt egale sau nu. Două șiruri sunt egale atunci când au aceeași lungime și conțin aceeași secvență de caractere.
Acest tutorial descrie cum puteți compara șirurile în Bash.
Operatori de comparație
Operatorii de comparație sunt operatori care compară valori și returnează adevărat sau fals. Când comparați șiruri în Bash, puteți utiliza următorii operatori:
-
string1 = string2șistring1 == string2- Operatorul de egalitate returnează adevărat dacă operanțele sunt egale.- Folosiți
=operatorul cutest; then echo "Strings are equal." else echo "Strings are not equal." fi; then echo "Strings are equal." else echo "Strings are not equal." fiCând scriptul este executat, acesta va imprima următoarea ieșire.
Strings are equal.Iată un alt script care preia intrarea de la utilizator și compară șirurile date. În acest exemplu, vom folosi
]; then echo "Strings are equal." else echo "Strings are not equal." fi]; then echo "Strings are equal." else echo "Strings are not equal." fiRulați scriptul și introduceți șirurile când vi se solicită:
Enter first string: Linuxize Enter second string: Ubuntu Strings are not equal.Puteți utiliza, de asemenea, logica și
&&și sau||pentru a compara șiruri:] && echo "Equal" || echo "Not equal"Verificați dacă o șir conține o substrat
Există mai multe modalități de a verifica dacă un șir conține o substrat.
O abordare este de a utiliza încercuirea substratului cu simboluri asterisc
*ceea ce înseamnă că potrivim toate caracterele.#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fiScriptul va ecua următoarele:
It's there.O altă opțiune este utilizarea operatorului regex
=~așa cum se arată mai jos:#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fiPerioada urmată de un asterisc
.*potrivește cu zero sau mai multe apariții cu orice caracter, cu excepția unui caracter newline.Verificați dacă o șir este gol
Destul de des, va trebui să verificați dacă o variabilă este un șir gol sau nu. Puteți face acest lucru folosind operatorii
-nși-z.#!/bin/bash VAR='' if]; then echo "String is empty." fiString is empty.#!/bin/bash VAR='Linuxize' if]; then echo "String is not empty." fiCompararea șirurilor cu operatorul de caz
În loc să folosiți operatorii de testare, puteți folosi instrucțiunea de caz pentru a compara șiruri:
#!/bin/bash VAR="Arch Linux" case $VAR in "Arch Linux") echo -n "Linuxize matched";; Fedora | CentOS) echo -n "Red Hat";; esacComparație lexicografică
Comparația lexicografică este o operație în care două șiruri sunt comparate alfabetic prin compararea caracterelor dintr-un șir secvențial de la stânga la dreapta. Acest tip de comparație este rar utilizat.
Următoarele scripturi compară două șiruri lexicografic:
#!/bin/bash VAR1="Linuxize" VAR2="Ubuntu" if]; then echo "${VAR1} is lexicographically greater then ${VAR2}." elif]; then echo "${VAR2} is lexicographically greater than ${VAR1}." else echo "Strings are equal" fiScriptul va scoate următoarele:
Ubuntu is lexicographically greater than Linuxize.Concluzie
Compararea șirului este una dintre cele mai de bază și frecvent utilizate operațiuni în scripturile Bash. După citirea acestui tutorial, ar trebui să înțelegeți cum să comparați șirurile în Bash. Puteți verifica, de asemenea, ghidul nostru despre concatenarea șirului.
terminalul bash
- Folosiți
Surface Pro vs lumea: Cât de mult poți obține PC-ul pentru 1000 de dolari? un procesor complet cu laptop, un sistem de operare complet pentru laptop și un preț complet pentru laptop. Dar cum se compară cu cele mai bune notebook-uri de $ 1000?
Se pare că pot fi înșelătoare, și asta este cu siguranță cazul tabletei Microsoft Surface Pro. La prima vedere, Suprafața Pro pare puțin diferită de suprafața RT. Mai gros, sigur, dar o ocazională o dată-peste ar putea să lipsească acel detaliu, și altfel imita dimensiunea și estetica lui ARM-predecesorul său.
Alexa este competitivă, Quantcast, Nielsen? De ce site-urile de sfaturi de blogging au un grad mai bun de Alexa? Cum compară acest lucru comparativ cu Google Analytics?
Majoritatea bloggerilor, agenților de publicitate și webmasterilor doresc întotdeauna să știe traficul generat de site-ul web. În timp ce Google Analytics este considerat printre cele mai bune, faptul că puteți dezactiva urmărirea acestuia dezactivând javascript în browserul dvs., face ca Google Analytics să afișeze statisticile ușor pe partea inferioară.
Cum se compară două documente în MS word 2007 sau 2010
Aflați cum puteți compara rapid două documente în MS Word 2007 sau 2010.







