How about:
# uring is supported starting with kernel 5.1.x if [ ${k_major} -lt 5 ]; then return 1 elif [ ${k_major} -eq 5 ] && [ ${k_minor} -ge 1 ]; then return 0 elif [ ${k_major} -ge 6 ]; then return 0 else return 1 fi
Example test script: #!/bin/bash
check_kernel_version() { local k_ver=$1 local k_major=$(echo ${k_ver} | cut -d . -f 1) local k_minor=$(echo ${k_ver} | cut -d . -f 2)
# uring is supported starting with kernel 5.1.x if [ ${k_major} -lt 5 ]; then return 1 elif [ ${k_major} -eq 5 ] && [ ${k_minor} -ge 1 ]; then return 0 elif [ ${k_major} -ge 6 ]; then return 0 else return 1 fi }
for k_ver in 5.10.0 5.4.0 5.1.0 4.10.0 4.4.0 6.0.2; do result=0 echo -n "Checking kernel ${k_ver}... " check_kernel_version ${k_ver} || result=$? if [ ${result} -ne 0 ]; then echo "FAIL" else echo "OK" fi done
$ ./check-kernel.sh Checking kernel 5.10.0... OK Checking kernel 5.4.0... OK Checking kernel 5.1.0... OK Checking kernel 4.10.0... FAIL Checking kernel 4.4.0... FAIL Checking kernel 6.0.2... OK
« Back to merge proposal
How about:
# uring is supported starting with kernel 5.1.x
if [ ${k_major} -lt 5 ]; then
return 1
elif [ ${k_major} -eq 5 ] && [ ${k_minor} -ge 1 ]; then
return 0
elif [ ${k_major} -ge 6 ]; then
return 0
else
return 1
fi
Example test script:
#!/bin/bash
check_kernel_ version( ) {
local k_ver=$1
local k_major=$(echo ${k_ver} | cut -d . -f 1)
local k_minor=$(echo ${k_ver} | cut -d . -f 2)
# uring is supported starting with kernel 5.1.x
if [ ${k_major} -lt 5 ]; then
return 1
elif [ ${k_major} -eq 5 ] && [ ${k_minor} -ge 1 ]; then
return 0
elif [ ${k_major} -ge 6 ]; then
return 0
else
return 1
fi
}
for k_ver in 5.10.0 5.4.0 5.1.0 4.10.0 4.4.0 6.0.2; do kernel_ version ${k_ver} || result=$?
result=0
echo -n "Checking kernel ${k_ver}... "
check_
if [ ${result} -ne 0 ]; then
echo "FAIL"
else
echo "OK"
fi
done
$ ./check-kernel.sh
Checking kernel 5.10.0... OK
Checking kernel 5.4.0... OK
Checking kernel 5.1.0... OK
Checking kernel 4.10.0... FAIL
Checking kernel 4.4.0... FAIL
Checking kernel 6.0.2... OK