Patrick Asked: 2018-03-16 04:45:38 +0800 CST2018-03-16 04:45:38 +0800 CST 2018-03-16 04:45:38 +0800 CST 在 AIX 上使用 script 命令安装脚本 772 我的软件有一个安装脚本,我需要它在 Linux 和 AIX 上运行。 在 Linux 上,我可以使用这样的包装器myinstaller.ksh: #!/usr/bin/ksh script -c myrealinstaller.ksh /var/log/myinstaller.log 但在 AIXscript 上不支持该-c选项。 如何myrealinstaller.ksh在脚本创建的分叉外壳中运行我的? scripting ksh 1 个回答 Voted Best Answer Jeff Schaller 2018-03-16T05:38:01+08:002018-03-16T05:38:01+08:00 您可以增强包装脚本以检测操作系统;如果它在 Linux 上运行,则执行script -c ...,但如果它在 AIX 上运行,则为 script-shell 提供一个仅运行您的安装程序的覆盖配置文件,然后退出: $ 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 我调整了脚本和日志的路径以在本地对其进行测试。其他涉及的因素是: 设置ENV为指向我们调用的覆盖配置文件script 打电话script让它-q安静一点 重要的是,在调用真正的安装程序期间取消设置 ENV,这样我们就不会无限循环 告诉覆盖的配置文件在安装程序完成后立即退出 使用以下示例 myrealinstaller.ksh: #!/bin/ksh echo Hi, I am the real installer ./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.
您可以增强包装脚本以检测操作系统;如果它在 Linux 上运行,则执行
script -c ...
,但如果它在 AIX 上运行,则为 script-shell 提供一个仅运行您的安装程序的覆盖配置文件,然后退出:我调整了脚本和日志的路径以在本地对其进行测试。其他涉及的因素是:
ENV
为指向我们调用的覆盖配置文件script
script
让它-q
安静一点使用以下示例 myrealinstaller.ksh:
./var/log/myinstaller.log 的内容是: