JP1/Advanced Shell
形式
#-adsh_conf CHILDJOB_SHEBANG パス名
機能
子孫ジョブとして実行するジョブ定義スクリプトファイルに指定した「#!」で開始する実行プログラムパスを定義します。
ジョブ定義スクリプト中にほかのジョブ定義スクリプトファイルをコマンド名として指定した場合,このパラメーターで指定したパス名がジョブ定義スクリプトのファイルの1行目に「#!+パス名」と記述されていれば,ジョブ定義スクリプトファイルを子孫ジョブとして実行します。「#!」の直後から行末までをパス名の比較対象とします。
オペランド
- パス名 〜<任意文字列>((1〜1,023バイト))
- 子孫ジョブとして実行するジョブ定義スクリプトファイルに指定した「#!」で開始する実行プログラムパスを定義します。
注意事項
- オペランドに指定するパス名には,先頭の「#!」を含まない値を指定します。
- オペランドに指定するパス名に「/」(スラッシュ)だけ指定した場合,パラメーター解析時にエラー終了します。
- JP1/Advanced Shell - Developerからファイルを直接指定した場合,この機能を使用しても子孫ジョブとして実行できません。実行しない旨のメッセージを出力し,戻り値0で処理を続行します。
- ジョブ実行ログに出力されるコマンド名は,直接指定したスクリプトファイルのパスとなります。
- このパラメーターによって実行可能なファイルに対して,ファイル属性を評価する演算子"-x"を使用して評価すると,判定は真となります。また,JP1/Advanced Shell - Developerでは子孫ジョブとして実行できませんが,同様にファイルに対する判定は真となります。
- シェル標準コマンドのexecコマンド,commandコマンド,evalコマンド,およびスクリプト予約語コマンドのtimeコマンドの引数にファイルを指定した場合も,このパラメーターによる実行の対象となります。
- 【UNIX限定】このパラメーターを指定した場合,ルートジョブ,子孫ジョブ,およびほかに起動した外部コマンドを「Ctrl+C」や「Ctrl+\」などの操作で一度に強制終了させることができない場合があります。これらのジョブおよびコマンドを一度にすべて強制終了させたい場合は,ログインシェル直下のルートジョブに対して,killコマンドでSIGTERMなどの終了要求シグナルを送信してください。
使用例
- 先頭に「#!/bin/sh」または「#!/bin/ksh」が記述されたファイルをコマンド名として指定した場合に,子孫ジョブとして実行したいときの例を次に示します。
#-adsh_conf CHILDJOB_SHEBANG /bin/sh #-adsh_conf CHILDJOB_SHEBANG /bin/ksh- 先頭に「#!/bin/ksh -x」が記述されたファイルをコマンド名として直接指定した場合に,子孫ジョブとして実行したいときの例を次に示します。
#-adsh_conf CHILDJOB_SHEBANG "/bin/ksh -x"- 先頭に「#!/usr/bin/env ksh」が記述されたファイルをコマンド名として直接指定した場合に,子孫ジョブとして実行したいときの例を次に示します。
#-adsh_conf CHILDJOB_SHEBANG "/usr/bin/env ksh"
All Rights Reserved. Copyright (C) 2011, 2012, Hitachi, Ltd.