В регулярных выражениях и шаблонах шаблонов имен файлов/оболочек конструкция [...]
соответствует любому одному символу из перечисленных в квадратных скобках. В этих скобках может использоваться ряд именованных стандартных символов классов символов . Одним из них является [:space:]
, который соответствует пробельным символам (, например \s
в регулярных выражениях Perl ). См., например. Сопоставление шаблонов в руководстве по Bash
Таким образом, [[:space:]]
является частью регулярного выражения или сопоставления с образцом, которое соответствует только пробелам.
. соответствие шаблону (стандартная оболочка, а не специфичная для Bash -):
case $var in
*[[:space:]]*) echo "'$var' contains whitespace";;
esac
или регулярное выражение (Bash):
if [[ $var =~ [[:space:]] ]]; then
echo "'$var' contains whitespace"
fi
Заметьте, что даже несмотря на то, что скобочные выражения [...]
работают одинаково в регулярных выражениях и шаблонах оболочки, они, как правило, очень не неодинаковы.(case
и [[ string == pattern ]]
используют сопоставление с образцом, [[ string =~ regex ]]
использует регулярные выражения.)
Регулярные выражения также не зависят -от оболочки, они используются, например, в. awk
и sed
и описаны, например, в. справочная страница Linuxregex(7)
Только что я обновил пакет, и эти ошибки больше не появлялись, и ядро было обновлено:
Linux rodrigo-linux 5.11.21-300.fc34.x86_64 #1 SMP Fri May 14 17:43:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
К:
Linux linux 5.12.9-300.fc34.x86_64 #1 SMP Thu Jun 3 13:51:40 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux