你说的 “centos env 怎么兼容脚本”,一般是指在 CentOS 环境下,让脚本(Shell / Python / 旧系统脚本)能够正常运行、兼容不同版本或不同环境。下面按常见场景给你讲清楚。
脚本第一行一定要写对:
#!/bin/bash
CentOS 默认 sh 可能是 bash,但有些最小化系统 sh -> dash,容易出问题。
✅ 推荐:
#!/bin/bash
判断系统版本:
cat /etc/redhat-release
或:
rpm -q centos-release
脚本中兼容写法:
if [ -f /etc/centos-release ]; then
echo "CentOS system"
fi
例如:
iptables、networknftables、nmcli兼容写法:
if command -v nmcli >/dev/null 2>&1; then
nmcli connection show
else
service network restart
fi
#!/usr/bin/env bash
好处:
/bin/bash 绝对路径⚠️ 注意:
env 后面必须是 真实存在的命令#!/usr/bin/env sh # 不一定在所有系统可用
python = Python 2python 不存在,只有 python3✅ 脚本开头:
#!/usr/bin/env python3
不要动系统 Python! 用:
yum install python3
或:
dnf install python3
虚拟环境:
python3 -m venv venv
source venv/bin/activate
set -a
source ./env.conf
set +a
env.conf:
DB_HOST=127.0.0.1
DB_PORT=3306
CentOS 7/8 推荐:
[Service]
EnvironmentFile=/opt/app/env.conf
ExecStart=/opt/app/start.sh
❌ 不要用:
let x=1+1
✅ 用:
x=$((1+1))
❌ 不要假设:
systemctl
存在(CentOS 6 没有)
你可以补充一下:
我可以直接帮你改一段脚本 ✅