`uname -r`에서 "4.4"를 일치시키는 방법은 무엇입니까?

`uname -r`에서 "4.4"를 일치시키는 방법은 무엇입니까?

의사코드

[ `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

관련 정보