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

相关文章

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦