Uma maneira simples de lidar com isso em sistemas Linux é usar o comando file;
file /etc/timezone
ou
file /etc/sysconfig/clock
No entanto, como você pode estar usando imagens de sistemas UNIX (espero que seu Solaris seja o que eu conheço), pode ser um pouco diferente.
Sem realmente escrever o script para você, aqui está minha opinião sobre isso no pseudo código
get mount
if mount is ext3 ... then assume linux
if exists /etc/timezone
then
check if file is ascii or gz
if ascii then cat the timezone
else
if exists /etc/redhat-release
then
assume redhat
TZ = cat /etc/sysconfig/clock
fi
Sim, é menos que elegante, mas é melhor você me entender. Então você pode fazer algumas suposições no sistema operacional com base na montagem.
O processo seria o mesmo para dizer uma montagem do Solaris, você poderia descobrir onde o arquivo está, usar o comando file para determinar o tipo de arquivo e de lá obter seu conteúdo com cat ou grep ^ TZ
Espero que ajude.