根据不同的发行版本进行处理
关于在EC2上根据分发版更改shell脚本处理的问题。
我可以使用/etc/os-release来确定发行版。
我原本打算使用lsb-release,但是在AmazonLinux和CentOS的EC2默认情况下没有安装。
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
NAME="Amazon Linux AMI"
VERSION="2016.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2016.03"
PRETTY_NAME="Amazon Linux AMI 2016.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2016.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
通过检查此文件中的字符串,可以改变处理方式。
RELEASE_FILE=/etc/os-release
if grep -e '^NAME="CentOS' $RELEASE_FILE >/dev/null; then
CentOSの時の処理
elif grep -e '^NAME="Amazon' $RELEASE_FILE >/dev/null; then
Amazon Linuxの時の処理
elif grep -e '^NAME="Ubuntu' $RELEASE_FILE >/dev/null; then
Ubuntuの時の処理
else
その他の処理
fi
如果有更好的方法,请告诉我。