Что я сделал здесь неправильно?
Попытка сопоставить любую строку, содержащую пробелы, строчные, прописные или цифры. Специальные символы тоже были бы хороши, но я думаю, что для этого требуется экранирование определенных символов.
TEST="THIS is a TEST title with some numbers 12345 and special char *&^%$#"
if [[ "$TEST" =~ [^a-zA-Z0-9\ ] ]]; then BLAH; fi
Это, очевидно, только тесты для верхних, нижних, чисел и пробелов. Не работает.
* ОБНОВЛЕНИЕ *
Думаю, я должен был быть более конкретным. Вот реальная строка кода.
if [[ "$TITLE" =~ [^a-zA-Z0-9\ ] ]]; then RETURN="FAIL" && ERROR="ERROR: Title can only contain upper and lowercase letters, numbers, and spaces!"; fi
* ОБНОВЛЕНИЕ *
./anm.sh: line 265: syntax error in conditional expression
./anm.sh: line 265: syntax error near `&*#]'
./anm.sh: line 265: ` if [[ ! "$TITLE" =~ [a-zA-Z0-9 $%^\&*#] ]]; then RETURN="FAIL" && ERROR="ERROR: Title can only contain upper and lowercase letters, numbers, and spaces!"; return; fi'