내 소프트웨어에 대한 설치 스크립트가 있고 Linux 및 AIX에서 실행하려면 이 스크립트가 필요합니다.
myinstaller.ksh
Linux에서는 다음과 같은 래퍼를 사용할 수 있습니다 .
#!/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.