의사코드
[ `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