Надеюсь, я правильно понял вашу логику.
Предполагается, что машина не может находиться более чем в одном домене (или зоне, или как вы их называете) одновременно. Если машина не находится в «Домене управления», она продолжает проверять, находится ли она в «Ldom». Если это не так, он продолжает проверять, находится ли он в «локальной зоне». Если ничего не подходит, отображается «Я полностью потерялся».
virtname="$( virtinfo -a | awk '/name/ { print $3 }' )"
myname="$( hostname )"
if [[ "$virtname" == "primary" ]]; then
printf '%s, I am Control Domain\n' "$myname"
ldm list | awk '{ print $1 }'
elif [[ "$virtname" == "$( cat /etc/nodename )" ]]; then
printf '%s, I am Ldom\n' "$myname"
virtinfo -a | grep "Control"
zoneadm list | grep -v "global"
elif [[ "$( /usr/bin/zonename )" != "global" ]]; then
printf '%s, I am in a Local Zone\n' "$myname"
else
printf '%s, I am totally lost\n' "$myname"
fi
Также очевидно, что предполагается, что оболочка понимает [[...]]
. Если это не так, исправить это несложно.
Обратите внимание, что этот код полностью не протестирован, поскольку у меня нет доступа к virtinfo
и т. Д.