全球主机交流论坛

标题: 有脚本大佬吗 问问一键通用脚本怎么写 [打印本页]

作者: godkiller321    时间: 2019-10-24 17:50
标题: 有脚本大佬吗 问问一键通用脚本怎么写
比如 centos 和 debian

Centos 是yum
Debian 是 apt

那我写脚本的时候怎么做兼容
作者: kingbad    时间: 2019-10-24 17:52
apt-get install -y yum
作者: godkiller321    时间: 2019-10-24 17:53
kingbad 发表于 2019-10-24 17:52
apt-get install -y yum

你不要骗我

这样写看上去感觉有点蠢
作者: hostloc_user    时间: 2019-10-24 17:53
不要,想太多,就是简单先判断环境,然后根据环境走不同的安装程序,就算你安装了yum,很多程序包的名称不同平台都不一样。
作者: godkiller321    时间: 2019-10-24 17:55
hostloc_user 发表于 2019-10-24 17:53
不要,想太多,就是简单先判断环境,然后根据环境走不同的安装程序,就算你安装了yum,很多程序包的名称不 ...

那就是说 一个脚本要分开写两次

太可怕了
作者: hostloc_user    时间: 2019-10-24 17:56
godkiller321 发表于 2019-10-24 17:55
那就是说 一个脚本要分开写两次

太可怕了

你猜对了,所以很多一键安装脚本,都是要指定环境的
作者: grassroot    时间: 2019-10-24 17:59
uname -a能看awk匹配出来吧
作者: wolfewong    时间: 2019-10-24 17:59
可以直接抄现成的脚本,比如先判断系统:
  1. #检查系统
  2. check_sys(){
  3.         if [[ -f /etc/redhat-release ]]; then
  4.                 release="centos"
  5.         elif cat /etc/issue | grep -q -E -i "debian"; then
  6.                 release="debian"
  7.         elif cat /etc/issue | grep -q -E -i "ubuntu"; then
  8.                 release="ubuntu"
  9.         elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then
  10.                 release="centos"
  11.         elif cat /proc/version | grep -q -E -i "debian"; then
  12.                 release="debian"
  13.         elif cat /proc/version | grep -q -E -i "ubuntu"; then
  14.                 release="ubuntu"
  15.         elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then
  16.                 release="centos"
  17.     fi
  18. }
复制代码

然后根据release变量的值做相应操作
具体参考现有脚本即可

作者: grassroot    时间: 2019-10-24 18:00
godkiller321 发表于 2019-10-24 17:53
你不要骗我

这样写看上去感觉有点蠢

也能执行yum update之后判断上一条命令是否执行成功,成功就是正确的不成功就是别的系统
作者: 似毛非毛    时间: 2019-10-24 18:03
先判断系统类型。然后写对应的执行步骤。我签名里有一个比较简单的一键代码,应该失效了,带注释,可以参考
作者: godkiller321    时间: 2019-10-24 18:16
wolfewong 发表于 2019-10-24 17:59
可以直接抄现成的脚本,比如先判断系统:

然后根据release变量的值做相应操作

大佬牛逼
作者: gaolin    时间: 2019-10-24 21:56
wolfewong 发表于 2019-10-24 17:59
可以直接抄现成的脚本,比如先判断系统:

然后根据release变量的值做相应操作

学习了
作者: gaolin    时间: 2019-10-24 21:59
似毛非毛 发表于 2019-10-24 18:03
先判断系统类型。然后写对应的执行步骤。我签名里有一个比较简单的一键代码,应该失效了,带注释,可以参考 ...

是这个吗?
(Linux+Lighttpd+php+sqlite3+wordpress)(源码带注释)
作者: reidme    时间: 2019-10-24 22:03
wolfewong 发表于 2019-10-24 17:59
可以直接抄现成的脚本,比如先判断系统:

然后根据release变量的值做相应操作

大佬NB
作者: chengtz    时间: 2019-10-24 22:15
啥也不需要 && 就可以
作者: 似毛非毛    时间: 2019-10-24 22:17
gaolin 发表于 2019-10-24 21:59
是这个吗?
(Linux+Lighttpd+php+sqlite3+wordpress)(源码带注释)

是的。有兼容系统的部分。代码不多。
作者: gaolin    时间: 2019-10-24 23:02
似毛非毛 发表于 2019-10-24 22:17
是的。有兼容系统的部分。代码不多。

谢大佬
作者: Ruclinux    时间: 2019-10-25 00:09
其实很简单, 目前主流系统无非是 Redhat和debian两系.
只要判断 /etc/目录下有没有yum.repos.d这个文件夹就可以了,有的话就是yum, 没有的话就是apt
作者: Ruclinux    时间: 2019-10-25 00:23


  1. # !/bin/bash
  2. if [ ! -d "/etc/yum.repos.d/" ];then
  3. echo "Debian OR Ubuntu"
  4. else
  5. echo "Redhat OR Centos"
  6. fi
  7. #判断一个特定的目录即可
复制代码


这样够简单吗?




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4