Как сопоставить «4.4» с `uname -r`?

ПСЕВДОКОД

[ `uname -r` =~ ^4\.4.*$ ] && echo "yes" 

что, однако, не увенчалось успехом во всех случаях. Команда uname -r придает результат как 4.6.0-040600-generic .

4 Solutions collect form web for “Как сопоставить «4.4» с `uname -r`?”

Оператор Bash [ возможно, не тот, который вы ищете; однако [[ поддерживает =~ . Попробуй это:

 [[ $(uname -r) =~ ^4\.4 ]] && echo yes 

В зависимости от вашего варианта использования (например, для нескольких значений) вы можете найти синтаксис «case», который лучше подходит.

 case $(uname -r) in 4.4*) echo 4.4 based kernel found ;; 3.10*) echo 3.10 based kernel found ;; *) echo unknown kernel found esac 

использовать [[ :

 ver=$(cut -d. -f1-2 <(uname -r)) [[ $ver =~ 3.2 ]] && echo "y" 

ИЛИ использовать [ :

 ver=$(cut -d. -f1-2 <(uname -r)) [ $ver == 3.2 ] && echo "y" 

Другой путь:

 case $(uname -r) in (4.4.*) echo yes;; esac 
  • Определить переменную для соответствия шаблону awk из bash
  • / bin / dash: проверьте, является ли $ 1 числом
  • Удалите строку, если регулярное выражение существует только в 1-м столбце каждой строки в файле csv
  • Как правильно избежать этого слова на vim?
  • shell: Оператор = ~ не работает должным образом
  • Диспетчер файлов, который может фильтровать с использованием регулярных выражений
  • идентификация даты awk из входного файла
  • Сопоставьте только буквы ASCII в регулярном выражении, игнорируя умлауты
  • Использование Regex в vim movment
  • Обработка исключений sed с экранированными символами
  • Понимание Escaping
  • Linux и Unix - лучшая ОС в мире.