Hướng dẫn xác định tên OS Linux và phiên bản OS bằng bash shell | Chào các bạn, hôm nay chúng ta sẽ điểm qua một bài note nhỏ về việc code bằng bash shell. Với nội dung “làm thế nào để xác định tên OS Linux phổ biến như CentOS, Ubuntu, Debian và xác định thông tin phiên bản OS“.
Đầu tiên ta cần lưu ý các file chứa thông tin tên OS
– CentOS : /etc/redhat-release
– Ubuntu : /etc/lsb_release
– Debian : /etc/debian_version
Kế đến là lệnh có thể hỗ trợ hiển thị tên OS và phiên bản OS.
– CentOS: rpm
– Ubuntu/Debian: lsb_release
Và đây là code mà mình đã code thường được tái sử dụng trong các bash shell script khác nhau của cá nhân. Các bạn có thể tham khảo, vì có khi bạn có cách code hay hơn thì sao ;).
+ Link Code Github: https://github.com/cuongquach/my-bash-shell-collection/blob/master/os/check-os-version.sh
#!/bin/bash OS_DISTRO="unknown" OS_DISTRO_VER="unknown" # Check OS Distro and Version if [[ -f /etc/redhat-release ]];then OS_DISTRO="Centos" OS_DISTRO_VER=$(grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release) elif [[ -f /etc/lsb-release ]]; then OS_DISTRO="Ubuntu" OS_DISTRO_VER="$(grep "DISTRIB_RELEASE" /etc/lsb-release | awk -F'=' '{print $2}' | sed 's/[[:blank:]]//g')" if [[ -z ${OS_DISTRO_VER} ]] || [[ ${OS_DISTRO_VER} == "" ]];then OS_DISTRO_VER=$(lsb_release -a | grep -i "Release" | awk -F':' '{print $2}' | sed 's/[[:blank:]]//g') fi elif [[ -f /etc/debian_version ]]; then OS_DISTRO="Debian" OS_DISTRO_VER="$(cat /etc/debian_version | sed 's/[[:blank:]]//g')" if [[ -z ${OS_DISTRO_VER} ]] || [[ ${OS_DISTRO_VER} == "" ]];then OS_DISTRO_VER=$(lsb_release -a | grep -i "Release" | awk -F':' '{print $2}' | sed 's/[[:blank:]]//g') fi fi echo $OS_DISTRO echo $OS_DISTRO_VER exit 0
Đơn giản phải không nào. Hy vọng hữu ích đối với các bạn khi code bash shell để xác định OS và phiên bản OS nhằm tự động hoá tác vụ.
Nguồn: https://cuongquach.com/