Você pode aprimorar seu script de wrapper para detectar o sistema operacional; se ele estiver em execução no Linux, execute script -c ...
, mas se estiver em execução no AIX, forneça ao shell de script um perfil substituído que apenas executa seu instalador e, em seguida, sai:
$ cat myinstaller.ksh
#!/usr/bin/ksh
case $(uname -s) in
(Linux)
script -c myrealinstaller.ksh /var/log/myinstaller.log
;;
(AIX)
printf "ENV= ./myrealinstaller.ksh\nexit\n" > ./installer.profile
trap 'rm -f ./installer.profile' INT
ENV=./installer.profile script -q ./var/log/myinstaller.log
rm ./installer.profile
;;
esac
Eu ajustei os caminhos para o script e os logs para testá-lo localmente. Os outros fatores envolvidos são:
- definindo
ENV
para apontar para o perfil substituído como chamamosscript
- chamando
script
com-q
para acalmar um pouco - importante, desativando ENV durante a chamada para o instalador real, para que não façamos um loop infinitamente
- informando ao perfil substituído para sair assim que o instalador for concluído
Com uma amostra myrealinstaller.ksh de:
#!/bin/ksh
echo Hi, I am the real installer
O conteúdo de ./var/log/myinstaller.log é:
Script command is started on Thu Mar 15 09:34:04 2018.
Hi, I am the real installer
Script command is complete on Thu Mar 15 09:34:04 2018.