Podstawy programowania w sliellu 359
Wyrażenia testowe dla liczb
Wyrażenia testowe w shellu bash - w przeciwieństwie do innych języków oprogramowania - nie korzystają ze standardowych operatorów relacji, jak >, <, >= itp. Zamiast nich stosuje się zestaw' specjalnych opcji, opisanych w tabeli 22.1.
Tabela 22.1. Wyrażenia testowe dla liczb
Wyrażenie |
Prawdziwe jeżeli |
x ~eq y |
x jest równe y |
x -ne y |
x jest różne od y |
x -ge y |
x jest większe lub równe y |
x -gt y |
x jest większe od y |
x -le y |
x jest mniejsze lub równe y |
x -lt y |
x jest mniejsze od y |
Wyrażenia testowe dla łańcuchów
Mając do dyspozycji łańcuchy tekstowe, możemy sprawdzać, czy są one identyczne, nieidentyczne, puste, niepuste, równej długości lub nuli (nie zainicjalizowane). Pamiętać należy, że bash odróżnia łańcuch pusty (zerowej długości) od łańcucha nuli. Tabela 22.2 opisuje wyrażenia testowe dla łańcuchów.
Tabela 22.2. Wyrażenia testowe dla łańcuchów
Wyrażenie |
Praw dziw e jeśli |
-z łańcuch |
łańcuch ma długość równą 0 |
łańcuch |
łańcuch nie jest równy nuli (tzn. został zainicjalizowany) |
-n łańcuch |
łańcuch posiada niezerową długość |
łańcuch! = łańcuc:h2 |
łańcuchl i łańcuch2 są identyczne |
łańcuchl != łańcur.h2 |
łańcuchl i łańcudi2 są nieidentyczne |
Wyrażenia testowe dla plików
Wyrażenia testowa dla plików służą zazwyczaj do określenia, czy dany plik powinien być skopiowany, przesunięty lub skasowany. Istnieje wiele różnych wyrażeń testujących pliki; tabela 22.3 zawiera tylko najczęściej stosowane. Więcej dowiemy się na stronach podręcznika poświęconych shellowi bach oraz wyrażeniu test.