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

相关文章

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文