cat kernel-update
#!/bin/bash
# Function to fetch the latest kernel version from kernel.org
get_latest_kernel_version() {
curl -s "https://www.kernel.org/finger_banner" | grep -oP '(?<=The latest stable version of the Linux kernel is:\s{13})\d+\.\d+.\d+'
}
# Function to compare two version numbers
compare_versions() {
local IFS=.
local ver1=($1)
local ver2=($2)
for ((i=0; i<${#ver1[@]} && i<${#ver2[@]}; i++)); do
if ((10#${ver1[i]} > 10#${ver2[i]})); then
echo 1 # Version 1 is greater
return
elif ((10#${ver1[i]} < 10#${ver2[i]})); then
echo -1 # Version 2 is greater
return
fi
done
# If one version has more segments, it is greater
if (( ${#ver1[@]} > ${#ver2[@]} )); then
echo 1 # Version 1 is greater
elif (( ${#ver1[@]} < ${#ver2[@]} )); then
echo -1 # Version 2 is greater
else
echo 0 # Versions are equal
fi
}
# Get the latest kernel version from kernel.org
latest_version=$(get_latest_kernel_version)
if [ -z "$latest_version" ]; then
echo "Error: Unable to retrieve the latest kernel version from kernel.org."
exit 1
fi
echo "Latest kernel version from kernel.org: $latest_version"
# Get the currently installed kernel version
current_version=$(uname -r)
echo "Currently installed kernel version: $current_version"
# Compare the versions
comparison_result=$(compare_versions "$current_version" "$latest_version")
if [ "$comparison_result" -eq 0 ]; then
echo "Your system is up to date. No kernel update available."
elif [ "$comparison_result" -eq 1 ] || [ "$comparison_result" -eq -1 ]; then
echo "A new kernel update is available!"
else
echo "Your installed kernel version is unknown or not a valid version."
fi
Comments
Post a Comment