
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番目のスクリプトを最初のスクリプトの最後のコマンドとして呼び出すが、それを心配する必要がない技術的な問題が発生します。
答え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
まだ開発中であり、ほとんどのプラットフォームで利用可能であることを確認してください。