伪代码
[ `uname -r` =~ ^4\.4.*$ ] && echo "yes"
然而,这在所有情况下都是不成功的。该uname -r
命令给出类似4.6.0-040600-generic
的输出。
答案1
Bash 运算符[
可能不是您正在寻找的;不过,[[
确实支持=~
。尝试这个:
[[ $(uname -r) =~ ^4\.4 ]] && echo yes
答案2
根据您的用例(例如测试多个值),您可能会发现“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
答案3
使用[[
:
ver=$(cut -d. -f1-2 <(uname -r))
[[ $ver =~ 3.2 ]] && echo "y"
或使用[
:
ver=$(cut -d. -f1-2 <(uname -r))
[ $ver == 3.2 ] && echo "y"
答案4
其他方式:
case $(uname -r) in (4.4.*) echo yes;; esac