Поэтому я пытаюсь создать исполняемый файл bash, и мне нужно знать номер версии Ubuntu в системе. Все способы, которые я нашел в Интернете, состоят в том lsb_release -r
, что я не могу вывести это в переменную.
Есть ли способ получить текущую версию Ubuntu и сохранить ее как переменную в исполняемом файле оболочки?
command-line
bash
scripts
a.mosallaei
источник
источник
Ответы:
Должен сделать свое дело.
Для числовой части только добавить это:
lsb-release
Файл переменных/usr/bin/lsb_release
скрипт Python Это короткий скрипт, который служит хорошим введением в язык Python. Как уже упоминалось, более короткий способ получить только номер версии - сlsb_release -sr
./etc/lsb-release
Файл определяет переменные окружения с той же информацией , представленнойlsb_release -a
командой:Вы можете включить эти переменные окружения в любое время, используя
. /etc/lsb-release
. Чтобы проверить в своем терминале:источник
Release: 18.04
. Однако есть ли способ просто получить номер? Я хочу иметь возможность использовать эту переменную в функции if / else в сценарии. Цель if / else - загрузить правильную версию моего приложения для дистрибутива Ubuntu.Альтернатива - использовать
/etc/os-release
файл. Это отформатировано как список переменных оболочки:Таким образом, простой способ разбора это просто
source
файл:Чтобы избежать ненужной установки всех этих переменных, вы можете поместить файл в подоболочку , вызвать нужную переменную и выйти из подоболочки:
Кроме того, вы всегда можете просто разобрать файл напрямую:
источник
Команда
lsb_release
поддерживает-s
(или--short
) параметр для вывода только запрашиваемой вами информации, а не заголовка, в котором указано, что это за информация.Чтобы получить только номер версии, достаточно запустить:
Например, на Ubuntu 18.04 LTS, это выводит:
Как и в случае с методом из ответа WinEunuuchs2Unix , все еще разумно использовать подстановку команд, чтобы назначить этот вывод переменной оболочки. Предположим, вы хотите, чтобы
ver
переменная содержала номер выпуска:С
-s
, нет необходимости разобрать число сcut
,sed
,grep
,awk
, более сложными формами расширения параметров , или тому подобными.В этом случае
"
"
кавычки являются необязательными, но я обычно советую указывать расширение параметров и другие расширения оболочки, кроме случаев, когда есть причина этого не делать.источник
Короткие и простые
lsb_release
команды.Только для печати версии
Вывод:
Распечатать описание
Вывод:
О флагах, используемых здесь:
источник