Главная > unix > Дотфайлы для bash 3.x+

Дотфайлы для bash 3.x+

7 марта 2010 vagabond 1056 просмотров К комментариям

Пару недель назад посетило меня вдохновение переписать свой комплект дотфайлов таким образом, чтобы он нормально работал в разных unix системах. По работе приходится использовать FreeeBSD, HP-UX, AIX, Fedora, RHEL да еще и под разные платформы (x86, x86-64, ia64, ppc), серверов много, так что еще одной задачей, кроме оптимизации, был вывод версии ОС, архитектуры и, желательно, названия дистрибутива для linux’ов.

Вывод названия дистрибутива для linux – задача нетривиальная. Многие linux’ы имеют в поставке утилиту lsb_release, которая все чудно показывает, но многие не имеют… Другой метод

cat /proc/version

тоже не подходит, т.к., например Fedora о себе сообщает примерно следующее:

Linux version 2.6.27.15-170.2.24.fc10.i686 (mockbuild@x86-5.fedora.phx.redhat.com) (gcc version 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC) ) #1 SMP Wed Feb 11 23:58:12 EST 2009

что правильно, но поставленной задачи не решает, т.к. не видно что это Fedora. Кстати, на Fedora можно поставить пакет redhat-lsb и в ней появится утилита lsb_release.

Есть еще метод

cat /etc/*-release

который сложно автоматизировать, т.к. в некоторых linux’ах таких файлов несколько, причем некоторые из них симлинки…

В результате я поступил следующим образом:

if [ -x /usr/bin/lsb_release ]; then
        OSName=`/usr/bin/lsb_release -ds |tr -d '"'`
else
        OSName=`find /etc/*-release -type f -exec cat {} \; 2>/dev/null || uname -sr`
fi

что на обычном языке означает – если есть утилита lsb_release, то берем ее вывод, иначе пытаемся вывести версию ОС из файла /etc/*-release, игнорируя симлинки и если таких файлов нет, то используем вывод команды uname.

Вот что получается в итоге:

FreeBSD

FreeBSD 7.0-STABLE, i386

Linux с lsb_release

Ubuntu 9.04, x86_64
Red Hat Enterprise Linux Server release 5.4 (Tikanga), ppc64

Linux без lsb_release

Fedora release 12 (Constantine), x86_64

HP-UX

HP-UX B.11.23, ia64

Желающие могут скачать мои дотфайлы:
bash_profile .bash_profile, v1.2, 1.55 KB - скачано 124 раз.
bashrc .bashrc, v1.2, 1.39 KB - скачано 149 раз.

VN:F [1.9.0_1079]
Rating: 0.0/10 (0 votes cast)
Категории:unix Метки:, , ,

Spam Protection by WP-SpamFree