対象バージョンレベル
Solaris版:5.0以降
Linux版:5.2、V10.0L10以降
Linux for Itanium版:V12.0L10以降
HP-UX版:5.1以降
AIX版:5.1以降
DS版:V20L10
対処
確認ポイント
コマンド名をシェル変数 $0 で取得していませんか
原因
5.0~10.1の場合
Systemwalker Operation Managerはスクリプトファイルをスプールに複写し、複写したファイルをフルパス指定で起動しています。このため、スクリプトファイル内において、シェル変数 $0 にはフルパスが設定されます。
11.0/12.0の場合
[運用情報の定義]ウィンドウ-[旧互換]シート-[ジョブ登録時に指定したスクリプトファイルをスプールに複写し、実行する]にチェックがある場合、Systemwalker Operation Managerはスクリプトファイルをスプールに複写し、複写したファイルの名称を“ジョブ番号”に変更し、当該ファイルをフルパス指定で起動しています。このため、スクリプトファイル内において、シェル変数 $0 には“ジョブ番号”をファイル名に含むフルパスが設定されます。
チェックがない場合、Systemwalker Operation Managerはスクリプトファイルを直接、起動しています。このため、シェル変数 $0 には[監視-ジョブ]ウィンドウ-[基本情報]シートの[コマンド]に指定したファイル名がそのまま設定されます。
対処方法
5.0~10.1の場合
$0でコマンド名部分のみ切り出したい場合は、basenameコマンドの利用を検討してください。
スクリプト例(sample.sh)
#! /usr/bin/csh echo `basename $0`
11.0以降の場合
[運用情報の定義]ウィンドウ-[旧互換]シート-[ジョブ登録時に指定したスクリプトファイルをスプールに複写し、実行する]のチェックをはずす運用を検討してください。なお、$0でコマンド名部分のみ切り出したい場合は、前述と同様、basenameコマンドの利用を検討してください。