shell快速读取当前Linux发行版

1. TL;DR

此脚本能在现代主流Linux发行版中正常工作:

#! /bin/bash

if [ -f /etc/os-release ]; then
# 最后一个tr是为了防止可能出现的双引号or引号
cat /etc/os-release | grep "^ID=" | tr -d 'ID=' | tr -d "'\""
else
# 文件不存在,不能正常工作
echo "Unknown distribution! Please offer /etc/os-release file"
fi

2. 如何断定脚本能在大多数主流Linux上正常工作的

任何运行systemd的发行版都会拥有os-release文件。因为systemd强制要求必须包含此文件。

systemd在现代Linux上使用的有多广泛,这不必多说了吧。

3. 相关资料

  1. man os-release

  2. systemd作者,关于os-release文件的论述