Jaka jest różnica między operatorami bash [[vs [vs (vs ((

Jaka jest różnica między operatorami bash [[vs [vs (vs ((
Bash zapewnia kilku operatorom porównanie wartości, warunków testowych i wykonywania operacji matematycznych. Operatorzy ci obejmują [[, [, i (i często mogą być mylące dla nowych użytkowników. Oto przegląd różnych operatorów i ich funkcji.

Wsporniki z podwójnym kwadratowym [[]]

[[I]] są używane do wyrażeń warunkowych w BASH. [[Jest zaawansowaną wersją pojedynczych kwadratowych nawiasów [] i jest używana do dopasowywania wzorów, wyrażeń regularnych i zaawansowanych wyrażeń warunkowych. [[Operator jest silniejszy niż [i jest preferowany w wielu przypadkach.

#!kosz/bash
String = Linux
jeśli [[$ string == "Linux"]]; Następnie
echo „String to Linux”
fi

W poniższym kodzie operator nawiasów podwójnych kwadratowych służy do sprawdzenia, czy wartość zmiennej $ ciąg jest równa ciągu „Linux”:

Pojedyncze kwadratowe nawiasy []

[I] są używane do wyrażeń warunkowych w BASH. Nazywa się to również polecenie „test”. Operator jednoczesnego kwadratowego wsporników [jest również używany do wyrażeń warunkowych, ale ma więcej ograniczeń niż [[[. Przydaje się do podstawowych porównań i testów, takich jak sprawdzanie, czy plik istnieje lub czy ciąg jest pusty.

#!kosz/bash
# Zdefiniuj nazwę pliku do sprawdzenia
file = "/home/aaliyan/dokumenty/bashfile2.cii"
# Sprawdź, czy plik istnieje
jeśli [-f $ plik]; Następnie
echo „Plik istnieje”
w przeciwnym razie
echo „Plik nie istnieje”
fi

Ten skrypt sprawdza, czy plik o nazwie „BashFile2.sh ”istnieje w odpowiednim katalogu, a jeśli plik istnieje, drukuje wiadomość„ Plik istnieje ”do konsoli, inaczej wydrukuje„ plik nie istnieje ”:

Nawiasy ()

Operator nawiasów (służy do uruchamiania poleceń w środowisku subshell. Oznacza to, że wszelkie zmiany wprowadzone w środowisku w nawiasach nie wpływają na środowisko powłoki nadrzędnej.

#!kosz/bash
# Zmień katalog na/home/użytkownik/katalog i wymień jego zawartość
(cd/home/aaliyan/dokumenty && ls)

W poniższym kodzie operator nawiasów jest używany do zmiany katalogu na/home/aaliyan/dokumenty i uruchomienie polecenia LS w subshellowie:

Podwójne nawiasy (())

((I)) są używane do oceny arytmetycznej i obsługuje bardziej zaawansowane cechy niż operator samotnych nawiasów (takich jak operacje bitowe, poniżej znajduje się przykład skryptu Bash, który pokazuje użycie podwójnych nawiasów:

#!kosz/bash
# Zdefiniuj wartości A, B i C
A = 7
B = 9
C = 2
# Sprawdź, czy suma a i b jest większa niż c
if (($ a + $ b> $ c)); Następnie
echo „Suma A i B jest większa niż C”
fi

W poniższym kodzie operator podwójnych nawiasów służy do sprawdzenia, czy suma zmiennych $ a i $ b jest większa niż wartość zmiennej $ c:

Aby dalej zrozumieć różnice między tymi operatorami, podałem tabelę, która może pomóc Ci napisać bardziej wydajny kod BASH i bardziej efektywnie korzystać z tych operatorów BASH:

Operator Zamiar Przykład
[[ wyrażenie ]] Wyrażenia warunkowe jeśli [[$ string == „Linux”]]; Następnie echo „String to Linux”
[ wyrażenie ] Podstawowe wyrażenia warunkowe jeśli [-f $ plik]; Następnie echo „Plik istnieje”
( Komenda ) Uruchom polecenia w środowisku subshell (CD/home/user/Directory && ls)
(( wyrażenie )) Działania arytmetyczne if (($ a + $ b> $ c)); Następnie ech „suma A i B jest większa niż C”

Wniosek

Operatorzy bash [[]], [], () i (()) mają różne zastosowania i składni. Operator podwójnego kwadratowego [[]] jest używany do dopasowywania wzorów i porównywania ciągów, podczas gdy operator pojedynczych kwadratowych [] jest używany do instrukcji warunkowych i testów plików. Operator nawiasów () służy do grupowania poleceń razem, a do oceny arytmetycznej używany jest operator podwójnych nawiasów (()). Ważne jest, aby użyć odpowiedniego operatora do danego zadania, aby upewnić się, że skrypty bash są dokładne i wydajne.