Відповіді:
Ви правильні в тому, що oslevel надасть вам поточну встановлену версію, але це не завжди достатньо інформації, особливо якщо вам задають питання обслуговуючий персонал.
# oslevel <--- це дасть лише базовий рівень
Для точності слід скористатися наступною командою, яка надасть додаткову інформацію про рівень технології, рівень обслуговування та рівень пакета обслуговування.
# oslevel -s
5300-09-02-0849
Це вам дасть
У деяких старих версіях AIX параметр -s недоступний, у якому cas ви повинні використовувати опцію -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
nb: Ця функція сумісна як з KSH, так і з BASH, тому ви можете поставити замість ~ / .bashrc, якщо ви любитель BASH.
nb2: Останні чотири цифри від oslevel - це рік і тиждень виходу SP. Мені це особливо не подобається, тому я його опустив. Я був досить задоволений версією / TL / SP.
EDIT 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