Z dokumentacji bash :
(list)lista jest wykonywana w środowisku podpowłoki (patrz ŚRODOWISKO WYKONYWANIA POLECEŃ poniżej). Zmienne przypisania i wbudowane polecenia, które wpływają na środowisko powłoki, nie pozostają aktywne po zakończeniu polecenia. Status powrotu to status wyjścia z listy.
Innymi słowy, upewniasz się, że cokolwiek dzieje się na „liście” (jak a cd), nie ma wpływu poza (i ). Jedyną rzeczą, która będzie przeciekać jest kod zakończenia ostatniego polecenia lub z set -epierwszego polecenia, który generuje błąd (inne niż kilka, takich jak if, whileitp)
((expression))Wyrażenie ocenia się zgodnie z zasadami opisanymi poniżej w części OCENA ARYTETYCZNA. Jeśli wartość wyrażenia jest różna od zera, zwracanym statusem jest 0; w przeciwnym razie zwracany jest status 1. Jest to dokładnie równoważne z wyrażeniem „wyrażenie”.
To rozszerzenie bash pozwala na matematykę. Jest to nieco podobne do używania exprbez wszystkich ograniczeń expr(takich jak wszędzie spacje, ucieczka *itp.)
[[ expression ]]Zwraca status 0 lub 1 w zależności od oceny wyrażenia warunkowego. Wyrażenia składają się z liczb podstawowych opisanych poniżej w części WYRAŻENIA WARUNKOWE. Dzielenie wyrazów i interpretacja nazw ścieżek nie są wykonywane na słowach pomiędzy [[a]]; Wykonywane jest interpretacja tyldy, interpretacja parametrów i zmiennych, interpretacja arytmetyczna, podstawianie poleceń, podstawianie procesów i usuwanie cytatów. Operatory warunkowe, takie jak -f, muszą być niecytowane, aby można je było uznać za podstawowe.
W przypadku użycia z [[, operatory <i> sortują leksykograficznie przy użyciu bieżących ustawień regionalnych.
To oferuje zaawansowany test do porównywania ciągów, liczb i plików, trochę jak testoferty, ale bardziej wydajny.
[ expr ]Zwraca status 0 (prawda) lub 1 (fałsz) w zależności od oceny wyrażenia warunkowego wyraż. Każdy operator i oper musi być osobnym argumentem. Wyrażenia składają się z liczb podstawowych opisanych powyżej w części WYRAŻENIA WARUNKOWE. test nie akceptuje żadnych opcji, ani nie przyjmuje i ignoruje argumentu - jako oznaczającego koniec opcji.
[...]
Ten dzwoni test. W rzeczywistości w dawnych czasach [istniał symboliczny link do test. Działa tak samo i masz te same ograniczenia. Ponieważ plik binarny zna nazwę, z którą został uruchomiony, program testowy może analizować parametry, dopóki nie znajdzie parametru ]. Zabawne sztuczki uniksowe.
Należy pamiętać, że w przypadku bash, [i testsą wbudowane funkcje (jak wspomniano w komentarzu), jeszcze dość dużo obowiązują te same ograniczenia.