Operador bash [
pode não ser o que você está procurando; no entanto, [[
suporta =~
. Tente isto:
[[ $(uname -r) =~ ^4\.4 ]] && echo yes
Pseudocódigo
[ 'uname -r' =~ ^4\.4.*$ ] && echo "yes"
que é, no entanto, mal sucedido em todos os casos.
O comando uname -r
fornece elementos como 4.6.0-040600-generic
como uma saída.
Dependendo do seu caso de uso (por exemplo, testar vários valores), você pode achar a sintaxe "case" mais adequada.
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
use [[
:
ver=$(cut -d. -f1-2 <(uname -r))
[[ $ver =~ 3.2 ]] && echo "y"
OU use [
:
ver=$(cut -d. -f1-2 <(uname -r))
[ $ver == 3.2 ] && echo "y"
Outra maneira:
case $(uname -r) in (4.4.*) echo yes;; esac
Tags bash shell test regular-expression