AIX にスクリプトをインストールするには、script コマンドを使用します。

AIX にスクリプトをインストールするには、script コマンドを使用します。

私のソフトウェア用のインストールスクリプトがあり、LinuxとAIXで実行するにはこのスクリプトが必要です。

myinstaller.kshLinuxでは、次のラッパーを使用できます。

#!/usr/bin/ksh
script -c myrealinstaller.ksh /var/log/myinstaller.log

しかし、AIXではscript この-cオプションはサポートされていません

myrealinstaller.kshスクリプトで生成された分岐シェルで私のプログラムをどのように実行しますか?

答え1

オペレーティングシステムを検出するようにラッパースクリプトを拡張できます。 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.

関連情報