Jak sprawdzić, czy ciąg nie jest albo pusty, ani przestrzeni w skrypcie powłoki

Jak sprawdzić, czy ciąg nie jest albo pusty, ani przestrzeni w skrypcie powłoki
W składzie skorupy ważne jest, aby sprawdzić, czy ciąg jest pusty, czy zawiera tylko przestrzenie przed wykonywaniem na nim operacji. Wynika to z faktu, że wykonywanie operacji na pustym lub tylko przestrzeni może prowadzić do nieoczekiwanych rezultat.

Jak sprawdzić, czy ciąg nie jest albo pusty, ani przestrzeni w skrypcie powłoki

Aby sprawdzić, czy łańcuch nie jest ani pusty, ani nie zawiera spacji w skrypcie powłoki, możesz użyć dwóch następujących metod:

  • Używanie operatorów -n i -z
  • Korzystanie z wyrażeń regularnych

Metoda 1: Za pomocą operatorów -n i -z

Operator -N sprawdza, czy długość łańcucha jest większa niż zero, podczas gdy operator -Z sprawdza, czy długość łańcucha wynosi zero. Możemy użyć tych operatorów w kombinacji, aby sprawdzić, czy ciąg nie jest albo pusty, ani przestrzeni w skrypcie powłoki. Oto przykład:

#!/bin/bash
string = "Hello Linux"
if [-n "$ string"] && [-z "$ (echo $ String | tr -d '[: space:]')"]
Następnie
echo „Sznurek jest pusty lub zawiera tylko przestrzenie."
w przeciwnym razie
echo „Ciąg nie jest ani pusty, ani nie zawiera tylko przestrzeni."
fi

W tym przykładzie najpierw sprawdzamy, czy długość łańcucha jest większa niż zero za pomocą operatora -N. Następnie usuwamy wszystkie przestrzenie z łańcucha za pomocą tr polecenie i sprawdź, czy długość powstałego ciągu wynosi zero za pomocą operatora -Z. Jeśli oba warunki są prawdziwe, możemy stwierdzić, że ciąg nie jest ani pusty, ani nie zawiera tylko przestrzeni.

Metoda 2: Korzystanie z wyrażeń regularnych

Możemy również użyć wyrażeń regularnych, aby sprawdzić, czy ciąg nie jest albo pusty, ani przestrzeni w skrypcie powłoki. Oto przykład:

#!/bin/bash
string = "Hello Linux"
Jeśli [["$ String" = ~ ^[: Space:]]*$]]
Następnie
echo „Sznurek jest pusty lub zawiera tylko przestrzenie."
w przeciwnym razie
echo „Ciąg nie jest ani pusty, ani nie zawiera tylko przestrzeni."
fi

W tym przykładzie używamy operatora = ~, aby dopasować ciąg do wyrażenia regularnego ^[[: Space:]]*$, który pasuje do zera lub więcej przestrzeni na początku i na końcu łańcucha. Jeśli ciąg pasuje do tego wyrażenia regularnego, możemy stwierdzić, że jest albo pusty lub zawiera tylko przestrzenie.

Wniosek

W składzie skorupy ważne jest, aby sprawdzić, czy ciąg nie jest pusty, ani nie zawiera tylko przestrzeni przed wykonywaniem na nim żadnych operacji. Omówiliśmy dwie metody wykonania tej kontroli: za pomocą operatorów -N/-Z i wyrażenia regularne. Korzystając z tych metod, możemy upewnić się, że nasze skłonki prawidłowo obsługują ciągi i uniknąć nieoczekiwanych błędów.