#!/bin/sh # Exit immediately if a command exits with a non-zero status set -e # Exit if an undefined variable is referenced set -u # OS Detection UNAME_OS=$(uname -s) case $UNAME_OS in Linux) OS_TYPE=$(. /etc/os-release 2>/dev/null && printf "%s" "$ID" || printf "unknown") ;; Darwin) OS_TYPE='darwin' ;; Unix) OS_TYPE=$(. /etc/os-release 2>/dev/null && printf "%s" "$ID" || printf "unknown") ;; Win32NT) OS_TYPE='windows' ;; *) OS_TYPE='unknown' ;; esac case $OS_TYPE in ubuntu) OS_TYPE_NAME='Ubuntu' ;; debian) OS_TYPE_NAME='Debian' ;; fedora) OS_TYPE_NAME='Fedora' ;; centos) OS_TYPE_NAME='CentOS' ;; rhel) OS_TYPE_NAME='Red Hat Enterprise Linux' ;; alpine) OS_TYPE_NAME='Alpine Linux' ;; arch) OS_TYPE_NAME='Arch Linux' ;; darwin) OS_TYPE_NAME='macOS' ;; windows) OS_TYPE_NAME='Windows' ;; *) OS_TYPE_NAME='Unknown' ;; esac printf '%s\n' "Detected OS Type: $OS_TYPE" printf '%s\n' "OS Name: $OS_TYPE_NAME" # Disk Space Check TOTAL_SPACE_GB=$(df -k -P '/' 2>/dev/null | awk 'NR==2 {print int($2/1048576)}' || echo 0) AVAILABLE_SPACE_GB=$(df -k -P '/' 2>/dev/null | awk 'NR==2 {print int($4/1048576)}' || echo 0) printf "\033[36m%s\033[0m\n" "Total Disk Space: $TOTAL_SPACE_GB GB" printf "\033[36m%s\033[0m\n" "Available Disk Space: $AVAILABLE_SPACE_GB GB"