Ответы:
Вы правы в том, что oslevel предоставит вам текущую установленную версию, но это не всегда достаточно информации, особенно если вам задают вопрос сотрудники службы поддержки.
# oslevel <--- это даст вам только базовый уровень
Чтобы быть более точным, вы должны использовать следующую команду, которая даст вам дополнительную информацию об уровне технологии, уровне обслуживания и уровне пакета обновления.
# oslevel -s
5300-09-02-0849
Это даст вам
В некоторых старых версиях AIX опция -s недоступна, поэтому вам следует использовать опцию -r, которая сообщит об уровне технологии
надеюсь, это поможет
Майк Шерер
Я просто добавил это в свой ~ / .profile, поэтому сразу вижу версию AIX при входе в систему:
function aixversion {
OSLEVEL=$(oslevel -s)
AIXVERSION=$(echo "scale=1; $(echo $OSLEVEL | cut -d'-' -f1)/1000" | bc)
AIXTL=$(echo $OSLEVEL | cut -d'-' -f2 | bc)
AIXSP=$(echo $OSLEVEL | cut -d'-' -f3 | bc)
echo "AIX ${AIXVERSION} - Technology Level ${AIXTL} - Service Pack ${AIXSP}"
}
aixversion
Пример вывода:
AIX 7.1 - Technology Level 3 - Service Pack 1
Примечание: эта функция совместима как с KSH, так и с BASH, поэтому вместо нее вы можете добавить ~ / .bashrc, если вы являетесь поклонником BASH.
nb2: последние 4 цифры от oslevel - это год и неделя выпуска SP. Меня это не особо волнует, поэтому я оставил это в стороне. Я был достаточно счастлив с версией / TL / SP.
РЕДАКТИРОВАТЬ 2018-02-22 : Я только что предложил эквивалентную, но более короткую реализацию, и больше не зависит bc
и использует awk
вместо cut
& bc
.
Как однострочник:
oslevel -s | awk -F- '{printf "AIX %.1f - Technology Level %d - Service Pack %d\n",$1/1000,$2,$3}'
Выход:
AIX 5.3 - Technology Level 9 - Service Pack 2
В качестве функции оболочки:
aixversion() {
oslevel -s | awk -F- '{printf "AIX %.1f - Technology Level %d - Service Pack %d\n",$1/1000,$2,$3}'
}
aixversion
Выход:
AIX 5.3 - Technology Level 9 - Service Pack 2
Вы можете использовать « uname » с различными вариантами:
$ uname -v
5
$ uname -r
3