Hva er forskjellen mellom bashoperatørene [[VS [VS (VS (((

Hva er forskjellen mellom bashoperatørene [[VS [VS (VS (((
Bash gir flere operatører for å sammenligne verdier, testforhold og utføre matematiske operasjoner. Disse operatørene inkluderer [[, [, (, og ((og kan ofte være forvirrende for nye brukere. Her er en oversikt over de forskjellige operatørene og deres funksjoner.

Doble firkantede parenteser [[]]

[[Og]] brukes til betingede uttrykk i bash. [[Er en avansert versjon av enkelt firkantede parentes [] og brukes til mønstermatching, vanlige uttrykk og avanserte betingede uttrykk. [[Operatøren er kraftigere enn [og er å foretrekke for mange tilfeller.

#!BIN/BASH
String = Linux
if [[$ string == "linux"]]; deretter
ekko "Strengen er Linux"
fi

I den følgende koden brukes operatøren med dobbelt firkantet parentes for å sjekke om verdien på variabelen $ streng er lik strengen “Linux”:

Enkelt firkantede parentes []

[Og] brukes til betingede uttrykk i bash. Det kalles også “Test” -kommandoen. Den enkle firkantede parentesoperatøren [brukes også til betingede uttrykk, men har flere begrensninger enn [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[. Det er nyttig for grunnleggende sammenligninger og tester, for eksempel å sjekke om en fil eksisterer eller om en streng er tom.

#!BIN/BASH
# Definer navnet på filen for å sjekke
fil = "/home/aaliyan/dokumenter/bashfile2.sh "
# Sjekk om filen eksisterer
hvis [-f $ fil]; deretter
ekko "Filen eksisterer"
ellers
ekko "Filen eksisterer ikke"
fi

Dette skriptet sjekker om en fil som heter “Bashfile2.SH ”eksisterer i den respektive katalogen, og hvis filen eksisterer, skriver den ut meldingen“ Filen eksisterer ”til konsollen ellers vil den skrive ut“ Filen eksisterer ikke ”:

Parenteser ()

Parentes -operatøren (brukes til å kjøre kommandoer i et underskallmiljø. Dette betyr at eventuelle endringer som gjøres i miljøet i parentesene ikke påvirker foreldreretten.

#!BIN/BASH
# Endre katalog til/hjemme/bruker/katalog og liste innholdet
(CD/Home/Aaliyan/Documents && ls)

I følgende kode brukes parentesoperatøren til å endre katalogen til/Home/Aaliyan/Documents og kjøre LS -kommandoen innenfor et underskall:

Doble parenteser (())

((Og)) brukes til aritmetisk evaluering, og den støtter mer avanserte funksjoner enn den enkelt parentes -operatøren (for eksempel bitvis operasjoner, nedenfor er et eksempel på bashpt som demonstrerer bruk av doble parenteser:

#!BIN/BASH
# Definere verdiene til a, b og c
a = 7
B = 9
C = 2
# Sjekk om summen av a og b er større enn c
if (($ a + $ b> $ c)); deretter
ekko "summen av A og B er større enn C"
fi

I den følgende koden brukes operatøren med dobbelt parenteser til å sjekke om summen av variablene $ a og $ b er større enn verdien på variabelen $ c:

For ytterligere å forstå forskjellene mellom disse operatørene har jeg gitt en tabell som kan hjelpe deg med å skrive mer effektiv bashode og bruke disse bash -operatørene mer effektivt:

Operatør Hensikt Eksempel
[[uttrykk]] Betingede uttrykk if [[$ string == “Linux”]]; da ekko "Strengen er linux"
[uttrykk] Grunnleggende betingede uttrykk hvis [-f $ fil]; ekko "filen eksisterer"
(Kommando) Kjør kommandoer i et underskallmiljø (CD/Home/User/Directory && LS)
((uttrykk)) Aritmetiske operasjoner if (($ a + $ b> $ c)); ekko da “summen av A og B er større enn C”

Konklusjon

Bash -operatørene [[]], [], () og (()) har forskjellige bruksområder og syntaks. Dobbelt firkantede parentes [[]] -operatøren brukes til mønstermatching og strengsammenligning, mens den enkelt firkantede brakettene [] operatøren brukes til betingede utsagn og filtester. Parentesen () -operatøren brukes til å gruppere kommandoer sammen, og dobbelt parenteser (()) operatør brukes til aritmetisk evaluering. Det er viktig å bruke den aktuelle operatøren for oppgaven for å sikre at bashskriptene dine er nøyaktige og effektive.