Shell脚本编写-猜测当前系统是哪个发行版

2024-04-29 03:28

本文主要是介绍Shell脚本编写-猜测当前系统是哪个发行版,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、编写脚本

       该脚本会确定当前系统中可用的包管理器。同时还以已安装的软件包管理器为指导,猜测当前系统是基于哪个 Linux 发行版。

#!/bin/bash
#检查当前系统的可用包管理器,以安装的软件包管理器为指导,猜测当前的系统是基于哪个Linux发行版
#
##################### 检查 redhat #######################
#
echo " 检查基于红帽的包管理器 "
echo " 应用程序容器... "
#####
if (which rpm &> /dev/null)
thenitem_rpm=1echo " 您有rpm包管理器 "
#
elseitem_rpm=0
#
fi
####
if (which dnf &> /dev/null)
thenitem_dnfyum=1echo " 您有dnf包管理器 "
#
elif (which yum &> /dev/null)
thenitem_dnfyum=1echo " 您有yum包管理器 "
elseitem_dnfyum=0
#
fi
####
if (which flatpak &> /dev/null)
thenitem_flatpak=1echo " 您有flatpak应用程序容器。"
#
elseitem_flatpak=0
#
fi 
####
#脚本会计算出一个分数(redhatscore)。这个分数随后会用于对系统采用的发行版进行猜测
redhatscore=$[$item_rpm + $item_dnfyum + $item_flatpak] #
##################### 检查 Debian #######################
#
echo
echo " 检查基于debian的包管理器 "
echo " 应用程序容器... "
#####
if (which dpkg &> /dev/null)
thenitem_dpkg=1echo " 您有基本的dpkg包管理器 "
#
elseitem_dpkg=0
#
fi
####
if (which apt &> /dev/null)
thenitem_aptaptget=1echo " 您有apt包管理器 "
#
elif (which apt-get &> /dev/null)
thenitem_aptaptget=1echo " 您有apt-get/apt-cache包管理器 "
#
elseitem_aptaptget=0
fi
####
if (which snap &> /dev/null)
thenitem_snap=1echo " 您有snap应用程序容器 "
#
elseitem_snap=0
#
fi
####
#
debianscore=$[$item_dpkg + $item_aptaptget + $item_snap]
#
#
##################### Determine Distro #######################
#
echo
if [ $debianscore -gt $redhatscore ]
thenecho " 您的Linux发行版很可能是基于debian的 "#
elif [ $redhatscore -gt $debianscore ]
thenecho " 您的Linux发行版很可能是基于Red-hat的 "
elseecho " 无法确定Linux发行版 "
fi
#
echo
#
#############################################################
#
exit

2、运行脚本测试!!!

这篇关于Shell脚本编写-猜测当前系统是哪个发行版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944997

相关文章

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.