Как получить в сценарии Bash простое имя текущего выпуска Debian или Ubuntu в нижнем регистре, например стрейч, джесси, ксениал, хитрый?
Это доступно в /etc/os-release
, но это несовместимо между Ubuntu и Debian. Документация не очень конкретно о том, как его использовать.
. /etc/os-release
NAME=$VERSION_CODENAME
if [ -z "$NAME" ]; then
NAME=$(echo $VERSION | sed -rn 's|.+\((.+)\).+|\1|p')
fi
Это также доступно в команде lsb_release
, который при установке не требует разбора:
NAME=$(lsb_release --codename --short)
Наконец, его можно получить непосредственно из файла с исходным кодом с помощью тяжелого анализа.
NAME=$(sed -rn 's|^deb\s+\S+\s+(\w+)\s+main.*$|\1|p' /etc/apt/sources.list | head -n 1)