KSH 스크립트를 KSH 스크립트라고 부르고 싶습니다.
스크립트 1은 다음을 수행합니다.
- 데이터베이스 서버 목록을 반복합니다.
- 쿼리 실행
- 각 데이터베이스 서버에 대한 쿼리 출력을 txt 파일에 추가합니다.
스크립트 2는 다음을 수행합니다.
텍스트 파일의 각 줄을 표시하는 HTML 파일을 만듭니다.
쿼리 결과가 포함된 HTML 파일을 영수증 목록으로 이메일로 보내기
사용법: KSH backup_report.ksh qry_rslt_textfile.txt
(txt 파일에는 각 서버의 쿼리 결과가 포함되어 있음)
다음 구문이 정확합니까?
#! /bin/ksh
< Start of Script 1 Code>
.
.
.
< End of Script 1 Code>
< Start of Script 2 Code - Call Script 2>
/sybase/dba/backup_report.ksh qry_rslt_textfile.txt
<End of Script 2 Code>
답변1
예 - 스크립트에 실행 권한이 있다고 가정하면 원하는 작업이 수행됩니다. 실제로는 두 번째 스크립트를 첫 번째 스크립트의 마지막 명령으로 호출하지만 이로 인해 걱정할 필요가 없는 기술적인 문제가 발생합니다.
답변2
다른 프로그램(또는 스크립트)에서 스크립트를 호출하려면 다음 사항에 유의해야 합니다.
- 스크립트를 찾아야 합니다
- 스크립트에는 실행 권한이 있어야 합니다.
- 스크립트에는 해석기에 대한 힌트가 포함되어야 합니다.
스크립트를 찾고 있어요
확인하다. 스크립트의 전체 경로를 포함했습니다. 또 다른 접근 방식은 스크립트 1 상단의 PATH 변수에 /sybase/dba를 포함시키는 것입니다.
PATH=/sybase/dba:$PATH
올바른 권한
이 스크립트를 실행하려면 스크립트를 실행해야 할 수 있는 모든 사용자 클래스의 실행 권한이 필요합니다.
대부분의 통역사의 경우 실행 권한만으로는 충분하지 않습니다. 선택한 통역사도 다음을 수행할 수 있어야 합니다.읽다스크립트의 코드입니다.
$ ls -l /sybase/dba/backup_report.ksh
-rwxr-x--- 1 Henk sys 805 Apr 3 07:00 /sybase/dba/backup_report.ksh
올바른 통역사
스크립트는 직접 실행되지 않습니다. 커널에는 어떤 인터프리터를 사용할지 알려주는 힌트가 필요합니다. 이는 #!
(해시 스틱) 첫 번째 줄에 표시하고 그 뒤에 통역사의 경로를 표시합니다.
#! /bin/ksh
자신이 살고 있는 곳을 확인 ksh
하고 올바른 경로를 연결하세요.
최종 메모
ksh
또한 현재 ksh
암시적 버전이 ksh93
아직 개발 중이며 대부분의 플랫폼에서 사용할 수 있는지 확인하세요 .