tr - Transform, Replace and Remove specific characters from strings | #10 Practical Bash
Innholdsfortegnelse:
- Sammenligningsoperatører
- Sjekk om en streng inneholder en underlagsstreng
- Sjekk om en streng er tom
- Sammenligning av strenger med saksoperatøren
- Leksikografisk sammenligning
- Konklusjon
Når du skriver Bash-skript, vil du ofte måtte sammenligne to strenger for å sjekke om de er like eller ikke. To strenger er like når de har samme lengde og inneholder samme sekvens med tegn.
Denne veiledningen beskriver hvordan du sammenligner strengene i Bash.
Sammenligningsoperatører
Sammenligningsoperatører er operatører som sammenligner verdier og returnerer sant eller usant. Når du sammenligner strenger i Bash, kan du bruke følgende operatører:
-
string1 = string2
ogstring1 == string2
-string1 == string2
returnerer sann hvis operandene er like.- Bruk
=
operatøren medtest
; then echo "Strings are equal." else echo "Strings are not equal." fi
; then echo "Strings are equal." else echo "Strings are not equal." fi
Når skriptet kjøres, vil det skrive ut følgende utdata.
Strings are equal.
Her er et annet skript som tar innspillene fra brukeren og sammenligner de gitte strengene. I dette eksemplet vil vi bruke
]; then echo "Strings are equal." else echo "Strings are not equal." fi
]; then echo "Strings are equal." else echo "Strings are not equal." fi
Kjør skriptet og skriv inn strengene når du blir bedt om det:
Enter first string: Linuxize Enter second string: Ubuntu Strings are not equal.
Du kan også bruke det logiske og
&&
og eller||
å sammenligne strengene:] && echo "Equal" || echo "Not equal"
Sjekk om en streng inneholder en underlagsstreng
Det er flere måter å sjekke om en streng inneholder en substring.
En tilnærming er å bruke surround substring med asterisk symboler
*
som betyr samsvarer med alle tegn.#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi
Skriptet vil gjenskape følgende:
It's there.
Et annet alternativ er å bruke regex operator
=~
som vist nedenfor:#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi
Perioden etterfulgt av en stjerne
.*
Samsvarer med null eller flere forekommer et hvilket som helst tegn bortsett fra et nylinjetegn.Sjekk om en streng er tom
Ganske ofte må du også sjekke om en variabel er en tom streng eller ikke. Du kan gjøre dette ved å bruke operatørene
-n
og-z
.#!/bin/bash VAR='' if]; then echo "String is empty." fi
String is empty.
#!/bin/bash VAR='Linuxize' if]; then echo "String is not empty." fi
Sammenligning av strenger med saksoperatøren
I stedet for å bruke testoperatørene kan du også bruke saksuttalelsen til å sammenligne strenger:
#!/bin/bash VAR="Arch Linux" case $VAR in "Arch Linux") echo -n "Linuxize matched";; Fedora | CentOS) echo -n "Red Hat";; esac
Leksikografisk sammenligning
Leksikografisk sammenligning er en operasjon der to strenger sammenlignes alfabetisk ved å sammenligne tegnene i en streng sekvensielt fra venstre mot høyre. Denne typen sammenligning brukes sjelden.
Følgende skript sammenligner to strenger leksikografisk:
#!/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" fi
Skriptet vil sende ut følgende:
Ubuntu is lexicographically greater than Linuxize.
Konklusjon
Sammenligning av streng er en av de mest grunnleggende og ofte brukte operasjonene i Bash-scripting. Etter å ha lest denne opplæringen, bør du ha en god forståelse av hvordan du sammenligner strengene i Bash. Du kan også sjekke guiden vår om sammenkobling av streng.
bash terminal
- Bruk
Chat-applinje Lanserer sikkerhetsveiledning for tenåringer etter strenger av hendelser

Linje, chat-appen som eksploderer i popularitet i Japan og andre asiatiske land, har utgitt en elektronisk sikkerhetsguide for tenåringer etter en rekke hendelser der den ble brukt til ondsinnet rettferdighet mot unge kvinner.
En helt gratis vpn-tjeneste for Android, uten strenger festet

Vi har sett høyt og lavt for å finne en flott VPN-tjeneste for Android som ikke bare er helt gratis, men som også har svært få annonser. Verdt å prøve!
Hvordan konvertere strenger til heltall i python

Ofte når du skriver Python-kode, trenger du å konvertere en datatype til en annen. I Python kan du konvertere en streng til heltall ved å bruke den innebygde int () -funksjonen.