Настройка сочетаний клавиш для выполнения команды терминала

POSIXLY:

is_alnum() {
  case $1 in (*[![:alnum:]]*|"") false;; esac
}

Затем:

$ is_alnum 123 && echo yes
yes
$ is_alnum % || echo no
no

mksh - единственная оболочка, потерпевшая неудачу при описанном выше подходе.


Также обратите внимание, что если переменная содержит последовательности байтов, которые не образуют допустимые символы, этот подход не будет работать.

yash работает только с допустимыми символами Юникода, поэтому только он сообщает об ошибке:

$ is_alnum $'A\xe9B'
yash: cannot convert the argument `A�B' into a wide character stringyash: the argument is replaced with an empty string
2
20.04.2016, 16:42
0 ответов

Теги

Похожие вопросы