JP1 Version 10　JP1/Advanced Shell

解説・手引・文法・操作書

3021-3-133-40

前書き

対象製品

P-1M12-B1A1 JP1/Advanced Shell 10-51（適用OS：AIX V6.1，AIX V7.1）

P-8112-B1A1 JP1/Advanced Shell 10-51（適用OS：Red Hat Enterprise Linux 5 Advanced Platform （x86），Red Hat Enterprise Linux 5 （x86），Red Hat Enterprise Linux 5 Advanced Platform （AMD/Intel 64），Red Hat Enterprise Linux 5 （AMD/Intel 64），Red Hat Enterprise Linux Server 6（32-bit x86），Red Hat Enterprise Linux Server 6（64-bit x86_64））

P-1J12-B1A1 JP1/Advanced Shell 10-51（適用OS：HP-UX 11i V3（IPF））

P-9D12-B1A1 JP1/Advanced Shell 10-51（適用OS：Solaris 10（SPARC），Solaris 11（SPARC））

P-2412-B1A4 JP1/Advanced Shell 10-51（適用OS：Windows Server 2012，Windows 8，Windows 7，Windows Server 2008，Windows Vista，Windows Server 2003，Windows Server 2003（x64），Windows XP）

P-2612-B2A4 JP1/Advanced Shell - Developer 10-51（適用OS：Windows Server 2012，Windows 8，Windows 7，Windows Server 2008，Windows Vista，Windows Server 2003，Windows Server 2003（x64），Windows XP）

輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。

なお、不明な場合は、弊社担当営業にお問い合わせください。

商標類

Active Directoryは，米国Microsoft Corporationの，米国およびその他の国における登録商標または商標です。

HP-UXは，Hewlett-Packard Development Company, L.P.のオペレーティングシステムの名称です。

IBM，AIXは，世界の多くの国で登録されたInternational Business Machines Corporationの商標です。

Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。

Microsoftは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

OracleとJavaは，Oracle Corporation 及びその子会社，関連会社の米国及びその他の国における登録商標です。

Red Hatは，米国およびその他の国でRed Hat, Inc. の登録商標もしくは商標です。

すべてのSPARC商標は，米国SPARC International, Inc. のライセンスを受けて使用している同社の米国およびその他の国における商標または登録商標です。SPARC商標がついた製品は，米国Sun Microsystems, Inc. が開発したアーキテクチャに基づくものです。

UNIXは，The Open Groupの米国ならびに他の国における登録商標です。

Win32は，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

Windowsは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

Windows Serverは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

Windows Vistaは，米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。

その他記載の会社名，製品名は，それぞれの会社の商標もしくは登録商標です。

プログラムプロダクト「P-9D12-B1A1」には，Oracle Corporationまたはその子会社，関連会社が著作権を有している部分が含まれています。

プログラムプロダクト「P-9D12-B1A1」には，UNIX System Laboratories,Inc.が著作権を有している部分が含まれています。

マイクロソフト製品の表記について

このマニュアルでは，マイクロソフト製品の名称を次のように表記しています。

このマニュアルでの表記

正式名称

Windows Server※1

Windows Server 2012

Microsoft(R) Windows Server(R) 2012 Standard (x64) 日本語版

Microsoft(R) Windows Server(R) 2012 Datacenter (x64) 日本語版

Microsoft(R) Windows Server(R) 2012 Standard 日本語版

Microsoft(R) Windows Server(R) 2012 Datacenter 日本語版

Microsoft(R) Windows Server(R) 2012 R2 Standard 日本語版

Microsoft(R) Windows Server(R) 2012 R2 Datacenter 日本語版

Windows Server 2008

Microsoft(R) Windows Server(R) 2008 Enterprise 日本語版

Microsoft(R) Windows Server(R) 2008 Standard 日本語版

Microsoft(R) Windows Server(R) 2008 R2 Datacenter 日本語版

Microsoft(R) Windows Server(R) 2008 R2 Enterprise 日本語版

Microsoft(R) Windows Server(R) 2008 R2 Standard 日本語版

Windows Server 2003※2

Microsoft(R) Windows Server(R) 2003, Enterprise Edition 日本語版※3

Microsoft(R) Windows Server(R) 2003, Standard Edition 日本語版

Microsoft(R) Windows Server(R) 2003 R2, Enterprise Edition 日本語版※3

Microsoft(R) Windows Server(R) 2003 R2, Standard Edition 日本語版

Windows Server 2003（x64）※2

Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition 日本語版※3

Microsoft(R) Windows Server(R) 2003, Standard x64 Edition 日本語版

Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition 日本語版※3

Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition 日本語版

Windows※1

Windows 8

Windows(R) 8.1 Pro 日本語版

Windows(R) 8.1 Enterprise 日本語版

Windows(R) 8.1 Pro 日本語版(32ビット版)

Windows(R) 8.1 Enterprise 日本語版(32ビット版)

Windows(R) 8.1 Pro 日本語版(64ビット版)

Windows(R) 8.1 Enterprise 日本語版(64ビット版)

Windows(R) 8 Pro 日本語版

Windows(R) 8 Enterprise 日本語版

Windows(R) 8 Pro 日本語版(32ビット版)

Windows(R) 8 Enterprise 日本語版(32ビット版)

Windows(R) 8 Pro 日本語版(64ビット版)

Windows(R) 8 Enterprise 日本語版(64ビット版)

Windows 7

Microsoft(R) Windows(R) 7 Enterprise 日本語版

Microsoft(R) Windows(R) 7 Professional 日本語版

Microsoft(R) Windows(R) 7 Ultimate 日本語版

Windows Vista

Microsoft(R) Windows Vista(R) Business 日本語版

Microsoft(R) Windows Vista(R) Enterprise 日本語版

Microsoft(R) Windows Vista(R) Ultimate 日本語版

Microsoft(R) Windows Vista(R) Business 日本語版(64ビット版)

Microsoft(R) Windows Vista(R) Enterprise 日本語版(64ビット版)

Microsoft(R) Windows Vista(R) Ultimate 日本語版(64ビット版)

Windows XP

Microsoft(R) Windows(R) XP Professional Operating System

注※1　Windows ServerおよびWindowsを総称してWindowsと表記することがあります。

注※2　これらの製品を総称して，Windows Server 2003と表記することがあります。

注※3　これらの製品を総称して，Windows Server 2003 Enterprise Editionと表記することがあります。

発行

2014年12月　3021-3-133-40

著作権

All Rights Reserved. Copyright (C) 2012, 2014, Hitachi, Ltd.

変更内容

変更内容（3021-3-133-40）　JP1/Advanced Shell　10-51，JP1/Advanced Shell - Developer　10-51

追加・変更内容

変更個所

ジョブ強制終了時にユーザー固有の後処理を実行できるようにした。

1.5，

2.6.21，3.11.2，3.11.3，4.3.2(1)，4.4.6(5)，5.5.3(1)，6.1.5，

7.2.1(2)，7.3 TRAP_ACTION_SIGTERMパラメーター，9.2.1，9.3 trapコマンド

使用できるファイルシステムとして，Hitachi Striping File Systemを追加した。

2.6.19(2)

メッセージを追加した。

KNAX6718-I，KNAX7073-I

11.2，11.3

メッセージの説明を変更した。

KNAX6710-I

11.3

用語解説に「トラップアクション」の説明を追加した。

付録D

単なる誤字・脱字などはお断りなく訂正しました。

はじめに

このマニュアルでは，JP1/Advanced Shellを使用して，バッチジョブのためのジョブ定義スクリプトを作成・実行する方法について説明しています。JP1/Advanced Shellは次の製品で構成されます。

JP1/Advanced Shell（バッチジョブ向けスクリプト実行基盤）

JP1/Advanced Shell - Developer（バッチジョブ向けスクリプト開発基盤）

JP1/Advanced ShellとJP1/Advanced Shell - Developerをインストールした環境を区別する場合は，「実行環境」，「開発環境」と表記します。

対象読者

JP1/Advanced Shellを使用して，バッチジョブを開発・実行・管理する方を対象としています。また，このマニュアルは次の知識をある程度持つ方にお読みいただくことを前提に説明しています。

WindowsおよびUNIX

JP1/AJS

JP1/Base

JP1/IM

uCosminexus Application Server

読書手順

このマニュアルは，次に示す章と付録から構成されています。

バッチジョブを実行する運用者とジョブ定義スクリプトを作成する開発者ごとに，必要な章または付録を選択して読むことができます。利用者に応じてお読みいただくことをお勧めします。

なお，このマニュアルは，WindowsおよびUNIXのOSに共通のマニュアルです。OSごとに差異がある場合は，本文中でそのつど内容を書き分けています。

編タイトル

章または付録のタイトル

記載内容

運用者

開発者

第1編

概要編

1.　JP1/Advanced Shellの概要

JP1/Advanced Shellは，バッチ処理のためのジョブ定義スクリプトを作成・実行するための製品です。JP1/Advanced Shellの目的，業務への応用例，システムの全体構成，処理の流れ，クラスタシステムでの運用の概要および機能概要について説明しています。

○

○

第2編

構築編

2.　JP1/Advanced Shellを利用するための準備

プログラムのインストール先と種類，前提条件，インストール，環境情報の設定，カスタムジョブの登録，ユーザー応答機能の設定，クラスタ運用の環境情報設定などのJP1/Advanced Shellを利用するために必要な項目について説明しています。

◎

○

第3編

運用編

3.　バッチジョブの実行

JP1/Advanced Shell（実行環境）を使用したバッチジョブの運用として，バッチジョブの実行方法や動作について説明しています。

◎

△

4.　JP1/Advanced Shell - Developerを使用する【Windows限定】

JP1/Advanced Shell - Developerを使用して，Windows環境でジョブ定義スクリプトを開発するためのJP1/Advanced Shellエディタの操作方法について説明しています。エディタを使用したジョブ定義スクリプトファイルのデバッグ方法についても説明します。

−

◎

5.　ジョブ定義スクリプトの作成

ジョブ定義スクリプトの文法について説明しています。

−

◎

6.　ジョブ定義スクリプトのデバッグ

JP1/Advanced Shellのデバッガ機能について説明しています。

○

○

第4編

リファレンス編

7.　環境ファイルで設定するパラメーター

環境ファイルで設定できる，次のパラメーターの記述形式と詳細について説明しています。

環境設定パラメーター

exportパラメーター

条件パラメーター

○

△

8.　運用時に使用するコマンド

運用時に使用するコマンドの記述形式と詳細について説明しています。

◎

△

9.　ジョブ定義スクリプトのコマンドおよび制御文

ジョブ定義スクリプトファイルに使用する次のコマンドや制御文に関して，記述形式と詳細を説明しています。

シェル標準コマンド

シェル拡張コマンド

スクリプト拡張コマンド

スクリプト制御文

スクリプト予約語コマンド

△

◎

第5編

トラブルシューティング編

10.　トラブルシューティング

トラブルシューティングとして，対処の手順，ログ情報の種類，必要な資料，資料の採取方法について説明しています。

○

△

11.　メッセージ

JP1/Advanced Shellが出力するメッセージとエラーの詳細について説明しています。

△

△

付録

付録A　カバレージ情報を取得する対象

カバレージ情報を取得する対象について説明しています。

△

△

付録B　各バージョンの変更内容

各バージョンの変更内容を説明しています。

△

△

付録C　このマニュアルの参考情報

このマニュアルを読むに当たっての参考情報（関連マニュアル，マニュアルでの表記）について説明しています。

△

△

付録D　用語解説

このマニュアルで使用する用語について解説しています。

○

○

（凡例）

◎：中心の知識となるため，熟読してください。

○：一とおり読んでいただくことをお勧めします。

△：必要に応じて参照してください。

−：該当しません。

このマニュアルで使用している記号

このマニュアルの文法説明で使用する記号を次に示します。

記号

意味

［　］

次の2つの意味があります。

GUI説明の場合，メニュー項目，ダイアログボックス，ボタンなどを示します。

例

［ファイル］−［新規作成］を選択する。

上記の例では，メニューバーの［ファイル］を選択して，ドロップダウンリストの［新規作成］を選択することを示します。

文法説明の場合，［　］で囲まれている項目は，省略できます。

複数の項目が記述されている場合，すべてを省略するか，どれか1つを選択します。

例

［A］

「何も指定しない」か「Aを指定する」ことを示します。

［B|C］

「何も指定しない」か「BまたはCを指定する」ことを示します。

＜ ＞

各項目を記述するときに従わなくてはならない構文要素記号※を示します。

｛　｝

この記号で囲まれている複数の項目の中から，一組の項目を必ず選択します。項目と項目の区切りは「|」で示します。

例

｛A|B|C｝

　「A，BまたはCのどれかを必ず指定する」ことを示します。

|

(ストローク）

複数の項目に対し，項目間の区切りを示し，「または」の意味を示します。

例

「A|B|C」

　「A，BまたはC」を示します。

＋

この記号の直前に示された項目を繰り返して複数指定ができます。または，この記号の前後の項目が同時に設定されていることを示します。

例

｛A|B｝＋

　「AまたはBを任意の順序で1つ以上指定する」ことを示します。

［CR］＋［LF］

　［CR］と［LF］が同時に設定されていることを示します。

*

この記号の直前に示された項目を指定しないか，または繰り返して複数指定ができます。

例

｛A|B｝*

　「AまたはBを指定しないか，任意の順序で1つ以上指定する」ことを示します。

〜

この記号の直前に示されている項目を，この記号に続く＜　＞，《　》，((　))などの文法規則に従って記述する必要があることを示します。

《　》

項目を省略したときのデフォルト値を示します。

((　))

指定できる値の範囲を示します。

＿（下線）

選択記号［　］で囲まれている項目を省略したときのデフォルト値を示します。

…および...

（点線）

この記号の直前に示された項目を繰り返して複数個指定できることを示します。

例

A，B，…

　「AのあとにBを必要個数指定する」ことを示します。

太字

可変および強調を示します。

△

スペースを示します。次のように使い分けていることもあります。

△₀：0個以上のスペース（スペースを省略できる）

△₁：1個以上のスペース（スペースを省略できない）

注※

このマニュアルの構文要素記号を次に示します。

構文要素記号

指定できる文字の内容

＜数字＞

0|1|2|3|4|5|6|7|8|9

＜英大文字＞

A|B|C|…|Z

＜英小文字＞

a|b|c|…|z

＜英字＞

＜英大文字＞|＜英小文字＞

＜特殊文字＞

,|.|/|'|(|)|*|&|+|-|=|△（半角スペース）|¥

＜8進数＞

＜0|1|2|3|4|5|6|7＞ ＋

＜10進数＞

＜数字＞ ＋

＜16進数字＞

0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F

＜整数＞

符号のある数字または符号のない数字の集まり。

＜符号なし整数＞

＜数字＞＋

＜記号名称＞

{＜英字＞|＜数字＞|@|#|_（アンダースコア）} ＋

対象：ジョブ名など。

＜環境変数名＞

{＜英字＞|_（アンダースコア）}{＜英字＞|_（アンダースコア）|＜数字＞} *

対象：ファイル環境変数定義名，環境変数名，スクリプト拡張コマンドなど。

＜パス名＞

UNIXまたはWindowsのファイルパス名規則に従った文字列。

＜コマンド名＞

パス名で指定可能な文字からパス区切り文字を除いたもの。

＜論理ホスト名＞

｛＜英字＞|＜数字＞|−（ハイフン）｝＋

＜任意文字列＞

任意の文字による文字列。

JP1/Advanced Shellでは文字種別をチェックしません。

指定個所に応じた適切な意味のある文字列とする必要があります。

記号名称の範囲での利用を推奨します。

＜ASCII文字列＞

ASCII文字コード範囲中の，制御文字を除いた範囲（0x20〜0x7e）の文字によって構成される文字列。

Windowsの場合の「インストール先フォルダ」について

このマニュアルで使用している「インストール先フォルダ」は，特に断りがないかぎりJP1/Advanced Shellのインストール先フォルダを示しています。製品を初期設定のままインストールした場合のインストール先フォルダは次のとおりです。

x86環境の場合

システムドライブ:¥Program Files¥Hitachi¥JP1AS

x64環境の場合

システムドライブ:¥Program Files(x86)¥Hitachi¥JP1AS

このマニュアルで使用する「Administrators権限」について

このマニュアルで使用している「Administrators権限」とは，ローカルPCに対するAdministrators権限です。ローカルPCに対してAdministrators権限を持つユーザーであれば，ローカルユーザー，ドメインユーザーおよび，Active Directory環境で動作に違いはありません。

このマニュアルで使用する「共通アプリケーションフォルダ」について

このマニュアルで使用している「共通アプリケーションフォルダ」は，Windowsのバージョンによって次のようにフォルダが異なります。

Windows Server 2003，Windows Server 2003(x64)またはWindows XPの場合の例

システムドライブ:¥Documents and Settings¥All Users¥Application Data

Windows Server 2012，Windows 8，Windows 7，Windows Server 2008またはWindows Vistaの場合の例

システムドライブ:¥ProgramData

このマニュアルで使用する「共有ドキュメントフォルダ」について

このマニュアルで使用している「共有ドキュメントフォルダ」は，Windowsのバージョンによって次のようにフォルダが異なります。

Windows Server 2003，Windows Server 2003(x64)またはWindows XPの場合の例

システムドライブ:¥Documents and Settings¥All Users¥Documents

Windows Server 2012，Windows 8，Windows 7，Windows Server 2008またはWindows Vistaの場合の例

システムドライブ:¥Users¥Public¥Documents

このマニュアルで使用するWindowsのメニュー名について

このマニュアルで使用しているWindowsのメニュー名の表記は，次のOSを前提としています。

　Windows 7，Windows Server 2008，Windows Vista，Windows Server 2003，Windows XP

Windows 8またはWindows Server 2012の場合は［スタート］メニューが表示されないため，画面左下から表示できる［スタート］画面からメニューを選択してください。

第1編　概要編

1　JP1/Advanced Shellの概要

JP1/Advanced Shellは，バッチジョブのためのジョブ定義スクリプトを作成・実行するための製品です。この章では，JP1/Advanced Shellの目的，業務への応用例，システムの全体構成，処理の流れおよび機能概要について説明します。

1.1　JP1/Advanced Shellの目的

JP1/Advanced Shellは，バッチ業務の開発生産性や運用効率を向上するための製品です。バッチジョブのためのジョブ定義スクリプト（シェルスクリプト）を効率的に作成・実行できます。

JP1/Advanced Shellには，次に示す特長があります。

1.1.1　バッチ業務のOS間での資産の継承

既存資産の活用

UNIX環境で作成したシェルスクリプトを利用してWindows環境でジョブ定義スクリプトを開発できます。

JP1/Advanced Shellで使用するジョブ定義スクリプトでは，シェル標準互換の言語仕様を採用しています。したがって，習得しやすく，既存のシェルスクリプトからの移行も容易です。

クロスプラットフォームの対応

クロスプラットフォームとは，複数のOS基盤のことです。クロスプラットフォームに対応した機能が利用できます。

Windows環境で開発したジョブ定義スクリプトをWindows環境でもUNIX環境でも実行できます。

UNIX互換コマンドを，Windows環境でもUNIX環境でも使用できます。

1.1.2　バッチ業務の構築のスピードアップ

ジョブの実行の制御

JP1/Advanced Shellでは，バッチ業務で繰り返し使用される処理を自動化したり，簡潔に記述したりできるようにジョブ定義スクリプトを拡張しています。

次の機能を使用してジョブ定義スクリプトの記述量を削減し，ジョブ定義スクリプトの可読性や保守性を向上できます。

ジョブステップの実行条件を指定できます。

ジョブステップ内で有効な変数を使用できます。

バッチジョブがエラー終了した場合，エラーメッセージを出力したり，終了コードを設定したりできます。

バッチジョブがエラー終了した場合，自動的に子プロセスを強制終了して，バッチジョブで使用した一時ファイルを自動的に削除できます。

エディタでのジョブ定義スクリプトの開発（開発環境）

GUI（Graphical User Interface）のJP1/Advanced Shellエディタ（デバッグ機能付き専用エディタ）を使用した開発環境でジョブ定義スクリプトを開発し，デバッグできます。

ジョブステップ単位で実行したり，ブレークポイントを設定したりできます。

ジョブ定義スクリプトのカバレージ情報を蓄積できます。

JP1/Advanced Shellエディタウィンドウを次の図に示します。

図1‒1　JP1/Advanced Shellエディタウィンドウ

ファイルの割り当ておよび後処理の効率化

通常ファイルの存在チェックや一時ファイルの割り当てと削除などの処理を自動化でき，簡潔に記述できます。

バッチジョブの実行中に自動的に一時ファイルを割り当て，バッチジョブ終了時に削除できます。

バッチジョブの実行中に通常ファイルの存在チェック，およびジョブステップまたはジョブの結果によるファイルの後処理ができます。

1.1.3　バッチジョブの実行結果の一元管理による運用性・保守性の向上

ジョブ実行ログを自動的に出力し，一元管理することで，障害時などの保守性を向上できます。

従来，オープンシステムでのバッチジョブの実行結果は，格納先が一元化されていなかったため管理が煩雑でした。JP1/Advanced Shellで運用した場合，ジョブ実行ログを採取することで，バッチジョブの実行結果をスプールに集めて一元管理できます。また，JP1/AJS - Viewを使用することで，ジョブ定義スクリプトの実行を自動化して定期的にバッチジョブを実行したり，バッチジョブの実行結果も参照したりできます。

各ジョブの実行結果は，スプールディレクトリの下にスプールジョブのディレクトリとして出力されます。バッチジョブの実行結果の一元管理を次の図に示します。

図1‒2　バッチジョブの実行結果の一元管理

ジョブ実行ログの出力内容については，「3.5　ジョブ実行ログ」を参照してください。

トラブルシューティングでは，ジョブ実行ログやシステム実行ログ，トレースログなどの資料を採取して，トラブルが発生した場合に対処できます。詳細については，「10.　トラブルシューティング」を参照してください。

1.2　業務への応用例

JP1/Advanced Shellは，次のような業務に応用できます。

日中にオンラインシステムで多数の取引があり，夜間にその集計をする業態であれば，例えば，売り上げや商品の販売数，在庫数などを集計するバッチジョブを開発し，実行できます。また，日次処理，月次処理，期末処理といった定型集計用だけでなく，特定の用途や，臨時のタイミングで使用するバッチジョブも開発・実行できます。

JP1/Advanced Shellの運用例（日々の営業集計の場合）を次の図に示します。

図1‒3　JP1/Advanced Shellの運用例（日々の営業集計の場合）

日々の営業を開始し，ユーザーは商品などの取引をします。

オープン基盤製品は，各種売り上げデータなどを更新します。

日々の営業が終了して，JP1/AJSは指定された時間にジョブ定義スクリプトの自動実行を指示します。

JP1/Advanced Shellは各種売り上げデータを処理するためのジョブ定義スクリプトを実行します。

JP1/Advanced Shellはジョブ定義スクリプトの実行結果を出力します。

経営者は，実行結果を基に集計情報や商品の売り上げの推移などを把握できます。

1.3　処理の流れ

JP1/Advanced Shellは，実行環境（JP1/Advanced Shell）と開発環境（JP1/Advanced Shell - Developer）とに分かれています。開発環境で作成したジョブ定義スクリプトを実行環境で実行します。

システムに対する権限で分類した場合，JP1/Advanced Shellの利用者は，システム管理者と一般ユーザーに分けられます。それぞれの役割について説明します。

表1‒1　JP1/Advanced Shellの利用者の分類

JP1/Advanced Shellの利用者

役割

システム管理者

システム運営上の責任者です。スーパーユーザー権限をあらかじめ与えられています。

システム管理者は，JP1/Advanced Shellを実行できる環境を管理して，JP1/Advanced Shellを使用する一般ユーザーをシステムに登録します。

一般ユーザー

開発者

ジョブ定義スクリプトを作成したり，デバッグなどをしたりします。

運用者

JP1/Advanced Shellの定義，実行および結果の確認を実施して，JP1/Advanced Shellの実行に不具合があれば対処します。

JP1/AJSを使用する場合の運用者の作業については，「3.1.1　JP1/AJSのジョブに関する運用者の作業」を参照してください。

JP1/Advanced Shellのシステムの全体構成を次の図に示します。

図1‒4　JP1/Advanced Shellのシステムの全体構成

Windows上の開発環境で開発者がJP1/Advanced Shellエディタを使ってジョブ定義スクリプトを開発します。

JP1/Advanced Shellエディタからジョブ定義スクリプトを保存します。

ジョブ定義スクリプトを実行環境に転送します。

実行環境で運用者が次のような方法を使ってジョブ定義スクリプトの実行を指示します。

JP1/AJSを使った自動実行

コマンドプロンプトやUNIXのシェルからの手動実行など

JP1/Advanced Shellがジョブ定義スクリプトを実行した結果を出力するので，その内容を確認します。

1.3.1　バッチジョブを自動実行するときの処理の流れ（JP1/AJSと連携する場合）

JP1/Advanced Shellを使ったバッチジョブの運用では，ジョブスケジューラのJP1/AJSから実行環境を呼び出して，バッチジョブを自動実行できます。JP1/Advanced Shellは，ユーザーの業務アプリケーションの実行を制御するジョブコントローラとしての機能を提供します。JP1/Advanced Shellの業務アプリケーションに対する位置づけを次の図に示します。

図1‒5　JP1/Advanced Shellの業務アプリケーションに対する位置づけ

JP1/AJSと連携した場合，バッチジョブを実行するスケジュールを登録してバッチジョブを実行できます。

ジョブが定義されたジョブ定義スクリプトは，ジョブコントローラで解析されます。ジョブコントローラは，入出力装置や各種システム資源の割り当て，および解放処理をして，バッチジョブの実行・終了を制御します。また，JP1/Advanced Shellは，このジョブ定義スクリプトを実行し，実行結果をスプールに集めて，一元管理できます。

JP1/Advanced Shellの運用の流れを次の図に示します。図中の番号3がJP1/AJSの処理内容で，番号4〜6がJP1/Advanced Shellが処理する内容です。

図1‒6　JP1/Advanced Shellの運用の流れ（JP1/AJSと連携する場合）

ジョブ定義スクリプトを作成しておきます。

JP1/Advanced Shellの実行環境にジョブ定義スクリプトを転送します。

JP1/AJSで登録されているスケジュールに従い，ジョブコントローラが起動されます。

1で作成したジョブ定義スクリプトの内容に従い，次に示す順序でジョブコントローラがバッチジョブを実行します。

ジョブ定義スクリプトの解析→ファイル資源の確保→ジョブおよびジョブステップの実行→ファイル資源の解放

バッチジョブの実行結果をスプールに集めて，一元管理します。

必要に応じて，カバレージ情報の表示やジョブ定義スクリプトの稼働実績情報の出力をコマンドで実行します。

1.3.2　JP1/Advanced Shellの機能を使ってJavaのバッチアプリケーションを実行するときの処理の流れ【Windows，Linux(R)，AIX，HP-UX限定】

JP1/Advanced Shellが提供するadshjavaコマンドを使用して，Javaのバッチアプリケーションを実行できます。この場合の処理の流れを次の図に示します。

図1‒7　JP1/Advanced Shellが提供するadshjavaコマンドを使用してJavaのバッチアプリケーションを実行する場合の処理の流れ

JP1/Advanced Shellは，uCosminexus Application Serverに対してJavaのバッチアプリケーションの実行を指示します。

JP1/Advanced Shellから指示された内容に従って，uCosminexus Application ServerはJavaのバッチアプリケーションを実行します。

また，adshjavaコマンドを使用してJavaのバッチアプリケーションを実行した場合，ジョブを強制終了させると，JP1/Advanced ShellはuCosminexus Application Serverによって実行中のJavaのバッチアプリケーションに対してcjkilljobコマンドを実行し，Javaのバッチアプリケーションを自動的に停止させます。

詳細については，「3.3　adshjavaコマンドを使用してJavaのバッチアプリケーションを実行する【Windows，Linux，AIX，HP-UX限定】」を参照してください。

1.3.3　ユーザー応答機能を使用するときの処理の流れ

ユーザー応答機能を使用すると，ジョブ定義スクリプトから次のことができます。

バッチジョブの情報を運用者に通知する。

運用者がジョブ定義スクリプトに対して応答する。

ユーザー応答機能はJP1/IMと連携して，指定した文字列をJP1イベントとして発行します。ユーザー応答機能を使用する場合の処理の流れを次の図に示します。

図1‒8　ユーザー応答機能を使用する場合の処理の流れ

ジョブ定義スクリプトで，文字列をコマンドに指定して実行すると，指定された文字列をJP1イベントとして発行します。

発行されたJP1イベントは，JP1/Baseによって，指定された運用管理サーバに転送されます。

JP1/IM - Viewの画面に，指定された文字列が表示されます。

応答待ちイベントの場合，運用者は応答を入力できます。

運用者から入力された応答は，ジョブ定義スクリプトで指定したシェル変数に格納されます。

詳細については，「3.8　ユーザー応答機能を使用する」を参照してください。

1.4　クラスタシステムでの運用の概要

クラスタシステムとは，複数のサーバシステムを用いて1つのシステムとして運用するシステムで，1つのサーバで障害が発生しても，別のサーバで業務を継続できるように構成するシステムです。クラスタシステムでは，ホストを次のように分類します。

業務の実行中のサーバ（実行系サーバ）

実行系サーバの障害に備えて，業務を引き継げるよう待機しているサーバ（待機系サーバ）

業務を実行している実行系サーバに障害が発生した場合は，待機系サーバに業務を引き継ぐことができます。この障害時に業務を引き継ぐ機能のことを系切り替えと呼びます。また，系切り替え時にフェールオーバーの単位となる論理的なサーバのことを論理ホストと呼びます。

クラスタシステムで実行されるアプリケーションは，系切り替え後も業務を継続するために，論理ホスト環境で動作させる必要があります。論理ホストで動作するアプリケーションは，物理的なサーバに依存しないで，任意のサーバで動作できます。

論理ホストは次の要素で構成されています。デーモン・サービスとして動作するアプリケーションは，共有ディスクにデータを格納し，論理IPアドレスで通信します。

表1‒2　論理ホストの構成要素

論理ホストの構成要素

構成要素の説明

デーモン・サービス

クラスタシステムで実行するJP1/AJSやJP1/Advanced Shellなどのアプリケーションです。

実行系サーバの論理ホストで障害が発生すると，待機系サーバの論理ホストで同じ名称のデーモン・サービスを起動します。

共有ディスク

実行系サーバと待機系サーバの両方に接続されたディスク装置です。

系切り替え時に引き継ぐ情報（定義情報，実行状況など）を保存すると，実行系サーバの論理ホストで障害が発生した場合，待機系サーバが共有ディスクへの接続を引き継ぎます。

論理IPアドレス

論理ホストの動作中に割り当てられるIPアドレスです。

実行系サーバで障害が発生したときは，同じ論理IPアドレスの割り当てを待機系サーバが引き継ぎます。そのため，クライアントからは同じIPアドレスでアクセスでき，1つのサーバが常に動作しているように見えます。

注意事項

このマニュアルでは，系切り替え時にフェールオーバーの単位となる論理的なサーバのことを「論理ホスト」という用語を使いますが，クラスタソフトやアプリケーションによっては「グループ」や「パッケージ」などの用語が使われています。クラスタソフトのマニュアルなどを参照し，対応する用語を確認してください。

また，系切り替え時にフェールオーバーの単位となる論理的なサーバを論理ホストと呼ぶのに対して，物理的なサーバを「物理ホスト」と呼びます。

正常時および系切り替え後のアクセスを次の図に示します。

図1‒9　正常時および系切り替え後のアクセス

図の内容について次に示します。

正常時のアクセス

実行系サーバが稼働している間は，実行系サーバで共有ディスクや論理IPアドレスが割り当てられてデーモン・サービスが動作します。

系切り替え後のアクセス

実行系サーバで障害が発生した場合，待機系サーバが共有ディスクと論理IPアドレスを引き継ぎ，実行系サーバと同じデーモン・サービスを起動します。系切り替えによって物理的なサーバが変わった場合でも，待機系サーバが共有ディスクと論理IPアドレスを引き継ぐため，クライアントには同じIPアドレスのサーバが動作しているように見えます。

JP1/Advanced Shellを論理ホスト環境で動作させるためには，系切り替え時に引き継ぎが必要なデータを格納するための共有ディスク，および論理IPアドレスが必要となります。また，ユーザー応答機能を使用する場合は，クラスタソフトがユーザー応答機能管理デーモン・サービスの，起動・動作監視・停止を制御できるように，クラスタソフトで設定する必要があります。

論理ホスト環境で実行されるJP1/Advanced Shellは，共有ディスクに格納したデータを使用し，系切り替え時に実行系サーバから待機系サーバにジョブを実行する環境を引き継ぐことができます。そのためにJP1/Advanced Shellはスプールを共有ディスクに格納する必要があります。ただし，系切り替え時に実行中のジョブを継続して実行することはできません。

JP1/Advanced Shellでクラスタ運用に対応するための設定については，「2.9　クラスタ構成で運用する」を参照してください。

1.5　機能概要

JP1/Advanced Shellで利用できる機能を次に示します。

表1‒3　JP1/Advanced Shellの機能

機能

関連項目

参照先

ジョブの実行環境を定義する

ジョブ実行に必要な環境変数を設定する

2.5

環境ファイルを設定する

2.6，7.

シェルスクリプトの文法に従ってジョブ定義スクリプトを作成する

ジョブ定義スクリプトを構成する基本要素

5.1

条件判定

5.2，5.4，9.6

算術演算

5.3，5.4

シェル変数

5.1.2，5.5

シェルオプション

5.6

ジョブ定義スクリプトからファイルを使用する

通常ファイル

5.9.1，9.5

一時ファイル

5.9.2，9.5

プログラム出力データファイル

5.9.3，9.5

ジョブの実行を制御する

ジョブ名を宣言する

5.8.1，9.5

ジョブの打ち切り条件を定義する

5.8.2，9.5

ジョブステップを開始または終了する

5.8.3，9.5

任意のコマンドを常に正常終了したと見なすように定義する

5.8.4(2)，9.5

スクリプト拡張コマンドの終了コードを定義する

2.6.9，7.3

外部スクリプトを呼び出す

5.8.6，9.5

子孫ジョブを起動する

2.6.5，3.1.2(1)，3.2.3，5.1.11，7.3

ジョブを強制終了する

2.6.21，3.11，7.3

シェルスクリプト中でジョブの情報を取得する

ジョブステップの終了コードが設定されたシェル変数を使用する

5.5.1

ジョブの情報が設定された環境変数を使用する

2.5，5.7

エディタを使ってジョブ定義スクリプトを作成する※1

4.，5.

コマンドを実行する

シェル運用コマンド

8.3

UNIX互換コマンド

2.6.6，8.4，8.5

シェル標準コマンド

9.3

シェル拡張コマンド

9.4

スクリプト拡張コマンド

9.5

スクリプト制御文

9.6

スクリプト予約語コマンド

9.7

カスタムジョブを登録する※2

2.7.1

ユーザー応答機能を使用する

任意の文字列をJP1イベントとして発行する

9.4

任意の文字列を応答待ちイベントとして発行する

9.4

ユーザー応答機能管理デーモン・サービスを起動する

8.3

ジョブ定義スクリプトの稼働実績情報を採取する※2

ジョブ定義スクリプトの稼働実績情報を蓄積する

7.3

ジョブ定義スクリプトの稼働実績情報を出力する

8.3

uCosminexus Application Serverと連携してJavaのバッチアプリケーションを実行する※3

3.3，8.3

同じジョブ定義スクリプトを異なるプラットフォームで使用する

WindowsとUNIXの両方で使用できるようにジョブ定義スクリプトを変換する

2.6.2，2.6.3，2.6.4，2.6.12，7.3

UNIX互換コマンドを使用する

2.6.6，8.4，8.5

スプールジョブを削除する

3.9，8.3

カバレージ情報を採取する

カバレージ情報を取得する

3.10，8.3，付録A

カバレージ情報を表示する

3.10，8.3

カバレージ情報をマージする

3.10，8.3

カバレージ情報の取得を常に有効にする

3.10，8.3

ジョブ定義スクリプトをデバッグする

CUIでデバッグする※4

6.1.2，6.1.4，6.1.5，6.2

GUIでデバッグする※1

4.2.2，4.4.6，6.1.1，6.1.3，6.1.5

ジョブ実行ログを出力する

1.1.3，3.5

トラブルシューティング

ジョブ実行ログ，システム実行ログ，トレースログなどの資料を採取する

10.

JP1/IMが使用できない場合に，応答要求メッセージに応答する

8.3，10.

注※1

開発環境だけで使用できます。

注※2

実行環境だけで使用できます。

注※3

Windows版，Linux版，AIX版，およびHP-UX版だけで使用できます。

注※4

UNIX版だけで使用できます。

第2編　構築編

2　JP1/Advanced Shellを利用するための準備

プログラムのインストール先と種類，前提条件，インストール，環境情報の設定，カスタムジョブの登録などのJP1/Advanced Shellを利用するために必要な項目について説明します。

2.1　プログラムのインストール先ディレクトリ

JP1/Advanced Shellのプログラムのインストール先は，使用するOSによって異なります。Windows環境の場合は，インストール先をデフォルトから変更できます。UNIX環境の場合は，固定のディレクトリになります。

この節では，JP1/Advanced Shellのプログラムのインストール先ディレクトリと，JP1/Advanced Shellが出力・参照する各種ファイルを格納するディレクトリの構成について説明します。

2.1.1　インストール先フォルダ【Windows限定】

(1)　インストール先フォルダ

Windowsではインストール先として任意のフォルダを指定できます。指定したインストール先フォルダの下には環境ごとに次のフォルダが生成されます。

インストールする環境

インストール先

備考

実行環境

インストール先フォルダ¥JP1ASE

サーバにインストールすることを推奨します。

開発環境

インストール先フォルダ¥JP1ASD

クライアントPCにインストールすることを推奨します。

実行環境に含まれるカスタムジョブ定義プログラム（JP1/Advanced Shell - Custom Job）

インストール先フォルダ¥JP1ASV

JP1/AJS - Viewをインストールしている運用管理端末にインストールします。

インストール先フォルダの構成を次に示します。実際には選択した環境のフォルダだけが生成されます。

インストール先フォルダ※1
  ├─JP1ASD                                ：開発環境フォルダ
  │    ├─bin                             ：プログラムのフォルダ
  │    ├─cmd                             ：UNIX互換コマンドのフォルダ
  │    ├─doc─ja─help─INDEX.HTM        ：ヘルプ（マニュアル）
  │    ├─maintenance                     ：障害発生時に使用するフォルダ
  │    ├─readme.txt                      ：readmeファイル
  │    └─sample                          ：サンプルデータのフォルダ
  │          ├Adapter_HITACHI_JP1_AS_ASD_USERREPLY.conf
  │          │                            ：ユーザー応答機能用アダプタコマンド設定ファイル
  │          ├hitachi_jp1_as_EUC_attr_ja.conf   ：イベント拡張属性定義ファイル(日本語EUC)
  │          ├hitachi_jp1_as_SJIS_attr_ja.conf  ：イベント拡張属性定義ファイル(シフトJIS)
  │          ├hitachi_jp1_as_UTF8_attr_ja.conf  ：イベント拡張属性定義ファイル(UTF-8)
  │          ├sample.ase                  ：環境ファイルのテンプレート
  │          ├sample.ash                  ：ジョブ定義スクリプトファイルのサンプル
  │          ├script_0                    ：何もしない共通サンプルスクリプト
  │          ├script_chmod1               ：chmodコマンドのサンプルスクリプトファイル
  │          ├script_chmod2               ：chmodコマンドのサンプルスクリプトファイル
  │          ├script_chmod3               ：chmodコマンドのサンプルスクリプトファイル
  │          ├script_su1                  ：suコマンドのサンプルスクリプトファイル
  │          └script_who1                 ：whoコマンドのサンプルスクリプトファイル
  ├─JP1ASE                                ：実行環境フォルダ
  │    ├─bin                             ：プログラムのフォルダ
  │    ├─cmd                             ：UNIX互換コマンドのフォルダ
  │    ├─doc─ja─help─INDEX.HTM        ：ヘルプ（マニュアル）
  │    ├─maintenance                     ：障害発生時に使用するフォルダ
  │    ├─readme.txt                      ：readmeファイル
  │    ├─sample                          ：サンプルデータのフォルダ
  │    │    ├Adapter_HITACHI_JP1_AS_ASE_USERREPLY.conf
  │    │    │                            ：ユーザー応答機能用アダプタコマンド設定ファイル
  │    │    ├hitachi_jp1_as_EUC_attr_ja.conf   ：イベント拡張属性定義ファイル(日本語EUC)
  │    │    ├hitachi_jp1_as_SJIS_attr_ja.conf  ：イベント拡張属性定義ファイル(シフトJIS)
  │    │    ├hitachi_jp1_as_UTF8_attr_ja.conf  ：イベント拡張属性定義ファイル(UTF-8)
  │    │    ├sample.ase                  ：環境ファイルのテンプレート
  │    │    ├sample.ash                  ：ジョブ定義スクリプトファイルのサンプル
  │    │    ├script_0                    ：何もしない共通サンプルスクリプト
  │    │    ├script_chmod1               ：chmodコマンドのサンプルスクリプトファイル
  │    │    ├script_chmod2               ：chmodコマンドのサンプルスクリプトファイル
  │    │    ├script_chmod3               ：chmodコマンドのサンプルスクリプトファイル
  │    │    ├script_su1                  ：suコマンドのサンプルスクリプトファイル
  │    │    └script_who1                 ：whoコマンドのサンプルスクリプトファイル
  │    └─util─JP1ASVC.msi               ：カスタムジョブ定義プログラムのインストーラ
  └─JP1ASV                                ：カスタムジョブ定義プログラムのフォルダ
        ├─bin                             ：プログラムのフォルダ
        ├─doc─ja─help─INDEX.HTM        ：ヘルプ（マニュアル）
        ├─image─custom                   ：カスタムジョブアイコンのフォルダ
        │            ├CUSTOM_PC_ADSHPC.gif：PCジョブのカスタムジョブアイコン※2
        │            └CUSTOM_PC_ADSHUX.gif：UNIXジョブのカスタムジョブアイコン※2
        └─maintenance                     ：障害発生時に使用するフォルダ

注※1

インストール先フォルダに&[]{}^=;!'+,`~#%の記号を含まないでください。記号を含むインストール先フォルダにインストールした場合，正常に動作しません。

注※2

JP1/AJS3 - View 09-50より古い製品がインストールされている場合にカスタムジョブ定義プログラムをインストールするときは，カスタムジョブアイコンを次のフォルダにコピーする必要があります。

JP1/AJS - Viewのインストール先フォルダ¥image¥custom

(2)　トレース出力先フォルダおよびシステム環境ファイルの作成フォルダ

トレース出力先フォルダおよびシステム環境ファイルを作成するフォルダは，共通アプリケーションフォルダに作成されます。

共通アプリケーションフォルダ
  └─Hitachi─JP1AS─JP1ASD      ：開発環境フォルダ
                  │    ├─conf  ：システム環境ファイル格納フォルダ
                  │    ├─trace ：トレース出力先フォルダ
                  │    └─uxpl  ：ログフォルダ
                  ├─JP1ASE      ：実行環境フォルダ
                  │    ├─conf  ：システム環境ファイル格納フォルダ
                  │    ├─trace ：トレース出力先フォルダ
                  │    └─uxpl  ：ログフォルダ
                  ├─JP1ASV      ：カスタムジョブ定義プログラムのフォルダ
                  │    └─trace ：トレース出力先フォルダ
                  └─misc        ：製品共通ライブラリのフォルダ
                        ├─trace ：トレース出力先フォルダ
                        └─uxpl  ：ログフォルダ

(3)　システム実行ログ，スプールおよび一時ファイル

システム実行ログ，スプールおよび一時ファイルのフォルダは，共有ドキュメントフォルダに作成されます。

共有ドキュメントフォルダ
  └─Hitachi─JP1AS─JP1ASD     ：開発環境フォルダ
                  │    ├─log  ：システム実行ログフォルダ
                  │    ├─spool：スプールフォルダ
                  │    └─temp ：一時ファイル用フォルダ
                  ├─JP1ASE     ：実行環境フォルダ
                  │    ├─log  ：システム実行ログフォルダ
                  │    ├─spool：スプールフォルダ
                  │    └─temp ：一時ファイル用フォルダ
                  └─misc       ：製品共通ライブラリのフォルダ
                        └─log  ：ログフォルダ

(4)　プログラムの種類

JP1/Advanced Shellで使用する主なプログラムの格納場所とファイル名を次の表に示します。

表2‒1　JP1/Advanced Shellで使用する主なプログラム【Windows限定】

格納フォルダ

ファイル名

プログラムの概要

（括弧内：アイコン）

説明

インストール先フォルダ¥各環境のフォルダ※1¥bin

adshchmsg.exe

障害発生時の応答要求メッセージに対する手動応答

障害発生時に，応答要求メッセージに対して手動で応答する場合に使用するコマンドです。Administrators権限を持つユーザーが使用します。

adshctmj.exe

JP1/Advanced Shell 実行定義プログラム（[図データ]）

カスタムジョブ定義プログラムでJP1/Advanced Shellの実行環境を定義するプログラムです。

adshctmjpc.bat

PCジョブのJP1/Advanced Shell 実行定義プログラム

カスタムジョブ定義プログラムでPCジョブのJP1/Advanced Shellの実行環境を定義するプログラムです。

adshctmjunix.bat

UNIXジョブのJP1/Advanced Shell 実行定義プログラム

カスタムジョブ定義プログラムでUNIXジョブのJP1/Advanced Shellの実行環境を定義するプログラムです。

adshcvmerg.exe

カバレージ情報のマージ

カバレージ情報をマージするコマンドです。実行環境と開発環境で使用できます。

adshcvshow.exe

コマンドからのカバレージ情報の表示

カバレージ情報を表示するコマンドです。実行環境と開発環境で使用できます。

adshcvview.exe

エディタからのカバレージ情報の表示

カバレージ情報を表示するプログラムです。開発環境のエディタからカバレージ情報を表示できます。

adshedit.exe

JP1/Advanced Shell エディタ（[図データ]）

開発環境でジョブ定義スクリプトを編集するエディタです。アイコンをダブルクリックすると，JP1/Advanced Shellエディタが開きます。

adshesub.exe

エディタでのデバッグ

開発環境でジョブ定義スクリプトをデバッグするプログラムです。このプログラムはadshedit.exeから自動的に起動されます。

adshevtout.exe

ジョブ定義スクリプトの稼働実績情報の出力

実行環境で，ジョブ定義スクリプトの稼働実績情報をCSV形式で出力するコマンドです。

adshexec.exe

バッチジョブの実行

ジョブ定義スクリプトを解析して実行を制御するジョブコントローラを起動するコマンドです。

adshexecsub.exe

実行環境でバッチジョブを実行するコマンドです。このコマンドはadshexec.exeから自動的に起動されます。

adshfile.exe

ファイルの後処理登録

指定したファイルをジョブステップまたはジョブの終了時にどのように処置するかを定義するコマンドです。実行環境と開発環境で使用できます。

adshhk.exe

スプールジョブの削除

スプールジョブを削除するコマンドです。実行環境と開発環境で使用できます。

adshjava.exe

Javaのバッチアプリケーション実行

uCosminexus Application Serverと連携してJavaのバッチアプリケーションを実行するコマンドです。

adshlsmsg.exe

障害発生時の応答要求メッセージの一覧表示

障害発生時に，応答要求メッセージの一覧を表示するコマンドです。Administrators権限を持つユーザーが使用します。

adshmsvcd.exe

ユーザー応答機能管理サービス

ユーザー応答機能のための共有メモリを管理するサービスを登録するコマンドです。開発環境で使用できます。Administrators権限を持つユーザーが使用します。

adshmsvce.exe

ユーザー応答機能のための共有メモリを管理するサービスを登録するコマンドです。実行環境で使用できます。Administrators権限を持つユーザーが使用します。

インストール先フォルダ¥各環境のフォルダ※1¥cmd

awk.exe，basename.exe，cat.exe，cmp.exe，cp.exe，cut.exe，date.exe，diff.exe，dirname.exe，egrep.exe，expand.exe，expr.exe，find.exe，getopt.exe，grep.exe，head.exe，hostname.exe，ls.exe，mkdir.exe，mv.exe，paste.exe，rm.exe，rmdir.exe，sed.exe，sleep.exe，sort.exe，split.exe，stat.exe，tail.exe，touch.exe，uname.exe，uniq.exe，wc.exe，which.exe

UNIX互換コマンド※2

UNIXのバッチ業務で主に使われるコマンドをWindows環境で使用できるようにした，UNIX互換コマンドです。実行環境と開発環境で使用できます。

インストール先フォルダ¥各環境のフォルダ※1¥maintenance

adshcollect.bat

資料の採取

トラブルシューティングで資料を採取するコマンドです。実行環境と開発環境で使用できます。

注※1

各環境のフォルダは，開発環境フォルダの場合は「JP1ASD」，実行環境フォルダの場合は「JP1ASE」，カスタムジョブ定義プログラムのフォルダの場合は「JP1ASV」です。

注※2

UNIX互換コマンドにはこのほかにchmodコマンド，suコマンドおよびwhoコマンドがあります。chmodコマンド，suコマンドおよびwhoコマンドを使用する場合は，JP1/Advanced Shellが提供するサンプルスクリプトファイルを「2.6.6(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】」に示す手順で事前に編集する必要があります。

2.1.2　インストール先ディレクトリ【UNIX限定】

(1)　インストール先ディレクトリ

UNIXの実行環境は，固定のディレクトリ（/opt/jp1as）にインストールされます。UNIX環境には，開発環境はありません。

インストール先ディレクトリの構成を次に示します。

/opt/jp1as
  ├─bin                         ：プログラムのディレクトリ
  ├─cmd                         ：UNIX互換コマンドのディレクトリ
  ├─conf                        ：システム環境ファイル格納ディレクトリ
  ├─instlog                     ：インストールのログ情報のディレクトリ
  ├─lib                         ：ライブラリのディレクトリ
  ├─log                         ：システム実行ログのディレクトリ
  ├─maintenance                 ：障害発生時に使用するディレクトリ
  ├─sample                      ：サンプルデータのディレクトリ
  │    ├─Adapter_HITACHI_JP1_AS_USERREPLY.conf
  │    │                        ：ユーザー応答機能用アダプタコマンド設定ファイル
  │    ├─hitachi_jp1_as_EUC_attr_ja.conf    ：イベント拡張属性定義ファイル(日本語EUC)
  │    ├─hitachi_jp1_as_SJIS_attr_ja.conf   ：イベント拡張属性定義ファイル(シフトJIS)
  │    ├─hitachi_jp1_as_UTF8_attr_ja.conf   ：イベント拡張属性定義ファイル(UTF-8)
  │    ├─jp1_as_md             ：ユーザー応答機能管理デーモンの
  │    │                          自動起動・停止スクリプトファイル※
  │    ├─sample.ase            ：環境ファイルのテンプレート
  │    └─sample.ash            ：ジョブ定義スクリプトファイルのサンプル
  ├─sbin                        ：システム管理者用プログラムのディレクトリ
  ├─system                      ：ユーザー応答機能管理デーモンが使用するディレクトリ
  ├─trace                       ：トレースのディレクトリ
  └─util─JP1ASVC.msi           ：カスタムジョブ定義プログラムのインストーラ

注※

Linux版，HP-UX版，Solaris版の場合にインストールされます。

(2)　スプールディレクトリと一時ファイル用ディレクトリ

スプールディレクトリと一時ファイル用ディレクトリは，次のディレクトリに作成されます。

/var/opt/jp1as─spool ：スプールディレクトリ
            └─temp  ：一時ファイル用ディレクトリ

(3)　プログラムの種類

JP1/Advanced Shellで使用する主なプログラムの格納場所とファイル名を次の表に示します。

表2‒2　JP1/Advanced Shellで使用する主なプログラム【UNIX限定】

格納ディレクトリ

ファイル名

プログラムの概要

説明

/opt/jp1as/bin

adshcvmerg

カバレージ情報のマージ

カバレージ情報をマージするコマンドです。

adshcvshow

カバレージ情報の表示

カバレージ情報を表示するコマンドです。

adshevtout

ジョブ定義スクリプトの稼働実績情報の出力

ジョブ定義スクリプトの稼働実績情報をCSV形式で出力するコマンドです。

adshexec

バッチジョブの実行

バッチジョブを実行するコマンドです。

adshfile

ファイルの後処理登録

指定したファイルをジョブステップまたはジョブの終了時にどのように処置するかを定義するコマンドです。

adshhk

スプールジョブの削除

スプールジョブを削除するコマンドです。

adshjava

Javaのバッチアプリケーション実行【Linux，AIX，HP-UX限定】

uCosminexus Application Serverと連携してJavaのバッチアプリケーションを実行するコマンドです。

/opt/jp1as/cmd

awk，basename，cat，cmp，cp，cut，date，diff，dirname，egrep，expand，expr，find，getopt，grep，head，hostname，ls，mkdir，mv，paste，rm，rmdir，sed，sleep，sort，split，stat，tail，touch，uname，uniq，wc，which

UNIX互換コマンド

ジョブ定義スクリプトからUNIXコマンドを使用できるようにしたものです。

/opt/jp1as/maintenance

adshcollect

資料の採取

トラブルシューティングで資料を採取するコマンドです。

/opt/jp1as/sbin

adshchmsg

障害発生時の応答要求メッセージに対する手動応答

障害発生時に，応答要求メッセージに対して手動で応答する場合に使用するコマンドです。スーパーユーザー権限を持つユーザーが使用します。

adshlsmsg

障害発生時の応答要求メッセージの一覧表示

障害発生時に，応答要求メッセージの一覧を表示するコマンドです。スーパーユーザー権限を持つユーザーが使用します。

adshmdctl

ユーザー応答機能管理デーモン

ユーザー応答機能のための共有メモリを管理するデーモンを起動および停止するコマンドです。スーパーユーザー権限を持つユーザーが使用します。

2.2　インストール前の検討事項

ここでは，システム構成，前提プログラム，関連プログラムおよび使用するファイルなど，インストール前の検討事項について説明します。

2.2.1　システム構成

JP1/Advanced Shellのシステム構成を実行形態ごとに説明します。

(1)　JP1/AJSからバッチジョブを実行する場合

JP1/AJSからバッチジョブを実行する場合のシステム構成を次に示します。

図2‒1　JP1/AJSからバッチジョブを実行する場合のシステム構成

システムの各構成要素の役割を次に説明します。

開発用PC：JP1/Advanced Shell - Developerを使用してジョブ定義スクリプトを作成します。

バッチ業務サーバ：ジョブ定義スクリプトを手動または自動実行します。

運用管理サーバ：実行されたジョブを管理します。

運用管理端末：JP1/AJS - Viewを使用してジョブの実行結果を表示したり，自動実行するジョブ定義スクリプトを定義したりします。運用管理端末で，JP1/Advanced Shellのジョブ定義を行うにはJP1/Advanced Shell - Custom Job（カスタムジョブ定義プログラム）が必要になります。

(2)　手動でバッチジョブを実行する場合

手動でバッチジョブを実行する場合のシステム構成を次に示します。

図2‒2　手動でバッチジョブを実行する場合のシステム構成

システムの各構成要素の役割を次に説明します。

開発用PC：JP1/Advanced Shell - Developerを使用してジョブ定義スクリプトを作成します。

バッチ業務サーバ：ジョブ定義スクリプトを手動で実行します。

(3)　uCosminexus Application Serverと連携する場合

uCosminexus Application Serverと連携する場合のシステム構成は，スケジューリング機能を使用しない場合と使用する場合とで，次の図のように異なります。

図2‒3　uCosminexus Application Serverと連携する場合のシステム構成（スケジューリング機能を使用しない場合）

図2‒4　uCosminexus Application Serverと連携する場合のシステム構成（スケジューリング機能を使用する場合）

詳細については，「3.3　adshjavaコマンドを使用してJavaのバッチアプリケーションを実行する【Windows，Linux，AIX，HP-UX限定】」を参照してください。

(4)　ユーザー応答機能を使用する場合

ユーザー応答機能を使用する場合のシステム構成を次の図に示します。

図2‒5　ユーザー応答機能を使用する場合のシステム構成

詳細については，「3.8　ユーザー応答機能を使用する」を参照してください。

2.2.2　環境ごとに必要なプログラム

JP1/Advanced Shellの前提プログラムと関連プログラムを説明します。

(1)　実行環境の前提プログラムと関連プログラム

(a)　実行環境の前提プログラム

実行環境の前提プログラムを次の表に示します。

表2‒3　実行環境の前提プログラム

サーバの種類

OS

JP1/Advanced Shellと同じバッチ業務サーバ【Windows限定】

Windows

JP1/Advanced Shellと同じバッチ業務サーバ【UNIX限定】

AIX，

HP-UX，

Linux，または

Solaris

(b)　実行環境の関連プログラム

実行環境のサーバごとに関連するプログラムを表に示します。

表2‒4　実行環境の関連プログラム（JP1/AJSからバッチジョブを実行する場合）

サーバの種類

実施する処理

プログラム

JP1/Advanced Shellと同じバッチ業務サーバ

JP1/AJSからジョブ定義スクリプトを実行する

JP1/Base

JP1/AJS - Agent※

運用管理サーバ

ジョブを管理する

JP1/Base

JP1/AJS - Manager※

運用管理端末【Windows限定】

ジョブの実行結果を表示する

JP1/AJS - View

注※

JP1/AJS - ManagerにはJP1/AJS - Agentの機能が含まれているため，JP1/Advanced Shellと同一サーバ上にJP1/AJS - Managerがあれば，JP1/AJS - Agentは不要です。

表2‒5　実行環境の関連プログラム（uCosminexus Application Serverと連携してJavaのバッチアプリケーションを実行する場合）【Windows，Linux，AIX，HP-UX限定】

サーバの種類

プログラム

JP1/Advanced Shellと同じバッチ業務サーバ

uCosminexus Application Server

表2‒6　実行環境の関連プログラム（ユーザー応答機能を使用する場合）

サーバの種類

プログラム

JP1/Advanced Shellと同じバッチ業務サーバ

JP1/Base

運用管理サーバ

JP1/IM - Manager

JP1/Base

運用管理端末

JP1/IM - View

注

ユーザー応答機能の出力先に標準出力を指定してデバッグ実行する場合は，これらのプログラムは必須ではありません。

(2)　開発環境の前提プログラムと関連プログラム【Windows限定】

(a)　開発環境の前提プログラム

開発環境の前提プログラムを次の表に示します。

表2‒7　開発環境の前提プログラム【Windows限定】

サーバの種類

OS

JP1/Advanced Shell - Developerと同じ開発用PC

Windows

(b)　開発環境の関連プログラム

開発環境の関連プログラムをサーバごとに示します。

表2‒8　開発環境の関連プログラム（uCosminexus Application Serverと連携してJavaのバッチアプリケーションを実行する場合）

サーバの種類

プログラム

JP1/Advanced Shell - Developerと同じ開発用PC

uCosminexus Application Server

表2‒9　開発環境の関連プログラム（ユーザー応答機能を使用する場合）

サーバの種類

プログラム

JP1/Advanced Shell - Developerと同じ開発用PC

JP1/Base

運用管理サーバ

JP1/IM - Manager

JP1/Base

運用管理端末

JP1/IM - View

注

ユーザー応答機能の出力先に標準出力を指定してデバッグ実行する場合は，これらのプログラムは必須ではありません。

(3)　カスタムジョブ定義プログラムの前提プログラムと関連プログラム【Windows限定】

(a)　カスタムジョブ定義プログラムの前提プログラム

カスタムジョブ定義プログラムの前提プログラムを次の表に示します。カスタムジョブ定義プログラムはWindows限定となりますが，WindowsとUNIXのジョブの定義を作成できます。

表2‒10　カスタムジョブ定義プログラムの前提プログラム【Windows限定】

サーバの種類

OSおよびプログラム

JP1/Advanced Shell - Custom Jobと同じ運用管理端末

OS

Windows

プログラム

JP1/AJS - View

(b)　カスタムジョブ定義プログラムの関連プログラム

カスタムジョブ定義プログラムには，関連プログラムはありません。

2.2.3　JP1/Advanced Shellで使用するファイル

(1)　JP1/Advanced Shellで使用するファイルの一覧

JP1/Advanced Shellで使用するファイルを次の表に示します。ファイルサイズが2GBを超えられるかどうかは，「(2)　2GBを超過するファイル（ラージファイル）の扱い」を参照してください。

表2‒11　JP1/Advanced Shellで使用するファイル

ファイル名

（アイコン）

拡張子

ファイルの位置

ファイルの内容

ジョブ定義スクリプトファイル（[図データ]）

.ash

ユーザー任意

ジョブ定義スクリプトを保存するファイルです。ファイル名は，ユーザー任意に指定できます。

環境ファイル※1

.ase

ユーザー任意

JP1/Advanced Shellの環境情報を設定するファイルです。

システム環境ファイル

.ase

「2.6.1(1)　システム環境ファイルの設定」を参照してください。

システムの環境情報を設定するファイルです。

カバレージ情報ファイル

.asc

ユーザー任意

JP1/Advanced Shellのカバレージ環境情報です。

デバッグ情報ファイル

.asd

ジョブ定義スクリプトファイルと同じディレクトリ※2

エディタ（開発環境）で使用するデバッグ情報です。

システム実行ログ※1

.log

環境ファイルのLOG_DIRパラメーターで指定したディレクトリ

バッチジョブの実行履歴を統括的に参照するためのシステム管理者向けのログ情報です。

トレースログ※1

.log

adshexecコマンドの場合，環境ファイルのTRACE_DIRパラメーターで指定したディレクトリ

上記以外の場合，プログラムで規定したディレクトリ

JP1/Advanced Shellの内部トレースログです。

一時ファイル

.tmp

#-adsh_file_tempコマンドで指定した一時ファイルの場合，環境ファイルのTEMP_FILE_DIRパラメーターで指定したディレクトリ

上記以外の場合，プログラムで規定したディレクトリ

システム内部で使用する一時ファイルです。

カバレージ表示一時ファイル

.txt

システムで規定する一時ファイルディレクトリ

カバレージ情報の表示で使用する一時ファイルです。ファイル名の形式を次に示します。

adshexec_view_ジョブ定義スクリプトファイル名_年月日_時分秒.txt

起動ログ【UNIX限定】

.log

/opt/jp1as/system

ユーザー応答機能管理デーモンの起動・停止時に採取されるログ情報です。

pidファイル【UNIX限定】

.pid

/opt/jp1as/system

ユーザー応答機能管理デーモンとadshmdctlコマンドで使用するファイルです。

注※1

これらのファイルはadshcollectコマンドで採取できます。採取方法については，「adshcollectコマンド（資料を採取する）」を参照してください。

注※2

次のような場合には，デバッグ情報ファイルを保存できないためエラーが表示されます。

・書き込み権限がないディレクトリのジョブ定義スクリプトファイルを編集している場合

・圧縮フォルダ内のジョブ定義スクリプトファイルを編集している場合

ファイルとパスの指定に関する注意事項

ファイル名に.（ドット）で始まる名称を使用しないでください。

指定できるパス名の最大長は，使用しているOSの仕様に従います。

ファイル名は最大246バイトです。【Windows限定】

ファイル名に予約デバイス名（CON，AUX，NULなど）は使用しないでください。【Windows限定】

ファイル名にNTFSのストリームは使用しないでください。【Windows限定】

ハードリンク，シンボリックリンクおよびジャンクションは使用しないでください。【Windows限定】

ファイル名やパス名にはUNC形式の名称（例：¥¥コンピュータ名¥共有名¥ファイル名）を使用できますが，パス名の最後が「共有名」（または「共有名¥」）にならないように指定してください。また，シェル標準コマンドのcdコマンドにはUNC形式を指定できません。【Windows限定】

【使用できる記述例】

　¥¥server¥share¥dir

　¥¥10.111.222.33¥share¥dir

【使用できない記述例】

　¥¥server¥share

　¥¥10.111.222.33¥share

トレース，システム実行ログ，スプールおよび一時ファイルのフォルダパス名にUNC形式の名称は使用しないでください。【Windows限定】

(2)　2GBを超過するファイル（ラージファイル）の扱い

JP1/Advanced Shellでは2GBを超過するファイル（ラージファイル）を一部使用できます。JP1/Advanced Shellで使用できるファイルのうち，ラージファイルに対応するファイルおよびコマンドを次に示します。

スプールジョブディレクトリ内に作成されるファイルのうち，ユーザーデータが出力されるファイル「STDOUT」，「STDERR」，「ステップ番号_ステップ名_STDOUT」，および「ステップ番号_ステップ名_STDERR」

ただし，JP1/AJS3から実行するジョブは，ファイル「STDERR」と「ステップ番号_ステップ名_STDERR」の内容をJP1/AJS3のマネージャーホストへ転送するため，ファイルサイズが大きくなるとシステム全体の処理に影響を与えるおそれがあります。詳細については，マニュアル「JP1/Automatic Job Management System 3 設計ガイド（システム構築編）」を参照してください。

なお，スプールジョブ作成抑止機能を使用している場合は，ジョブ定義スクリプトの実行時にスプールジョブは作成されません。スプールジョブ作成抑止機能については，「2.6.8(1)(a)　スプールジョブ作成抑止機能の使用有無を決定する」を参照してください。

リダイレクト指定のうち，「>file」，「< file」，「>>file」，「>|file」，「<>file」，「n>file」および「n<file」で指定するファイル

testコマンドまたはletコマンドで評価する条件式のうち，「-t fd」以外の条件式で指定するファイル

スクリプト拡張コマンドのうち，#-adsh_fileコマンド，#-adsh_file_tempコマンド，および#-adsh_spoolfileコマンドで割り当てるファイル

UNIX互換コマンドで扱うファイル

ただし，ファイルに対して次に示す操作をする場合は2GBを超過できません。

2GBを超過するバイト数での編集やバイト数表示をする場合

2GBを超過する行数での編集や行数表示をする場合

大きいサイズのファイルを指定するとメモリを大量に消費するUNIXコマンド（diffコマンド，sortコマンド）を実行する場合

ラージファイルの使用可否は，ファイルシステムの種類やOSの設定（例：ulimitの設定）によって異なるため，ラージファイルが使用できる環境であることを運用設計前に確認してください。

2.2.4　JP1/Advanced Shellを使用するときのエンコーディング

JP1/Advanced Shellが使用するジョブ定義スクリプトファイルおよび環境ファイルのエンコーディングは，JP1/Advanced Shellが動作する環境のLANG環境変数の値と一致させてください。一致していない場合の動作は保証できません。また，異なるOSで共通のジョブ定義スクリプトファイルを実行する場合は，各OSで使用できるエンコーディングに統一してください。

JP1/Advanced Shellを使用するときに設定するLANG環境変数値，ジョブ定義スクリプトファイルおよび環境ファイルのエンコーディングを次の表に示します。

表2‒12　LANG環境変数に対応するエンコーディング

OS

LANG環境変数の値

ジョブ定義スクリプトファイルと環境ファイルのエンコーディング

Windows

−

Shift-JIS

Linux

ja_JP.UTF-8

UTF-8

AIX

Ja_JP

ja_JP

JA_JP

JA_JP.UTF-8

Shift-JIS

EUC

UTF-8

UTF-8

HP-UX

ja_JP.SJIS

ja_JP.eucJP

ja_JP.utf8

Shift-JIS

EUC

UTF-8

Solaris

ja_JP.PCK

ja

ja_JP.UTF-8

Shift-JIS

EUC

UTF-8

（凡例）

−：該当しません。

2.2.5　ローカルタイムの設定

JP1/Advanced Shellでは，ローカルタイム情報を環境変数から参照して情報を入出力するため，それらを環境変数で事前に設定しておく必要があります。

JP1/Advanced Shellが提供するコマンドは，OSのタイムゾーンの設定（Windowsの場合），または環境変数TZ（UNIXの場合）に従って情報を出力します。環境変数TZは，次に示すどれかの方法で指定してください。なお，カスタムジョブ定義プログラムの場合は，環境変数を定義できません。

JP1/AJSのジョブ定義，環境変数の定義で指定

システムプロファイル（/etc/profile）に指定

ユーザープロファイル（$HOME/.profile）に指定

2.2.6　標準入力についての注意事項

JP1/Advanced Shellが提供するコマンドを使用して端末装置から標準入力へ入力する場合，入力できる最大長は，OS，端末装置，シェル，およびプログラム言語の言語仕様などによって異なります。

2.3　インストール／アンインストール【Windows限定】

ここでは，Windows環境のJP1/Advanced Shellのインストール方法およびアンインストール方法について説明します。必要になる前提プログラムおよび関連プログラムについては，事前に該当するマニュアルを参照してインストールしておいてください。

製品および関連プログラムのインストールの流れを次に示します。

運用管理サーバで必要な製品のインストールとセットアップを実施する。

JP1/AJSでジョブを運用する場合

JP1/AJS - Manager

ユーザー応答機能を使用する場合

JP1/IM - Manager

運用管理端末で必要な製品のインストールとセットアップを実施する。

JP1/AJSでジョブを運用する場合

JP1/AJS - View

ユーザー応答機能を使用する場合

JP1/IM - View

運用管理端末にJP1/Advanced Shell - Custom Jobをインストールする。

カスタムジョブ定義プログラムのインストールについては，「2.3.3　JP1/Advanced Shell - Custom Jobをインストールする」を参照してください。

バッチ業務サーバで必要な製品のインストールとセットアップを実施する。

JP1/AJSでジョブを運用する場合

JP1/AJS - Agent

ユーザー応答機能を使用する場合

JP1/Base

バッチ業務サーバでJP1/Advanced Shellのインストールと環境情報の設定などをする。

Windows環境のインストールについては，「2.3.1　JP1/Advanced Shellをインストールする【Windows限定】」を参照してください。

ユーザー応答機能を使用する場合のセットアップ手順については，「2.8.2　JP1/Advanced Shellをインストールしたあとのユーザー応答機能の設定【Windows限定】」を参照してください。

2.3.1　JP1/Advanced Shellをインストールする【Windows限定】

JP1/Advanced Shellをインストールする場合，管理者権限を持つユーザーで実行してください。インストール方法として，JP1/NETM/DMを使ったリモートインストールとCD-ROM媒体を使ったインストールがあります。JP1/Advanced Shell - Developerのインストールも同様に実行できます。

(1)　JP1/NETM/DMを使ったリモートインストール

JP1/Advanced Shellは，JP1/NETM/DMを使ったリモートインストール（ソフトウェア配布）に対応しています。

JP1/NETM/DMを使った実際のリモートインストール方法については，マニュアル「JP1/NETM/DM 導入・設計ガイド(Windows(R)用)」およびマニュアル「JP1/NETM/DM 運用ガイド1(Windows(R)用)」を参照してください。

(2)　CD-ROM媒体を使ったインストール

JP1/Advanced Shellをインストールする方法には次の3種類があります。

新規で導入する場合，新規インストールをします。

バージョンアップする場合，上書きインストールをします。

同一バージョンで再インストールする場合，修復インストールをします。

各手順について次に説明します。

(a)　新規インストールの場合

JP1/Advanced Shellを新規インストールする手順を次に示します。実行環境をインストールする場合は，通常，サーバにインストールします。開発環境をインストールする場合は，通常，クライアントPCにインストールします。ただし，1つのPCに実行環境と開発環境の両方をインストールすることもできます。

JP1/Advanced ShellをインストールするWindowsマシンに管理者権限を持つユーザーでログオンする。

すべてのプログラムを終了する。

JP1/Advanced ShellのCD-ROM媒体をCD-ROMドライブに入れる。

起動したインストーラの指示に従って必要な情報を入力し，インストールする。

インストール時に定義する情報を次に示します。

インストールする製品（JP1/Advanced ShellまたはJP1/Advanced Shell - Developer）の選択

ユーザー情報

インストール先フォルダ

［完了］ダイアログが表示されたら，［完了］をクリックする。

インストールが完了します。

(b)　バージョンアップによる上書きインストールの場合

新規インストールと同じ手順で上書きインストールしてください。

JP1/Advanced Shellのバージョンアップによる上書きインストールを行う場合，アンインストールしなくてもアップグレードできます。

(c)　同一バージョンによる修復インストールの場合

JP1/Advanced Shellがインストール済み状態で，製品の不具合が発生した場合に製品を修復するときは，次の手順を実施します。

JP1/Advanced ShellをインストールするWindowsマシンに管理者権限を持つユーザーでログオンする。

すべてのプログラムを終了する。

JP1/Advanced ShellのCD-ROM媒体をCD-ROMドライブに入れる。

起動したインストーラの指示に従って必要な情報を入力し，［プログラムの保守］を選択する。

［プログラムの保守］で［修復］を選択する。

［完了］ダイアログが表示されたら，［完了］をクリックする。

修復インストールが完了します。

2.3.2　JP1/Advanced Shellをアンインストールする【Windows限定】

(1)　手動によるアンインストール

JP1/Advanced Shellをアンインストールする手順を次に示します。また，JP1/Advanced Shell - Developerのアンインストールも同様に実行できます。

JP1/Advanced ShellをインストールしてあるWindowsマシンに管理者権限を持つユーザーでログオンする。

すべてのプログラムを終了する。また，ユーザー応答機能を使用している場合は，JP1/Advanced Shellのサービスを停止してから登録を解除する。

JP1/Advanced ShellのCD-ROM媒体をCD-ROMドライブに入れる。

起動したインストーラの指示に従って必要な情報を入力し，［プログラムの保守］を選択する。

［プログラムの保守］で［削除］を選択する。

［完了］ダイアログが表示されたら，［完了］をクリックする。

アンインストールが完了します。

スプール，トレース，デバッグ情報ファイルなどで不要なファイルが残っている場合は，削除する。

ユーザー応答機能を使用していた場合は，アンインストールが完了したあと，JP1/Baseに対して設定したユーザー応答機能用アダプタコマンド設定ファイルを削除します。ユーザー応答機能用アダプタコマンド設定ファイルの格納先フォルダについては，「2.8.2(2)　アダプタコマンドの設定（実行環境の場合）」または「2.8.2(3)　アダプタコマンドの設定（開発環境の場合）」を参照してください。

(2)　JP1/NETM/DMを使ったアンインストール

JP1/NETM/DMを使ったアンインストール方法については，マニュアル「JP1/NETM/DM 導入・設計ガイド(Windows(R)用)」およびマニュアル「JP1/NETM/DM 運用ガイド1(Windows(R)用)」を参照してください。

2.3.3　JP1/Advanced Shell - Custom Jobをインストールする

JP1/AJS - Viewをインストール済みの運用管理端末で，カスタムジョブ定義プログラムをインストールする手順について説明します。カスタムジョブ定義プログラムは，JP1/Advanced Shellのインストール先から運用管理端末へ転送してインストールします。

カスタムジョブ定義プログラムは，Windows環境にインストールできますが，WindowsとUNIXのジョブの定義を作成できます。新規インストール，上書きインストール，および修復インストールについて説明します。

(1)　新規インストール

JP1/Advanced Shell - Custom Jobを新規インストールする手順を次に示します。

JP1/Advanced Shell - Custom Jobをインストールする運用管理端末に，管理者権限を持つユーザーでログインする。

JP1/Advanced Shell - Custom Jobのインストーラを取得する。

インストーラの格納先を次に示します。

Windows版JP1/Advanced Shellを使用する場合

インストール先フォルダ¥JP1ASE¥util¥JP1ASVC.msi

UNIX版JP1/Advanced Shellを使用する場合

/opt/jp1as/util/JP1ASVC.msi

JP1/Advanced Shell - Custom Jobのインストーラ（JP1ASVC.msi）を運用管理端末へ転送する。

コマンドプロンプトを起動してインストーラを転送したフォルダに位置づけ，次のコマンドを実行する。

msiexec /i JP1ASVC.msi

インストーラの指示に従って必要な情報を指定し，インストールする。

ユーザー情報：ユーザー名などを指定します。

インストール先フォルダ：JP1/Advanced Shell - Custom Jobをインストールするフォルダを指定します。

［完了］ダイアログが表示されたら，［完了］をクリックする。

インストールが完了します。

JP1/AJS3 - View 09-50より古い製品がインストールされている場合にカスタムジョブ定義プログラムをインストールしたときは，カスタムジョブアイコンを次のフォルダにコピーする。

JP1/AJS - Viewのインストール先フォルダ¥image¥custom

コピーするカスタムジョブアイコンのフォルダとファイル名については，「2.1.1　インストール先フォルダ【Windows限定】」を参照してください。

(2)　バージョンアップによる上書きインストール

JP1/Advanced Shell - Custom Jobのバージョンアップによる上書きインストールを行う場合，アンインストールしなくてもアップグレードできます。

新規インストールと同じ手順で上書きインストールしてください。

以前のバージョンでカスタムジョブアイコンをJP1/AJS - Viewのインストール先フォルダにコピーしている場合は，バージョンアップ時に再度コピーする必要はありません。

(3)　同一バージョンによる修復インストール

JP1/Advanced Shell - Custom Jobがインストール済み状態で製品の不具合が発生した場合に製品を修復するときは，次の手順を実施します。

JP1/Advanced Shell - Custom JobをインストールするWindowsマシンに，管理者権限を持つユーザーでログインする。

JP1/Advanced Shell - Custom Jobのインストーラを取得する。

インストーラの格納先を次に示します。

Windowsの場合

インストール先フォルダ¥JP1ASE¥util¥JP1ASVC.msi

UNIXの場合

/opt/jp1as/util/JP1ASVC.msi

JP1/Advanced Shell - Custom Jobのインストーラ（JP1ASVC.msi）を運用管理端末へ転送する。

コマンドプロンプトを起動してインストーラを転送したフォルダに位置づけ，次のコマンドを実行する。

msiexec /i JP1ASVC.msi

［プログラムの保守］から［修復］を選択する。

［完了］ダイアログが表示されたら，［完了］をクリックする。

修復インストールが完了します。

2.3.4　JP1/Advanced Shell - Custom Jobをアンインストールする

JP1/Advanced Shell - Custom Jobをアンインストールする手順を次に示します。

JP1/Advanced Shell - Custom JobをインストールしてあるWindowsマシンに管理者権限を持つユーザーでログオンする。

すべてのプログラムを終了する。

JP1/AJS - View 09-50より古い製品がインストールされている場合，次のフォルダにコピーしたカスタムジョブアイコンを削除する。

JP1/AJS - Viewのインストール先フォルダ¥image¥custom

コントロールパネルの［プログラムのアンインストール］から製品を選択する。

ユーザーアカウント制御（UAC）が有効な環境でアンインストールを実行した場合，［ユーザーアカウント制御］ウィンドウが表示されます。このウィンドウに対して，［はい］を選択してください。

［完了］ダイアログが表示されたら，［完了］をクリックする。

アンインストールが完了します。

不要なトレースファイルが残っている場合は，削除する。

2.4　インストール／アンインストール【UNIX限定】

ここでは，UNIX環境のJP1/Advanced Shellのインストール方法およびアンインストール方法について説明します。UNIX環境では，実行環境だけをバッチ業務サーバにインストールできます。前提プログラムおよび関連プログラムについては，事前に該当するマニュアルを参照してインストールしておいてください。

製品および関連プログラムのインストールの流れを次に示します。

運用管理サーバで必要な製品のインストールとセットアップを実施する。

JP1/AJSでジョブを運用する場合

JP1/AJS - Manager

ユーザー応答機能を使用する場合

JP1/IM - Manager

Windows環境の運用管理端末で必要な製品のインストールとセットアップを実施する。

JP1/AJSでジョブを運用する場合

JP1/AJS - View

ユーザー応答機能を使用する場合

JP1/IM - View

運用管理端末にJP1/Advanced Shell - Custom Jobをインストールする。

カスタムジョブ定義プログラムのインストールについては，「2.3.3　JP1/Advanced Shell - Custom Jobをインストールする」を参照してください。

バッチ業務サーバで必要な製品のインストールとセットアップを実施する。

JP1/AJSでジョブを運用する場合

JP1/AJS - Agent

ユーザー応答機能を使用する場合

JP1/Base

バッチ業務サーバにJP1/Advanced Shellのインストールと環境情報の設定などをする。

UNIX環境へのインストールについては，「2.4.1　JP1/Advanced Shellをインストールする【UNIX限定】」を参照してください。

ユーザー応答機能を使用する場合のセットアップ手順については，「2.8.3　JP1/Advanced Shellをインストールしたあとのユーザー応答機能の設定【UNIX限定】」を参照してください。

2.4.1　JP1/Advanced Shellをインストールする【UNIX限定】

JP1/Advanced Shellをインストールする場合，管理者権限を持つユーザーで実行してください。インストール方法として，JP1/NETM/DMを使ったリモートインストールとCD-ROM媒体を使ったインストールがあります。

(1)　JP1/NETM/DMを使ったリモートインストール

JP1/Advanced Shellは，JP1/NETM/DMを使ったリモートインストール（ソフトウェア配布）に対応しています。

JP1/NETM/DMを使った実際のリモートインストール方法については，マニュアル「JP1/NETM/DM Manager」およびマニュアル「JP1/NETM/DM SubManager(UNIX(R)用)」を参照してください。

(2)　CD-ROM媒体を使ったインストール

CD-ROM媒体を使ったUNIXへのインストール手順を次に示します。

なお，CD-ROMのディレクトリ名やファイル名は，ハードウェア環境などによって記述した内容と見え方が異なります。lsコマンドで確認し，表示されたファイル名をそのまま入力してください。

ユーザー権限を設定する。

JP1/Advanced Shellをインストールするサーバに，スーパーユーザーでログインします。または，suコマンドでユーザー権限をスーパーユーザーに変更します。

すべてのプログラムを終了する。

既存のJP1シリーズのプログラム，およびJP1/Advanced Shellのプログラムが動作している場合，必ず停止させます。

JP1/Advanced Shellの媒体をセットする。

次のコマンドを実行して，CD-ROM装置をマウントする。

/bin/mount -r -o mode=0544 /dev/cdrom /cdrom

/cdromはCD-ROMデバイススペシャルファイルのマウントポイントです。マウントポイントディレクトリがない場合は，作成してください。なお，デバイススペシャルファイル名およびマウントポイントは，使用する環境によって異なる場合があります。

次のコマンドを実行して，Hitachi PP Installerを起動する。

Linuxの場合

/cdrom/LINUX/setup /cdrom※

AIXの場合

/cdrom/AIX/setup /cdrom※

HP-UXの場合

/cdrom/IPFHPUX/setup /cdrom※

Solarisの場合

/cdrom/SOLARIS/setup /cdrom※

注※　ここでは，マウントポイントに/cdromを仮定します。

Hitachi PP Installerが起動し，初期画面が表示されます。

Hitachi PP Installerの初期画面の例を次に示します。

  Hitachi PP Installer 05-16

    L) List Installed Software.
    I) Install Software.
    D) Delete  Software.
    Q) Quit.

    Select Procedure ===>

Hitachi PP Installerの初期画面で「I」を入力する。

インストールできるプログラムの一覧が表示されます。

JP1/Advanced Shellを選択して「I」を入力する。

JP1/Advanced Shellがインストールされます。なお，プログラムを選択するには，カーソルを移動させてスペースバーで選択します。

PPインストール画面の例を次に示します。

       PP-No.               VR     PP-NAME
<@>001 P-8112-B1A1          1010   JP1/Advanced Shell
:
:
F) Forward B) Backward J) Down K) Up Space) Select/Unselect I) Install Q) Quit

選択したPPの左側に，<@>が表示されます。続いて［I］を入力すると，最下行に次に示すメッセージが表示されます。

Install PP? (y: install,  n: cancel)==>

ここで，［y］または［Y］を選択するとインストールが開始されます。［n］または［N］を選択すると，インストールが中止され，PPインストール画面に戻ります。

インストールが正常終了したら，「Q」を入力する。

Hitachi PP Installerの初期画面に戻ります。

なお，インストール時にインストーラのログとして次のファイルが作成されます。

/opt/jp1as/instlog/ADSH_INST_LOG
/opt/jp1as/instlog/ADSH_INST_USERLOG

インストーラのログファイルが作成されていない場合，次に示す問題が考えられます。

インストーラのログファイルが通常のファイルでない

インストーラのログファイルを作成するディレクトリに書き込み権限がない

インストーラのログファイルのパス名を構成する各ファイルパスに，同一のファイルが存在する

同一のファイルが存在する状態を次に示します。

"/opt"がディレクトリでない

"/opt/jp1as"がディレクトリでない

"/opt/jp1as/instlog"がディレクトリでない

インストールが完了すると，デフォルトの環境が設定されています。デフォルトから設定を変更する場合は，「2.6　JP1/Advanced Shellの環境情報を設定する」以降の該当する部分を参照してください。

2.4.2　JP1/Advanced Shellをアンインストールする【UNIX限定】

(1)　手動によるアンインストール

JP1/Advanced Shellをアンインストールする手順を次に示します。Hitachi PP Installerの指示に従ってJP1/Advanced Shellをアンインストールします。

JP1/Advanced Shellをアンインストールする場合は，JP1/Advanced Shellが提供するプログラムをすべて終了してください。また，ユーザー応答機能を使用している場合は，ユーザー応答機能管理デーモンを停止してください。アンインストールでは，インストーラのログファイルおよび新規に作成したファイルは削除されません。したがって，完全に環境を削除するには，ユーザーが自分で削除する必要があります。

次のコマンドを実行して，Hitachi PP Installerを起動する。

/etc/hitachi_setup

Hitachi PP Installerが起動し，初期画面が表示されます。

Hitachi PP Installerの初期画面の例を次に示します。

  Hitachi PP Installer 05-16

    L) List Installed Software.
    I) Install Software.
    D) Delete  Software.
    Q) Quit.

    Select Procedure ===>

Hitachi PP Installerの初期画面で「D」を入力する。

アンインストールできるソフトウェアの一覧が表示されます。

JP1/Advanced Shellを選択して「D」を入力する。

JP1/Advanced Shellがアンインストールされます。なお，プログラムを選択するには，カーソルを移動させてスペースバーで選択します。

アンインストール画面の例を次に示します。

       PP-No.               VR     PP-NAME
   001 P-8112-B1A1          1010   JP1/Advanced Shell
:
:
F) Forward B) Backward J) Down K) Up Space) Select/Unselect D) Delete Q) Quit

選択したPPの左側に，<@>が表示されます。続いて［D］を入力すると，最下行に次に示すメッセージが表示されます。

Delete PP? (y: delete, n: cancel) ==>

ここで，［y］または［Y］を選択するとアンインストールが開始されます。［n］または［N］を選択すると，アンインストールが中止され，アンインストール画面に戻ります。

アンインストールが正常終了したら，「Q」を入力する。

Hitachi PP Installerの初期画面に戻ります。

実行ログ，トレースなどで不要なファイルが残っている場合は，削除する。

なお，アンインストール時にインストーラのログとして次のファイルが作成されます。

/opt/jp1as/instlog/ADSH_INST_LOG
/opt/jp1as/instlog/ADSH_INST_USERLOG

インストーラのログファイルが作成されていない場合，次に示す問題が考えられます。

インストーラのログファイルが通常のファイルでない

インストーラのログファイルを作成するディレクトリに書き込み権限がない

インストーラのログファイルのパス名を構成する各ファイルパスに，同一のファイルが存在する

同一のファイルが存在する状態を次に示します。

"/opt"がディレクトリでない

"/opt/jp1as"がディレクトリでない

"/opt/jp1as/instlog"がディレクトリでない

注意

ユーザー応答機能管理デーモンが起動されている場合は，アンインストールが中断されます。この時，次のメッセージが/opt/jp1as/instlog/ADSH_INST_LOGに出力されます。

One or more /opt/jp1as/sbin/adshmd processes are running.
Please stop them.

上記メッセージが出力されている場合は，adshmdctlコマンドを実行してユーザー応答機能管理デーモンを停止したあと，アンインストールを再実行してください。

また，ユーザー応答機能管理デーモンが正常に停止されなかった場合も，アンインストールが中断されます。この場合，一度ユーザー応答機能管理デーモンを起動して停止してから，再度アンインストールを実行してください。

(2)　JP1/NETM/DMを使ったアンインストール

JP1/NETM/DMを使ったアンインストール方法については，マニュアル「JP1/NETM/DM Manager」およびマニュアル「JP1/NETM/DM SubManager(UNIX(R)用)」を参照してください。

(3)　ユーザー応答機能を使用していた場合

ユーザー応答機能を使用していた場合は，アンインストールが完了したあと，次の作業を実施してください。

JP1/Baseに対して設定したユーザー応答機能用アダプタコマンド設定ファイルを削除します。ユーザー応答機能用アダプタコマンド設定ファイルの格納先ディレクトリについては，「2.8.3(2)　JP1/Baseの設定」を参照してください。

ユーザー応答機能管理デーモンの自動起動および自動停止を設定している場合は，自動起動および自動停止の設定を解除します。

【AIXの場合】

次のコマンドを実行して，ユーザー応答機能管理デーモンの自動起動の設定を解除する。

rmitab adshmd

論理ホスト用のユーザー応答機能管理デーモンの自動起動を設定している場合は，論理ホスト用ユーザー応答機能管理デーモンのレコードを指定してrmitabコマンドを実行する。

システム終了時の自動停止機能を解除するには，/etc/rc.shutdownの次に示す記述を削除する。

test -x /opt/jp1as/sbin/adshmdctl && /opt/jp1as/sbin/adshmdctl stop

論理ホスト用のユーザー応答機能管理デーモンの自動起動を設定している場合は，論理ホスト用ユーザー応答機能管理デーモンの自動停止の記述を/etc/rc.shutdownから削除する。

【Linux，HP-UX，Solarisの場合】

/opt/jp1as/sampleディレクトリからコピーしたスクリプトファイルjp1_as_mdをコピー先のディレクトリから削除する。

論理ホスト用の自動起動および自動停止スクリプトファイルを作成している場合は，スクリプトファイル作成先のディレクトリから削除する。

jp1_as_mdスクリプトファイルへのリンクとして作成したシンボリックリンクを削除する。

論理ホスト用の自動起動および自動停止スクリプトファイルのシンボリックリンクを作成している場合は削除する。

自動起動・停止するためのスクリプトファイルのコピー先ディレクトリについては，「2.8.3(1)　ユーザー応答機能管理デーモンの自動起動と自動停止」を参照してください。論理ホスト用の自動起動および自動停止スクリプトファイルの作成先ディレクトリおよびシンボリックリンクの作成先ディレクトリについては，「2.9.5(2)　非クラスタ環境の論理ホスト用ユーザー応答機能管理デーモンの自動起動と自動停止【UNIX限定】」を参照してください。

2.4.3　Hitachi PP Installerでバージョン情報を確認する【UNIX限定】

UNIX版のJP1/Advanced Shellは，Hitachi PP Installerを使ってインストールするため，Hitachi PP InstallerからJP1/Advanced Shellのバージョン情報を表示できます。

表示する手順を次に示します。

次のコマンドを実行して，Hitachi PP Installerを起動する。

/etc/hitachi_setup

初期画面で「L」を入力する。

インストール済みの日立製品の一覧が表示されます。バージョン情報を確認してください。

2.5　環境変数を設定する

JP1/Advanced Shellで使用できる環境変数を次の表に示します。

注意事項

JP1/Advanced Shellでは，名称がADSHから始まるシェル変数・環境変数を設定・参照しています。このため，このマニュアルに記載されている使用目的以外では，名称がADSHから始まるシェル変数・環境変数は使用しないでください。

表2‒13　JP1/Advanced Shellで使用できる環境変数

環境変数名

設定する内容

値が自動的に設定される場合の設定時期

値の設定可否

ADSH_AJS_ENVF

カスタムジョブ用ジョブ環境ファイル名。

カスタムジョブで起動した場合のジョブ開始時

可※1

ADSH_AJS_GCHE

カスタムジョブ用事前チェックオプション。

カスタムジョブで起動した場合のジョブ開始時

可※1

ADSH_AJS_LHOST

カスタムジョブ用論理ホスト名。

カスタムジョブで起動した場合のジョブ開始時

可※1

ADSH_AJS_SCRF

カスタムジョブ用ジョブ定義スクリプトファイル名。

カスタムジョブで起動した場合のジョブ開始時

可※1

ADSH_ENV

ジョブ環境ファイルのファイル名。

カスタムジョブで起動した場合のジョブ開始時

可

ADSH_CMD_ARGORDER※2

コマンドラインに指定するコマンド引数の指定順序規則。設定できる値はseqだけである。

cut，date，diff，expand，ls，statコマンドで有効となる。また，getoptコマンドのユーザー定義のオプションの解析でも有効となる。

（自動的には設定されない）

可

ADSH_CMDEXPR_LENGTH

文字列長。exprコマンドのlength演算子を使用する場合に設定する。

文字列のバイト数を取得するときはb，文字列の文字数を取得するときにはcを設定する。

この環境変数の設定がないか，上記以外の値を設定した場合は，lengthは演算子として扱われない。

（自動的には設定されない）

可

ADSH_JOB_NAME

ジョブ名。

ジョブ開始時

不可

ADSH_JOBID

ジョブ識別子（先頭に0を付加した6桁固定の10進数）。

ジョブ開始時

不可

ADSH_JOBRC_FATAL

構文エラーなど，ジョブを続行できない致命的なエラーが発生した場合のジョブの終了コード。

設定方法については「2.6.15(2)　環境変数ADSH_JOBRC_FATAL（ジョブ続行不可エラー発生時の終了コードを設定する）」を参照してください。

（自動的には設定されない）

可

ADSH_STEP_NAME

ジョブステップ名。

ジョブステップ外のコマンド実行時や，ジョブステップ名省略時は，環境変数を定義しない。

ジョブステップ開始時

不可

AJS_BJEX_STOP

JP1/AJSからの強制終了で使用するインターフェース。PCジョブやUNIXジョブでJP1/Advanced Shellのバッチジョブを定義する場合は，この環境変数を定義する必要がある。OSの設定で定義するのではなく，PCジョブやUNIXジョブの定義で定義すること。

カスタムジョブで起動した場合のジョブ開始時

可（TERMだけ設定可能）

BLOCKSIZE

1ブロック当たりのバイト数。lsコマンドとstatコマンドで使用する。

デフォルトは512。

（自動的には設定されない）

可

COLUMNS

コマンド実行結果出力時の1行あたりの出力幅。lsコマンドの-Cオプションとsedコマンドのlコマンド（編集コマンド）で使用する。

ジョブ定義スクリプト内には定義できない。

（自動的には設定されない）

可（ジョブ定義スクリプト中では不可）

GETOPT_COMPATIBLE

パラメーターの解析方法の指定。getoptコマンドで使用する。

設定する値に決まりはない。設定されている場合，解析される引数はすべて，getoptコマンドが形式1で指定されていると解釈して処理される。

（自動的には設定されない）

可

POSIXLY_CORRECT※2

コマンドラインに指定するコマンド引数の指定順序規則。

設定する値に決まりはない。値が設定されている場合，環境変数ADSH_CMD_ARGORDERにseqが設定されているのと同じ意味になる。

ジョブ定義スクリプト内には定義できない。

（自動的には設定されない）

可（ジョブ定義スクリプト中では不可）

TMPDIR

【UNIX限定】

一時ファイル出力先ディレクトリ。diffコマンドとsortコマンドで使用する。

（自動的には設定されない）

可

注※1

これらの環境変数は，JP1/AJSのajsdefineコマンドのユニット定義，またはJP1/AJS - Definition Assistantのジョブ定義だけで使用できます。JP1/Advanced Shellのジョブ定義スクリプトや，ユーザープロファイルやシステムプロファイルなどのユーザー環境でこれらの環境変数は設定しないでください。

注※2

環境変数POSIXLY_CORRECTは，環境変数ADSH_CMD_ARGORDERで有効なコマンドのほかにLinuxのOS標準のコマンドにも適用されますが，コマンドによってはコマンド引数の指定順序規則以外の機能にも作用する場合があります。そのため，UNIX互換コマンドだけにコマンド引数の指定順序規則を設定したい場合は，環境変数ADSH_CMD_ARGORDERを使用してください。

この表の環境変数に加えて，OSが標準的に設定する環境変数や，環境ファイルにexportパラメーターで設定した環境変数も，ジョブ定義スクリプトから参照できます。exportパラメーターについては，「exportパラメーター」を参照してください。

2.6　JP1/Advanced Shellの環境情報を設定する

インストールが終了したあと，環境情報を設定するために次の作業を実施してください。環境情報を設定することで，該当する環境情報に基づいたバッチジョブを実行できるようになります。

必要に応じて，JP1/Advanced Shellの環境ファイルの情報（環境情報）および環境変数などを設定します。

環境ファイルや環境変数の設定については，「2.6.1　環境ファイルを設定する」〜「2.6.15　ジョブを続行できないエラーが発生したときの終了コードを定義する」を参照してください。

また，必要に応じて次の個所も参照してください。

「2.6.16　ユーザー応答機能を設定する」

「2.6.17　JP1環境を確認する【UNIX限定】」

「2.6.18　シェルを設定する【UNIX限定】」

JP1/Advanced Shellで必要なディレクトリとファイルをデフォルト内容から変更したい場合は，変更後のディレクトリやファイルを作成します。

詳細については，「2.6.19　JP1/Advanced Shellで必要なディレクトリを作成する」を参照してください。

保守情報を採取するための定義ファイルを設定します。

保守情報の採取の詳細については，「10.3　資料の採取方法」を参照してください。

注意事項

JP1/Advanced Shellでは，名称が「ADSH」から始まるシェル変数・環境変数を設定・参照しています。このため，このマニュアルに記載されている使用目的以外では，名称が「ADSH（Windowsの場合は小文字での表記も含む）」から始まるシェル変数・環境変数は使用しないでください。

2.6.1　環境ファイルを設定する

環境ファイルには，システム環境ファイルとジョブ環境ファイルがあります。設定できるパラメーターは同じです。各ファイルの説明を次の表に示します。

表2‒14　環境ファイルの種類

環境ファイルの種類

説明

システム環境ファイル

システム管理者が設定する，システム共通の環境ファイルです。サービスまたはデーモンはシステム環境ファイルの設定内容を使用します。固定のディレクトリに格納することで自動的に使用される環境ファイルです。

ジョブ環境ファイル

開発者がジョブごとに設定する環境ファイルです。次の場合に指定します。

環境変数ADSH_ENVで指定する環境ファイル

JP1/Advanced Shellエディタの［実行環境の設定］ダイアログボックスで指定するジョブ環境ファイル

JP1/Advanced Shellカスタムジョブ定義時に指定するジョブ環境ファイル

JP1/Advanced Shellのサービスまたはデーモンはシステム環境ファイルの設定内容を使用します。システム環境ファイルに設定した内容は，JP1/Advanced Shellのサービスまたはデーモンの起動時から有効になります。

ジョブコントローラは，システム環境ファイルおよびジョブ環境ファイルの設定内容を使用します。

環境ファイルに指定できるパラメーターの詳細については，「7.　環境ファイルで設定するパラメーター」を参照してください。

システム環境ファイルのパラメーターに指定する各種ディレクトリは，存在するディレクトリを指定する必要があります。そのため，デフォルトのディレクトリを変更する場合は，変更後のディレクトリをあらかじめ作成してください。

また，UNIX環境でシステム環境ファイルを変更したあとは，必ずadshmdctlコマンドにconftestオプションを指定して実行し，エラーのないことを確認してください。

それぞれの環境ファイルの設定方法を次に示します。

(1)　システム環境ファイルの設定

システム環境ファイルはシステム管理者が作成および設定します。作成したシステム環境ファイルは，次の表に示すファイルパスに格納することで有効になります。

表2‒15　システム環境ファイルのファイル名

環境

システム環境ファイルのファイル名

Windows（開発環境）

共通アプリケーションフォルダ¥HITACHI¥JP1AS¥JP1ASD¥conf¥adshrc.ase

Windows（実行環境）

共通アプリケーションフォルダ¥HITACHI¥JP1AS¥JP1ASE¥conf¥adshrc.ase

UNIX

/opt/jp1as/conf/adshrc.ase

(2)　ジョブ環境ファイルの設定

ジョブ環境ファイルを使用してバッチジョブを実行する場合は，環境変数ADSH_ENVにファイルパスを設定します。次に示す手順でジョブ環境ファイルを作成して設定してください。

なお，JP1/Advanced Shellエディタでは，［実行環境の設定］ダイアログボックスでジョブ環境ファイルのパスを指定できます。また，JP1/Advanced Shellカスタムジョブ定義時には，使用するジョブ環境ファイルのパスを指定できます。

次のディレクトリにある環境ファイルのサンプルデータsample.aseを，任意のディレクトリ・ファイル※にコピーする。

Windowsの実行環境の場合

インストール先フォルダ¥JP1ASE¥sample¥sample.ase

Windowsの開発環境の場合

インストール先フォルダ¥JP1ASD¥sample¥sample.ase

UNIXの実行環境の場合

/opt/jp1as/sample/sample.ase

コピーしたジョブ環境ファイルに必要なパラメーターを定義する。

ジョブ環境ファイルに必要なパラメーターを「7.　環境ファイルで設定するパラメーター」に記載していますので参照して定義してください。また，ジョブ環境ファイルのエンコーディングとジョブ定義スクリプトを実行する環境のLANG環境変数の値は一致させてください。ジョブ環境ファイルのエンコーディングおよびLANG環境変数については，「2.2.4　JP1/Advanced Shellを使用するときのエンコーディング」を参照してください。

作成したジョブ環境ファイルをバッチジョブ実行時に使用するよう，作成したジョブ環境ファイルのパスを環境変数ADSH_ENVに設定する。

環境変数ADSH_ENVは，次に示すどれかの方法で指定します。

【Windows限定】OSの設定で環境変数を指定する

【UNIX限定】システムプロファイル/etc/profileを指定する

【UNIX限定】ユーザープロファイル（$HOME/.profile）を指定する

注※

ジョブ環境ファイルの任意のディレクトリ名およびファイル名に&，(，)，[，]，{，}，^，=，;，!，'，+，,，`，~，#，%の記号を含まないでください。これらの記号を含む場合，正常に動作しません。

2.6.2　パス名を変換する

ジョブ定義スクリプトに記載したパス名をWindowsとUNIXの両方で使用できるよう，パスの変換内容をパラメーターで定義します。

JP1/Advanced Shellでは，プラットフォームに対応してジョブ定義スクリプトに次のようにパスを記載できます。

表2‒16　Windows環境とUNIX環境で使用できるパスの規則

項目

Windows環境

UNIX環境

ディレクトリ区切り文字

¥¥ ※1

/

パス区切り文字

;

:

パス名の大文字と小文字

区別する ※2

区別する

絶対パス

パス名の先頭文字は，「ドライブレター:¥¥」 ※1，※3

パス名の先頭文字は，「/」

注※1

Windows環境では，¥はエスケープ文字と見なされるため，¥¥と記載します。またはパス名全体をシングルクォーテーションで囲みます。

注※2

パス名の変換では，Windows環境でも大文字と小文字を区別します。

注※3

UNC形式の名称も指定できます。ただし，ジョブ定義スクリプトでパス名の変換を定義する場合，変換結果のパスの末尾が共有名（後ろに「¥」を指定した場合も含む）にならないよう定義してください。パス名の末尾が共有名の場合，動作は保証されません。

上記の規則によって，パスを変換するにはパラメーターに次の定義が必要です。

Windows環境でジョブ定義スクリプトを実行させたい場合

UNIX環境の区切り文字を読めるようにするため，「/」と「:」を定義します。

UNIX環境でジョブ定義スクリプトを実行させたい場合

Windows環境の区切り文字を読めるようにするため，「¥¥」と「;」を定義します。

パス名を変換するためのパラメーターを次に示します。

PATH_CONV_ENABLEパラメーター

パスを変換する機能を有効にします。変換前のパス区切り文字およびディレクトリ区切り文字を指定します。

Windows環境では「/」と「:」を定義します。

UNIX環境では「¥¥」と「;」を定義します。

PATH_CONV_RULEパラメーター【Windows限定】

パス名の変換対象として次のどちらかを定義します。

ダブルクォーテーションで囲まれた範囲を変換対象とする（パス変換ルール1）

シングルクォーテーションで囲まれた範囲を除く全体を変換対象とする（パス変換ルール2）

パラメーターの指定を省略した場合やUNIXの場合は，パス変換ルール1が適用され，ダブルクォーテーションで囲まれた範囲だけが変換されます。

PATH_CONVパラメーター

パス名の変換前・変換後の文字列を定義します。ジョブ定義スクリプトを実行するときにパラメーターで定義した規則に従い置換します。パス名が変換されるのは，PATH_CONV_RULEパラメーターで定義された範囲だけです。

また，PATH_CONVパラメーターで定義した変換文字列に合致していれば，パス区切り文字およびディレクトリ区切り文字も変換されます。

(1)　ファイルパスの変換例（パス変換ルール1の場合）

環境ファイルの情報に従って，実行前のジョブ定義スクリプトが実行後にどのように変換されるかを次に示します。

環境ファイルの情報

Windowsの場合の環境ファイルの例を次に示します。

#-adsh_conf PATH_CONV_ENABLE / :
#-adsh_conf PATH_CONV_RULE  1
#-adsh_conf PATH_CONV /home/hitachi/bin "C:¥¥Program Files"　←1.
#-adsh_conf PATH_CONV /tmp "C:¥¥temp"　　　　　　　　　　　　←2.

実行前のジョブ定義スクリプト

#-adsh_path_var DIR,DIR2
"/home/hitachi/bin/myprog1" "/tmp/file"　　　　　　　←1.，2.

DIR="/home/hitachi/bin"　　　　　　　　　　　　　　　←1.
"$DIR/myprog1" "/tmp/file"　　　　　　　　　　　　　 ←2.
DIR2=$DIR
"$DIR2/myprog2" "/tmp/file"　　　　　　　　　　　　　←2.

実行後のジョブ定義スクリプト

パスを変換すると次のようになります。

"C:¥¥Program Files¥¥myprog1" "C:¥¥temp¥¥file"　　　　←1.，2.

DIR="C:¥¥Program Files"　　　　　　　　　　　　　　　←1.
"$DIR¥¥myprog1" "C:¥¥temp¥¥file"　　　　　　　　　　 ←2.
DIR2=$DIR
"$DIR2¥¥myprog2" "C:¥¥temp¥¥file"　　　　　　　　　　←2.

PATH_CONVパラメーターの定義に従い，パスが「/home/hitachi/bin」から「C:¥¥Program Files」へ変換されています。

また，PATH_CONV_ENABLEパラメーターの定義に従い，ディレクトリ区切り文字が「/」から「¥¥」へ変換されています。

PATH_CONVパラメーターの定義に従い，パスが「/tmp」から「C:¥¥temp」へ変換されています。

また，PATH_CONV_ENABLEパラメーターの定義に従い，ディレクトリ区切り文字が「/」から「¥¥」へ変換されています。

(2)　ファイルパスの変換例（パス変換ルール2の場合）

環境ファイルの情報に従って，実行前のジョブ定義スクリプトが実行後にどのように変換されるかを次に示します。

環境ファイルの情報

Windowsの場合の環境ファイルの例を次に示します。

#-adsh_conf  PATH_CONV_ENABLE  / :
#-adsh_conf  PATH_CONV_RULE  2
#-adsh_conf  PATH_CONV /home/user01  d:¥¥home¥¥user01
#-adsh_conf  PATH_CONV BB/AA BB¥¥AA

実行前のジョブ定義スクリプト

#-adsh_job  JOB001
#-adsh_path_var DIR01
echo -E "/home/user01/file"
cat /home/user01/file
DIR01=/home/user01
cat $DIR01/file02　　　　　　　　　　       ←1.
PATH=/home/user01/prog:$PATH　　　　　      ←2.
uap01
DIR02=/home/user01
PATH="$DIR02:/home/user01/prog:$PATH"
AA=10
BB=200
let ANS=BB/AA　　　　　　　　　　　　       ←3.
echo $ANS
cat BB/AA

実行後のジョブ定義スクリプト

パスを変換すると次のようになります。

#-adsh_job  JOB001
#-adsh_path_var DIR01
echo -E "d:¥¥home¥¥user01¥¥file"
cat "d:¥¥home¥¥user01"¥¥file
DIR01="d:¥¥home¥¥user01"
cat "$DIR01"¥¥file02                        ←1.
PATH="d:¥¥home¥¥user01"¥¥prog";""$PATH"     ←2.
uap01
DIR02="d:¥¥home¥¥user01"
PATH="$DIR02;d:¥¥home¥¥user01¥¥prog;$PATH"
AA=10
BB=200
let ANS="BB¥¥AA"                            ←3.
echo $ANS
cat "BB¥¥AA"

変換前のジョブ定義スクリプトにパス名を扱うシェル変数DIR01を定義しているため，変換結果ではシェル変数DIR01が「"（ダブルクォーテーション）」で囲まれ，その後ろにディレクトリ区切り文字が付加されます。

文字列の先頭部分が変換規則と一致するため「"（ダブルクォーテーション）」で囲まれます。また，パス区切り文字が「";"」に変換されます。さらに，文字列がパスとして変換されたので，変数名PATHもダブルクォーテーションで囲まれます。

演算式がパス変換規則に一致したため変換されています。変換されないようにするには，ジョブ定義スクリプトを次のどちらかの方法で修正する必要があります。

「let ANS='BB/AA'」のようにシングルクォーテーションで囲む。

「let ANS=$BB/$AA」のように参照する変数名の先頭に$を付加する。

(3)　注意事項

この定義を使用してパス名をWindows用に変換すると，パス名中のディレクトリ区切り文字が「¥」となります。そのため，パス名を無条件にechoコマンドで表示しているジョブ定義スクリプトでは，「¥」およびそれに続く文字がエスケープ文字に置き換わります。

エスケープ文字に置き換えない場合は，echoコマンドに-Eオプションを指定して実行してください。詳細については，「9.3　シェル標準コマンド」の「echoコマンド（引数で指定した内容を標準出力に出力する）」を参照してください。

メタキャラクタの「~」，「~+」および「~-」は，クォーテーションで囲んだり，クォーテーションで囲まれた文字列やエスケープ文字（¥）の直前に記述されたりすると，置換されません。メタキャラクタについては，「5.1.6　メタキャラクタ」を参照し，対応するシェル変数を使用してください。

2.6.3　ファイルの入出力時にファイルパスを変換する

ファイルを入出力する場合に定義した規則に従って，ジョブ定義スクリプトに指定したファイルパスを入出力の対象となるファイルパスに変換します。指定したファイルパスと入出力するファイルパスは，完全に一致させる必要があります。

(1)　ファイル入出力時のファイルパス変換の実行条件

ファイル入出力時のファイルパス変換は，リダイレクト文字（<，>，<>，>>）によって，ファイルへの入出力が発生するタイミングで変換します。

なお，.（ドット）コマンドまたは#-adsh_scriptコマンドでジョブ定義スクリプトを実行する場合も，ジョブ定義スクリプトの読み込み（入力）が発生します。しかし，これらについてはファイル入出力時のファイルパス変換では変換されません。変換する場合は，コマンド実行時に引数を変換するCOMMAND_CONV_ARGパラメーターで変換の規則を定義してください。

ファイル入出力時のファイルパス変換は，「2.6.2　パス名を変換する」で説明されているパス変換によって変換されたジョブ定義スクリプトの内容に対して実行されます。

ファイル入出力時のファイルパス変換は，異なるプラットフォーム間の変換（UNIX→Windows，Windows→UNIX）だけでなく，同じプラットフォーム間の変換（UNIX→UNIX，Windows→Windows）も実行できます。

(2)　ファイル入出力時のファイルパスの変換例

ファイルを入出力する場合に定義した環境ファイルの情報（PATH_CONV_ACCESSパラメーター）に従って，ジョブ定義スクリプトがファイルの入出力時にどのように変換されるかを以降に説明します。

(a)　環境ファイルの情報

環境ファイルの例を次に示します。

#-adsh_conf PATH_CONV_ENABLE / :
#-adsh_conf PATH_CONV /tmp "D:¥¥tmp"
#-adsh_conf PATH_CONV_ACCESS /dev/null nul

(b)　実行前のジョブ定義スクリプト

実行前のジョブ定義スクリプトの例を次に示します。

while read LOG
do
  echo $LOG > /dev/null
done < "/tmp/input.txt"

(c)　実行時のジョブ定義スクリプト

実行時には次のように解釈されて実行します。

while read LOG
do
  echo $LOG > nul
done < "D:¥tmp¥input.txt"

(3)　PATH_CONVパラメーターとPATH_CONV_ACCESSパラメーターとの組み合わせ例

Windows版で，PATH_CONVパラメーターとPATH_CONV_ACCESSパラメーターを組み合わせて使用する例を示します。この2種類のパラメーターは，PATH_CONVパラメーターの方が優先的に処理されます。同じパラメーターの中では，先頭から順に処理されます。

(a)　環境ファイルの内容

環境ファイルの内容を，各行に番号を付けて示します。

1.   #-adsh_conf PATH_CONV_ENABLE / :
2.   #-adsh_conf PATH_CONV /tmp "C:¥¥temp"
3.   #-adsh_conf PATH_CONV_ACCESS /tmp/result.log "C:¥¥jp1as_tmp¥¥result3.log"
4.   #-adsh_conf PATH_CONV_ACCESS "C:¥temp¥result.log" "C:¥¥jp1as_tmp¥¥result4.log"
5.   #-adsh_conf PATH_CONV_RULE 1

(b)　ジョブ定義スクリプトファイルの内容と変換方法

(a)の環境ファイルに対して次のジョブ定義スクリプトを実行した場合，それぞれが異なる規則で変換されます。

cat data.txt > "/tmp/result.log"

この場合，PATH_CONV_RULEパラメーターは1が指定されていることから，"（ダブルクォーテーション）で囲まれた範囲がPATH_CONVパラメーターによって変換されます。

catコマンドに指定した"/tmp/result.log"は"（ダブルクォーテーション）で囲まれているため，環境ファイルの内容の行番号2の規則に従って"C:¥¥temp¥¥result.log"に変換されます。その結果，行番号3の定義には合致しないで，行番号4が定義に合致し，最終的に"C:¥¥jp1as_tmp¥¥result4.log"に変換されます。

cat data2.txt > /tmp/result.log

この場合，catコマンドに指定した/tmp/result.logが，"（ダブルクォーテーション）で囲まれていないため，行番号2のPATH_CONVパラメーターの変換対象になりません。その結果，行番号3の定義に合致し，"C:¥¥jp1as_tmp¥¥result3.log"に変換されます。

2.6.4　コマンド実行時に引数を変換する

コマンド（シェル標準コマンド，シェル拡張コマンド，スクリプト拡張コマンド，スクリプト予約語コマンド，関数，および外部コマンド，ユーザープログラム）の実行時に，変換の定義に従ってコマンドの引数を変換します。この変換は，次のプラットフォーム間で実行できます。

同じプラットフォーム間：UNIX→UNIX，Windows→Windows

異なるプラットフォーム間：UNIX→Windows，Windows→UNIX

ジョブ定義スクリプトの1行を定義された規則に従って解析し，指定された引数の文字列と実行するコマンドの引数の文字列が完全に一致した場合，置換後のコマンド引数の文字列に変換します。変換の定義規則は，COMMAND_CONV_ARGパラメーターで設定します。

(1)　PATH_CONVパラメーターとCOMMAND_CONV_ARGパラメーターとの組み合わせ例

Windows版で，PATH_CONVパラメーターとCOMMAND_CONV_ARGパラメーターを組み合わせて使用する例を示します。この2種類のパラメーターは，PATH_CONVパラメーターの方が優先的に処理されます。同じパラメーターの中では，先頭から順に処理されます。

(a)　環境ファイルの内容

環境ファイルの内容を，各行に番号を付けて示します。

1.  #-adsh_conf PATH_CONV_ENABLE / :
2.  #-adsh_conf PATH_CONV /tmp "C:¥¥temp"
3.  #-adsh_conf COMMAND_CONV_ARG /tmp/data.txt "C:¥¥jp1as_tmp¥¥data3.txt"
4.  #-adsh_conf COMMAND_CONV_ARG "C:¥temp¥data.txt" "C:¥¥jp1as_tmp¥¥data4.txt"
5.  #-adsh_conf PATH_CONV_RULE 1

(b)　ジョブ定義スクリプトファイルの内容と変換方法

(a)の環境ファイルに対して次のジョブ定義スクリプトを実行した場合，それぞれが異なる規則で変換されます。

cat "/tmp/data.txt" > ./result.log

この場合，PATH_CONV_RULEパラメーターは1が指定されていることから，"（ダブルクォーテーション）で囲まれた範囲がPATH_CONVパラメーターによって変換されます。

catコマンドに指定した"/tmp/data.txt"は"（ダブルクォーテーション）で囲まれているため，環境ファイルの内容の行番号2で"/tmp/data.txt"が"C:¥¥temp¥¥data.txt"に変換されます。その結果，行番号3の定義に合致しないで，行番号4の定義に合致し，最終的に"C:¥¥jp1as_tmp¥¥data4.txt"に変換されます。

cat /tmp/data.txt > ./result.log

この場合，catコマンドに指定した/tmp/result.logが，"（ダブルクォーテーション）で囲まれていないため，行番号2のPATH_CONVパラメーターの変換対象になりません。その結果，行番号3の定義に合致し， "C:¥¥jp1as_tmp¥¥data3.txt"に変換されます。

2.6.5　子孫ジョブとして起動するファイルを定義する

ジョブ定義スクリプト中にコマンド名としてほかのジョブ定義スクリプトを指定できます。これによって，adshexecコマンドに指定したジョブ定義スクリプトをJP1/Advanced Shellのジョブとして実行できます。次のような場合に有効です。

ユーザーの既存資産のシェルスクリプトをUNIX環境からWindows環境へ移行する場合

UNIX環境でOSのシェルで動作していた既存のシェルスクリプトを，内容を書き換えないでJP1/Advanced Shellのジョブとして実行する場合

子孫プロセスとして実行されるジョブ定義スクリプトのうち，特定の環境設定パラメーターによって実行されたジョブを子孫ジョブと呼びます。ルートジョブと子孫ジョブの詳細については，「3.1.2(1)　ルートジョブと子孫ジョブ」を参照してください。ジョブ定義スクリプトを子孫ジョブとして実行する方法については，「3.2.3　ジョブ定義スクリプトを子孫ジョブとして実行する」を参照してください。

ジョブ定義スクリプトファイルを子孫ジョブとして起動させる場合，動作させるファイルの条件を環境ファイルに設定しておきます。環境設定パラメーターの概要を次に示します。

CHILDJOB_EXTパラメーター

子孫ジョブとして実行するジョブ定義スクリプトファイルの拡張子を定義する

CHILDJOB_PGMパラメーター

子孫ジョブとして実行するよう読み替えるパスを定義する

CHILDJOB_SHEBANGパラメーター

子孫ジョブとして実行するジョブ定義スクリプトファイルの実行プログラムパスを定義する

また，CHILDJOB_SHEBANGパラメーターのデフォルト定義に合致するジョブ定義スクリプトファイルを作成すれば，子孫ジョブとして実行されます。

各パラメーターの詳細については，「7.　環境ファイルで設定するパラメーター」を参照してください。

注意事項

ルートジョブと子孫ジョブを同じ環境ファイルパラメーターで動作させたい場合は，ジョブの実行中に環境変数ADSH_ENVの値や環境ファイルの内容を変更しないでください。

2.6.6　UNIX互換コマンドを使用するための定義をする

(1)　既存のジョブ定義スクリプトで実行ファイル形式のUNIX互換コマンドを使用するための定義

既存のジョブ定義スクリプトで実行ファイル形式のUNIX互換コマンドを使用する場合は，PATH環境変数にUNIX互換コマンドがインストールされているディレクトリへのパスを設定することで，ジョブ定義スクリプトの修正が不要になります。このとき，環境ファイルのexportパラメーターを使用してPATH環境変数の値の先頭にパスを設定することで，すでにUNIX互換コマンドと同名のコマンドが存在していても，JP1/Advanced Shellのジョブ定義スクリプトでは必ずUNIX互換コマンドを動作させることができます。

exportパラメーターについては，「7.　環境ファイルで設定するパラメーター」の「exportパラメーター（環境変数を定義する）」を参照してください。ジョブ定義スクリプトを実行する各環境で，正しいパスが設定されていることを確認してからジョブ定義スクリプトを実行してください。

(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】

スクリプト形式のUNIX互換コマンドは，JP1/Advanced Shellが提供するサンプルスクリプトファイルを使用します。

スクリプト形式のUNIX互換コマンド（chmodコマンドとsuコマンドなど）は，JP1/Advanced Shellが提供するサンプルスクリプトファイルを基に，次の手順で実行します。

次の場所にあるサンプルスクリプトファイルのうち，使用するファイルを任意のフォルダにコピーする。

Windowsの実行環境の場合

インストール先フォルダ¥JP1ASE¥sample

Windowsの開発環境の場合

インストール先フォルダ¥JP1ASD¥sample

サンプルスクリプトファイルの種類については，「8.5　UNIX互換コマンド（スクリプト形式）【Windows限定】」を参照してください。

コピーしたファイルの名称を各コマンド名にリネームする。

例えば，サンプルスクリプトファイル「script_chmod1」の場合はファイル名を「chmod」へ，サンプルスクリプトファイル「script_su1」の場合はファイル名を「su」へリネームします。何もしないコマンドとしたい場合は，サンプルスクリプトファイル「script_0」をコピーしてリネームします。

サンプルスクリプトを絶対パスや相対パス指定でなく，ファイル名だけ指定して実行したい場合は，次のどちらかを実行する。

環境変数PATHで定義されたフォルダに，実行するサンプルスクリプトを格納する

環境変数PATHに，実行するサンプルスクリプトを格納したフォルダのパスを追加する

必要に応じて，KNAX6831-Iメッセージの出力抑止を定義する。

サンプルスクリプトの実行後にKNAX6831-Iメッセージが出力させたくない場合は，ジョブ環境ファイルに次の内容を記述してください。

#-adsh_conf JOBLOG_SUPPRESS_MSG     KNAX6831-I

システム内のすべてのジョブ定義スクリプトに対してKNAX6831-Iメッセージの出力を抑止したい場合は，システム環境ファイルに記述してください。

ジョブ定義スクリプトを実行する。

手順4.で作成したジョブ環境ファイルを使用して，ジョブ定義スクリプトを実行してください。システム環境ファイルに指定した場合は，手順4.で指定した内容は自動的に読み込まれます。

2.6.7　サポートしていない条件式を実行した場合の動作を定義する【Windows限定】

testコマンドでサポートしていない条件式を実行した場合の動作を次のパラメーターで定義します。

UNSUPPORT_TESTパラメーター

Windows環境では，ファイル属性を評価する場合の次の条件式がサポートされていないため，エラーとなります。このため，上記のパラメーターを指定することで，メッセージを出力してエラーとしたり，正常にしたりできます。サポートされていない条件式を次に示します。

-h file：ファイルに対してシンボリックリンクを使用します。

-G file：ファイルの属するグループが呼び出し元のプロセスの実行グループと一致していることを確認します。

-L file：ファイルに対してシンボリックリンクを使用します（-hの場合と同じ）。

-O file：ファイルの所有者がプロセスの有効ユーザーIDであるか確認します。

file1 -ef file2：file1とfile2が存在し，file1とfile2の実体が同じ（シンボリックリンク先が同じまたはハードリンク先が同じ）であることを確認します。

2.6.8　ジョブ実行結果とログの出力情報を定義する

ジョブの実行結果はスプールディレクトリに出力され，出力内容の一部はジョブ実行ログとして参照できます。また，トラブル発生時にログを採取し，トラブルの原因を調査できます。これらのログの出力先や出力内容を環境ファイルで定義します。

JP1/Advanced Shellを運用しているときに出力されるログ情報と格納先について，次の表に示します。

表2‒17　JP1/Advanced Shell運用時に出力されるログ情報と格納先

ログ情報

出力される情報

格納先

ジョブ実行ログ

バッチジョブのログ

スプールルートディレクトリの配下

システム実行ログ

JP1/Advanced Shellの統括的な実行ログ

環境ファイルのLOG_DIRパラメーター※1で指定したディレクトリ

トレースログ

JP1/Advanced Shellの内部トレースログ

環境ファイルのTRACE_DIRパラメーター※1で指定したディレクトリ

【UNIX限定】

起動ログ※2

ユーザー応答機能管理デーモンの起動・終了ログ

/opt/jp1as/systemの配下

注※1

パラメーターの指定がない場合，デフォルト値が適用されます。

注※2

ユーザー応答機能管理デーモンの起動・停止時に採取されるログ情報です。

このログ情報は，/opt/jp1as/systemディレクトリ下に次のファイル名で作成されます。

・物理ホストのユーザー応答機能管理デーモンの場合：adshmd.log

・論理ホストのユーザー応答機能管理デーモンの場合：adshmd_論理ホスト名.log

スプールの出力情報と，それぞれのログの出力情報の定義方法を次に説明します。

(1)　スプールの出力情報を定義する

スプールに関するパラメーターについて，定義する出力情報ごとに説明します。

(a)　スプールジョブ作成抑止機能の使用有無を決定する

スプールジョブ作成抑止機能を使用すると，スプールジョブが作成されなくなるため，スプールディレクトリのディスク容量の単調増加を防げます。また，スプールディレクトリ下の不要なディレクトリやファイルを削除する必要がなくなります。

スプールジョブ作成抑止機能の使用はSPOOLJOB_CREATEパラメーターで設定します。詳細については，「SPOOLJOB_CREATEパラメーター」を参照してください。

スプールジョブ作成抑止機能を使用している間は，常に次の設定で動作します。

#-adsh_conf EVENT_COLLECT NO

稼働実績情報取得機能を無効とする

#-adsh_conf OUTPUT_MODE_CHILD MINIMUM

子孫ジョブを最小出力モードで実行する

#-adsh_conf OUTPUT_MODE_ROOT MINIMUM

ルートジョブを最小出力モードで実行する

#-adsh_conf SPOOLJOB_CHILDJOB DELETE

子孫ジョブの終了時に子孫ジョブのスプールジョブを削除する

adshexec -m MINIMUM

-mオプションの指定に関係なく，指定したジョブを最小出力モードで実行する

adshscripttool -exec -m MINIMUM

-mオプションの指定に関係なく，指定した子孫ジョブを最小出力モードで実行する

なお，スプールジョブ作成抑止機能を使用すると，スプールジョブディレクトリを使う次の機能は使用できません。

#-adsh_spoolfileコマンド

使用するとKNAX6385-Eメッセージを出力してスクリプトは終了します。

adshfileコマンド

使用するとKNAX1880-Eメッセージを出力してコマンドは終了します。

ジョブ実行ログの採取

ジョブ実行ログは採取しません。

稼働実績採取機能

稼働実績は採取しません。

スプールジョブ作成抑止機能を使用した場合でも，スプールディレクトリは必要です。

また，スプールジョブ作成抑止機能を使用した場合には，次の環境設定パラメーターの指定は無視します。

EVENT_COLLECT

JOBEXECLOG_PRINT

JOBLOG_SUPPRESS_MSG

OUTPUT_MODE_CHILD

OUTPUT_MODE_ROOT

OUTPUT_STDOUT

PERMISSION_SPOOLJOB_DIR

PERMISSION_SPOOLJOB_FILE

SPOOLJOB_CHILDJOB

CUIデバッグ時は次の名称のDBGファイルを生成します。このファイルはデバッグの終了時に自動的に削除されます。このファイルの削除に失敗すると，標準エラー出力とシステム実行ログにエラーメッセージが出力されます。

一時ファイルディレクトリ/ADSH_DBG_プロセスID_ジョブ識別子

一時ファイルディレクトリ

TEMP_FILE_DIRパラメーターで定義する一時ファイルディレクトリ

プロセスID

5桁以上のプロセスID

ジョブ識別子

6桁のジョブ識別子

(b)　スプールルートディレクトリのパス名を定義する

スプールルートディレクトリのパス名を定義するパラメーターを次に示します。

SPOOL_DIRパラメーター：スプールルートディレクトリのパス名を定義します。

なお，ユーザー応答機能を使用する場合は，SPOOL_DIRパラメーターはシステム環境ファイルだけに定義してください。

(c)　スプールジョブディレクトリまたはファイルのパーミッションを変更する【UNIX限定】

ジョブが終了すると，実行結果はジョブごとに作成されるスプールジョブディレクトリへ出力されます。このときディレクトリまたはその下のファイルに設定されるパーミッションは，次のパラメーターで変更できます。

PERMISSION_SPOOLJOB_DIRパラメーター

スプールジョブディレクトリのパーミッションを変更したい場合に指定します。

デフォルトは700です。

PERMISSION_SPOOLJOB_FILEパラメーター

スプールジョブディレクトリ下のファイルのパーミッションを変更したい場合に指定します。

デフォルトは600（.DBGファイルは666）です。

(d)　スプールジョブの標準出力と標準エラー出力の出力内容を定義する

ジョブを実行すると，ジョブの出力結果のほかに，JP1/Advanced Shellの情報メッセージ，警告メッセージ，およびジョブ実行ログが出力されます。また，標準出力と標準エラー出力はスプールジョブディレクトリ下のファイルへ出力されます。

ジョブの実行結果だけをほかのプログラムで利用するなどの理由で，標準出力と標準エラー出力のスプールジョブディレクトリ下のファイルへの出力を抑止したい場合には，次のパラメーターまたはコマンドのオプションで簡潔出力モードまたは最小出力モードを指定します。

OUTPUT_MODE_ROOTパラメーター

ルートジョブに対して，拡張出力モード，簡潔出力モードまたは最小出力モードを指定します。

OUTPUT_MODE_CHILDパラメーター

子孫ジョブに対して，拡張出力モード，簡潔出力モードまたは最小出力モードを指定します。

adshexecコマンドの-mオプション

ジョブに対して，拡張出力モード，簡潔出力モードまたは最小出力モードを指定します。

adshscripttoolコマンドの-mオプション

子孫ジョブに対して，簡潔出力モードまたは最小出力モードを指定します。

これらのパラメーターとオプションを指定しなかった場合は拡張出力モードとなり，標準出力と標準エラー出力はスプールジョブディレクトリ下のファイルへ出力されます。

なお，簡潔出力モードと最小出力モードでは，JP1/Advanced Shellの情報メッセージと警告メッセージは標準出力，標準エラー出力へ出力しません。また，ジョブ終了時にジョブ実行ログを標準エラー出力へ出力しません。さらに，最小出力モードでは，出力抑止したメッセージはスプールジョブディレクトリ下のジョブ実行ログにも出力しません。

簡潔出力モード，拡張出力モードおよび最小出力モードの出力内容の差異については，「3.4.4　ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止する」を参照してください。

(2)　ジョブ実行ログの出力情報を定義する

ジョブ実行ログに関して環境設定時に設定する内容について説明します。ジョブ実行ログの出力内容については「3.5　ジョブ実行ログ」を参照してください。

(a)　標準エラー出力に出力するジョブ実行ログの種類を定義する

ジョブが終了すると，ジョブ実行ログとして次に示す内容が標準エラー出力へ出力されます。出力されたジョブ実行ログは，adshexecコマンドの実行時の端末画面や，JP1/AJS - Viewの［実行結果詳細］ダイアログボックスなどに表示されます。

JOBLOGファイル（コマンドの実行結果やファイルの割り当て結果など，ジョブの動作状況を示すメッセージ）

ジョブ定義スクリプト

ジョブ実行中の標準エラー出力の内容

このうち，ジョブ実行中の標準エラー出力の内容だけを標準エラー出力へ出力させるには，次のパラメーターを指定します。これによって，ジョブ実行ログの出力内容を限定できます。

JOBEXECLOG_PRINTパラメーター

なお，JP1/Advanced Shell - Developerで実行，またはジョブコントローラをデバッガモードで起動した場合ではこのパラメーターの指定に関係なく，実行に合わせてJOBLOG，標準出力，および標準エラー出力の情報をコンソールに出力します。ジョブの終了時にはジョブ実行ログの内容を標準エラー出力へ出力しません。

ジョブを簡潔出力モードまたは最小出力モードで実行した場合は，JOBEXECLOG_PRINTパラメーターの指定に関係なく，ジョブ終了時にジョブ実行ログを標準エラー出力に出力しません。

(b)　子孫ジョブとルートジョブのジョブ実行ログをマージする

次のパラメーターでは，子孫ジョブの終了時に子孫ジョブのスプールジョブを削除するか，ルートジョブのスプールジョブにマージするかを選択できます。

SPOOLJOB_CHILDJOBパラメーター

ルートジョブのスプールジョブへマージした場合，子孫ジョブは終了順に出力されます。また，ルートジョブと子孫ジョブが判別できる形式で出力されます。

(3)　システム実行ログの出力情報を定義する

システム実行ログとは，バッチジョブの実行履歴を統括的に参照するためのシステム管理者向けのログ情報です。

このログ情報は，環境ファイルのLOG_DIRパラメーターで指定したディレクトリ下のAdshLog.logに出力されます。パラメーターに設定した条件（サイズなど）に従って，ファイル名のローテーション（AdshLog_1.log，AdshLog_2.log，…AdshLog_N.log）が実施されます。システム実行ログのファイルはローテーション時に新しく作成されるため，ファイルの所有者はローテーション時のユーザーになります。

(a)　システム実行ログの出力の流れ

システム実行ログには，各ジョブコントローラプロセスで実行しているバッチジョブの情報が出力されます。環境ファイルにシステム実行ログの出力先，サイズおよび面数を指定できます。システム実行ログの出力の流れを次に示します。

図2‒6　システム実行ログの出力の流れ

システム実行ログは次のように作成されます。

システム実行ログに出力するメッセージを集め，CSV形式で出力します。

出力するメッセージについては，「11.2　メッセージの出力先」を参照してください。

ローテーションを行い，バックアップが作成されます。

環境ファイルのLOG_FILE_SIZEパラメーターに指定されたファイルサイズを超える直前に，システム実行ログのファイル名を変更してバックアップを作成し，新たにシステム実行ログを作成して出力を継続します。

バックアップのファイル名は，AdshLog_N.log（Nは整数）となります。Nには新しいバックアップから昇順に1から番号を割り当てます。

環境ファイルのLOG_FILE_CNTパラメーターに指定された面数のバックアップを作成し，面数を超えた場合は古いバックアップを削除します。

(b)　システム実行ログを出力するために必要なパラメーター

システム実行ログを出力するために必要なパラメーターを次に示します。

LOG_DIRパラメーター

システム実行ログを出力するディレクトリのパス名を定義します。

LOG_FILE_CNTパラメーター

システム実行ログをバックアップする面数を定義します。

LOG_FILE_SIZEパラメーター

システム実行ログを出力するファイルサイズを定義します。

複数のユーザーが同じファイルにシステム実行ログを出力している場合には，LOG_FILE_CNTとLOG_FILE_SIZEは，最後にシステム実行ログの出力を開始したユーザーの設定値が有効になります。このため，LOG_FILE_CNTとLOG_FILE_SIZEは同じ値で運用することを推奨します。

(c)　システム実行ログの出力内容

システム実行ログに出力されるメッセージの例を次に示します。

seqnum=1, date=2013-07-01T15:52:30.012+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0004-I, msg="Jobid=000018, JP1NBQSQueueName=, JP1JobID="
seqnum=2, date=2013-07-01T15:52:30.044+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0091-I, msg="JOB1 Job started."
seqnum=3, date=2013-07-01T15:52:30.044+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX7901-I, msg="adshexec waits for all asynchronous processes at the end of the job."
seqnum=4, date=2013-07-01T15:52:30.044+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX7902-I, msg="adshexec will run in tty stdin mode."
seqnum=5, date=2013-07-01T15:52:30.044+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0092-I, msg="JOB1.STEP1 Step started."
seqnum=6, date=2013-07-01T15:52:30.278+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6116-I, msg="Command D:¥bin¥uap01.exe(line=5) succeeded. rc=0 E-Time=0.219s C-Time=0.030s"
seqnum=7, date=2013-07-01T15:52:30.278+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6597-I, msg="JOB1.STEP1 Step succeeded. rc=0 E-Time=0.234s C-Time=0.045s"
seqnum=8, date=2013-07-01T15:52:30.294+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0092-I, msg="JOB1.STEP2 Step started."
seqnum=9, date=2013-07-01T15:52:30.450+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6116-I, msg="Command D:¥bin¥uap02.exe(line=10) succeeded. rc=0 E-Time=0.141s C-Time=0.016s"
seqnum=10, date=2013-07-01T15:52:30.450+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6597-I, msg="JOB1.STEP2 Step succeeded. rc=0 E-Time=0.156s C-Time=0.032s"
seqnum=11, date=2013-07-01T15:52:30.450+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0092-I, msg="JOB1.STEP3 Step started."
seqnum=12, date=2013-07-01T15:52:30.559+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6116-I, msg="Command D:¥bin¥uap03.exe(line=15) succeeded. rc=0 E-Time=0.094s C-Time=0.015s"
seqnum=13, date=2013-07-01T15:52:30.559+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6597-I, msg="JOB1.STEP3 Step succeeded. rc=0 E-Time=0.109s C-Time=0.031s"
seqnum=14, date=2013-07-01T15:52:30.559+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0098-I, msg="JOB1 Job ended. rc=0 E-Time=0.531s C-Time=0.139s "

システム実行ログで，メッセージテキストの前に付加されるデータの意味を次に示します。

システム実行ログに出力されるデータ

データの意味

seqnum

メッセージの通し番号

date

出力した日時（yyyy-mm-ddThh:mm:ss.sssTZDの形式）

pgmid

プログラムID

ジョブコントローラの場合，adshexecが出力されます。

jobid

ジョブ識別子

pid

プロセスID

msgid

出力メッセージのメッセージID

msg

出力メッセージのメッセージテキスト

(4)　トレースログの出力情報を定義する

トレースログは，JP1/Advanced Shellの内部トレースログです。JP1/Advanced Shellでトラブルが発生した場合に，問題点を解明するために採取する情報です。

トレースログの種類を次の表に示します。

表2‒18　トレースログの種類

項番

トレースログの種類

トレースログの出力先（デフォルト値）

ファイル面数

ファイルサイズ

1

JP1/Advanced Shellの実行環境（WindowsおよびUNIX）のトレースログ※

およびJP1/Advanced Shellのジョブ定義スクリプト稼働実績情報出力コマンド（adshevtoutコマンド）のトレースログ※

Windowsの場合

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASE¥trace

UNIXの場合

/opt/jp1as/trace

《4》

((1〜64))

《2》

((1〜16))

2

JP1/Advanced Shell - Developerのエディタ以外のトレースログ※

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASD¥trace

《4》

((1〜64))

《2》

((1〜16))

3

JP1/Advanced Shellのカスタムジョブのトレースログ

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASV¥trace

1

1

4

JP1/Advanced Shell - Developerのエディタのトレースログ

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASD¥adshedit¥trace

1

1

5

JP1/Advanced Shell，JP1/Advanced Shell - Developerの共通コマンドのトレースログ

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥misc¥trace

4

2

注※

トレースログの出力先，面数，およびファイルサイズは，環境設定パラメーターで変更できます。

トレースを定義するために必要なパラメーターを次に示します。

TRACE_DIRパラメーター

トレースを出力するディレクトリのパス名を定義します。トレースログのファイル名はAdshTrace_n.log（nは面数）となります。

TRACE_FILE_CNTパラメーター

トレースを出力する面数を定義します。トレースログファイルは，指定した面数のファイルを順番にラップアラウンドして使用します。

TRACE_FILE_SIZEパラメーター

トレースを出力するファイルサイズを定義します。

TRACE_LEVELパラメーター

トレースを出力するレベルを定義します。

複数のユーザーが同じファイルにトレースを出力している場合，次のように動作します。

TRACE_FILE_CNTとTRACE_FILE_SIZEは，それぞれ，より大きい値を指定したユーザーの指定が有効になります。

TRACE_FILE_CNTとTRACE_FILE_SIZEを変更した場合は，既存のトレースファイルの面数およびファイルサイズの設定値と比較して，それぞれ，より大きい値を指定したユーザーの指定が有効になります。

トレースファイルの面数およびファイルサイズを小さくする場合は，トレースフォルダにあるファイルをすべて削除してください。

トレースフォルダにあるファイルをすべて削除する場合は，同じトレースファイルにトレースを出力しているジョブがないことを事前に確認してください。

2.6.9　スクリプト拡張コマンドの終了コードを定義する

スクリプト拡張コマンドが失敗および成功した場合の終了コードを標準の値から変更したいときに指定します。

ADSHCMD_RC_ERRORパラメーター：スクリプト拡張コマンドが失敗した場合の終了コードを定義します。

ADSHCMD_RC_SUCCESSパラメーター：スクリプト拡張コマンドが成功した場合の終了コードを定義します。

詳細については，「5.8.7　スクリプト拡張コマンドの終了コードとエラー発生時の動作」を参照してください。

2.6.10　複数の環境で共用する

次の環境設定パラメーターで指定するディレクトリを別々に分けることで，同一ホスト内で複数環境を使い分けられます。

LOG_DIRパラメーター

SPOOL_DIRパラメーター

TEMP_FILE_DIRパラメーター

TRACE_DIRパラメーター

クラスタ運用で待機系サーバに情報を引き継ぎたい場合は，引き継ぐディレクトリをホスト間で共用します。その場合は，少なくとも次のパラメーターのディレクトリをホスト間で共用します。

SPOOL_DIRパラメーター

2.6.11　バッチジョブの実行時にカバレージ情報を採取するオプションを指定しなくても有効にする

次の環境設定パラメーターでカバレージ情報を採取するように設定しておけば，adshexecコマンドによるバッチジョブの実行時にカバレージ情報を採取するオプション（-t）を指定しなくても有効にする機能です。

BATCH_CVRパラメーター：カバレージ採取の一括有効化機能を使用します。

ASC_FILEパラメーター：カバレージ採取の一括有効化機能で使用する蓄積ファイル名の生成規則を定義します。

環境ファイルの設定例と実行するコマンドを次に示します。

(1)　環境ファイルの設定例

環境ファイルに次の例のようなパラメーターを設定しておきます。

#-adsh_conf BATCH_CVR YES
#-adsh_conf ASC_FILE ./cvrg/ver001-*

設定例の意味を行ごとに次に示します。

BATCH_CVR：カバレージ採取の一括有効化機能を使用する。

ASC_FILE：カバレージ採取の一括有効化機能で使用する蓄積ファイル名の生成規則を定義する。

(2)　実行するコマンド

上記の環境ファイルの設定で次のコマンドを実行します。

adshexec sample.ash

この場合，「adshexec -t -o ./cvrg/ver001-sample sample.ash」と指定してadshexecコマンドを実行したときと同じ動作になります。ただし，-tオプションを指定して「adshexec -t sample.ash」と指定してadshexecコマンドを実行したときは，終了コード1となり，エラー終了します。

2.6.12　ジョブ定義スクリプトをUNIXからWindowsへ移行する

UNIXのジョブ定義スクリプトをWindowsのジョブ定義スクリプトに移行する場合，次の手順を実施します。なお，この手順を実施する前に，ジョブ定義スクリプトと環境ファイルのエンコーディングが，移行するプラットフォームで使用するLANG環境変数と一致していることを確認してください。

パスを変換する機能を有効にする。

UNIXのジョブ定義スクリプトの区切り文字をWindowsのプラットフォームに変換するために，環境ファイルに次のパラメーターを指定します。

#-adsh_conf PATH_CONV_ENABLE / :

記述されたパスを変換するための設定を実施する。

ジョブ定義スクリプト中で，プログラムのパスを明示的に指定している場合は，Windowsの環境に合わせて変換するために，環境ファイルに次のパラメーターを指定します。UNIX互換コマンドのパスを変換する例を記載します。

#-adsh_conf PATH_CONV /opt/jp1as "C:¥¥Program Files¥¥HITACHI¥¥JP1AS¥¥JP1ASE"

パスを扱うシェル変数の周りの区切り文字を変換するための設定を実施する。

ジョブ定義スクリプト中でプログラムのパスをシェル変数を使って記述している場合は，そのシェル変数を使用しているパスの区切り文字を変換するためにジョブ定義スクリプトごとに次のコマンドを追加します。

#-adsh_path_var VAR

パス変換ルールを選択する。【Windows限定】

パスの変換ルールをPATH_CONV_RULEパラメーターで指定します。

ダブルクォーテーション（"）で囲んだ個所だけを変換したい場合，次のようにパス変換ルール1を指定します。

#-adsh_conf PATH_CONV_RULE  1

ダブルクォーテーション（"）で囲んだ個所以外も変換したい場合，次のようにパス変換ルール2を指定します。

#-adsh_conf PATH_CONV_RULE  2

変換が有効であることを確認する。

パス変換ルール1の場合，パスを変換したい個所が次の例のようにダブルクォーテーション（"）で囲まれていることを確認します。

"$VAR/cmd/ls" -l "/opt/jp1as/sample"

パス変換ルール2の場合，変換したくない個所がシングルクォーテーション（'）で囲まれていることを確認します。

パスの変換結果を事前に確認する。

ジョブ定義スクリプトの文法チェック（adshexec -cコマンド）を実施し，生成されたスクリプトイメージでパスの変換結果を確認します。変換結果が適切でない場合は，パス変換ルールを変更するか，ジョブ定義スクリプトを変更して再実行してください。

パス変換ルール1とパス変換ルール2の変換例を次に示します。

パス変換ルール1での変換例

＜環境設定パラメーター＞

#-adsh_conf PATH_CONV_ENABLE / :
#-adsh_conf PATH_CONV_RULE 1
#-adsh_conf PATH_CONV /opt/jp1as "c:¥¥Program Files¥¥HITACHI¥¥JP1AS¥¥JP1ASE"

＜変換例＞

D:¥home¥user001>"C:¥Program Files¥HITACHI¥JP1AS¥JP1ASE¥bin¥adshexec" -c sample1.ash

***** D:¥home¥user001¥sample1.ash *****
0001 : #-adsh_job SAMPLE
0002 : #-adsh_path_var VAR
0003 :
0004 : VAR=/opt/jp1as
0005 : "$VAR/cmd/ls" -l "/opt/jp1as/sample"
0006 :

***** converted lines in D:¥home¥user001¥sample1.ash *****
0005 : "$VAR¥¥cmd¥¥ls" -l "c:¥¥Program Files¥¥HITACHI¥¥JP1AS¥¥JP1ASE¥¥sample"
KNAX7999-I JP1/Advanced Shell ended. rc=0

D:¥home¥user001>

パス変換ルール2での変換例

＜環境設定パラメーター＞

#-adsh_conf PATH_CONV_ENABLE / :
#-adsh_conf PATH_CONV_RULE 2
#-adsh_conf PATH_CONV /opt/jp1as "c:¥¥Program Files¥¥HITACHI¥¥JP1AS¥¥JP1ASE"

＜変換例＞

D:¥home¥user001>"C:¥Program Files¥HITACHI¥JP1AS¥JP1ASE¥bin¥adshexec" -c sample1.ash

***** D:¥home¥user001¥sample1.ash *****
0001 : #-adsh_job SAMPLE
0002 : #-adsh_path_var VAR
0003 :
0004 : VAR=/opt/jp1as
0005 : "$VAR/cmd/ls" -l "/opt/jp1as/sample"
0006 :

***** converted lines in D:¥home¥user001¥sample1.ash *****
0004 : VAR="c:¥¥Program Files¥¥HITACHI¥¥JP1AS¥¥JP1ASE"
0005 : "$VAR¥¥cmd¥¥ls" -l "c:¥¥Program Files¥¥HITACHI¥¥JP1AS¥¥JP1ASE¥¥sample"
KNAX7999-I JP1/Advanced Shell ended. rc=0

D:¥home¥user001>

2.6.13　シェル変数ENVに指定されたファイルを読み込む

ジョブコントローラ起動時に環境変数ENVに指定された.envファイルを読み込むかどうかを，環境設定パラメーター（KSH_ENV_READパラメーター）に指定できます。このパラメーターを省略した場合，OSごとにデフォルト値が次のように異なります。

YES（ENVファイルを読み込む）：LinuxおよびWindowsの場合

NO（ENVファイルを読み込まない）：AIX，HP-UXおよびSolarisの場合

2.6.14　パイプの最終コマンドの実行プロセスを定義する【UNIX限定】

パイプの最終コマンドをカレントプロセスと別プロセスのどちらで実行するかは，環境設定パラメーターPIPE_CMD_LASTで次のように指定します。

CURRENT：カレントプロセスで実行する

OTHER：別プロセスで実行する

PIPE_CMD_LASTパラメーターを省略した場合，CURRENTが適用されます。

2.6.15　ジョブを続行できないエラーが発生したときの終了コードを定義する

メモリ不足やジョブ定義スクリプトの解析エラーなど，ジョブの実行を継続できないエラーによってジョブが終了した場合，ジョブコントローラの終了コードは1となります。しかし，環境変数ADSH_JOBRC_FATALに値を設定しておくことで，この場合の終了コードを1〜255に変更できます。

環境変数ADSH_JOBRC_FATALの設定方法については，「(2)　環境変数ADSH_JOBRC_FATAL（ジョブ続行不可エラー発生時の終了コードを設定する）」を参照してください。

(1)　環境変数ADSH_JOBRC_FATALの適用可否

ジョブコントローラの動作中に発生するエラーの種類と，それに対する環境変数ADSH_JOBRC_FATALでの終了コード定義の適用可否を次の表に示します。

表2‒19　エラーの種類ごとの環境変数ADSH_JOBRC_FATALの適用可否

項番

エラーの発生時期

エラーの種類

適用可否※1

1

adshexecコマンドでのジョブ起動時，

またはエディタからのジョブ定義スクリプトのデバッグ実行時

OSがadshexecコマンドの実行を開始できないエラーです。

例えば，adshexecコマンドが使用するロードモジュールが存在しないエラーが該当します。

×

2

ジョブ定義スクリプトの実行前

環境変数ADSH_JOBRC_FATALの解析エラーです。

×※2

3

イベントファイルの初期化エラーです。

×

4

【UNIX限定】シグナル受信によるエラーです。

×※3

5

【Windows限定】TerminateProcessなどによって，次に示すどれかのプロセスを即時終了したことによるエラーです。

adshexec.exe

adshexecsub.exe

adshesub.exe

adshedit.exe

×

6

項番2〜項番5以外で発生するすべてのエラーです。代表的なエラーは次のとおりです。

adshexecコマンドのコマンドライン解析エラー

adshexecコマンドの引数に指定したジョブ定義スクリプトファイルの状態不正エラー

環境ファイル解析エラー

ジョブ定義スクリプトの解析エラー

ジョブ実行ログ，システム実行ログ，トレースログの初期化エラー

ascファイルの初期化エラー

【Windows限定】ライセンスチェックエラー

【Windows限定】制御信号（CTRL＋C，CTRL＋BREAK，CTRL_CLOSE_EVENT）の受信によるエラー

○

7

ジョブ定義スクリプトの実行中

ジョブ定義スクリプトの処理を続行するエラーです。※4

×

8

デバッグ実行中に，次に示すデバッガのコマンドやメニュー，ボタンを使用してジョブを途中で終了させたことによるエラーです。

【UNIX限定】killコマンドの実行，quitコマンドの実行およびrunコマンドの再実行

【Windows限定】［デバッグの中止］メニューの選択，［デバッグの中止］ボタンのクリック，およびエディタウィンドウを閉じることによるデバッグ実行の中断

×

9

【UNIX限定】シグナル受信によるエラーです。

×※3

10

【Windows限定】TerminateProcessなどによって，次に示すどれかのプロセスを即時終了したことによるエラーです。

adshexec.exe

adshexecsub.exe

adshesub.exe

adshedit.exe

×

11

項番7〜項番10以外で発生するすべてのエラーです。代表的なエラーを次に示します。

特殊組み込みコマンドのエラー（ただし，typesetコマンドのエラー，関数内または外部スクリプト内で実行したreturnコマンドのエラーを除く）

代入演算のエラー※5

ジョブを終了する書式の変数置換の実行で発生するエラー※6

配列の要素の範囲外（0〜65535以外）を指定したことによるエラー

メモリやディスク容量不足など資源が確保できないエラー

入出力エラー

内部矛盾エラー

【Windows限定】制御信号（CTRL＋C，CTRL＋BREAK，CTRL_CLOSE_EVENT）の受信によるエラー

【Windows限定】演算子-h，-G，-L，-O，または-efを使った条件式を実行したことによるエラー（UNSUPPORT_TESTパラメーターでERR以外を指定した場合は除く）

○

12

ジョブ定義スクリプトの実行後

【UNIX限定】シグナル受信によるエラーです。

×※3

13

ファイルやディレクトリに関する，次に示すエラーです。

スクリプト拡張コマンドで割り当てたファイルの解放エラー

スプールジョブ管理ファイルの後処理エラー

ルートジョブのスプールジョブディレクトリの後処理エラー

イベントファイルの後処理エラー

×

14

【Windows限定】TerminateProcessなどによって，次に示すどれかのプロセスを即時終了したことによるエラーです。

adshexec.exe

adshexecsub.exe

adshesub.exe

adshedit.exe

×

15

項番12〜項番14以外で発生するすべてのエラーです。代表的なエラーを次に示します。

ascファイルの後処理エラー

子孫ジョブのスプールジョブディレクトリの削除エラー

【UNIX限定】.DBGファイルの解析エラー

内部矛盾エラー

【Windows限定】制御信号（CTRL＋C，CTRL＋BREAK，CTRL_CLOSE_EVENT）の受信によるエラー

○

（凡例）

○：環境変数ADSH_JOBRC_FATALの設定が適用されます。

×：環境変数ADSH_JOBRC_FATALの設定が適用されません。

注※1

環境変数ADSH_JOBRC_FATALの設定の適用可否は，adshexecコマンドで指定したオプションには左右されません。例えば，adshexecコマンドに-cオプションを指定して実行し，文法エラーが発生した場合にも適用されます。

適用可否はOSによって次のように異なります。

UNIX版でadshexecコマンドに-dオプションを指定した場合

デバッガと，runコマンドで実行したデバッグ対象のジョブとで，この表の次に示す項番が適用可否の判定対象となります。

デバッガ：項番1〜項番6，項番12〜項番15

デバッグ対象のジョブ：項番7〜項番15

Windows版でエディタからデバッグを実行した場合

デバッグ対象のジョブに対して，この表の項番1〜項番15が適用可否の判定対象となります。

注※2

終了コードは255になります。

注※3

ジョブコントローラがシグナルを受信してエラー終了した場合のジョブの終了コードは「128+シグナル番号」になります。

注※4

ジョブ定義スクリプトの実行中にスクリプト拡張コマンドがエラーとなった場合，次に示す後続のジョブステップとコマンドは実行されませんが，続行できないエラーとは見なされません。そのため，環境変数ADSH_JOBRC_FATALの設定は適用されません。

run属性が省略またはnormalのジョブステップ

ジョブステップ外の命令

注※5

正規組み込みコマンドの引数に代入演算を指定した場合は除きます。

代入演算の指定分類と環境変数ADSH_JOBRC_FATALの設定の適用可否を次の表に示します。この表ではエラーとなる例として，「readonly NUM」で読み込み専用として定義されている変数NUMに対し，値を代入しようとしてエラーとなるケースを使用しています。

代入演算の指定分類

エラーとなる例

適用可否

代入演算をそのまま指定した場合

NUM=100

○

代入演算をスクリプト予約語コマンドの引数に指定した場合

time NUM=100

○

代入演算を特殊組み込みコマンドの引数に指定した場合

export NUM=100

○

代入演算を正規組み込みコマンドの引数に指定した場合

let NUM=100

×

（凡例）

○：環境変数ADSH_JOBRC_FATALの設定が適用されます。

×：環境変数ADSH_JOBRC_FATALの設定が適用されません。

注※6

変数置換の結果，変数の状態によってはジョブが続行できないためエラー終了する場合があります。エラーとなる変数の状態を書式ごとに次に示します。

${variable:?[word]}

variableが定義済みで値がNULL（空文字列）の場合，またはvariableが未定義の場合，エラーとなります。

${variable?[word]}

variableが未定義の場合，エラーとなります。

(2)　環境変数ADSH_JOBRC_FATAL（ジョブ続行不可エラー発生時の終了コードを設定する）

ジョブが続行できなくなってエラー終了した場合のジョブコントローラの終了コードを設定します。設定した終了コードは，adshexecコマンドまたはJP1/Advanced Shell - Developerのエディタから実行されたジョブに対して適用されます。

システム全体でこの環境変数の設定値を有効にする方法を次に示します。

Windowsの場合

システム環境変数として環境変数ADSH_JOBRC_FATALを定義する。

UNIX版の場合

/etc/profileに環境変数ADSH_JOBRC_FATALの設定処理を記述する。

この環境変数を設定しなかった場合，ジョブが続行できないエラーで終了した際のジョブコントローラの終了コードは1となります。

(a)　環境変数に設定できる値

終了コード　〜＜符号なし整数＞((1〜255))

ジョブ続行不可時の終了コードを指定します。前の桁を0で埋めて「001」のように指定した場合は，上位のゼロを削除して「1」と扱います。

(b)　注意事項

環境ファイルのexportパラメーターを使用して環境変数ADSH_JOBRC_FATALを定義した場合や，シェル変数ENVに指定したファイル内およびジョブ定義スクリプト内で環境変数ADSH_JOBRC_FATALの定義・変更をした場合，そのジョブ内ではこの機能は有効になりません。ただし，そのジョブから起動した別のジョブで有効になります。

環境変数ADSH_JOBRC_FATALはジョブの最終的な終了コードを定義します。各コマンドやジョブステップの終了コードには影響しません。

次の値が設定された場合，ジョブは実行されないで終了コード255でエラー終了します。

4文字以上の値（例：1234）

指定範囲外の値（例：500）

数値以外の文字（例：1A4，+8，8.0）

0文字の値（空文字列）

エラー発生時に環境変数ADSH_JOBRC_FATALを適用するかどうかの判定は，ジョブごとに独立しています。そのため，ルートジョブや子孫ジョブの中だけでジョブの実行を継続できないエラーが発生した場合に，ほかのルートジョブや子孫ジョブに対して環境変数ADSH_JOBRC_FATALが適用されて終了コードが変更されることはありません。

(c)　使用例

UNIX版で環境変数ADSH_JOBRC_FATALに8を設定して起動したジョブが続行不可エラーで終了した場合の例を次に示します。

環境ファイルのSPOOL_DIRパラメーターに指定したディレクトリが存在しなかったため，ジョブを続行できなかった場合

/etc/profileの記載内容

ADSH_JOBRC_FATAL=8
export ADSH_JOBRC_FATAL

ジョブ起動時のコマンド指定内容

$ /opt/jp1as/bin/adshexec test.sh

この場合の実行結果を次に示します。

KNAX0441-E Directory of "SPOOL_DIR" is not exist. line=1
KNAX0410-E An error occurred when parsing the file "sample.ase", refer to the message above.
KNAX0240-I ADSH_JOBRC_FATAL was applied. value=8      …1.
KNAX7999-I JP1/Advanced Shell ended. rc=8             …2.

実行結果の1.と2.について次に説明します。

環境変数ADSH_JOBRC_FATALが適用されたことを示すメッセージです。

ジョブコントローラの終了コードとして，環境変数ADSH_JOBRC_FATALの設定値が適用されています。

特殊組み込みコマンド（unsetコマンド）のエラーで子孫ジョブが終了した場合

/etc/profileの記載内容

ADSH_JOBRC_FATAL=8
export ADSH_JOBRC_FATAL

環境ファイルの内容

#-adsh_conf CHILDJOB_SHEBANG /bin/sh

ルートジョブのジョブ定義スクリプト（prt.sh）の内容

./cld.sh
./cmdA

子孫ジョブのジョブ定義スクリプト（cld.sh）の内容

#!/bin/sh
val=10
unset
./cmdX $val

ジョブ起動時のコマンド指定内容

$ /opt/jp1as/bin/adshexec prt.sh

この場合の実行結果を次に示します。

********  JP1/Advanced Shell MESSAGE  ********
11:06:59 010749 KNAX0091-I ADSH010749 Job started.
11:06:59 010749 KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
11:06:59 010749 KNAX7902-I adshexec will run in tty stdin mode.
11:06:59 010749 KNAX6831-I CHILDJOB_SHEBANG rule matched. script="./cld.sh" shebang="/bin/sh"
11:06:59 010749 KNAX6521-E Command ./cld.sh(line=1) failed. rc=8 E-Time=0.008s C-Time=0.000s
11:06:59 010749 KNAX6116-I Command ./cmdA(line=2) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
11:06:59 010749 KNAX0101-E ADSH010749 An error occurred during execution of job.
11:06:59 010749 KNAX0098-I ADSH010749 Job ended. rc=0 E-Time=0.011s C-Time=0.000s

********   Script IMAGE    ********

***** /home/xxx/work/prt.sh *****
0001 : ./cld.sh
0002 : ./cmdA

***** CONVERSION INFORMATION *****

********   JOB SCOPE STDERR    ********
KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
KNAX0724-I Jobid was assigned. Jobid=010750
KNAX0101-E ADSH010750 An error occurred during execution of job.
11:06:59 010750 KNAX6571-I ADSH010750 Child job started. parent jobname=ADSH010749, parent jobid=010749
11:06:59 010750 KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
11:06:59 010750 KNAX7902-I adshexec will run in tty stdin mode.
11:06:59 010750 KNAX6110-I Command val=10(line=2) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
11:06:59 010750 KNAX6015-E Argument is not specified. filename="/home/xxx/work/cld.sh" line=3
11:06:59 010750 KNAX6521-E Command unset(line=3) failed. rc=1 E-Time=0.000s C-Time=0.000s
11:06:59 010750 KNAX6584-I Job is stopped because the command that stops script was executed.
11:06:59 010750 KNAX0101-E ADSH010750 An error occurred during execution of job.

11:06:59 010750 KNAX6578-I ADSH010750 Child job ended. rc=8 E-Time=0.001s C-Time=0.000s …1.
KNAX0240-I ADSH_JOBRC_FATAL was applied. value=8                                        …2.
KNAX0101-E ADSH010749 An error occurred during execution of job.
KNAX0098-I ADSH010749 Job ended. rc=0 E-Time=0.011s C-Time=0.000s

******** JOBSTEP OUTPUT ********
KNAX6380-I Job name will be added to spool job directory. spool job directory="/var/opt/jp1as/spool/010749-ADSH010749/"
KNAX7999-I JP1/Advanced Shell ended. rc=0

実行結果の1.と2.について次に説明します。

子孫ジョブの終了コードとして，環境変数ADSH_JOBRC_FATALの設定値が適用されています。

子孫ジョブで環境変数ADSH_JOBRC_FATALが適用されたことを示すメッセージです。

Windows版でシステム環境変数ADSH_JOBRC_FATALに16を設定して起動したジョブが続行不可エラーで終了した場合の例を次に示します。

環境ファイルのLOG_DIRパラメーターに指定したディレクトリが存在しなかったため，ジョブの実行を継続できなかった場合

システム環境変数に次の変数と値を設定しておきます。

変数：ADSH_JOBRC_FATAL

値：16

ジョブ起動時のコマンド指定内容

adshexec test.ash

この場合の実行結果を次に示します。

KNAX0441-E Directory of "LOG_DIR" is not exist. line=1
KNAX0410-E An error occurred when parsing the file "sample.ase", refer to the message above.
KNAX0240-I ADSH_JOBRC_FATAL was applied. value=16      …1.
KNAX7999-I JP1/Advanced Shell ended. rc=16             …2.

実行結果の1.と2.について次に説明します。

システム環境変数ADSH_JOBRC_FATALが適用されたことを示すメッセージです。

ジョブの終了コードとして，システム環境変数ADSH_JOBRC_FATALの設定値が適用されています。

特殊組み込みコマンド（unsetコマンド）のエラーで子孫ジョブが終了した場合

システム環境変数に次の変数と値を設定しておきます。

変数：ADSH_JOBRC_FATAL

値：16

環境ファイルの内容

#-adsh_conf CHILDJOB_SHEBANG /bin/sh

ルートジョブのジョブ定義スクリプト（prt.sh）の内容

./cld.sh
./cmdA

子孫ジョブのジョブ定義スクリプト（cld.sh）の内容

#!/bin/sh
val=10
unset
./cmdX $val

ジョブ起動時のコマンド指定内容

adshexec prt.sh

この場合の実行結果を次に示します。

********  JP1/Advanced Shell MESSAGE  ********
12:18:49 001857 KNAX0091-I ADSH001857 Job started.
12:18:49 001857 KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
12:18:49 001857 KNAX7902-I adshexec will run in tty stdin mode.
12:18:49 001857 KNAX6831-I CHILDJOB_SHEBANG rule matched. script="./cld.sh" shebang="/bin/sh"
12:18:49 001857 KNAX6521-E Command ./cld.sh(line=1) failed. rc=16 E-Time=0.110s C-Time=0.062s
12:18:49 001857 KNAX6116-I Command ./cmdA.exe(line=2) succeeded. rc=0 E-Time=0.047s C-Time=0.030s
12:18:49 001857 KNAX0101-E ADSH001857 An error occurred during execution of job.
12:18:49 001857 KNAX0098-I ADSH001857 Job ended. rc=0 E-Time=0.157s C-Time=0.123s

********   Script IMAGE    ********

***** D:¥work¥prt.sh *****
0001 : ./cld.sh
0002 : ./cmdA

***** CONVERSION INFORMATION *****

********   JOB SCOPE STDERR    ********
KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
KNAX0724-I Jobid was assigned. Jobid=001858
KNAX0101-E ADSH001858 An error occurred during execution of job.
12:18:49 001858 KNAX6571-I ADSH001858 Child job started. parent jobname=ADSH001857, parent jobid=001857
12:18:49 001858 KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
12:18:49 001858 KNAX7902-I adshexec will run in tty stdin mode.
12:18:49 001858 KNAX6110-I Command val=10(line=2) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
12:18:49 001858 KNAX6015-E Argument is not specified. filename="D:¥work¥cld.sh" line=3
12:18:49 001858 KNAX6521-E Command unset(line=3) failed. rc=1 E-Time=0.000s C-Time=0.000s
12:18:49 001858 KNAX6584-I Job is stopped because the command that stops script was executed.
12:18:49 001858 KNAX0101-E ADSH001858 An error occurred during execution of job.
12:18:49 001858 KNAX6578-I ADSH001858 Child job ended. rc=16 E-Time=0.016s C-Time=0.016s …1.
KNAX0240-I ADSH_JOBRC_FATAL was applied. value=16                                        …2.
KNAX0101-E ADSH001857 An error occurred during execution of job.
KNAX0098-I ADSH001857 Job ended. rc=0 E-Time=0.157s C-Time=0.123s

******** JOBSTEP OUTPUT ********
KNAX6380-I Job name will be added to spool job directory. spool job directory="C:¥Documents and Settings¥All Users¥Documents¥Hitachi¥JP1AS¥JP1ASE¥spool¥001857-ADSH001857¥"
KNAX7999-I JP1/Advanced Shell ended. rc=0

実行結果の1.と2.について次に説明します。

子孫ジョブの終了コードとして，システム環境変数ADSH_JOBRC_FATALの設定値が適用されています。

子孫ジョブでシステム環境変数ADSH_JOBRC_FATALが適用されたことを示すメッセージです。

2.6.16　ユーザー応答機能を設定する

ユーザー応答機能を使用する場合，JP1/Advanced ShellおよびJP1/IMでの環境設定が必要です。これらの環境設定については，「2.8　ユーザー応答機能を設定する」を参照してください。

2.6.17　JP1環境を確認する【UNIX限定】

JP1の環境は，/etc/opt/jp1base/conf/jp1bs_param.confで決定されます。使用する環境に合わせて文字コードを設定してください。詳細については，マニュアル「JP1/Base 運用ガイド」を参照してください。

2.6.18　シェルを設定する【UNIX限定】

JP1/AJSからジョブを起動する場合に使用するログインシェルを次に示します。該当するログインシェルが使用できるよう設定してください。

OSの種類

ログインシェル

Linux

bash

AIX

ksh

HP-UX

Solaris

注意

JP1/AJSからジョブを起動する場合，adshexecコマンドがログインシェルの子プロセスとして動作すると，強制終了などが発生した際に，adshexecコマンドのジョブ実行結果がJP1/AJSに渡る前にログインシェルのプロセスが終了し，JP1/AJS - View上にジョブ実行結果が反映されないときがあります。

この現象を防ぐには，ログインシェルのプロセスを上書きしてから起動する処理になっているか，ログインスクリプトファイルの定義を確認してください（trapコマンドの指定を削除するなど）。

定義の詳細については，マニュアル「JP1/Automatic Job Management System 3 構築ガイド1」またはマニュアル「JP1/Automatic Job Management System 3 トラブルシューティング」を参照してください。

2.6.19　JP1/Advanced Shellで必要なディレクトリを作成する

JP1/Advanced Shellのインストールが完了したあと，実行に必要なディレクトリをデフォルト設定から変更する場合，変更後のディレクトリを作成し，環境ファイルに指定します。

JP1/Advanced Shellで必要なディレクトリの種類と指定内容を次に示します。JP1/Advanced Shellを実行するユーザーは，これらのディレクトリに対して必要な権限を割り当ててください。

一時ファイル用のディレクトリ

バッチジョブ内だけで利用するファイルを一時的に作成するディレクトリを指定します。

スプール用のディレクトリ

ジョブ実行ログやプログラム出力データファイルを格納するディレクトリを指定します。

システム実行ログ用のディレクトリ

システム管理者がバッチジョブの実行を監視するために，バッチジョブの履歴をシステム実行ログとして保存するディレクトリを指定します。

トレース用のディレクトリ

システム障害時に，トラブルシューティングとして状況を保存するためのディレクトリを指定します。

JP1/Advanced Shellで必要なディレクトリを次に示します。環境設定パラメーターの設定方法については，「7.　環境ファイルで設定するパラメーター」を参照してください。

表2‒20　JP1/Advanced Shellで必要なディレクトリ

ディレクトリの種類

環境設定パラメーター

デフォルトディレクトリまたはパス

デフォルトの権限

一時ファイル用のディレクトリ

TEMP_FILE_DIR

実行環境【Windows限定】

共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASE¥temp

開発環境【Windows限定】

共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASD¥temp

実行環境【UNIX限定】

/var/opt/jp1as/temp

CRWD【Windows限定】

1777【UNIX限定】

スプール用のディレクトリ

SPOOL_DIR

実行環境【Windows限定】

共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASE¥spool

開発環境【Windows限定】

共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASD¥spool

実行環境【UNIX限定】

/var/opt/jp1as/spool

CRWD【Windows限定】

1777【UNIX限定】

システム実行ログ用のディレクトリ

LOG_DIR

LOG_FILE_CNT

LOG_FILE_SIZE

実行環境【Windows限定】

共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASE¥log

開発環境【Windows限定】

共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASD¥log

実行環境【UNIX限定】

/opt/jp1as/log

CRWD【Windows限定】

0777【UNIX限定】

トレース用のディレクトリ

TRACE_DIR

TRACE_FILE_CNT

TRACE_FILE_SIZE

TRACE_LEVEL

実行環境【Windows限定】

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASE¥trace

開発環境【Windows限定】

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASD¥trace

カスタムジョブ定義プログラム【Windows限定】

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASV¥trace

実行環境【UNIX限定】

/opt/jp1as/trace

CRWD【Windows限定】

1777【UNIX限定】

（凡例）

次に示すデフォルトの権限の英字は，権限の種類を示します。

C：作成，R：読み込み，W：書き込み，D：削除

(1)　必要な権限

バッチジョブを実行するユーザーに対して，必要な権限を次に示します。

(a)　Windowsの場合

バッチジョブを実行するユーザーに対して，フルコントロールを設定してください。

(b)　UNIXの場合

バッチジョブを実行するユーザーに対して，各ディレクトリには次に示すファイルパーミッションが必要です。

表2‒21　ディレクトリのファイルパーミッション

ディレクトリの種類

読み込み許可（r）

書き込み許可（w）

実行許可（x）

スティッキービット（t）

一時ファイル用のディレクトリ

○

○

○

△

スプール用のディレクトリ

○

○

○

△

システム実行ログ用のディレクトリ

○

○

○

×

トレース用のディレクトリ

○

○

○

△

（凡例）

○：設定が必須です。

△：システムの運用方針に従って設定します。

×：設定しません。

ディレクトリのスティッキービットは，システムの運用方針に従い，設定します。

ディレクトリにスティッキービットの設定がない場合，ディレクトリに書き込み許可があれば，ディレクトリ直下の任意のファイルを削除できます。

ディレクトリにスティッキービットを設定した場合，ディレクトリに書き込み許可があっても，ディレクトリの所有者，またはファイルの所有者の場合だけ，ディレクトリ直下の任意のファイルを削除できます。

(2)　ファイルシステム

スプールなどは，業務によって大容量となる場合があるため，専用のファイルシステムを作成して使用することをお勧めします。また，JP1/Advanced ShellではNFSはサポートしません。HSFSを使用する場合，次の注意事項があります。

HSFS上にJP1/Advanced Shellをインストールできません。

HSFS上にシステム実行ログおよびトレースを作成できません。

ユーザー応答機能を使用する場合，スプールジョブディレクトリをHSFS上に設定できません。

HSFS 07-00より前のバージョンを使用してHSFS上のファイルおよびディレクトリをUNIX互換コマンドによって参照・更新する場合，HSFSのシステムオプションであるCPFS_CACHE_POLICYにNOCACHEを指定する必要があります。

HSFS 07-00以降のバージョンを使用してHSFS上のファイルおよびディレクトリをUNIX互換コマンドによって参照・更新する場合，HSFSのシステムオプションであるCPFS_COMPAT_LINKCNT=0を指定する必要があります。デフォルトは指定されている状態です。

2.6.20　JP1/AJS環境を設定する

JP1/AJSからJP1/Advanced Shellを実行するために，事前に実行環境を設定する必要があります。ここでは，JP1/AJSの環境設定の留意点について説明します。

(1)　JP1/AJSのログ容量の見積もり

JP1/AJSからJP1/Advanced Shellを実行する場合，次に示すジョブ実行内部ログに出力するログ出力量が1ジョブ当たり約350バイト増加します。

Windows Server 2008およびWindows Server 2012の場合

%ALLUSERSPROFILE%¥Hitachi¥JP1¥JP1_DEFAULT¥JP1AJS2¥log¥jpqagent¥jpqagt_{00|01|02|03|04|05|06|07}.log

%ALLUSERSPROFILE%のデフォルトは「システムドライブ¥Program Data」です。

Windows Server 2003の場合

JP1/AJS3のインストール先フォルダ¥log¥jpqagent¥jpqagt_{00|01|02|03|04|05|06|07}.log

UNIXの場合

/var/opt/jp1ajs2/log/jpqagent/jpqagt_{00|01|02|03|04|05|06|07}.log

JP1/AJSからJP1/Advanced Shellを実行する場合のログサイズの総量を見積もる場合は，JP1/AJSのマニュアルに記載されている計算式を参考に見積もりをしてください。

2.6.21　ジョブ強制終了時にユーザー固有の後処理を実行する

JP1/Advanced Shellでは，JP1/AJSからの強制終了，UNIX版でのSIGTERMシグナルによる強制終了，およびWindowsでのtaskkillコマンドによる強制終了（TerminateProcessなどによるプロセス即時終了）を受けたときにユーザー固有の後処理を実行できます。これによって，強制終了要求を受けたことを契機として独自の終了処理を実行するなど，柔軟な運用ができます。強制終了要求を受けたときにユーザー固有の後処理を実行する場合は，環境設定パラメーターTRAP_ACTION_SIGTERMを定義してください。

なお，環境設定パラメーターTRAP_ACTION_SIGTERMはUNIX版とWindows版で指定できるオペランドが異なります。環境設定パラメーターTRAP_ACTION_SIGTERMについては，「7.3　TRAP_ACTION_SIGTERMパラメーター（ジョブコントローラが強制終了要求を受けたときの動作を定義する）」を参照してください。

使用例を次に示します。

環境ファイルの内容

#-adsh_conf TRAP_ACTION_SIGTERM TERM

ジョブ定義スクリプトの内容

#-adsh_job JOB01
trap "UAP_TERM" TERM
UAP01

→UAP01実行中に強制終了要求を受けた場合，ジョブコントローラは「UAP_TERM」というユーザープログラムを実行したあと，子孫プロセスの強制終了といった後処理を実行してからジョブを終了します。

2.7　JP1/AJSの環境情報を設定する（JP1/AJSを使用する場合）

JP1/AJSを使用する場合の環境情報の設定について説明します。

JP1/AJSでジョブの実行を自動化する場合，JP1/AJS - Viewでジョブを登録します。JP1/AJS - Viewでは，運用に使用するコマンド，バッチファイルなどをジョブとして定義して，それぞれのジョブの実行順序を関連づけることで，システム運用を自動化します。

JP1/AJS - Viewでジョブを定義する方法には，次の種類があります。

カスタムジョブ

PCジョブ（Windowsの場合）

UNIXジョブ（UNIXの場合）

JP1/AJS - Viewの詳細については，マニュアル「JP1/Automatic Job Management System 3 操作ガイド」を参照してください。

2.7.1　JP1/AJS - Viewでカスタムジョブを登録する

ジョブを定義する場合にカスタムジョブを使用すると，直接コマンドやバッチファイルをジョブに指定するのに比べて，容易で間違いなく定義できます。

カスタムジョブとは，JP1/AJS - View以外のプログラムとJP1/AJS - Viewが連携するジョブを定義する場合に，目的のジョブを容易に作成するために使用できるジョブのテンプレートです。

このカスタムジョブを使用すると，GUI操作でJP1/Advanced Shell用のジョブが定義できます。

JP1/AJS3 - Viewでのカスタムジョブの登録手順を次に示します。

Windowsの［スタート］メニューから，［すべてのプログラム］−［JP1_Automatic Job Management System 3 - View］−［カスタムジョブ登録］を選択する。

［カスタムジョブの登録］ダイアログボックスが表示されます。

［新規登録］ボタンをクリックする。

［カスタムジョブ登録情報］ダイアログボックスが表示されます。

JP1/Advanced Shell用のカスタムジョブを登録する。実行環境がWindowsとUNIXの場合でそれぞれ次のように登録する。

Windowsの場合

名前：ADSHPCを指定します。

コメント：「JP1/AS_PCジョブ実行」という固定の文字列を推奨します。ただし，1〜40バイトで任意の文字列を指定できます。また，省略もできます。

定義プログラム：インストール先フォルダ¥JP1ASV¥bin¥adshctmjpc.batとなります。カスタムジョブをインストールしたPCのフォルダになります。

実行プログラム：インストール先フォルダ¥JP1ASE¥bin¥adshexec.exeとなります。実行環境をインストールしたPCのフォルダになります。

バージョン：0600。JP1/AJS - Viewのインターフェースのバージョンです。

クラス名：ADSHPCを指定します。

ジョブ種別：JP1/Advanced Shell用のジョブの場合，必ずPCジョブを選択します。

UNIXの場合

名前：ADSHUXを指定します。

コメント：「JP1/AS_UNIXジョブ実行」という固定の文字列を推奨します。ただし，1〜40バイトで任意の文字列を指定できます。また，省略もできます。

定義プログラム：インストール先ディレクトリ¥JP1ASV¥bin¥adshctmjunix.batとなります。カスタムジョブをインストールしたPCのフォルダになります。

実行プログラム：/opt/jp1as/bin/adshexecとなります。

バージョン：0600。JP1/AJS - Viewのインターフェースのバージョンです。

クラス名：ADSHUXを指定します。

ジョブ種別：JP1/Advanced Shell用のジョブの場合，必ずPCジョブを選択します。

［OK］ボタンをクリックする。

カスタムジョブがJP1/AJS - Viewに登録されます。

また，JP1/AJS3 - View 09-50より古い製品がインストールされている場合にカスタムジョブ定義プログラムをインストールするときは，カスタムジョブアイコンを次のフォルダにコピーしてください。

JP1/AJS - Viewインストール先フォルダ¥image¥custom

JP1/AJSで使用するアイコンの説明を次に示します。

表2‒22　JP1/AJSで使用するアイコンの説明

アイコン

名称

ファイル名

説明

Windowsで実行されるジョブアイコン

CUSTOM_PC_ADSHPC.gif

JP1/AJS - Viewのジョブネットエディタ上で使用するWindowsのカスタムジョブのアイコンです。［ジョブネットエディタ］ウィンドウでの［カスタムジョブ］タブで表示されます。

UNIXで実行されるジョブアイコン

CUSTOM_PC_ADSHUX.gif

JP1/AJS - Viewのジョブネットエディタ上で使用するUNIXのカスタムジョブのアイコンです。［ジョブネットエディタ］ウィンドウでの［カスタムジョブ］タブで表示されます。

JP1/Advanced Shell（実行定義）のアイコン

adshctmj.exe

JP1/AJSとカスタムジョブ連携を行う定義プログラムです。

注意事項

JP1/Advanced Shellがインストールされているマシンが複数あり，各マシンで共通のパスになっていない場合は，JP1/Advanced Shellのインストールパスを変数に設定して，フルパスの代わりに変数名をカスタムジョブ登録の実行プログラムの項目に指定してください。設定方法については，マニュアル「JP1/Automatic Job Management System 3 構築ガイド1」の「ジョブ実行時のワークパスを変数として定義する」を参照してください。

指定方法の例を次に示します。

jajs_config -k "[JP1_DEFAULT¥JP1NBQAGENT¥Variable]" "jp1asebin"="C:¥Program Files¥Hitachi¥JP1AS¥JP1ASE¥bin"

上記のようにJP1/Advanced Shellがインストールされている各マシンのJP1/AJSでパスを変数として設定し，JP1/AJS - Viewのカスタムジョブ登録の実行プログラムの項目で「$jp1asebin$¥adshexec.exe」のように指定することで，複数のパスをJP1/AJS - Viewで共通して扱うことができます。

2.7.2　ジョブネットを定義して実行する

JP1/AJSでジョブの実行を自動化する場合，登録したカスタムジョブ，PCジョブ（Windowsの場合），またはUNIXジョブ（UNIXの場合）をJP1/AJS - Viewでジョブネットに定義し，ジョブネットを実行します。JP1/AJS - Viewの詳細については，マニュアル「JP1/Automatic Job Management System 3 操作ガイド」のジョブ定義の説明を参照してください。

JP1/AJS3 - Viewでのジョブネットを定義して実行する手順を次に示します。

Windowsの［スタート］メニューから，［すべてのプログラム］−［JP1_Automatic Job Management System 3 - View］−［ジョブシステム運用］を選択する。

［ログイン］画面が表示されます。

ユーザー名，パスワード，および接続ホスト名を指定してログインする。

［JP1/AJS3 - View］ウィンドウが表示されます。

［編集］−［新規作成］−［ジョブネット］を選択する。

［詳細定義］−［ジョブネット］ダイアログボックスが表示されます。

ジョブネットに属性などを定義して，［OK］ボタンをクリックする。

運用環境に応じて，［実行エージェント］に適切な内容を指定してください。省略することもできます。JP1/AJSの項目については，JP1/AJSのマニュアルを参照してください。

これによってジョブネットが作成され，リストエリアに表示されます。

作成したジョブネットをダブルクリックする。

［ジョブネットエディタ］ウィンドウが表示されます。

ジョブを定義したり関連づけたりするときにほかのユーザーがアクセスできないように，［排他編集］をチェックする。

アイコンリストから必要なカスタムジョブ，PCジョブ，またはUNIXジョブのアイコンをマップエリアへドラッグする。

［詳細定義-［Custom Job］］ダイアログボックス，［詳細定義−［PC Job］］ダイアログボックス，または［詳細定義−［UNIX Job］］ダイアログボックスが表示されます。

以降の手順では，カスタムジョブでの定義方法を示します。PCジョブまたはUNIXジョブを使用する場合にJP1/Advanced Shellで必要な設定については，「2.7.3　PCジョブ／UNIXジョブによるジョブの定義」を参照してください。

［詳細定義-［Custom Job］］ダイアログボックスでジョブに属性などを定義する。

JP1/AJSのマニュアルに従って，［定義］タブを指定した場合と［属性］タブを指定した場合の両方に適切な内容を指定します。

また，運用環境に応じて，［実行エージェント］に適切な内容を指定してください。省略することもできます。

なお，次のどちらかが指定されている場合に，［定義］タブで［標準出力ファイル名］を指定すると，空のファイルが出力されます。

adshexecコマンドの-sオプション，または環境ファイルのOUTPUT_STDOUTパラメーターにSPOOLを指定（標準出力をスプール内のファイルに出力）

OUTPUT_MODE_ROOTパラメーターでEXTENDEDを指定（拡張出力モードを選択）

標準出力の内容はJP1/Advanced Shellのジョブコントローラで別ファイルに出力していて，JP1/AJSに返す標準出力には何も出力していないためです。

［定義］タブを選択して［詳細］ボタンをクリックする。

カスタムジョブの種類に対応した，［実行定義］ダイアログボックスが表示されます。WindowsとUNIXの場合の表示を次に示します。

Windowsの場合

UNIXの場合

手順9.と手順10.については，「(2)　カスタムジョブによるジョブネットの定義手順に関する補足」に示す補足も参照してください。

［実行定義］ダイアログボックスにJP1/Advanced Shellの実行に必要な情報を設定して［OK］ボタンをクリックする。

ジョブ定義スクリプトファイル名　〜＜パス名＞Windowsの場合：((1〜247バイト))，UNIXの場合：((1〜1,023バイト))

ジョブ定義スクリプトファイル名を指定します。省略できません。

実行時パラメーター　〜＜ASCII文字列＞((0〜1,022バイト))

ジョブ定義スクリプトファイルの実行時に渡すパラメーターを定義します。複数のパラメーターを定義する場合は，スペースで区切って指定します。

ジョブ環境ファイル名　〜＜パス名＞Windowsの場合：((0〜247バイト))，UNIXの場合：((0〜1,023バイト))

ジョブ環境ファイル名を指定します。

ジョブ環境ファイル名に指定がある場合はJP1/Advanced Shellのジョブコントローラの環境で環境変数ADSH_ENVが定義されていても，ジョブ環境ファイル名に指定した値を優先して使用して実行します。

ジョブ環境ファイル名に指定がなく，JP1/Advanced Shellのジョブコントローラの環境で環境変数ADSH_ENVが定義されている場合は，環境変数ADSH_ENVの値を使用して実行します。

ジョブ環境ファイル名に指定がなく，環境変数ADSH_ENVの指定もない場合，ジョブ環境ファイルの指定はないものとして実行します。ジョブ環境ファイルの指定は省略できます。

JP1/AJSが起動したJP1/Advanced Shellのジョブコントローラは，使用したジョブ環境ファイルのパスを環境変数ADSH_ENVに設定してから，ジョブの実行を開始します。子孫プロセスとして別のジョブコントローラを起動する場合，それらのジョブコントローラは環境変数ADSH_ENVの値を使用します。したがって，ジョブ実行中に環境変数ADSH_ENVの値を再設定していない場合，JP1/AJSが起動したJP1/Advanced Shellのジョブコントローラと同一のジョブ環境ファイルを使用します。ジョブ実行中に環境変数ADSH_ENVの値を再設定している場合，再設定した値のジョブ環境ファイルを使用します。

論理ホスト

論理ホストで実行するかどうかを指定します。チェックボックスをチェックして実行した場合，JP1/AJSで設定された論理ホスト（環境変数JP1_HOSTNAMEの値）で実行します。

事前チェック

ジョブの内容を事前にチェックするかどうかを指定します。事前チェックのチェックボックスにチェックして実行した場合，ジョブ定義スクリプトファイルを実行しないでジョブ定義スクリプトファイルの内容をチェックします。

［詳細定義-［Custom Job］］ダイアログボックスに戻ってから［OK］ボタンをクリックする。

ジョブネットにジョブが定義されます。必要に応じて，同様の手順で，ジョブを定義してください。

ジョブ同士を実行順序に従って関連づける。

ジョブネットが定義されます。JP1/AJS - Viewでのジョブの定義例を次に示します。

JP1/AJSの操作によってジョブネットを実行する。

JP1/Advanced Shellのジョブコントローラの終了コードをジョブの終了コードとしてJP1/AJSに返します。

(1)　ジョブネットの定義内容に関する注意事項

カバレージの指定

カスタムジョブからカバレージを有効にしたい場合は，環境ファイルにカバレージ採取の一括有効化機能を指定してください。

JP1/AJSからJP1/Advanced Shellのジョブコントローラを起動したときの実行時ディレクトリ

JP1/AJSからJP1/Advanced Shellのジョブコントローラを起動した場合の実行時ディレクトリは，JP1/AJS - Agent（またはJP1/AJS - Manager）がJP1/Advanced Shellのジョブコントローラを起動するときの実行時ディレクトリになります。JP1/AJS - Agent（またはJP1/AJS - Manager）がJP1/Advanced Shellのジョブコントローラを起動するときの実行時ディレクトリについては，マニュアル「JP1/Automatic Job Management System 3 構築ガイド1」を参照してください。実行時ディレクトリは，JP1/AJSのマニュアルでは，ワークパス（ワークディレクトリ）と表記されています。

JP1/AJSからJP1/Advanced Shellのジョブコントローラを起動したときの環境変数

JP1/AJSからWindowsのJP1/Advanced Shellのジョブコントローラを起動した場合，通常JP1/AJSサービス起動時にはシステム環境変数の設定を有効にし，ユーザー環境変数は読み込まれません。詳細はJP1/AJSのマニュアルを参照してください。

Shift-JIS以外の文字コード種別を設定したJP1/AJSからジョブコントローラを起動したときの定義情報の入力範囲【UNIX限定】

カスタムジョブの［実行定義］ダイアログボックスのジョブ定義スクリプトファイル名とジョブ環境ファイル名の設定項目では，入力バイト数のチェックをShift-JISのバイト数でしています。ただし，実行環境の文字コードがShift-JIS以外の場合は，［実行定義］ダイアログボックスに入力できるファイル名であっても，実行環境の文字コードに変換したバイト数がOSが定めるファイル名長の制限を超えていると，ジョブコントローラがエラーとなります。この場合は，ジョブコントローラのエラーメッセージを参照して正しい定義情報を入力するようにしてください。

(2)　カスタムジョブによるジョブネットの定義手順に関する補足

「2.7.2　ジョブネットを定義して実行する」の手順9と手順10の実行定義の設定について，JP1/AJSのajsdefineコマンドのユニット定義，およびJP1/AJS - Definition Assistantのジョブの定義で定義することもできます。

ユニット定義の詳細については，マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 2」を参照してください。

JP1/AJS - Definition Assistantについては，マニュアル「JP1/Automatic Job Management System 3 - Definition Assistant」を参照してください。

カスタムジョブを使用する場合の，ユニット定義およびJP1/AJS - Definition Assistantで記述する環境変数とパラメーターの詳細を次に記載します。

JP1/Advanced Shellの［実行定義］ダイアログボックスで設定する環境変数

ADSH_AJS_SCRF：ジョブ定義スクリプトファイル名

ADSH_AJS_ENVF：ジョブ環境ファイル名

ADSH_AJS_LHOST：論理ホスト

ADSH_AJS_GCHE：事前チェック

JP1/Advanced Shellのジョブコントローラに渡す環境変数

ユニット定義ファイルのenvパラメーターとして環境変数を定義します。

JP1/Advanced Shellのジョブコントローラに渡す環境変数の設定項目を次の表に示します。

表2‒23　JP1/Advanced Shellのジョブコントローラに渡す環境変数の設定項目

項目名

説明

入力範囲

環境変数の値として指定できる文字列（"="の後ろの文字列）のバイト数（Shift-JIS）

設定値

定義できる文字の種類

文字列：制御文字（0x00〜0x1f，0x7f）以外の文字

記号名称：半角英数字および「@」「#」「_」

数字

初期値

新規作成ジョブとしてカスタムジョブを起動したときに読み込む値

省略

値を省略できないものは，JP1/Advanced Shellのジョブコントローラでエラーとなります。

JP1/Advanced Shellのジョブコントローラに渡す環境変数の設定項目の入力範囲と設定値を次の表に示します。

表2‒24　JP1/Advanced Shellのジョブコントローラに渡す環境変数の設定項目の入力範囲と設定値

環境変数

入力範囲

設定値

初期値

省略

ADSH_AJS_SCRF

PCジョブ：1〜247バイト

UNIXジョブ：1〜1,023バイト

文字列

空文字列

できない

ADSH_AJS_ENVF

PCジョブ：0〜247バイト

UNIXジョブ：0〜1,023バイト

文字列

空文字列

できる

ADSH_AJS_LHOST

0〜2バイト

チェックありの場合

-h

チェックなしの場合

空文字列

空文字列

できる

ADSH_AJS_GCHE

0〜2バイト

チェックありの場合

-c

チェックなしの場合

空文字列

空文字列

できる

AJS_BJEX_STOP

4バイト

"TERM"

"TERM"

できない

JP1/Advanced Shellのジョブコントローラに渡すパラメーターの詳細

フィールド「実行時パラメーター」はユニット定義ファイルのprmパラメーターとして定義し，JP1/Advanced Shellのジョブコントローラに対するパラメーターとして渡します。指定できる値は次のとおりです。

　入力範囲：1〜1,023バイト※

　設定値：文字列

　初期値：空文字列

　省略：できる

実行時パラメーターでは，［実行定義］ダイアログボックスの指定の空文字列と同等の定義をする場合は，ユニット定義ファイルのprmパラメーターにスペース1バイト分を定義してください。

注※

prmパラメーターに1,023バイトまで入力できるのは，スペースだけの文字列だけです。スペース以外の文字列を入力する場合は1,022バイトまでで指定してください。prmパラメーターにスペースだけの文字列を指定した場合，［実行定義］ダイアログボックスの［実行時パラメーター］のテキストボックスにスペースを1バイト分削除して表示します。

注意事項

ユニット定義ファイルで定義情報を削除する場合は，次の点に注意してください。

envパラメーターは環境変数の値（「=」の後ろの文字列）を削除するか，envパラメーターの指定そのものを削除してください。

prmパラメーターはprmの値に1バイト分のスペースを指定するか，prmパラメーターの指定を削除してください。

ユニット定義の例を次に示します。

unit=ユニット名,,実行ユーザー,;
{
        ty=cpj;
        cty="ADSHUX";
        sc="/opt/jp1as/bin/adshexec";
        env="AJS_BJEX_STOP=TERM";                               →1.
        env="ADSH_AJS_SCRF=/tmp/JP1AS/scr/samplescrfile.ash";   →2.
        prm="param1 param2";                                    →3.
        env="ADSH_AJS_ENVF=/tmp/JP1AS/env/sampleenvfile";       →4.
        env="ADSH_AJS_LHOST=-h";                                →5.
        env="ADSH_AJS_GCHE=-c";                                 →6.
        tho=0;
}

例の右側に付記した番号に対応する説明を次に示します。

AJS_BJEX_STOP：AJS_BJEX_STOP環境変数はシステムで使用するため，設定値にTERMを指定して必ず定義してください。

ADSH_AJS_SCRF：ジョブ定義スクリプトファイル名を指定します。

ADSH_AJS_SCRF環境変数は必ず定義してください。

ユニット定義ファイルのprmパラメーターを指定します。

ADSH_AJS_ENVF：ジョブ環境ファイル名を指定します。

ADSH_AJS_LHOST：論理ホストで実行する場合は-hを指定し，実施しない場合は何も指定しません。

ADSH_AJS_GCHE：事前チェックを実施する場合は-cを指定し，実施しない場合は何も指定しません。

ユニット定義ファイルを作成したあと，JP1/AJSのajsdefineコマンドおよびJP1/AJS3 - Definition Assistantでジョブを定義できます。

2.7.3　PCジョブ／UNIXジョブによるジョブの定義

(1)　PCジョブによるジョブの定義

PCジョブでJP1/Advanced Shellのバッチジョブを定義する場合に必要な項目について示します。

実行ファイル名

［詳細定義−［PC Job］］ダイアログボックスの［定義］タブの「実行ファイル名」，またはユニット定義ファイルの「sc="スクリプトファイル名"」に，adshexecコマンドのパスを指定します。

"インストール先フォルダ¥JP1ASE¥bin¥adshexec.exe"

パラメーター

［詳細定義−［PC Job］］ダイアログボックスの［定義］タブの「パラメーター」，またはユニット定義ファイルの「prm="パラメーター"」に，adshexecコマンドのオプション，ジョブ定義スクリプトファイル名，および実行時パラメーターを指定します。

環境変数

［詳細定義−［PC Job］］ダイアログボックスの［定義］タブの「環境変数」，またはユニット定義ファイルの「env="環境変数"」に，次の内容を指定します。

AJS_BJEX_STOP=TERM

JP1/Advanced Shellのバッチジョブとしての指定例を次の図に示します。

図2‒7　［詳細定義−［PC Job］］ダイアログボックスの［定義］タブの指定例

(2)　UNIXジョブによるジョブの定義

UNIXジョブでJP1/Advanced Shellのバッチジョブを定義する場合に必要な項目について示します。

スクリプトファイル名

［詳細定義−［UNIX Job］］ダイアログボックスの［定義］タブの「スクリプトファイル名」，またはユニット定義ファイルの「sc="スクリプトファイル名"」に，adshexecコマンドのパスを指定します。

/opt/jp1as/bin/adshexec

また，1行目に#!で開始するadshexecコマンドのパス（例：#!/opt/jp1as/bin/adshexec）を記述し，実行権限を付与したジョブ定義スクリプトファイルのパスを指定することもできます。

ジョブ定義スクリプトファイルのパス

なお，［詳細定義−［UNIX Job］］ダイアログボックスの［定義］タブの「コマンド文」およびユニット定義ファイルの「te="コマンドテキスト"」にはこれらの内容を記載しないでください。

パラメーター

［詳細定義−［UNIX Job］］ダイアログボックスの［定義］タブの「パラメーター」，またはユニット定義ファイルの「prm="パラメーター"」に，adshexecコマンドのオプション，ジョブ定義スクリプトファイル名，および実行時パラメーターを指定します。

スクリプトファイル名にジョブ定義スクリプトファイル名を指定した場合は，実行時パラメーターだけを指定します。

環境変数

［詳細定義−［UNIX Job］］ダイアログボックスの［定義］タブの「環境変数」，またはユニット定義ファイルの「env="環境変数"」に，次の内容を指定します。

AJS_BJEX_STOP=TERM

JP1/Advanced Shellのバッチジョブとしての指定例を次の図に示します。

図2‒8　［詳細定義−［UNIX Job］］ダイアログボックスの［定義］タブの指定例（adshexecコマンドを指定する場合）

図2‒9　［詳細定義−［UNIX Job］］ダイアログボックスの［定義］タブの指定例（ジョブ定義スクリプトファイルパスを指定する場合）

2.8　ユーザー応答機能を設定する

2.8.1　ユーザー応答機能を使用するための環境ファイルの設定

JP1/Advanced Shellは，ジョブ間で動作環境を統一したい場合に設定するシステム環境ファイルと，ジョブごとに指定することができるジョブ環境ファイルの2種類で動作環境を指定できます。ユーザー応答機能を使用する場合は，システム環境ファイルをシステムの環境に合わせて変更してください。

システム環境ファイルの変更後は，デーモンまたはサービスを再起動する必要があります。

(1)　スプールルートディレクトリの指定

ジョブの実行結果の出力先となるスプールルートディレクトリは，SPOOL_DIRパラメーターで定義します。ユーザー応答機能を使用する場合は，SPOOL_DIRパラメーターはシステム環境ファイルだけに定義してください。パス名にマルチバイト文字は使用できません。

SPOOL_DIRパラメーターの詳細については，「7.　環境ファイルで設定するパラメーター」の「SPOOL_DIRパラメーター（スプールルートディレクトリのパス名を定義する）」を参照してください。

(2)　JP1イベントの送信先ホストの指定

JP1イベントの送信先であるJP1/IM - Managerが稼働している運用管理サーバを，システム環境ファイルのHOSTNAME_JP1IM_MANAGERパラメーターで設定する必要があります。このパラメーターを設定しない場合，JP1/Advanced Shellが稼働しているサーバ上でhostnameコマンドを実行したときに表示されるホスト名が，JP1イベントの送信先として仮定されます。HOSTNAME_JP1IM_MANAGERパラメーターはシステム環境ファイルだけに定義してください。また，このパラメーターで指定したホスト上で，JP1/Advanced Shellが動作するホストのホスト名が名前解決できることを確認してください。

HOSTNAME_JP1IM_MANAGERパラメーターの詳細については，「7.　環境ファイルで設定するパラメーター」の「HOSTNAME_JP1IM_MANAGERパラメーター（JP1イベントの送信先であるJP1/IM - Managerが稼働している運用管理サーバを指定する）」を参照してください。

(3)　JP1イベントの流量制御の指定

ユーザー応答機能を使用する場合，次に示すJP1イベントの出力数の条件を満たす必要があります。この条件は，同一のJP1/IMが受信する，すべてのJP1イベントが対象となります。

項番

説明

出力数の条件

1

JP1イベント

1秒当たりの出力数が2件未満であること

2

応答待ちイベント

1分当たりの出力数が1件未満であること

JP1/Advanced Shellでは，USERREPLY_JP1EVENT_INTERVALパラメーターを使用して，adshechoコマンドまたはadshreadコマンドによるJP1イベントの最小発行間隔を指定できます。複数のジョブからイベントが発行される場合は，すべてのジョブからの，adshechoコマンドやadshreadコマンドによるJP1イベントの発行頻度が上記の条件を満たすように，パラメーターの値を設定してください。

USERREPLY_JP1EVENT_INTERVALパラメーターの詳細については，「7.　環境ファイルで設定するパラメーター」の「USERREPLY_JP1EVENT_INTERVALパラメーター（JP1イベントの最小発行間隔を指定する）」を参照してください。

(4)　応答要求メッセージの最大同時出力数の指定

USERREPLY_WAIT_MAXCOUNTパラメーターを使用することで，ユーザー応答機能で物理ホストまたは論理ホストごとに，応答要求メッセージの最大同時出力数を指定できます。このパラメーターは，同時にadshreadコマンドを実行するジョブ数以上になるように指定してください。

USERREPLY_WAIT_MAXCOUNTパラメーターの詳細については，「7.　環境ファイルで設定するパラメーター」の「USERREPLY_WAIT_MAXCOUNTパラメーター（物理ホストまたは論理ホストごとに応答要求メッセージの最大同時出力数を指定する）」を参照してください。

2.8.2　JP1/Advanced Shellをインストールしたあとのユーザー応答機能の設定【Windows限定】

ユーザー応答機能を使用する場合の，JP1/Advanced Shellのインストール後の設定について説明します。管理者権限を持つユーザーが実行してください。

(1)　サービスの設定

(a)　JP1/Advanced Shellのサービスの起動方法を設定する

JP1/Advanced Shellのサービスを自動起動する手順を次に示します。

Windowsの［コントロールパネル］−［管理ツール］−［サービス］を開く。

表示されたサービス名の一覧から次の名前のサービスのプロパティを開く。

実行環境からユーザー応答機能を使用する場合は，［AdshmSvcE］から始まるサービス名

開発環境からユーザー応答機能を使用する場合は，［AdshmSvcD］から始まるサービス名

［全般］タグの「スタートアップの種類」を次のように操作する。

JP1/Advanced Shellのインストール後の初期状態は，「手動」が設定されています。Windowsの起動時に自動でサービスを開始したい場合は，「自動」に変更します。

(b)　JP1/Advanced Shellのサービスを起動する

JP1/Advanced Shellのサービスを手動で起動する手順を次に示します。「(a)　JP1/Advanced Shellのサービスの起動方法を設定する」で「スタートアップの種類」を「自動」に設定してWindowsを起動した場合は，この操作は必要ありません。

Windowsの［コントロールパネル］−［管理ツール］−［サービス］を開く。

表示されたサービス名の一覧から次の名前のサービスのプロパティを開く。

実行環境からユーザー応答機能を使用する場合は，［AdshmSvcE］から始まるサービス名

開発環境からユーザー応答機能を使用する場合は，［AdshmSvcD］から始まるサービス名

［全般］タグの「開始」ボタンをクリックする。

サービスが開始されなかった場合は，イベントログに出力されているエラー情報を確認してください。

エラー情報にKNAX7552-Eメッセージが出力された場合は，システム環境ファイルを見直し，サービスを起動し直してください。

(c)　サービスを登録する

インストール時に自動登録されるサービス（AdshmSvcDおよびAdshmSvcE）が削除された場合に，ユーザー応答機能を使用する場合は，サービスを再登録する必要があります。サービスの登録はadshmsvcdコマンドおよびadshmsvceコマンドで実行できます。

サービスの登録方法を次に示します。

サービスの再登録方法

［サービス］管理ツールにサービス名［AdshmSvcD］および［AdshmSvcE］が表示されない場合は，サービスの登録が削除されているおそれがあります。次のコマンドを実行することで，サービスを再登録できます。

サービスAdshmSvcDを登録する場合

adshmsvcd -install

サービスAdshmSvcEを登録する場合

adshmsvce -install

コマンドが正常に終了すると，登録したサービスが［サービス］管理ツールに表示されます。

登録されたサービスを起動する手順については，「(b)　JP1/Advanced Shellのサービスを起動する」を参照してください。

(2)　アダプタコマンドの設定（実行環境の場合）

実行環境でユーザー応答機能を使用するためには，JP1/Baseに対して，次に示すアダプタコマンドの設定が必要です。この設定は，JP1/Advanced Shellのインストール後に一度だけ実施してください。ただし，JP1/Baseを再インストールした場合は，この操作を再度実行してください。

ユーザー応答機能用アダプタコマンド設定ファイルの「cmdpath」に指定されているパスを確認し，JP1/Advanced Shellのインストールフォルダと異なる場合は，インストールフォルダへ修正する。

ユーザー応答機能用アダプタコマンド設定ファイルは次の場所にあります。

インストール先フォルダ¥JP1ASE¥sample¥Adapter_HITACHI_JP1_AS_ASE_USERREPLY.conf

JP1/Advanced Shellインストール時のユーザー応答機能用アダプタコマンド設定ファイルの内容を次に示します。

64ビット版のWindowsの場合

fileversion 07000000
upperpp /HITACHI/JP1/IM/CC
componenttype JP1_AS_ASE_USERREPLY
cmdpath C:¥Program Files (x86)¥Hitachi¥JP1AS¥JP1ASE¥bin¥adshuserreply.exe

64ビット版のWindows以外の場合

fileversion 07000000
upperpp /HITACHI/JP1/IM/CC
componenttype JP1_AS_ASE_USERREPLY
cmdpath C:¥Program Files¥Hitachi¥JP1AS¥JP1ASE¥bin¥adshuserreply.exe

JP1/Baseのインストール先に，手順1のユーザー応答機能用アダプタコマンド設定ファイルをコピーする。

コピー先のフォルダは次のとおりです。

JP1/Baseのインストール先フォルダ¥plugin¥conf

これによって，JP1/IM - Viewに表示される応答待ちイベントから，応答が入力できるようになります。

(3)　アダプタコマンドの設定（開発環境の場合）

JP1/Advanced Shellの開発環境でユーザー応答機能を使用するためには，次に示す設定が必要です。ただし，ユーザー応答機能の出力先に標準出力を指定する場合は，この設定は不要です。

この設定は，JP1/Advanced Shellのインストール後に一度だけ実施してください。ただし，JP1/Baseを再インストールした場合は，この操作を再度実行してください。

ユーザー応答機能用アダプタコマンド設定ファイルの「cmdpath」に指定されているパスを確認し，JP1/Advanced Shellのインストールフォルダと異なる場合は，インストールフォルダへ修正する。

ユーザー応答機能用アダプタコマンド設定ファイルは次の場所にあります。

インストール先フォルダ¥JP1ASD¥sample¥Adapter_HITACHI_JP1_AS_ASD_USERREPLY.conf

JP1/Advanced Shellインストール時のユーザー応答機能用アダプタコマンド設定ファイルの内容を次に示します。

64ビット版のWindowsの場合

fileversion 07000000
upperpp /HITACHI/JP1/IM/CC
componenttype JP1_AS_ASD_USERREPLY
cmdpath C:¥Program Files (x86)¥Hitachi¥JP1AS¥JP1ASD¥bin¥adshuserreply.exe

64ビット版のWindows以外の場合

fileversion 07000000
upperpp /HITACHI/JP1/IM/CC
componenttype JP1_AS_ASD_USERREPLY
cmdpath C:¥Program Files¥Hitachi¥JP1AS¥JP1ASD¥bin¥adshuserreply.exe

JP1/Baseのインストール先に，手順1のファイルをコピーする。

JP1/Baseのコピー先のフォルダは次のとおりです。

JP1/Baseのインストール先フォルダ¥plugin¥conf

これによって，JP1/IM - Viewに表示される応答待ちイベントから，応答が入力できるようになります。

2.8.3　JP1/Advanced Shellをインストールしたあとのユーザー応答機能の設定【UNIX限定】

ユーザー応答機能を使用する場合の，JP1/Advanced Shellのインストール後の設定について説明します。

なお，JP1/Advanced Shellの設定後に，JP1/IM - Managerで応答待ちイベントに関する機能を有効にする必要があります。詳細については，「2.8.4　JP1/IM - Managerで環境情報を設定する」を参照してください。

(1)　ユーザー応答機能管理デーモンの自動起動と自動停止

システムの起動時および終了時に，ユーザー応答機能管理デーモンを自動起動・自動停止させるための設定方法を次に示します。

(a)　AIXの場合

システム起動時の自動起動機能の設定

システム起動時にユーザー応答機能管理デーモンを自動起動させるには，mkitabコマンドで設定します。設定内容は次のシステム起動時から有効になります。

mkitabコマンドの設定例を次に示します。

mkitab "adshmd:2:wait:/opt/jp1as/sbin/adshmdctl start"

ユーザー応答機能管理デーモンの起動は，連携するJP1シリーズ製品のサービスの起動よりあとになるよう設定してください。例えば，JP1/Base，JP1/IM - Manager，JP1/Advanced Shellの順に自動起動させるには，次のように指定してmkitabコマンドを実行します。

mkitab -i hntr2mon "jp1base:2:wait:/etc/opt/jp1base/jbs_start"
mkitab -i jp1base "jp1cons:2:wait:/etc/opt/jp1cons/jco_start"
mkitab -i jp1cons "adshmd:2:wait:/opt/jp1as/sbin/adshmdctl start"

設定後はlsitabコマンドを次のように実行して，設定内容を確認してください。

lsitab -a

コマンド実行後の出力例を次に示します。

init:2:initdefault:
brc::sysinit:/sbin/rc.boot 3 >/dev/console 2>&1 # Phase 3 of
system boot
　　:
hntr2mon:2:once:/opt/hitachi/HNTRLib2/etc/D002start
jp1base:2:wait:/etc/opt/jp1base/jbs_start
jp1cons:2:wait:/etc/opt/jp1cons/jco_start
adshmd:2:wait:/opt/jp1as/sbin/adshmdctl start

システム終了時の自動停止機能の設定

システム終了時にユーザー応答機能管理デーモンを自動停止させるには，/etc/rc.shutdownを編集して，連携するJP1シリーズ製品のサービスより先に停止させるように次に示す記述を追加してください。

test -x /opt/jp1as/sbin/adshmdctl && /opt/jp1as/sbin/adshmdctl stop
    ：
連携するJP1シリーズ製品のサービスの停止処理
    ：

(b)　Linuxの場合

JP1/Advanced Shellでは，ユーザー応答機能管理デーモンを自動起動・停止するためのスクリプトファイルjp1_as_mdを/opt/jp1as/sampleディレクトリに格納しています。このスクリプトファイルを利用して次の手順で設定します。

/etc/rc.d/init.dディレクトリへの追加

/opt/jp1as/sampleディレクトリに格納されているjp1_as_mdを/etc/rc.d/init.dに追加します。jp1_as_mdを追加するには次のように指定します。

cp /opt/jp1as/sample/jp1_as_md /etc/rc.d/init.d
chmod u=rwx,go=rx /etc/rc.d/init.d/jp1_as_md
chown root:root /etc/rc.d/init.d/jp1_as_md

自動起動のためのシンボリックリンク作成

/etc/rc.d/rcN.dディレクトリ（Nは起動時の実行レベル）に/etc/rc.d/init.d/jp1_as_mdへのシンボリックリンクを作成します。このとき，連携するJP1シリーズ製品のサービスが起動したあとに起動されるように，シンボリックリンクの名称を付ける必要があります。

例えば，/etc/rc.d/rc3.dディレクトリ，/etc/rc.d/rc5.dディレクトリに提供されているJP1/Baseの自動起動スクリプトのシンボリックリンクの名称が「S99_JP1_10_BASE」，JP1/IM - Managerの自動起動スクリプトのシンボリックリンクの名称が「S99_JP1_20_CONS」の場合，文字列の大小関係で「S99_JP1_20_CONS」よりも大きくなるようにシンボリックリンクの名称を「S99_JP1_70_AS」とし，次のように指定することでJP1/Base，JP1/IM - Managerよりあとに起動されます。

ln -s /etc/rc.d/init.d/jp1_as_md /etc/rc.d/rc3.d/S99_JP1_70_AS
ln -s /etc/rc.d/init.d/jp1_as_md /etc/rc.d/rc5.d/S99_JP1_70_AS
chown -h root:root /etc/rc.d/rc3.d/S99_JP1_70_AS
chown -h root:root /etc/rc.d/rc5.d/S99_JP1_70_AS

自動停止のためのシンボリックリンク作成

/etc/rc.d/rcN.dディレクトリ（Nは停止時の実行レベル）に/etc/rc.d/init.d/jp1_as_mdへのシンボリックリンクを作成します。このとき，連携するJP1シリーズ製品のサービスの停止よりも前に停止されるようにシンボリックリンクの名称を付ける必要があります。

例えば，/etc/rc.d/rc0.dディレクトリ，/etc/rc.d/rc6.dディレクトリに提供されているJP1/Baseの自動停止スクリプトのシンボリックリンクの名称が「K01_JP1_90_BASE」，JP1/IM - Managerの自動起動スクリプトのシンボリックリンクの名称が「K01_JP1_80_CONS」の場合，文字列の大小関係で「K01_JP1_80_CONS」よりも小さくなるようにシンボリックリンクの名称を「K01_JP1_30_AS」とし，次のように指定することでJP1/Base，JP1/IM - Managerより先に停止されます。

ln -s /etc/rc.d/init.d/jp1_as_md /etc/rc.d/rc0.d/K01_JP1_30_AS
ln -s /etc/rc.d/init.d/jp1_as_md /etc/rc.d/rc6.d/K01_JP1_30_AS
chown -h root:root /etc/rc.d/rc0.d/K01_JP1_30_AS
chown -h root:root /etc/rc.d/rc6.d/K01_JP1_30_AS

なお，シンボリックリンクの名称の「K01_JP1_30_AS」の「_JP1_30_AS」部分をほかの名称にする場合は，スクリプトファイルjp1_as_mdの次の記述の「_JP1_30_AS」を変更する必要があります。

touch /var/lock/subsys/_JP1_30_AS
rm -f /var/lock/subsys/_JP1_30_AS

(c)　HP-UXの場合

JP1/Advanced Shellでは，ユーザー応答機能管理デーモンを自動起動・停止するためのスクリプトファイルjp1_as_mdを/opt/jp1as/sampleディレクトリに格納しています。このスクリプトファイルを利用して次の手順で設定します。

/sbin/init.dディレクトリへの追加

/opt/jp1as/sampleディレクトリに格納されているjp1_as_mdを/sbin/init.dに追加します。jp1_as_mdは次のように指定して追加します。

cp /opt/jp1as/sample/jp1_as_md /sbin/init.d
chmod u=rx,go=r /sbin/init.d/jp1_as_md
chown root:sys /sbin/init.d/jp1_as_md

自動起動のためのシンボリックリンク作成

/sbin/rc2.dディレクトリに/sbin/init.d/jp1_as_mdへのシンボリックリンクを作成します。このとき，連携するJP1シリーズ製品のサービスが起動したあとに起動されるように，シンボリックリンクの名称を付ける必要があります。

例えば，/sbin/rc2.dディレクトリに提供されているJP1/Baseの自動起動スクリプトのシンボリックリンクの名称が「S900jp1_base」，JP1/IM - Managerの自動起動スクリプトのシンボリックリンクの名称が「S901jp1_cons」の場合，S901の901（数字）部分よりも大きい数字になるようにシンボリックリンクの名称を「S905jp1_as_md」とし，次のように指定することでJP1/Base，JP1/IM - Managerよりあとに起動されます。

ln -s /sbin/init.d/jp1_as_md /sbin/rc2.d/S905jp1_as_md
chown -h root:sys /sbin/rc2.d/S905jp1_as_md

自動停止のためのシンボリックリンク作成

/sbin/rc1.dディレクトリに/sbin/init.d/jp1_as_mdへのシンボリックリンクを作成します。このとき，連携するJP1シリーズ製品のサービスの停止よりも前に停止されるようにシンボリックリンクの名称を付ける必要があります。

例えば，/sbin/rc1.dディレクトリに提供されているJP1/Baseの自動停止スクリプトのシンボリックリンクの名称が「K100jp1_base」，JP1/IM - Managerの自動起動スクリプトのシンボリックリンクの名称が「K099jp1_cons」の場合，K099の099（数字）部分よりも小さい数字になるようにシンボリックリンクの名称を「K095jp1_as_md」とし，次のように指定することでJP1/Base，JP1/IM - Managerより先に停止されます。

ln -s /sbin/init.d/jp1_as_md /sbin/rc1.d/K095jp1_as_md
chown -h root:sys /sbin/rc1.d/K095jp1_as_md

(d)　Solarisの場合

JP1/Advanced Shellでは，ユーザー応答機能管理デーモンを自動起動・停止するためのスクリプトファイルjp1_as_mdを/opt/jp1as/sampleディレクトリに格納しています。このスクリプトファイルを利用して次の手順で設定します。

/etc/init.dディレクトリへの追加

/opt/jp1as/sampleディレクトリに格納されているjp1_as_mdを/etc/init.dに追加します。jp1_as_mdは次のように指定して追加します。

cp /opt/jp1as/sample/jp1_as_md /etc/init.d
chmod u=rwx,go=r /etc/init.d/jp1_as_md
chown root:sys /etc/init.d/jp1_as_md

自動起動のためのシンボリックリンク作成

/etc/rc2.dディレクトリに/etc/init.d/jp1_as_mdへのシンボリックリンクを作成します。このとき，連携するJP1シリーズ製品のサービスが起動したあとに起動されるように，シンボリックリンクの名称を付ける必要があります。

例えば，/etc/rc2.dディレクトリに提供されているJP1/Baseの自動起動スクリプトのシンボリックリンクの名称が「S99_JP1_10_BASE」，JP1/IM - Managerの自動起動スクリプトのシンボリックリンクの名称が「S99_JP1_20_CONS」の場合，文字列の大小関係で「S99_JP1_20_CONS」よりも大きくなるようにシンボリックリンクの名称を「S99_JP1_70_AS」とし，次のように指定することでJP1/Base，JP1/IM - Managerよりあとに起動されます。

ln -s /etc/init.d/jp1_as_md /etc/rc2.d/S99_JP1_70_AS
chown -h root:sys /etc/rc2.d/S99_JP1_70_AS

自動停止の設定

/etc/rc0.dディレクトリに/etc/init.d/jp1_as_mdへのシンボリックリンクを作成します。このとき，連携するJP1シリーズ製品のサービスの停止よりも前に停止されるようにシンボリックリンクの名称を付ける必要があります。

例えば，/etc/rc0.dディレクトリに提供されているJP1/Baseの自動停止スクリプトのシンボリックリンクの名称が「K01_JP1_90_BASE」，JP1/IM - Managerの自動起動スクリプトのシンボリックリンクの名称が「K01_JP1_80_CONS」の場合，文字列の大小関係で「K01_JP1_80_CONS」よりも小さくなるようにシンボリックリンクの名称を「K01_JP1_30_AS」とし，次のように指定することでJP1/Base，JP1/IM - Managerより先に停止されます。

ln -s /etc/init.d/jp1_as_md /etc/rc0.d/K01_JP1_30_AS
chown -h root:sys /etc/rc0.d/K01_JP1_30_AS

(2)　JP1/Baseの設定

ユーザー応答機能を使用するためには，JP1/Advanced Shellが提供するユーザー応答機能用アダプタコマンド設定ファイルをJP1/Baseの対応するディレクトリにコピーしておく必要があります。次に示すユーザー応答機能用アダプタコマンド設定ファイルをJP1/Baseの対応するディレクトリにコピーしてください。

コピー元のディレクトリ（JP1/Advanced Shellが提供するユーザー応答機能用アダプタコマンド設定ファイルの格納ディレクトリ）

/opt/jp1as/sample

JP1/Advanced Shellが提供するユーザー応答機能用アダプタコマンド設定ファイル名：

Adapter_HITACHI_JP1_AS_USERREPLY.conf

コピー先のディレクトリ（JP1/Baseの対応するディレクトリ）

/opt/jp1base/plugin/conf

この設定は，JP1/Advanced Shellのインストール後に一度だけ実施してください。ただし，JP1/Baseを再インストールした場合は，この操作を再度実行してください。

2.8.4　JP1/IM - Managerで環境情報を設定する

ユーザー応答機能を使用するための，JP1/IM - Managerの設定手順を次に示します。この設定は，「2.8.1(2)　JP1イベントの送信先ホストの指定」でHOSTNAME_JP1IM_MANAGERパラメーターに設定したホストのJP1/IM - Managerで実施してください。

(1)　JP1/IM - Managerへの拡張属性定義ファイルのコピー

JP1/Advanced Shellのインストール先ディレクトリのsampleディレクトリに格納されている拡張属性定義ファイルをJP1/IM - Managerへコピーします。拡張属性定義ファイルをコピーして有効にするまでの手順は次のとおりです。なお，この手順はスーパーユーザー権限で実行してください。

JP1/IM - Managerがインストールされたマシンに，拡張属性定義ファイルをコピーする。

コピー元の拡張属性定義ファイル

コピーする拡張属性定義ファイルは，コピー先のOSで使用する文字コードに応じて次のように異なります。

コピー先のOSの種類

コピー対象の拡張属性定義ファイル

Windows

hitachi_jp1_as_SJIS_attr_ja.conf

AIX

hitachi_jp1_as_SJIS_attr_ja.conf

hitachi_jp1_as_EUC_attr_ja.conf

hitachi_jp1_as_UTF8_attr_ja.conf

Linux

hitachi_jp1_as_UTF8_attr_ja.conf

HP-UX

hitachi_jp1_as_SJIS_attr_ja.conf

hitachi_jp1_as_EUC_attr_ja.conf

hitachi_jp1_as_UTF8_attr_ja.conf

Solaris

hitachi_jp1_as_SJIS_attr_ja.conf

hitachi_jp1_as_EUC_attr_ja.conf

hitachi_jp1_as_UTF8_attr_ja.conf

コピー先のディレクトリ

JP1/IM - Managerがインストールされたマシンの，拡張属性定義ファイルのコピー先となるディレクトリは次のとおりです。

コピー先のOSの種類

コピー先のディレクトリ

Windowsの場合

JP1/IM - ManagerのConsoleパス¥conf¥console¥attribute¥

JP1/IM - Managerがクラスタ運用の場合は次のとおりです。

共有フォルダ¥jp1cons¥conf¥console¥attribute¥

UNIXの場合

/etc/opt/jp1cons/conf/console/attribute/

JP1/IM - Managerがクラスタ運用の場合は次のとおりです。

共有ディレクトリ/jp1cons/conf/console/attribute/

JP1/IM - ManagerのConsoleパスについては，マニュアル「JP1/Integrated Management - Manager 構築ガイド」を参照してください。

共有フォルダおよび共有ディレクトリについては，マニュアル「JP1/Integrated Management - Manager 構築ガイド」のクラスタシステムの記述を参照してください。

JP1/IM - Managerを再起動する。

(2)　JP1/IM - ManagerおよびJP1/IM - Viewの設定

JP1/IM - ManagerおよびJP1/IM - Viewで，応答待ちイベントに関する機能を有効にします。有効になっていないと，JP1/IM - Viewによる応答の入力ができません。

JP1/IM - ManagerおよびJP1/IM - Viewの設定方法，ならびにJP1/Advanced ShellとJP1/IM - Managerとの通信の設定については，マニュアル「JP1/Integrated Management - Manager 運用ガイド」のJP1/Advanced Shellとの連携に関する記述を参照してください。

2.8.5　JP1/Baseの環境情報を設定する

ユーザー応答機能を使用する場合，JP1/Advanced Shellと同一のホストで稼働するJP1/Baseの文字コードは，adshechoコマンドおよびadshreadコマンドで指定する事象通知メッセージおよび応答要求メッセージの文字コードとあわせる必要があります。

JP1/Baseの文字コードの設定の詳細については，マニュアル「JP1/Base 運用ガイド」のインストールとセットアップの記述個所を参照してください。

2.9　クラスタ構成で運用する

2.9.1　クラスタ運用の前提条件とサポート範囲

JP1/Advanced Shellは，クラスタシステムでは論理ホスト環境で動作し，系切り替え時にジョブを実行する環境を引き継ぐことができます。ただし，系切り替え時に実行中のジョブを継続して実行することはできません。系切り替え後にジョブを再実行する場合は，手動でジョブを再実行してください。

JP1/Advanced Shellを論理ホスト環境で実行する場合，共有ディスクや論理IPアドレスの割り当て・削除・動作監視がクラスタソフトによって制御されている必要があります。また，次に示す前提条件を満たすよう，システム構成や環境設定を行ってください。

(1)　論理ホスト環境の前提条件

JP1/Advanced Shellを論理ホスト環境で実行する場合，論理IPアドレスと共有ディスクについて，次に示す前提条件があります。

表2‒25　論理ホスト環境の前提条件

論理ホストの構成要素

前提条件

共有ディスク

実行系サーバから待機系サーバへ引き継ぎ可能な共有ディスクが使用できること。

JP1/Advanced Shellのプログラムが起動する前に，共有ディスクが割り当てられること。

ユーザー応答機能管理デーモン・サービスを実行中に，共有ディスクの割り当てが解除されないこと。

ユーザー応答機能管理デーモン・サービスを停止したあとに，共有ディスクの割り当てが解除されること。

共有ディスクが，不当に複数のノードから使用されないよう排他制御されていること。

システムダウンなどでファイルが消えないよう，ジャーナル機能を持つファイルシステムなどでファイルを保護すること。

系切り替え時に稼働中のプログラムを計画停止した場合，ファイルに書き込んだ内容が保証されて引き継がれること。

系切り替え時に共有ディスクを使用中のプロセスがあっても，強制的に系切り替えができること。

共有ディスクの障害を検知した場合の回復処置はクラスタソフトで制御すること。回復処置の延長でユーザー応答機能管理デーモン・サービスの起動や停止が必要な場合は，クラスタソフトからユーザー応答機能管理デーモン・サービスに起動や停止の実行要求をすること。

論理IPアドレス

引き継ぎ可能な論理IPアドレスを使って通信できること。

論理ホスト名から論理IPアドレスが一意に求められること。

ユーザー応答機能管理デーモン・サービスを起動する前に，論理IPアドレスが割り当てられること。

ユーザー応答機能管理デーモン・サービスを実行中に，論理IPアドレスが削除されないこと。

ユーザー応答機能管理デーモン・サービスを実行中に，論理ホスト名と論理IPアドレスの対応が変更されないこと。

ユーザー応答機能管理デーモン・サービスを停止したあとに，論理IPアドレスが削除されること。

ネットワーク障害を検知した場合の回復処置はクラスタソフトなどが制御し，ユーザー応答機能管理デーモン・サービスが回復処理を意識する必要がないこと。また，回復処置の延長でユーザー応答機能管理デーモン・サービスの起動や停止が必要な場合は，クラスタソフトからユーザー応答機能管理デーモン・サービスに起動や停止の実行要求をすること。

同一の物理ホストで複数の論理ホストを起動する場合，論理ホストごとに1つずつのIPアドレスを割り当てられること。

(2)　物理ホスト環境の前提条件

JP1/Advanced Shellを論理ホストで運用するクラスタシステムでは，各サーバの物理ホスト環境が次に示す前提条件を満たしている必要があります。

表2‒26　物理ホスト環境の前提条件

物理ホストの構成要素

前提条件

サーバ本体

2台以上のサーバ機によるクラスタ構成になっていること。

実行する処理に応じたCPU性能があること（例えば，論理ホストを多重起動する場合などに，対応できるCPU性能があること）。

実行する処理に応じた実メモリ容量があること（例えば，論理ホストを多重起動する場合などに，対応できる実メモリ容量があること）。

ディスク

システムダウンなどでファイルが消えないよう，ジャーナル機能を持つファイルシステムなどでファイルを保護すること。

ネットワーク

物理ホスト環境のユーザー応答機能管理デーモン・サービスを使用する場合，物理ホスト名（hostnameコマンドの結果）に対応するIPアドレスで通信が可能なこと（クラスタソフトなどによって通信ができない状態に変更されないこと）※。

ユーザー応答機能管理デーモン・サービスの動作中に，ホスト名とIPアドレスの対応が変更されないこと（クラスタソフトやネームサーバなどによって変更がされないこと）。

Windowsの場合，ホスト名に対応したLANボードがネットワークのバインド設定で最優先になっていること（ハートビート用などほかのLANボードが優先になっていないこと）。

OS，クラスタソフト

系切り替え後も同じ処理ができるよう，各サーバの環境が同一の設定であること。

JP1/Advanced Shellがサポートするクラスタソフトおよびバージョンであること。

JP1/Advanced Shellおよびクラスタソフトが前提とするパッチやサービスパックが適用済みであること。

注※

クラスタソフトによっては，物理ホスト名（hostnameコマンドで表示されるホスト名）に対応するIPアドレスで通信ができなくなる構成の場合があります。この場合，物理ホスト環境のユーザー応答機能管理デーモン・サービスは動作できません。論理ホスト環境のユーザー応答機能管理デーモン・サービスだけを使用してください。

(3)　JP1/Advanced Shellがサポートする範囲

クラスタシステムでJP1/Advanced Shellを運用する場合，JP1/Advanced Shellがサポートする範囲はJP1/Advanced Shell自体の動作だけです。論理ホスト環境（共有ディスクおよび論理IPアドレス）の制御はクラスタソフトの制御に依存します。

また，論理ホスト環境および物理ホスト環境の前提条件が満たされていない，または論理ホスト環境の制御に問題がある場合は，JP1/Advanced Shellが正常に動作しないことがあります。この場合は，物理ホスト環境および論理ホスト環境の前提条件を見直す，またはクラスタソフトの設定を見直してください。

(4)　論理ホスト名の条件

論理ホスト名の条件を次に示します。

使用できる文字数

Windowsの場合：1〜196バイト（推奨：63バイト以内）

UNIXの場合：1〜255バイト（推奨：63バイト以内）

ただし，使用するクラスタソフトやほかのJP1製品に上限がある場合，上限を超えないように論理ホスト名を設定してください。

使用できる文字

英数字，および-（ハイフン）

2.9.2　クラスタ運用の環境情報の設定

クラスタ運用に対応するための，JP1/Advanced Shellの環境情報の設定について説明します。

(1)　連携するJP1シリーズ製品をインストール・セットアップする

実行系サーバおよび待機系サーバで連携するJP1シリーズ製品のインストール・セットアップを実施してください。連携するJP1シリーズ製品のインストール・セットアップについては，各製品のマニュアルを参照してください。

(2)　JP1/Advanced Shellをインストールする

実行系サーバ，待機系サーバそれぞれのローカルディスク上にJP1/Advanced Shellをインストールしてください。

また，共有ディスク上にはJP1/Advanced Shellをインストールしないでください。

(3)　JP1/Advanced Shellの環境情報を設定する

JP1/Advanced Shellをクラスタシステムで運用するには，次の作業を実施してください。

(a)　ディレクトリとファイル構成の検討

システムの運用方針に従い，以下の表の項目のディレクトリとファイル構成を検討します。

表2‒27　ディレクトリとファイル構成の検討項目

ディレクトリまたはファイル種別

作成基準

一時ファイル用のディレクトリ

△

スプール用のディレクトリ

○

システム実行ログ用のディレクトリ

△

トレース用のディレクトリ

×

システム環境ファイル

×

ジョブ環境ファイル

△

ジョブ定義スクリプト

△

ジョブ定義スクリプトから参照するファイル

△

上記以外

△

(凡例)

○：共有ディスク上に作成する。

△：システムの運用方針に従い，共有ディスクまたはローカルディスク上に作成する。

×：ローカルディスク上に作成する。

(b)　物理ホストの環境情報を設定する

実行系サーバおよび待機系サーバの物理ホストで，JP1/Advanced Shellの環境情報を設定します。環境情報の設定については，「2.6　JP1/Advanced Shellの環境情報を設定する」を参照してください。

(c)　論理ホストの環境情報を設定する

実行系サーバの論理ホストで，JP1/Advanced Shellの環境情報を次の手順で設定します。

実行に必要なディレクトリを作成する。

「(a)　ディレクトリとファイル構成の検討」で検討したディレクトリ構成に従って，JP1/Advanced Shellの実行に必要な次に示すディレクトリを共有ディスク上またはローカルディスク上に作成します。JP1/Advanced Shellの実行に必要なディレクトリの詳細については，「2.6.19　JP1/Advanced Shellで必要なディレクトリを作成する」を参照してください。

一時ファイル用のディレクトリ

スプール用のディレクトリ

システム実行ログ用のディレクトリ

トレース用のディレクトリ

ディレクトリの作成方法を次に示します。

共有ディスク上に作成する場合

実行系サーバから共有ディスクにアクセスできるようにし，共有ディスク上にディレクトリを作成する。

ローカルディスク上に作成する場合

実行系サーバおよび待機系サーバのそれぞれのローカルディスク上にディレクトリを作成する。

環境ファイルを設定する。

JP1/Advanced Shellのシステム環境ファイルで，論理ホストごとの設定をする必要があります。そのためには，条件パラメーターlhost_startとlhost_endの間に，各論理ホストの環境設定パラメーターを設定します。条件パラメーターlhost_startとlhost_endの詳細については，「7.4　条件パラメーター」の「lhost_startパラメーター，lhost_endパラメーター（論理ホストだけで有効なパラメーターを定義する）」を参照してください。

論理ホスト環境で実行するためには，少なくとも次のパラメーターをシステム環境ファイルに設定します。

実行に必要なディレクトリのパラメーターの設定

「(a)　ディレクトリとファイル構成の検討」で検討したディレクトリ構成に従って，手順1.で作成したディレクトリの構成をシステム環境ファイルに設定します。これらのディレクトリはシステムの切り替え時にあわせて切り替わるよう，システム環境ファイルだけに指定し，ジョブ環境ファイルには指定しないでください。

JP1/Advanced Shellの実行に必要なディレクトリのパラメーターの詳細については，「2.6.19　JP1/Advanced Shellで必要なディレクトリを作成する」を参照してください。

ユーザー応答機能のパラメーターの設定

論理ホスト環境でユーザー応答機能を使用する場合は，システム環境ファイルに，論理ホスト用のユーザー応答機能のパラメーターを設定してください。

ユーザー応答機能のパラメーターの詳細は，「2.8.1　ユーザー応答機能を使用するための環境ファイルの設定」を参照してください。

物理ホストおよび論理ホストを指定したシステム環境ファイルの設定例を次に示します。ここで，「/shdsk1/lhost001」「/shdsk2/lhost002」は共有ディスク上のディレクトリ，「/lhost001」「/lhost002」「/phost」はローカルディスク上のディレクトリです。

###
### 物理ホストおよび論理ホストで共通の設定
###

#-adsh_conf USERREPLY_JP1EVENT_INTERVAL   500

###
### 物理ホストおよび論理ホストごとの設定
###

#### specify parameter for only logical host (lhost001).
#-adsh_conf lhost_start                   lhost001
#-adsh_conf LOG_DIR                       "/shdsk1/lhost001/log"
#-adsh_conf SPOOL_DIR                     "/shdsk1/lhost001/spool"
#-adsh_conf TEMP_FILE_DIR                 "/shdsk1/lhost001/temp"
#-adsh_conf TRACE_DIR                     "/lhost001/trace"
#-adsh_conf HOSTNAME_JP1IM_MANAGER        IMlhost001
#-adsh_conf USERREPLY_WAIT_MAXCOUNT       5
#-adsh_conf lhost_end

#### specify parameter for only logical host (lhost002).
#-adsh_conf lhost_start                   lhost002
#-adsh_conf LOG_DIR                       "/shdsk2/lhost002/log"
#-adsh_conf SPOOL_DIR                     "/shdsk2/lhost002/spool"
#-adsh_conf TEMP_FILE_DIR                 "/shdsk2/lhost002/temp"
#-adsh_conf TRACE_DIR                     "/lhost002/trace"
#-adsh_conf HOSTNAME_JP1IM_MANAGER        IMlhost002
#-adsh_conf USERREPLY_WAIT_MAXCOUNT       5
#-adsh_conf lhost_end

#### specify parameter for physical host.
#-adsh_conf phost_start
#-adsh_conf LOG_DIR                       "/phost/log"
#-adsh_conf SPOOL_DIR                     "/phost/spool"
#-adsh_conf TEMP_FILE_DIR                 "/phost/temp"
#-adsh_conf TRACE_DIR                     "/phost/trace"
#-adsh_conf HOSTNAME_JP1IM_MANAGER        IMphost001
#-adsh_conf USERREPLY_WAIT_MAXCOUNT       10
#-adsh_conf phost_end

論理ホスト用のユーザー応答機能管理サービスを登録する。【Windows限定】

論理ホスト環境でユーザー応答機能を使用する場合は，実行系サーバおよび待機系サーバで論理ホスト用のユーザー応答機能管理サービスを登録する必要があります。登録はadshmsvcdコマンドおよびadshmsvceコマンドで実行できます。論理ホストに対応したサービスを登録する場合，-installオプションと-lhostnameオプションを指定してコマンドを実行します。

コマンドが正常に終了すると，登録したサービスが［サービス］管理ツールに表示されます。

例えば，実行系サーバの実行環境に論理ホストとしてlhost001を使用する場合，次のコマンドを実行します。

adshmsvce -install -lhostname lhost001

この例の場合，コマンドが正常に終了すると，［AdshmSvcE_ lhost001］が［サービス］管理ツールに表示されます。

実行系サーバと待機系サーバのファイル構成を確認する。

「(a)　ディレクトリとファイル構成の検討」で検討したファイル構成に応じて，次の作業を実施してください。

ローカルディスク上に作成する場合

実行系サーバと待機系サーバで，参照するファイルの構成とファイルの中身を同じにする必要があります。手順2.で作成したシステム環境ファイルなど，実行系サーバのローカルディスク上に作成したファイルを，待機系サーバの同一のパスにコピーしてください。

共有ディスク上に作成する場合

実行系サーバから共有ディスクにアクセスできるようにし，作成してください。

注意事項

作成したファイルは，実行系サーバおよび待機系サーバのどちらからもアクセスできるように権限を設定してください。特に，特定のユーザーやグループにアクセス権限を設定している場合は，実行系サーバと待機系サーバでユーザー名とユーザーID（UID），グループ名とグループID（GID）を同じにする必要があります。

(4)　クラスタソフトへの登録【Windowsの場合】

論理ホストのユーザー応答機能管理サービスをクラスタソフトに登録して，クラスタソフトからの制御で起動・停止するように設定します。ただし，論理ホスト環境でユーザー応答機能を使用しない場合は，登録は不要です。

(a)　クラスタソフトへの登録

Windowsの場合，クラスタソフトに登録するのは，論理ホスト用のサービスとして登録された次の名称のサービスです。

名前

サービス名

AdshmSvcE_論理ホスト名

ユーザー応答機能管理サービス

登録方法の詳細については，各クラスタソフトのマニュアルを参照してください。クラスタソフトに登録したユーザー応答機能管理サービスは，クラスタソフトの操作で起動または停止してください。

(b)　起動停止順序の設定

論理ホストのユーザー応答機能管理サービスを実行するには，共有ディスクおよび論理IPアドレスが使用可能になっている必要があります。また，起動停止の際の順序は，連携するJP1シリーズ製品と依存関係があります。

論理ホストの起動時

共有ディスクおよび論理IPアドレスを割り当てて使用可能にする。

連携するJP1シリーズ製品（JP1/AJSを除く）のサービスを起動する。※

ユーザー応答機能管理サービスを起動する。

JP1/AJSのサービスを起動する。

論理ホストの停止時

JP1/AJSのサービスを停止する。

ユーザー応答機能管理サービスを停止する。

連携するJP1シリーズ製品（JP1/AJSを除く）のサービスを停止する。※

共有ディスクおよび論理IPアドレスの割り当てを解除する。

注※

連携するJP1シリーズ製品間のサービスの起動停止順序は，各製品のマニュアルを参照してください。

(5)　クラスタソフトへの登録【UNIXの場合】

論理ホストのユーザー応答機能管理デーモンをクラスタソフトに登録して，クラスタソフトからの制御で起動・停止するように設定します。ただし，論理ホスト環境でユーザー応答機能を使用しない場合は，登録は不要です。

(a)　クラスタソフトへの登録

ユーザー応答機能管理デーモンをクラスタソフトへ登録する場合に必要な情報を次の表に示します。

表2‒28　クラスタソフトに登録する機能と各機能で使用するコマンド

登録する機能

説明

起動

ユーザー応答機能管理デーモンを起動します。

使用するコマンド

adshmdctl

使用例

adshmdctl -h 論理ホスト名 start

起動結果の判定

ユーザー応答機能管理デーモンを起動した結果は終了コードで判定しないで，後述する動作監視によって判定してください。

停止

ユーザー応答機能管理デーモンを停止します。

使用するコマンド

adshmdctl

使用例

adshmdctl -h 論理ホスト名 stop

停止結果の判定

ユーザー応答機能管理デーモンを停止した結果は終了コードで判定しないで，後述する動作監視によって判定してください。

動作監視

ユーザー応答機能管理デーモンが正常に動作していることを監視します。

使用するコマンド

adshmdctl

使用例

adshmdctl -h 論理ホスト名 status

動作監視結果の判定

各終了コードの判定方法を次に示します。

終了コード=0（稼働中）

　ユーザー応答機能管理デーモンは正常に動作しています。

終了コード=1（停止）

　ユーザー応答機能管理デーモンは何らかの問題によって停止しています。異常と判定してください。

adshmdctlコマンドについては，「8.　運用時に使用するコマンド」の「adshmdctlコマンド（ユーザー応答機能管理デーモンを起動および停止する）【UNIX限定】」を参照してください。

注意事項

ユーザー応答機能管理デーモンが何らかの障害によって共有メモリを解放しないまま終了した場合，次回の起動に失敗します。この場合，「8.　運用時に使用するコマンド」の「adshmdctlコマンド（ユーザー応答機能管理デーモンを起動および停止する）【UNIX限定】」の「機能」の説明に従って対処してください。

(b)　起動停止順序の設定

論理ホストのユーザー応答機能管理デーモンを実行するには，共有ディスクおよび論理IPアドレスが使用可能になっている必要があります。また，起動停止の際の順序は，連携するJP1シリーズ製品と依存関係があります。

論理ホストの起動時

共有ディスクおよび論理IPアドレスを割り当てて使用可能にする。

連携するJP1シリーズ製品（JP1/AJSを除く）のデーモン・サービスを起動する。※

ユーザー応答機能管理デーモンを起動する。

JP1/AJSのサービスを起動する。

論理ホストの停止時

JP1/AJSのサービスを停止する。

ユーザー応答機能管理デーモンを停止する。

連携するJP1シリーズ製品（JP1/AJSを除く）のデーモン・サービスを停止する。※

共有ディスクおよび論理IPアドレスの割り当てを解除する。

注※

連携するJP1シリーズ製品間のサービスの起動停止順序は，各製品のマニュアルを参照してください。

2.9.3　クラスタ運用の場合のコマンドの指定方法

コマンドを論理ホストで実行させるためには，コマンドに論理ホスト名を指定する必要があります。論理ホスト名を指定しないと，物理ホストでコマンドが実行されます。論理ホストは実行するコマンドによって次のように指定してください。

(1)　adshexecコマンド（バッチジョブを実行する）の場合

(a)　JP1/AJSのカスタムジョブから実行する場合

adshexecをカスタムジョブから実行する場合は，カスタムジョブの「詳細定義-［Custom Job］］ダイアログボックス」の「詳細情報の設定」の「論理ホスト」のチェックボックスにチェックして実行することで，論理ホストとして実行できます。

ただし，カスタムジョブを実行するJP1/AJSの実行エージェントが論理ホストで動作している必要があります。JP1/AJSの実行エージェントが物理ホストで動作している場合，正常に動作しません。

カスタムジョブの詳細については，「2.7　JP1/AJSの環境情報を設定する（JP1/AJSを使用する場合）」を参照してください。

(b)　JP1/AJSのカスタムジョブ以外から実行する場合

カスタムジョブ以外から実行する場合は，次のように実行する。

adshexec -h ""(ダブルクォーテーション) ジョブ定義スクリプトファイルのパス名

論理ホストで稼働しているJP1/AJS - Agentから実行した場合，環境変数JP1_HOSTNAMEに論理ホスト名が設定されます。adshexecコマンドは-hオプションに空文字列（「""（ダブルクォーテーション）」を記述）を指定した場合，環境変数JP1_HOSTNAMEから論理ホスト名を取得します。JP1_HOSTNAME環境変数については，マニュアル「JP1/Base 運用ガイド」を参照してください。

ただし，実行するJP1/AJSの実行エージェントが論理ホストで動作している必要があります。JP1/AJSの実行エージェントが物理ホストで動作している場合，「(c)　JP1/AJS以外から実行する」に示すコマンドを実行してください。

(c)　JP1/AJS以外から実行する場合

次のようにコマンドに-hオプションで論理ホスト名を指定して実行してください。

adshexec -h 論理ホスト名 ジョブ定義スクリプトファイルのパス名

(2)　adshexecコマンド以外の場合

次のようにコマンドに-hオプションで論理ホスト名を指定して実行してください。

コマンド -h 論理ホスト名

adshlsmsgコマンドを論理ホストで実行する場合の例を次に示します。

adshlsmsg -h 論理ホスト名

ユーザー応答機能を使用する場合，ユーザー応答機能管理デーモン・サービスに指定する論理ホスト名とadshexecコマンドに指定する論理ホスト名は同じにする必要があります。論理ホストとして実行できる各コマンドの詳細については，「8.3　シェル運用コマンド」を参照してください。

2.9.4　クラスタ運用に関する注意事項

JP1/Advanced Shellのクラスタ運用に関する注意事項を次に示します。

【Windows限定】ファイル名やパス名にUNC形式の名称を指定できます。ただし，パス名の末尾が共有名（後ろに「¥」を指定した場合を含む）になる指定はサポートしていません。

JP1/Advanced Shellでは一部のファイルシステムをサポートしていません。詳細は，「2.6.19(2)　ファイルシステム」を参照してください。

論理ホストを複数構築してJP1/Advanced Shellを複数稼働している場合でも，ユーザー応答機能は論理ホストごとに実行されます。ある論理ホストのユーザー応答機能から，別の論理ホストのユーザー応答機能の情報を参照することはできません。

ユーザー応答機能の応答要求メッセージを使用したジョブを実行中に，系切り替えをした場合，JP1/IM - View上に応答待ちイベントが滞留したままになる場合があります。その場合，JP1/IM - Viewを操作して手動で応答待ちイベントの滞留を解除してください。

【UNIX限定】JP1/Advanced Shellのジョブの実行中に，クラスタソフトによって共有ディスクが切り離された場合，実行中のジョブはシグナルによってエラー終了します。

【Windows限定】JP1/Advanced Shellのジョブの実行中に，クラスタソフトによって共有ディスクが切り離された場合，実行中のジョブが共有ディスク上のファイルにアクセスするタイミングでエラー終了します。

クラスタ環境で運用する場合，カバレージ情報は採取しないでください。

2.9.5　非クラスタ環境で論理ホストを運用する場合の設定

クラスタ環境で運用しない論理ホストの構築および運用についての概要を説明します。クラスタ環境で運用しない論理ホストも，通常のクラスタシステムで運用する場合の論理ホストと同じ環境情報を設定して運用します。

(1)　非クラスタシステムで論理ホストを運用する場合の環境情報の設定

クラスタソフトと連携しないで，クラスタ環境で運用しない論理ホスト環境でJP1/Advanced Shellを運用する手順を次に示します。

(a)　論理ホスト環境の準備

論理ホスト環境を作成するために，論理ホスト用のディスク領域およびIPアドレスを用意してください。

論理ホスト用のディスク領域

物理ホストやほかの論理ホストのJP1シリーズ製品が使用しているものとは別に，論理ホストのJP1/Advanced Shellが使用するファイルの格納先ディレクトリを，ローカルディスク上に作成してください。

論理ホスト用のIPアドレス

論理ホストのJP1/Advanced Shellが使用するIPアドレスを，OSに割り当ててください。IPアドレスの割り当ては，実IPアドレスでもエイリアスIPアドレスでもかまいません。ただし，論理ホストから一意に特定できるIPアドレスにしてください。

これらに対する前提条件は，クラスタシステムでの運用の場合と同じです。ただし，クラスタ環境での運用方法ではないため，「クラスタソフト」に関連する条件などは除きます。

なお，「2.9　クラスタ構成で運用する」で，共有ディスク・論理IPアドレスと説明している部分は，上記で割り当てた論理ホスト用のディスク領域・IPアドレスに読み替えてください。

性能の見積もり

性能を見積もる際は，以下のような観点でシステムとして動作可能か見積もってください。

システム内で複数のJP1シリーズ製品が起動できるリソースを割り当てられるかどうかを見積もってください。リソースが十分に割り当てられないと，正しく動作しなかったり，十分な性能が確保できなかったりします。

(b)　論理ホストの環境情報の設定

クラスタシステムの実行系サーバと同じ手順で，論理ホストの環境情報の設定を行ってください。クラスタシステムの環境情報の設定については，「2.9.2　クラスタ運用の環境情報の設定」を参照してください。なお，クラスタシステムでは系切り替えをする両側のサーバに対して設定する必要がありますが，クラスタ環境で運用しない論理ホストでは，動作するサーバだけ設定してください。

(2)　非クラスタ環境の論理ホスト用ユーザー応答機能管理デーモンの自動起動と自動停止【UNIX限定】

システムの起動時および終了時に，ユーザー応答機能管理デーモンを自動起動・自動停止させるための設定方法を次に示します。

(a)　AIXの場合

システム起動時の自動起動機能

システム起動時の自動起動機能を設定するには，mkitabコマンドを使用して次のコマンドを実行します。

mkitab "論理ホスト用ユーザー応答機能管理デーモンのレコード:2:wait:/opt/jp1as/sbin/adshmdctl -h 論理ホスト名 start"

論理ホスト用のユーザー応答機能管理デーモンの起動は，連携するJP1シリーズ製品の論理ホスト用サービスの起動よりあとになるよう設定してください。例えば，論理ホストのJP1/Base，論理ホストのJP1/IM - Managerの順に自動起動させるには，次のように指定してmkitabコマンドを実行します。

mkitab -i 論理ホスト用JP1/Baseのレコード "論理ホスト用JP1/IM - Managerのレコード:2:wait:/etc/opt/jp1cons/jco_start.cluster 論理ホスト名"
mkitab -i 論理ホスト用JP1/IM - Managerのレコード "論理ホスト用ユーザー応答機能管理デーモンのレコード:2:wait:/opt/jp1as/sbin/adshmdctl -h 論理ホスト名 start"

システム終了時の自動停止機能

システム終了時の自動停止機能を設定するには，/etc/rc.shutdownを編集して，連携するJP1シリーズ製品の論理ホスト用サービスの停止より先に停止させるように次に示す記述を追加します。

test -x /opt/jp1as/sbin/adshmdctl && /opt/jp1as/sbin/adshmdctl -h 論理ホスト名 stop
    :
連携するJP1シリーズ製品の論理ホスト用サービスの停止処理
    :

(b)　Linuxの場合

自動起動および自動停止スクリプトの作成

論理ホスト用の自動起動および自動停止スクリプトを/etc/rc.d/init.dディレクトリに作成します。作成例を次に示します。

#!/bin/sh

JP1_HOSTNAME=論理ホスト名

case $1 in
'start')
      if [ -x /opt/jp1as/sbin/adshmdctl ]
      then
              /opt/jp1as/sbin/adshmdctl -h $JP1_HOSTNAME start
              touch /var/lock/subsys/ロックファイル名
      fi
      ;;
'stop')
      if [ -x /opt/jp1as/sbin/adshmdctl ]
      then
              /opt/jp1as/sbin/adshmdctl -h $JP1_HOSTNAME stop
              rm -f /var/lock/subsys/ロックファイル名
      fi
      ;;
esac

exit 0

なお，ロックファイル名には自動停止のために作成するシンボリックリンクの名称の先頭から数字部分（KXX部分）を除いた名称を指定します。例えば，自動停止のためのシンボリックリンクの名称が「K01_JP1_AS_CLUSTER」の場合，「_JP1_AS_CLUSTER」を指定します。

自動起動のためのシンボリックリンク作成

作成した自動起動および自動停止スクリプトへのシンボリックリンクを/etc/rc.d/rc<N>.dディレクトリ（<N>は起動時の実行レベル）に作成します。このとき，連携するJP1シリーズ製品の論理ホスト用サービスが起動したあとに起動されるようにシンボリックリンクの名称を付ける必要があります。シンボリックリンクの作成手順については，「2.8.3(1)　ユーザー応答機能管理デーモンの自動起動と自動停止」を参照してください。

自動停止のためのシンボリックリンク作成

作成した自動起動および自動停止スクリプトへのシンボリックリンクを/etc/rc.d/rc<N>.dディレクトリ（<N>は停止時の実行レベル）に作成します。このとき，連携するJP1シリーズ製品の論理ホスト用サービスよりも先に停止されるようにシンボリックリンクの名称を付ける必要があります。シンボリックリンクの作成手順については，「2.8.3(1)　ユーザー応答機能管理デーモンの自動起動と自動停止」を参照してください。

なお，連携するJP1シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプトの作成と，作成した自動起動および自動停止スクリプトへのシンボリックリンクの作成は，ユーザー自身が実行します。連携するJP1シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプト名とシンボリックリンクの名称については，連携するJP1シリーズ製品のマニュアルを参照してください。

(c)　HP-UXの場合

自動起動および自動停止スクリプトの作成

論理ホスト用の自動起動および自動停止スクリプトを/sbin/init.dディレクトリに作成します。作成例を次に示します。

#!/bin/sh

## Set Environment-variables
PATH=/sbin:/bin:/usr/bin:/opt/jp1as/sbin
export PATH
JP1_HOSTNAME=論理ホスト名

case $1 in
start_msg)
      echo "Start JP1/Advanced Shell - adshmd $JP1_HOSTNAME"
      ;;
stop_msg)
      echo "Stop JP1/Advanced Shell - adshmd $JP1_HOSTNAME"
      ;;
'start')
      if [ -x /opt/jp1as/sbin/adshmdctl ]
      then
              /opt/jp1as/sbin/adshmdctl -h $JP1_HOSTNAME start
      fi
      ;;
'stop')
      if [ -x /opt/jp1as/sbin/adshmdctl ]
      then
              /opt/jp1as/sbin/adshmdctl -h $JP1_HOSTNAME stop
      fi
      ;;
esac

exit 0

自動起動のためのシンボリックリンク作成

作成した自動起動および自動停止スクリプトへのシンボリックリンクを/sbin/rc2.dディレクトリに作成します。このとき，連携するJP1シリーズ製品の論理ホスト用サービスが起動したあとに起動されるようにシンボリックリンクの名称を付ける必要があります。シンボリックリンクの作成手順については，「2.8.3(1)　ユーザー応答機能管理デーモンの自動起動と自動停止」を参照してください。

自動停止のためのシンボリックリンク作成

作成した自動起動および自動停止スクリプトへのシンボリックリンクを/sbin/rc1.dディレクトリに作成します。このとき，連携するJP1シリーズ製品の論理ホスト用サービスよりも先に停止されるようにシンボリックリンクの名称を付ける必要があります。シンボリックリンクの作成手順については，「2.8.3(1)　ユーザー応答機能管理デーモンの自動起動と自動停止」を参照してください。

なお，連携するJP1シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプトの作成と，作成した自動起動および自動停止スクリプトへのシンボリックリンクの作成は，ユーザー自身が実行します。連携するJP1シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプト名とシンボリックリンクの名称については，連携するJP1シリーズ製品のマニュアルを参照してください。

(d)　Solarisの場合

自動起動および自動停止スクリプトの作成

論理ホスト用の自動起動および自動停止スクリプトを/etc/init.dディレクトリに作成します。作成例を次に示します。

#!/bin/sh

JP1_HOSTNAME=論理ホスト名

case $1 in
'start')
      if [ -x /opt/jp1as/sbin/adshmdctl ]
      then
              /opt/jp1as/sbin/adshmdctl -h $JP1_HOSTNAME start
      fi
      ;;
'stop')
      if [ -x /opt/jp1as/sbin/adshmdctl ]
      then
              /opt/jp1as/sbin/adshmdctl -h $JP1_HOSTNAME stop
      fi
      ;;
esac

exit 0

自動起動のためのシンボリックリンク作成

作成した自動起動および自動停止スクリプトへのシンボリックリンクを/etc/rc2.d/ディレクトリに作成します。このとき，連携するJP1シリーズ製品の論理ホスト用サービスが起動したあとに起動されるようにシンボリックリンクの名称を付ける必要があります。シンボリックリンクの作成手順については，「2.8.3(1)　ユーザー応答機能管理デーモンの自動起動と自動停止」を参照してください。

自動停止のためのシンボリックリンク作成

作成した自動起動および自動停止スクリプトへのシンボリックリンクを/etc/rc0.d/ディレクトリに作成します。このとき，連携するJP1シリーズ製品の論理ホスト用サービスよりも先に停止されるようにシンボリックリンクの名称を付ける必要があります。シンボリックリンクの作成手順については，「2.8.3(1)　ユーザー応答機能管理デーモンの自動起動と自動停止」を参照してください。

なお，連携するJP1シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプトの作成と，作成した自動起動および自動停止スクリプトへのシンボリックリンクの作成は，ユーザー自身が実行します。連携するJP1シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプト名とシンボリックリンクの名称については，連携するJP1シリーズ製品のマニュアルを参照してください。

(3)　論理ホストの指定方法

コマンドを論理ホストで実行させるためには，クラスタシステムで動作する論理ホストと同様に指定してください。クラスタシステムの論理ホストの指定方法については，「2.9.3　クラスタ運用の場合のコマンドの指定方法」を参照してください。

2.10　HTMLマニュアルを組み込む

所定のフォルダにHTMLマニュアルをコピーすることで，JP1/Advanced Shellのカスタムジョブプログラム，およびJP1/Advanced ShellエディタからHTMLマニュアルを参照できます。

HTMLマニュアルの組み込み手順を次に示します。

プログラムプロダクトに標準添付されているマニュアルCD-ROMを用意する。

マニュアルCD-ROMからマニュアル「JP1/Advanced Shell」のすべてのHTMファイルおよびCSSファイルと，GRAPHICSフォルダを次のフォルダの下にコピーする。

JP1/Advanced Shellからヘルプを参照する場合

インストール先ディレクトリ¥JP1ASE¥doc¥ja¥help

JP1/Advanced Shellエディタからヘルプを参照する場合

インストール先ディレクトリ¥JP1ASD¥doc¥ja¥help

JP1/Advanced Shellのカスタムジョブ定義プログラムからヘルプを参照する場合

インストール先ディレクトリ¥JP1ASV¥doc¥ja¥help

第3編　運用編

3　バッチジョブの実行

この章では，JP1/Advanced Shell（実行環境）を使用したバッチジョブの運用として，バッチジョブの実行方法や動作について説明します。

3.1　ジョブの構成

この節では，ジョブの構成について説明します。

3.1.1　JP1/AJSのジョブに関する運用者の作業

JP1/AJSを使用してジョブを実行する場合の，運用者の作業の流れを次に示します。

(1)　ジョブの定義

JP1/AJSを使用してジョブを実行する場合には，「2.7.2　ジョブネットを定義して実行する」に示す手順に従ってジョブを定義しておきます。

(2)　ジョブの実行

JP1/AJSを使用してジョブを実行する方法には，計画実行，確定実行および即時実行があり，おのおのの方法に従って実行します。実行方法については，マニュアル「JP1/Automatic Job Management System 3 操作ガイド」を参照してください。

JP1/AJSを使用しない場合，コマンドプロンプトまたはシェルからコマンドを入力してジョブ（ジョブ定義スクリプト）を実行することもできます。

(3)　ジョブネットの監視

JP1/AJSでジョブネットモニタを起動し，ジョブの実行状態を確認します。

(4)　ジョブの再実行

ジョブの再実行が必要な場合，JP1/AJS - Viewの画面から再実行します。

3.1.2　ジョブ

JP1/AJS，Windowsのコマンドプロンプト，またはUNIXのシェルなどからジョブコントローラを起動する要求は，ジョブとして受け付けられます。ジョブを利用する一般ユーザーは，指示をまとめて記述したジョブ定義スクリプトをジョブコントローラに渡します。

ジョブを利用する一般ユーザーが指定した指示は，ジョブコントローラによって何が要求されているかが分析され，システム資源が効率良く利用されるようにジョブを実行します。

(1)　ルートジョブと子孫ジョブ

ジョブとは一般に，一般ユーザーが用意する1つのまとまった仕事をシステムに要求する単位です。要求する仕事は互いに独立したものと考えられます。

ジョブは一連の処理プログラムから構成されています。これらの処理プログラムを実行するには，その実行の順序，実行の条件，および処理プログラムの実行に必要なファイルを定義する必要があります。

ジョブには，ルートジョブと子孫ジョブがあります。

ルートジョブ

JP1/AJSやログインシェルなどから実行するジョブのうち，子孫ジョブ以外のジョブのことです。

子孫ジョブ

ルートジョブの子孫プロセスとして実行されるジョブ定義スクリプトのうち，次のどれかのパラメーターの指定，またはパラメーターのデフォルト定義によって実行されるジョブのことです。

CHILDJOB_EXTパラメーター

CHILDJOB_PGMパラメーター

CHILDJOB_SHEBANGパラメーター

ルートジョブと子孫ジョブの起動の流れの例を次の図に示します。

(2)　ジョブの入力モード

ジョブは，標準入力の状態によって次に示すどちらかのモードで実行します。

端末入力モード

ジョブ起動時に標準入力が端末に関連づけられている場合，このモードで動作します。このモードで起動する方法の例を次に示します。

ログインシェルで，標準入力を端末に関連づけた状態でadshexecコマンドを実行する。

非端末入力モード

ジョブ起動時に標準入力が端末に関連づけられていない場合，このモードで動作します。

このモードで起動する方法の例を次に示します。

JP1/AJSからジョブを起動する。

ログインシェル上で，標準入力をファイルからリダイレクトしてadshexecコマンドを実行する。

ログインシェル上で，パイプの途中または末尾でadshexecコマンドを実行する。

ジョブ起動時に，ジョブをどちらのモードで実行するかを示すKNAX7902-Iメッセージを出力します。

UNIXの場合，ジョブの入力モードによってジョブの強制終了時の動作に差異があります。詳細は，「3.11　ジョブを強制終了する」を参照してください。

Windowsの場合，ジョブの入力モードによるジョブの動作の差異はありません。

(3)　ジョブとジョブの関係

ルートジョブ同士は互いに独立しています。したがって，同時に処理するルートジョブ同士，または先に実行したルートジョブがあとに実行するルートジョブに影響を及ぼすことはありません。さらに，ファイル上の情報を除けば，ルートジョブからルートジョブに情報を引き継がれることもありません。

ただし，次の場合にジョブ同士が関連を持つことがあります。

JP1/AJSによるスケジュールによっては，ルートジョブ相互に実行順序関係ができます。

複数のジョブで同時に同一の通常ファイルを使用する場合は，それらのジョブ同士が関連を持ちます。ジョブが適切な順序で実行されるようJP1/AJSのスケジュールを設計する必要があります。

ルートジョブと子孫ジョブ，および子孫ジョブと子孫ジョブは，互いに関連を持つ場合があります。

(4)　ジョブと環境ファイルの関係

ルートジョブと子孫ジョブは，どちらもジョブ起動時にシステム環境ファイルおよびジョブ環境ファイルを読み込みます。したがって，次のようなケースではルートジョブと子孫ジョブは異なる環境ファイルのパラメーターで動作します。

ルートジョブが起動時に環境ファイルを読み込んでから，子孫ジョブが起動時に環境ファイルを読み込むまでの間に，環境変数ADSH_ENVの値が別のジョブ環境ファイルパスに書き変えられた場合。

ルートジョブが起動時に環境ファイルを読み込んでから，子孫ジョブが起動時に環境ファイルを読み込むまでの間に，システム環境ファイルおよびジョブ環境ファイルの内容が書き変えられた場合。

ルートジョブと子孫ジョブを同じ環境ファイルのパラメーターで動作させたい場合は，環境変数ADSH_ENVの値，および環境ファイルの内容をジョブ実行中に変更しないでください。

また，環境ファイルにexportパラメーターを定義している場合，ジョブが親プロセスから引き継いだ環境変数の値よりも，環境ファイルのexportパラメーターで設定した値が優先されます。例を次に示します。

ルートジョブroot.ash

export ENV1=SCRIPTFILE
childjob.ash  #子孫ジョブを起動

子孫ジョブ childjob.ash

echo $ENV1

ルートジョブroot.ashと子孫ジョブchildjob.ashが読み込む環境ファイルadshrc.aseの内容

export ENV1=ENVFILE

子孫ジョブchildjob.ashのechoの出力結果

export ENV1=ENVFILE

この例では次の順に動作します。

ルートジョブroot.ashが起動し，環境ファイルadshrc.aseのexportパラメーターによって，ENV1にはENVFILEが設定されます。

ルートジョブroot.ashは，子孫ジョブchildjob.ashを起動する前に，環境変数ENV1にSCRIPTFILEを設定します。

子孫ジョブchildjob.ashが起動すると，ルートジョブroot.ashから環境変数ENV1を引き継ぎます。子孫ジョブchildjob.ashのプロセス起動直後のENV1の値はSCRIPTFILEです。

子孫ジョブchildjob.ashは起動時に環境ファイルadshrc.aseを読み込みます。exportパラメーターによってENV1にはENVFILEが設定されます。

子孫ジョブchildjob.ashのechoの結果は，4.で設定されたENVFILEになります。

(5)　一時ファイルと通常ファイル

バッチジョブでは，オープン基盤製品からの情報などを一時ファイルまたは通常ファイルとして参照し，処理を実行します。

(a)　一時ファイル

一時ファイルとは，ジョブ実行時に一時的に使用するファイルです。ジョブまたはジョブステップによって自動的に作成され，ジョブ終了時には自動的に削除されます。一時ファイルは環境ファイルで定義したディレクトリに作成されます。

バッチジョブの一時ファイルとほかのアプリケーションの一時ファイルは，分けて管理することを推奨します。JP1/Advanced Shellで一時ファイルを格納するディレクトリパスは，TEMP_FILE_DIRパラメーターに指定します。通常，一時ファイルは削除されますが，障害が発生した場合は残ることもあるため，定期的に一時ファイルを削除する必要があります。

(b)　通常ファイル

通常ファイルとはジョブ定義スクリプトの入力および出力に使用するファイルで，任意のディレクトリに配置できます。ジョブ終了後にジョブ結果として残すファイルですが，ジョブの実行中に削除することもできます。

(6)　非同期実行プロセスの動作

JP1/Advanced Shellでは，関連するすべてのルートジョブ，子孫ジョブ，およびコマンドが終了するまでは，ジョブは終了しません。

(a)　&や|&による非同期実行【UNIX限定】

&や|&を指定して実行したプロセスがすべて完了するまで，ジョブは終了しません。

ただし，非同期実行したプロセスがSIGSTOPなどを受信し，ジョブの終了と同時に停止状態になった場合，そのプロセスの終了を待たないでジョブを終了することがあります。非同期実行したプロセスを待たないでジョブを終了したい場合は，非同期実行したい部分だけOSのシェルを使用するように，ジョブ定義スクリプトを作成してください。

例を次に示します。

非同期実行したプロセスの終了を待つジョブ定義スクリプトの例

#!/opt/jp1as/bin/adshexec
mycommand A &

このジョブ定義スクリプトをJP1/Advanced Shellで実行すると，mycommandの完了を待ってからジョブが終了します。mycommandの完了を待たないでジョブを終了したい場合は，次のようにジョブ定義スクリプトを作成してください。なお，この例では，OSのシェルとして/bin/kshを使用しています。

非同期実行したプロセスの終了を待たないで終了するジョブ定義スクリプトの例

#!/opt/jp1as/bin/adshexec
/bin/ksh exec_cmdA.sh

exec_cmdA.shの内容

mycommand A &

(b)　execコマンドによる外部コマンドの実行

execコマンドの引数に外部コマンドを指定した場合，adshexecコマンドは外部コマンドを子プロセスとして実行し，完了を待ちます。外部コマンドが完了したら，execコマンドより後のコマンドは実行しないで，完了した外部コマンドの終了コードがジョブ定義スクリプトの終了コードになります。

(c)　非同期実行プロセスをwaitすることを通知するメッセージ

adshexecコマンド起動時，ジョブ終了時に非同期実行プロセスをwaitすることを通知するメッセージKNAX7901-Iが出力されます。このメッセージは，通常実行時はジョブ実行ログ，システム実行ログおよび標準エラー出力へ出力されます。デバッグ実行時は，標準エラー出力へ出力されます。

(d)　非同期実行プロセスが停止状態になっている場合のジョブの動作【UNIX限定】

非同期実行プロセスがSIGSTOPなどを受信して停止状態になっている場合，ジョブ終了時に子プロセスまたは子孫プロセスに対してSIGHUPとSIGCONTを送信します。送信が完了したあと，1秒後にジョブの後処理を実施します。

ジョブの入力モードによって，SIGHUPとSIGCONTの送信方法が次のとおり異なります。

端末入力モード

adshexecコマンドの子プロセスだけにSIGHUPとSIGCONTを送信します。adshexecコマンドの孫プロセス以下には，SIGHUPとSIGCONTを送信しません。孫プロセス以下が残った場合は，残ってしまったプロセスのプロセスIDをpsコマンドで確認し，killコマンドを使用して手動で終了させてください。

非端末入力モード

adshexecコマンドの子孫プロセスにSIGHUPとSIGCONTを送信します。

3.1.3　ジョブステップ

ジョブステップとは，ジョブを構成する実行の単位で，ジョブ定義スクリプトの一部分を，一まとまりのコマンド群としてグループ化したものです。通常ファイルや一時ファイルの割り当てをする場合，ジョブステップ内でだけ有効なファイルを定義できます。このようなファイルは，割り当てが行われたジョブステップの終了時に後処理を行います。

幾つかのジョブステップは互いに関連を持っていて，前のジョブステップが正しく処理されないと次のジョブステップの実行が意味を持たない場合があります。この場合，ジョブステップの実行条件を指定して，処理をスキップすることもできます。

ジョブステップは，次のような目的で使用します。

コマンドやプログラムのエラー処理を自動化する

ジョブステップ単位でシェルスクリプトの実行を制御する

(1)　コマンドエラー時の終了処理およびログ出力自動化

従来のスクリプトでは，コマンドの実行ごとに終了コードを判定し，エラーメッセージ出力，一時ファイルの削除，およびその他のエラー処理を作り込む必要がありました。

ジョブステップを使用すると，ジョブステップ内で実行するコマンドの終了コードを監視し，エラーメッセージの出力，一時ファイルの削除，あらかじめ定義したエラー処理の実行などを行うことができます。

ジョブステップを使用して，エラー時の終了処理やログ出力を自動化したスクリプトの例を次に示します。

ジョブステップを使用する場合と使用しない場合との比較

ジョブステップを使用しない場合

01  progA
02  ret=$?
03  if [[ $ret != 0 ]]; then　　…(1)
04    echo "progA error"　　　　…(1)
05    exit $ret　　　　　　　　 …(1)
06  fi　　　　　　　　　　　　　…(1)
07
08  TEMP="/tmp/tempfile"
09
10  progB ${INFILE_B} ${TEMP}
11  ret=$?
12  if [[ $ret != 0 ]]; then
13    echo "progB error"
14    rm ${TEMP}　　　　　　　　…(2)
15    exit $ret
16  fi
17
18  progC ${TEMP} ${OUTFILE_C}
19  ret=$?
20  if [[ $ret != 0 ]]; then
21    echo "progC error"
22  fi
23
24  rm ${TEMP}　　　　　　　　　…(2)
25  exit $ret

ジョブステップを使用する場合

01  #-adsh_job J01
02
03  #-adsh_step_start S01         …(1)
04    progA
05  #-adsh_step_end
06
07  #-adsh_step_start S02
08    #-adsh_file_temp TEMP       …(2)
09    progB ${INFILE_B} ${TEMP}
10    progC ${TEMP} ${OUTFILE_C}
11  #-adsh_step_end

スクリプト例の(1)および(2)について次に解説します。

(1)について

ジョブステップを使用しない場合，コマンドを実行するたびにエラー判定をし，エラーメッセージ出力処理やスクリプトの中断処理を記述する必要があります。

ジョブステップを使用する場合，コマンド群をジョブステップとして定義すれば，エラーが発生した時点でエラーメッセージを自動出力し，後続のコマンドを実行しないでジョブステップを終了できます。

(2)について

ジョブステップを使用しない場合，作成した一時ファイルの削除処理をユーザーが漏れなく作り込む必要があります。

ジョブステップを使用する場合，JP1/Advanced Shellの一時ファイル機能でそのジョブステップ用に割り当てた一時ファイルを，ジョブステップ終了時に自動的に削除します。

ジョブステップを使用すると，上記(1)(2)などの処理を自動化できます。progBがエラーになった場合のログ出力結果を次に示します。

ジョブ実行ログ（抜粋）

KNAX0091-I ADSH000001 Job started.
KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
KNAX7902-I adshexec will run in non-tty stdin mode.
KNAX0092-I ADSH000001.S01 Step started.
KNAX6112-I Command /bin/progA(line=4) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
KNAX6597-I ADSH000001.S01 Step succeeded. rc=0 E-Time=0.007s C-Time=0.000s
KNAX0092-I ADSH000001.S02 Step started.
KNAX1601-I ADSH000001.S02 Step allocated.
KNAX6409-I File TEMP is allocated as "create". path=/tmp/TEMP_000277_ ADSH000001_G-Uoia
KNAX6521-E Command /bin/progB(line=9) failed. rc=1 E-Time=0.002s C-Time=0.000s  …(1)
KNAX6410-I File TEMP is deallocated as "del". path=/TEMP_000277_ ADSH000001_G-Uoia
KNAX1604-I /tmp/TEMP_000277_ ADSH000001_G-Uoia is deleted.                      …(2)
KNAX6596-E ADSH000001.S02 Step failed. rc=1 E-Time=0.022s C-Time=0.000s
KNAX0101-E ADSH000001 An error occurred during execution of job.
KNAX0098-I ADSH000001 Job ended. rc=1 E-Time=0.045s C-Time=0.010s               …(3)

ジョブ実行ログの(1)〜(3)について次に解説します。

(1)について

コマンドがエラーになった時点で，後続のコマンドは実行しません。

(2)について

JP1/Advanced Shellの一時ファイル機能で割り当てた一時ファイルを自動的に削除します。

(3)について

エラー処理で指定した終了コードでジョブを終了します。

(2)　ジョブステップ単位での実行制御

関連するコマンド群をまとめてジョブステップとして定義し，ジョブステップの結果に応じてジョブの実行を制御できます。ジョブステップ単位で実行を制御するために，さまざまな機能を提供しています。

ジョブステップを使用して，ジョブステップ単位で実行を制御するスクリプトの例を次に示します。

ジョブステップを使用する場合と使用しない場合との比較

ジョブステップを使用しない場合

01  retmax=0
02  VAR=`progA`
03  export VAR
04  progB
05
06  tempVAR=$VAR                       …(1)
07  VAR=`progC`
08  progD
09  retD=$?                            …(2)
10  if [[ $retmax -lt $retD ]]; then
11    retmax=$retD                     …(3)
12  fi
13  VAR=$tempVAR                       …(1)
14
15  if [[ $retD -ge 16 ]]; then 　　　 …(4)
16    exit $retD
17  fi
18
19  if [[ $retD -ne 0 ]]; then         …(5)
20    if [[ $retD -eq 4 ]]; then       …(2)
21      result="progD: warning"
22    else
23      result="progD: error"
24    fi
25    progE $result
26    retE=$?
27    if [[ $retmax -lt $retE ]]; then
28      retmax=$retE                   …(3)
29    fi
30    if [[ $retE -ge 16 ]]; then 　　 …(4)
31      exit $retE
32    fi
33  fi
34
35  progF                              …(6)
36  exit $retmax                       …(3)

ジョブステップを使用する場合

01  #-adsh_job_stop 16:　                   …(4)
02  VAR=`progA`
03  export VAR
04  progB
05
06  #-adsh_step_start S01 -stepVar VAR      …(1)
07    VAR=`progC`
08    export VAR
09    progD
10  #-adsh_step_end
11
12  #-adsh_step_start S02 -run abnormal     …(5)
13    if [[ $ADSH_STEPRC_S01 -eq 4 ]]; then …(2)
14      result="STEP01: warning"
15    else
16      result="STEP01: error"
17    fi
18    progE $result
19  #-adsh_step_end
20
21  #-adsh_step_start S03 -run always       …(6)
22    progF
23    exit $ADSH_RC_STEPMAX　               …(3)
24  #-adsh_step_end

スクリプト例の(1)〜(6)について次に解説します。

(1)について

ジョブステップを使用しない場合，同一名のシェル変数を別の用途で使用するには，一時的に別の変数に値を退避するなどの処理が必要です。

ジョブステップを使用する場合，スクリプト拡張コマンド#-adsh_step_startのstepVar属性を使用すると，変数名を宣言するだけでジョブステップ内でだけ有効なシェル変数を使用できます。

(2)について

ジョブステップを使用しない場合，特定のコマンドの終了コードで処理を分岐するために，コマンドの終了コードを個別のシェル変数に格納しておく必要があります。

ジョブステップを使用する場合，JP1/Advanced Shellが自動的に設定する各ジョブステップの終了コードを参照できます。

(3)について

ジョブステップを使用しない場合，コマンドの終了コードの最大値を参照するには，コマンドの実行ごとに最大値を更新する必要があります。

ジョブステップを使用する場合，JP1/Advanced Shellが自動的に設定する各ジョブステップの終了コード最大値を参照できます。

(4)について

ジョブステップを使用しない場合，コマンドの終了コードがしきい値を超えたことによってスクリプトの実行を終了するには，コマンドの実行ごとにしきい値を判断する必要があります。

ジョブステップを使用する場合，スクリプト拡張コマンドの#-adsh_job_stopコマンドを使用すると，しきい値を宣言するだけでジョブステップの終了コードを自動的に監視できます。

(5)について

ジョブステップを使用しない場合，コマンドの終了コードによって，後続処理を実行するかどうかの判定を行って実行を制御します。

ジョブステップを使用する場合，スクリプト拡張コマンド#-adsh_step_startのrun属性にabnormalを指定することで，先行処理でエラーが発生した場合だけ実行するジョブステップを定義できます。

(6)について

ジョブステップを使用する場合，スクリプト拡張コマンド#-adsh_step_startのrun属性にalwaysを指定することで，先行処理の成功・エラーに関係なく常に実行するジョブステップを定義できます。

3.2　バッチジョブの起動

バッチジョブの起動方法を実行方法ごとに分けて説明します。また，バッチジョブ起動後のジョブコントローラの処理について説明します。

3.2.1　実行環境からJP1/AJSを使用してジョブを起動する

実行環境からJP1/AJSを使用してJP1/Advanced Shellのバッチジョブ業務を起動する方法について説明します。

JP1/AJSでのバッチジョブ業務の自動化の詳細については，JP1/AJSのマニュアルを参照してください。JP1/Advanced Shellのジョブをジョブネットに定義して実行する方法については，「2.7.2　ジョブネットを定義して実行する」を参照してください。

バッチジョブ業務を自動化することで，コストを削減できるだけでなく，少ない人員で確実にシステムを運用できます。JP1/AJSは，このような定型的なバッチジョブ業務を自動化するための製品です。JP1/AJSは，複雑なバッチジョブ業務の組み合わせの自動化にも対応できます。また，JP1/AJSの運用時にJP1/Advanced Shellを使用することで，次のメリットが得られます。

一時ファイル機能によって，一時的に使用するファイルを割り当てて，ジョブ終了時またはジョブステップ終了時に削除できます。

外部スクリプトの呼び出しによって，ジョブの定義を業務間で共用できます。

ジョブ定義スクリプトに対する変更，追加，または削除によって，柔軟なジョブ定義ができます。

JP1/AJSを使用して，バッチジョブ業務を自動的に実行する場合，次に示す内容を定義する必要があります。

バッチジョブ業務内容と順序

バッチジョブ業務を実行するスケジュールまたはバッチジョブ業務の契機となる事象の登録

JP1/AJSを使用したバッチジョブ業務の自動化の概要を次の図に示します。図中の番号は，そのあとに示す説明の項番と対応しています。

図3‒1　JP1/AJSを使用したバッチジョブ業務の自動化の概要

バッチジョブの業務内容と実行順序，および業務スケジュールを登録します。

登録されたスケジュールに従って，バッチジョブ業務が自動的に実行されます。

(1)　バッチジョブ業務と実行順序の定義

多くの業務は，決まった時間に定められた順序に従って実行されます。

例えば，売上伝票の集計は，次の順序で実行されます。

データベースからのデータの抽出

データのソート

プリンタ出力

ジョブコントローラのジョブステップとして，1.〜3.の流れをジョブ定義スクリプトファイルに定義することで自動化を実現できますが，12:00にデータベースからデータを抽出するという作業は自動化できません。JP1/Advanced ShellとJP1/AJSでバッチジョブ業務と実行順序の定義を実行するには，業務を構成する一連の流れをジョブコントローラで定義し，それぞれのバッチジョブ業務と実行順序の定義の関係をJP1/AJSの実行順序，または実行時間として定義します。

JP1/AJSだけでもコマンド，アプリケーションプログラム，またはジョブ定義スクリプトなどのそれぞれの作業単位に分解すれば，JP1/Advanced Shell相当のジョブを実現できます。これらをJP1/AJSでもジョブと呼びます。

JP1/Advanced ShellとJP1/AJSでバッチジョブ業務と実行順序を定義する場合には，JP1/AJSではバッチジョブの実行順序をジョブネットで定義します。

JP1/Advanced ShellとJP1/AJSでバッチジョブ業務と実行順序の定義を行う場合のジョブネットを次の図に示します。

図3‒2　JP1/Advanced ShellとJP1/AJSでバッチジョブ業務と実行順序の定義を行う場合のジョブネット

（説明）

JP1/AJSのジョブネットで定義するバッチジョブの実行順序の流れを次に説明します。

バッチジョブAが終了した場合，バッチジョブEを実行します。

バッチジョブAとBが終了した場合，バッチジョブCを実行します。

バッチジョブCが終了した場合，バッチジョブDとGを実行します。

バッチジョブBが終了した場合，バッチジョブFを実行します。

(2)　バッチジョブ業務と実行順序の定義スケジュールの定義

複数のバッチジョブ業務と実行順序の定義スケジュールの定義を自動化するには，この定義をいつ実行するかを決めるスケジュールの定義が必要です。

JP1/AJSのスケジュールの定義では，会社の営業日・休業日を設定したカレンダー，実行を開始する日時や実行間隔などを定義します。この定義に基づいて，JP1/AJSが実行予定を決め，その日時になると自動的にJP1/Advanced Shellのジョブ実行を始めます。

(3)　バッチジョブ業務を開始する契機を登録する

ファイルの作成またはイベントの発生などをバッチジョブ業務開始の契機として登録できます。登録の結果，決まった時刻にバッチジョブ業務を開始するだけでなく，ファイルの作成またはイベントの発生など何らかの事象が起こった場合にも，バッチジョブ業務が開始できます。

3.2.2　実行環境からコマンドでバッチジョブを起動する

(1)　adshexecコマンドの引数にジョブ定義スクリプトを指定する方法

実行環境からコマンドを使用してバッチジョブを起動するためには，次のようにadshexecコマンドを使用します。Windowsではコマンドプロンプトからコマンドを入力し，UNIXではシェルからコマンドを入力します。

adshexec batchjob1.ash

また，-rオプションを使用してジョブ定義スクリプトの内容をadshexecコマンドに直接指定できます。複数のコマンドを指定するには，次のようにadshexecコマンドを使用します。

adshexec -r "export DATA=file01 ; pgm001"

UNIXでは，adshexecコマンドに-dオプションを指定すれば，バッチジョブをデバッグすることもできます。adshexecコマンドの詳細については，「8.3　シェル運用コマンド」の「adshexecコマンド（バッチジョブを実行する）」を参照してください。

(2)　ジョブ定義スクリプトをコマンドとして指定する方法

UNIXでは，1行目に#!で始まるadshexecコマンドのパス（例：#! /opt/jp1as/bin/adshexec）を記述し，実行権限を付与したジョブ定義スクリプトファイルであれば，ジョブ定義スクリプトのファイル名だけを入力してバッチジョブを起動できます。

ジョブ定義スクリプトファイル（ファイル名：/home/user1/scripts/batchjob2.ash）

#! /opt/jp1as/bin/adshexec
#-adsh_job SAMPLE
（以降，ジョブ定義スクリプトの本文）

バッチジョブ起動の実行例

/home/user1/scripts/batchjob2.ash

注意事項

Windowsでは，1行目に#!で始まるadshexecコマンドのパスを記述してコマンドプロンプトなどからジョブ定義スクリプトのファイル名だけを入力しても，バッチジョブを起動することはできません。

ただし，1行目に#!に続けて「/opt/jp1as/bin/adshexec」または「/opt/jp1as/bin/adshexec -m MINIMUM」を記述したジョブ定義スクリプトを用意し，別のジョブ定義スクリプトからそのファイル名だけを入力することで，Windows，UNIXどちらでも子孫ジョブを起動できます。そのため，Windowsでも新規に作成するジョブ定義スクリプトでは，1行目に#!に続けて「/opt/jp1as/bin/adshexec」または「/opt/jp1as/bin/adshexec -m MINIMUM」を記述することを推奨します。

ただし，既存のシェルスクリプトを移行した場合など，1行目に「#!/bin/sh」などが記述されているときは，シェルスクリプトを修正しないで子孫ジョブとして実行することもできます。

子孫ジョブについての詳細は「3.2.3　ジョブ定義スクリプトを子孫ジョブとして実行する」を参照してください。

3.2.3　ジョブ定義スクリプトを子孫ジョブとして実行する

ジョブ定義スクリプトを子孫ジョブとして実行する方法，および子孫ジョブの動作について説明します。優先順序については，「5.1.11(3)　コマンドの実行方法の優先順序」および「5.1.11(4)　関数と同名の子孫ジョブまたは外部コマンドの優先順序」を参照してください。

(1)　子孫ジョブの実行方法

(a)　環境ファイルにパラメーターを指定して子孫ジョブを実行する方法

ルートジョブの子孫プロセスとして実行されるジョブ定義スクリプトのうち，次のどれかのパラメーターの指定，またはパラメーターのデフォルト定義によって実行されたジョブを子孫ジョブと呼びます。

CHILDJOB_EXTパラメーター

CHILDJOB_PGMパラメーター

CHILDJOB_SHEBANGパラメーター

CHILDJOB_SHEBANGパラメーターの指定によって子孫ジョブを起動する動作の例を次の図に示します。

図3‒3　子孫ジョブを起動する動作の例

この例では，ルートジョブのジョブ定義スクリプトに，ほかのジョブ定義スクリプトchildjob.ashを指定しています。このとき，childjob.ashは，CHILDJOB_SHEBANGパラメーターの定義に合致するため，JP1/Advanced Shellは子プロセスとしてJP1/Advanced Shellのジョブを起動し，childjob.ashを子孫ジョブとして実行します。

なお，子孫ジョブを起動するルートジョブが論理ホストで実行された場合は，子孫ジョブも論理ホストで実行されます。

(b)　パラメーターのデフォルト定義で子孫ジョブを実行する方法

CHILDJOB_SHEBANGパラメーターのデフォルト定義を使用することで，環境ファイルにパラメーターを指定することなく，子孫ジョブを起動できます。

CHILDJOB_SHEBANGパラメーターには，次の2つがデフォルトで定義されています。

デフォルト定義

子孫ジョブ起動時の出力モード

/opt/jp1as/bin/adshexec

OUTPUT_MODE_CHILDパラメーターの指定に従って動作します。

/opt/jp1as/bin/adshexec -mMINIMUM

最小出力モードで動作します。

これによって，1行目に「#! /opt/jp1as/bin/adshexec」を記述したジョブ定義スクリプトをほかのジョブ定義スクリプト中に指定することで，子孫ジョブとして実行できます。また，特定の子孫ジョブだけを最小出力モードで実行したい場合は，ジョブ定義スクリプトの1行目に「#! /opt/jp1as/bin/adshexec -mMINIMUM」を記述してください。

デフォルト定義で実行された子孫ジョブの動作は，「(a)　環境ファイルにパラメーターを指定して子孫ジョブを実行する方法」で起動された子孫ジョブと同じです。

ただし，CHILDJOB_SHEBANGパラメーターのデフォルト定義よりも，環境ファイルに指定したCHILDJOB_SHEBANGパラメーターが優先されます。そのため，デフォルト定義と同じ内容を環境ファイルのCHILDJOB_SHEBANGパラメーターに指定した場合，次のように動作します。

環境ファイルの内容

#-adsh_conf CHILDJOB_SHEBANG "/opt/jp1as/bin/adshexec -mMINIMUM"

子孫ジョブで起動するジョブ定義スクリプト

#! /opt/jp1as/bin/adshexec -mMINIMUM
                 :

この場合，ジョブ定義スクリプトに指定した「/opt/jp1as/bin/adshexec -mMINIMUM」は，環境ファイルのCHILDJOB_SHEBANGパラメーターの定義に合致します。そのため，子孫ジョブの出力モードはOUTPUT_MODE_CHILDパラメーターの指定に従います。

(2)　ルートジョブや外部スクリプトとの機能比較

ルートジョブ，子孫ジョブおよび外部スクリプトの機能比較を次に示します。

機能

ジョブ

外部スクリプト

ルートジョブ

子孫ジョブ

.（ドット）コマンドの外部スクリプト

#-adsh_scriptの外部スクリプト

呼び出し元ジョブとのプロセスの関係

呼び出し元ジョブの子プロセスで動作する

呼び出し元ジョブの子プロセスで動作する

呼び出し元ジョブと同一プロセスで動作する

呼び出し元ジョブと同一プロセスで動作する

起動するジョブコントローラ

UNIXの場合

adshexecコマンド

Windowsの場合

adshexec.exeコマンド＋adshexecsub.exeコマンド

UNIXの場合

adshexecコマンド

Windowsの場合

adshexecsub.exeコマンド

なし

なし

スプールジョブディレクトリ

作成する

ルートジョブのスプールジョブディレクトリ内に作成し，ジョブ終了時に削除する。

ジョブ実行ログの出力内容は次のどちらかをユーザーが選択する。

JOBLOGだけをstderrに出力する

ルートジョブのジョブ実行ログにマージする

作成しない

（コマンド実行結果を呼び出し元ジョブのJOBLOGに出力する。また，スクリプトイメージは出力しない）

作成しない

（コマンド実行結果を呼び出し元ジョブのJOBLOGに出力する。また，スクリプトイメージを呼び出し元ジョブのSCRIPTに出力する）

ジョブ開始・終了メッセージ

あり

（KNAX0091-IおよびKNAX0098-I）

あり

（KNAX6571-IおよびKNAX6578-I）

なし

なし

環境ファイルの読み込み

する

する

しない

（呼び出し元ジョブの動作に従う）

しない

（呼び出し元ジョブの動作に従う）

標準入力の使用可否

使用可

使用可

使用可

使用可

標準出力の出力先

-sオプション，-mオプション，OUTPUT_STDOUTパラメーターおよびOUTPUT_MODE_ROOTパラメーターの指定に従う

親プロセスから継承した出力先になる

呼び出し元ジョブの動作に従う

呼び出し元ジョブの動作に従う

(3)　シグナル受信時の子孫ジョブの動作

ここでは，シグナル受信時の子孫ジョブの動作を説明します。

次に示すジョブを例に，ルートジョブ，子孫ジョブ，および外部コマンドへ終了要求シグナルを送信した場合の動作を示します。

adshexec(1)−adshexec(2)−adshexec(3)−sleep

JP1/AJSから強制終了（JP1/AJSからadshexec(1)へSIGTERM送信）した際，およびログインシェルからadshexec(1)〜(3)およびsleepへSIGTERM送信した際の動作を次に示します。

時期

adshexec(1)

adshexec(2)

adshexec(3)

sleep

JP1/AJSからの強制終了時

rc=143でエラー終了

rc=143でシグナルによるエラー終了

rc=143でシグナルによるエラー終了

rc=143でシグナルによるエラー終了

ログインシェルからadshexec(1)へのSIGTERM送信時

rc=143でシグナルによるエラー終了

rc=143でシグナルによるエラー終了

rc=143でシグナルによるエラー終了

rc=143でシグナルによるエラー終了

ログインシェルからadshexec(2)へのSIGTERM送信時

ジョブステップの指定がある場合

rc=143でジョブステップエラー終了。ステップエラーブロックやrun abnormal/alwaysの後続ステップを実行

ジョブステップの指定がない場合

後続処理を続行

rc=143でシグナルによるエラー終了

rc=143でシグナルによるエラー終了

rc=143でシグナルによるエラー終了

ログインシェルからadshexec(3)へのSIGTERM送信時

adshexec(2)の結果に従う

ジョブステップの指定がある場合

rc=143でジョブステップエラー終了。ステップエラーブロックやrun abnormal/alwaysの後続ステップを実行

ジョブステップの指定がない場合

後続処理を続行

rc=143でシグナルによるエラー終了

rc=143でシグナルによるエラー終了

ログインシェルからsleepへのSIGTERM送信時

adshexec(2)の結果に従う

adshexec(3)の結果に従う

ジョブステップの指定がある場合

rc=143でジョブステップエラー終了。ステップエラーブロックやrun abnormal/alwaysの後続ステップを実行

ジョブステップの指定がない場合

後続処理を続行

rc=143でシグナルによるエラー終了

(4)　子孫ジョブからさらに実行する子孫ジョブがある場合の注意事項

子孫ジョブからさらに実行する子孫ジョブがある場合，中間のジョブがUNIXのSIGKILLやWindowsのTerminateProcessで即時終了すると，ルートジョブがすべての子孫ジョブの完了を待たないで終了することがあります。そのため，このような即時終了操作は実行しないでください。

もし，この現象が発生した場合は，関連するルートジョブや子孫ジョブの実行結果を調査してください。なお，即時終了したジョブ以外のすべての子孫ジョブは，スプールジョブディレクトリが削除に失敗して残っているか，削除されていてもJOBLOGの内容が標準エラー出力へ出力されているため，ログは失われません。

（例）

次のように，子孫ジョブからさらに子孫ジョブを実行するケースについて説明します。「→」は，ジョブが呼び出しによって実行されることを示します。

［ルートジョブ］→［子孫ジョブ（子）］→［子孫ジョブ（孫）］

このとき［子孫ジョブ（子）］が即時終了すると，［子孫ジョブ（孫）］より［ルートジョブ］が先に終了する場合があります。この場合の各ジョブの動作と，スプールジョブディレクトリの状態を次に示します。

項目

ジョブの種類

ルートジョブ

子孫ジョブ（子）

子孫ジョブ（孫）

ジョブの動作

子孫ジョブ（子）がエラー終了したものとして動作します。

ユーザープログラムがエラーで即時終了した場合と同じ動作となります。

即時終了します。

ジョブは通常どおり終了します。

ただし，Windowsでは，ほかの関連するジョブの状態によっては強制終了として動作することがあります。

スプールジョブディレクトリの状態

Windowsで子孫ジョブ（孫）がジョブ実行ログをまだオープンしている場合，スプールジョブディレクトリのリネームに失敗します。

上記以外の場合およびUNIXの場合，スプールジョブディレクトリは通常どおりリネームされます。

削除されないで残ります。

ルートジョブがスプールジョブディレクトリのリネームに成功している場合，スプールジョブディレクトリはリネームに失敗します。

上記以外の場合，通常どおりJOBLOGの内容をstderrに出力して削除されます。

3.2.4　ジョブで実行する内容をコマンドラインに指定する

adshexecコマンドで-rオプションのコマンドラインに，シェル標準コマンド，UNIX互換コマンドなどのジョブ定義スクリプトファイルに記述できるコマンドを指定することで，ジョブ定義スクリプトファイルを作成することなく実行できます。コマンドラインにシェル標準コマンドのpwdコマンドを指定するには，次のようにadshexecコマンドを実行します。

adshexec -r pwd

コマンドラインにはコマンドセパレータによる複数コマンド記述など，ジョブ定義スクリプトファイルに記述する内容を指定できます。コマンドラインに複数のコマンドを指定するには，次のようにadshexecコマンドを実行します。

adshexec -r "export DATA=file01 ; pgm001"

コマンドラインにスペースを指定する場合，クォーテーション（'および"）で囲む必要があります。また，adshexecコマンドを実行するシェルによっては，コマンドラインに指定した$，*，;（セミコロン）などのメタキャラクタが展開されるため，クォーテーション（'および"）で囲むか，エスケープ文字（¥）を使用する必要があります。メタキャラクタを指定するには，次のようにadshexecコマンドを実行します。

【UNIXの場合】

・エスケープ文字を指定した場合

　入力内容

adshexec -m MINIMUM -r "A=(1 2 3); echo ¥${A[@]}"

　出力結果

1 2 3

・エスケープ文字を指定しなかった場合

　入力内容

adshexec -m MINIMUM -r "A=(1 2 3); echo ${A[@]}"

　出力結果

この場合，何も出力されません。

・位置パラメーター$0の出力（エスケープ文字を指定した場合）

　入力内容

adshexec -m SIMPLE -r "echo ¥$0"

　出力結果

adshexec

・位置パラメーター$0の出力（エスケープ文字を指定しなかった場合）

　入力内容

adshexec -m SIMPLE -r "echo $0"

　出力結果

-bash

ログインシェルで位置パラメーター$0を変換した内容をadshexecが受け取ります。ログインシェルがbashの場合は「-bash」が出力されます。

【Windowsの場合】

・エスケープ文字を指定した場合

　入力内容

adshexec -m MINIMUM -r "A=(1 2 3); echo ¥${A[@]}"

　出力結果

${A[@]}

・エスケープ文字を指定しなかった場合

　入力内容

adshexec -m MINIMUM -r "A=(1 2 3); echo ${A[@]}"

　出力結果

1 2 3

・位置パラメーター$0の出力（エスケープ文字を指定した場合）

　入力内容

adshexec -m SIMPLE -r "echo ¥$0"

　出力結果

$0

・位置パラメーター$0の出力（エスケープ文字を指定しなかった場合）

　入力内容

adshexec -m SIMPLE -r "echo $0"

　出力結果

adshexec

-rオプションを指定して実行する場合は次の点に注意してください。

コマンドラインの実行結果をほかのプログラムで利用したい場合や，コマンドラインの実行結果をコンソールやファイルに出力したい場合は，「-m SIMPLE」または「-m MINIMUM」を同時に指定してください。

-tオプションまたはBATCH_CVRパラメーターによるカバレージ情報の採取はできません。

ジョブ定義スクリプトファイルのパス名が出力される次の部分には，"-r CMDLINE"が出力されます。

スクリプトイメージファイルに出力されるジョブ定義スクリプトファイルのパス名

ジョブ定義スクリプトの稼働実績情報に出力されるジョブ定義スクリプトファイルのパス名

JP1/Advanced Shell が出力するメッセージテキスト中のジョブ定義スクリプトファイルのパス名

位置パラメーター$0には実行プログラム名"adshexec"を格納します。

-rオプションを指定して実行した場合も，スプールジョブディレクトリは作成されます。なお，スプールジョブディレクトリが作成されるのは，ルートジョブとして-rオプションを指定して実行する場合だけです。ただし，頻繁に-rオプションを指定して実行すると，スプール内のスプールジョブが増加するので注意してください。

3.2.5　バッチジョブ起動後のジョブコントローラの処理

バッチジョブは，ジョブコントローラのプロセスとして実行されます。ジョブコントローラの起動方法は次のとおりです。

実行環境でJP1/AJSのスケジューリングに従って，JP1/AJS - Agentからコントローラが起動される

実行環境でユーザーがコマンドを入力してジョブコントローラと呼ばれるプロセスを起動する

開発PCでユーザーが開発環境の編集中にテスト実行をする

ジョブを起動したあと，ジョブコントローラは，次のようにジョブを処理します。

ジョブコントローラが，バッチジョブを起動するオプションおよびJP1/Advanced Shellの環境ファイルを解析する。

ジョブコントローラは，入力されたジョブ定義スクリプトファイルを初期段階で解析する。この解析処理では，コマンドを実行しないで，構文の解析とジョブの情報を格納するテーブルの作成を行う。

ジョブコントローラのジョブ実行制御が，ジョブ定義スクリプトファイルを解析して実行する。

スクリプト拡張コマンドで使用するファイル管理機能では，通常ファイル，一時ファイルおよびプログラム出力データファイルの割り当て・解放を行う。

スクリプト拡張コマンドに指定されたシェル変数・環境変数では，ジョブステップの終了コードをシェル変数に格納したり，ジョブの情報を環境変数に設定したりして，ユーザープログラムから参照できるようにする。

WindowsまたはUNIXの実行環境では，ジョブ定義スクリプトを解析して実行します。ジョブ定義スクリプトの作成の詳細については，「4.　JP1/Advanced Shell - Developerを使用する【Windows限定】」および「5.　ジョブ定義スクリプトの作成」を参照してください。

3.3　adshjavaコマンドを使用してJavaのバッチアプリケーションを実行する【Windows，Linux，AIX，HP-UX限定】

JP1/Advanced Shellが提供するadshjavaコマンドを使用して，Javaのバッチアプリケーションを実行するための前提条件と実行方法を次に示します。

前提条件

JP1/Advanced Shellと同じホストにuCosminexus Application Serverをインストールしてください。また，バッチサーバの設定後，バッチサーバを起動しておいてください。必要なプログラムについては，「2.2.2　環境ごとに必要なプログラム」を参照してください。

実行方法

Javaのバッチアプリケーションを実行する手順を次に示します。

Javaのバッチアプリケーションを作成する。

Javaのバッチアプリケーションの作成時の注意事項については，マニュアル「Cosminexus V9 アプリケーションサーバ 機能解説 拡張編」を参照してください。

JP1/Advanced Shellのadshjavaコマンドを使用してJavaのバッチアプリケーションを実行する。adshjavaコマンドにはuCosminexus Application Serverのcjexecjobコマンド（Javaのバッチアプリケーションの実行）に渡す引数を指定する。

adshjavaコマンドの実行権限と実行方法については，「8.　運用時に使用するコマンド」の「adshjavaコマンド（Javaのバッチアプリケーションを実行する）【Windows，Linux，AIX，HP-UX限定】」を参照してください。

adshjavaコマンドは指定された引数をcjexecjobコマンドに指定して実行する。

cjexecjobコマンドについては，マニュアル「Cosminexus V9 アプリケーションサーバ リファレンス コマンド編」を参照してください。

adshjavaコマンドはuCosminexus Application Serverのcjexecjobコマンドの実行結果を返す。

cjexecjobコマンドの実行結果は，adshjavaコマンドの終了コードで確認できます。

なお，ジョブの実行中にJP1/Advanced Shellが強制終了を検知した場合は，uCosminexus Application Serverに対してcjkilljobコマンド（バッチアプリケーションの停止）を自動的に実行し，実行中のJavaのバッチアプリケーションを強制終了してからジョブを終了します。

3.4　ジョブの実行結果を出力する

ジョブの実行結果は，スプールルートディレクトリの下にスプールジョブディレクトリとして出力されます。スプールジョブディレクトリの一部のディレクトリ内容はジョブ実行ログとして出力され，ジョブ実行時のメッセージなどを確認できます。

また，ジョブ実行ログへ出力されるメッセージは，メッセージの種類によっては出力されないよう設定できます。

3.4.1　標準出力，標準エラー出力の出力先に関する指定

JP1/Advanced Shellで実行するジョブの標準出力・標準エラー出力は，オプションの指定やジョブの実行形態によって，出力先は次のようになります。

項目

標準エラー出力

標準出力

ルートジョブ

子孫ジョブ

ルートジョブ

子孫ジョブ

OUTPUT_STDOUTパラメーター※1にSPOOLを指定

OUTPUT_STDOUTパラメーター※1にPARENTを指定

通常実行

拡張出力モード※2

スプールのファイル

プロセス起動時の出力先

スプールのファイル

プロセス起動時の出力先

プロセス起動時の出力先

簡潔出力モードまたは最小出力モード※2

プロセス起動時の出力先

プロセス起動時の出力先

プロセス起動時の出力先

プロセス起動時の出力先

プロセス起動時の出力先

デバッグ実行

プロセス起動時の出力先

プロセス起動時の出力先

プロセス起動時の出力先

プロセス起動時の出力先

プロセス起動時の出力先

注※1

OUTPUT_STDOUTパラメーターのほかに，adshexecコマンドの-sオプションでも指定できます。

注※2

拡張出力モード，簡潔出力モードおよび最小出力モードは，次のコマンドまたはパラメーターで指定します。

adshexecコマンドの-mオプション

adshscripttoolコマンドの-mオプション

OUTPUT_MODE_ROOTパラメーター（ルートジョブの場合）

OUTPUT_MODE_CHILDパラメーター（子孫ジョブの場合）

3.4.2　ジョブの実行結果をスプールに出力する

環境ファイルに設定されたスプールルートディレクトリに，ジョブごとのディレクトリを作成し，ジョブの実行結果を出力します。ジョブごとのディレクトリには，ジョブ実行ログやジョブステップのプログラムが出力したファイルが出力されます。

スプールディレクトリの構造を次に示します。

スプールルートディレクトリ
├ロックファイル
└スプールジョブディレクトリ
    ├.adshallocfileまたはadshallocfile※1
    ├.joborderまたはadsh.joborder※1
    ├.sysoutまたはsysout.ini※1
    ├EVENTFILE_ROOT_INF_000000_000000_000001
    ├EVENTFILE_実行開始日時_ジョブ識別子
      ：
    ├EVENTFILE_実行開始日時_ジョブ識別子
    ├JOBLOG※2
    ├JOBLOG_ジョブ識別子_通番
    ├JOBLOG_子孫ジョブ起動順序通し番号※1
    ├SCRIPT※2
    ├SCRIPT_子孫ジョブ起動順序通し番号※1
    ├STDERR※2
    ├STDOUT※2
    ├ステップ番号_ステップ名_STDOUT※2
    ├ステップ番号_ステップ名_STDERR※2
    ├0000_ジョブ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名※3
    ├C子孫ジョブ起動順序通し番号_0000_ジョブ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名※3
    ├ステップ番号_ステップ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名※3
      ：
    ├ステップ番号_ステップ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名
    └C子孫ジョブ起動順序通し番号_ステップ番号_ステップ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名※3

注※1

ジョブの実行中に一時的に作成されるファイルです。内容を次に示します。

ファイル名

説明

.adshallocfileまたはadshallocfile

割り当て管理ファイル

.joborderまたはadsh.joborder

子孫ジョブ起動順序管理ファイル

.sysoutまたはsysout.ini

スプールジョブ管理ファイル

JOBLOG_子孫ジョブ起動順序通し番号

環境ファイルのSPOOLJOB_CHILDJOBパラメーターにMERGEを指定（子孫ジョブのスプールジョブをルートジョブのスプールジョブにマージする）した場合に出力される，マージ用の子孫ジョブのジョブ実行ログ

SCRIPT_子孫ジョブ起動順序通し番号

UNIXのSIGKILLやWindowsのTerminateProcessなどによってジョブが即時終了した場合，これらのファイルがスプールジョブディレクトリ内に残ることがあります。スプールジョブディレクトリが不要になって削除する際は，これらのファイルも一緒に削除してください。

注※2

このファイルの内容はジョブ実行ログにも出力されます。ジョブ実行ログの出力内容については，「3.5　ジョブ実行ログ」を参照してください。

注※3

#-adsh_spoolfileコマンドによって割り当てられたプログラム出力データファイルです。プログラム出力データファイルについては，「5.9.3　プログラム出力データファイルの割り当てをする」を参照してください。

注意事項

Windowsの場合，EVENTFILE以外のファイルは，ファイル名の後ろに拡張子「.sysout」が付きます。

スプールのディレクトリの下には，JP1/Advanced Shellが作成するファイルやディレクトリではないユーザー独自のファイルは置かないでください。

一時ファイル以外のファイルおよびディレクトリについて次に説明します。

(1)　スプールルートディレクトリ

ディレクトリ名は環境ファイルのSPOOL_DIRパラメーターで設定します。

(2)　ロックファイル

同じイベントファイルが複数のコマンドから同時に使用されないよう，スプールディレクトリ単位で排他制御をするために使用されます。adshevtoutコマンドおよびadshhkコマンドの実行時に生成されます。

ロックファイルのファイル名は次のとおりです。生成されたロックファイルは削除しないでください。

UNIXの場合：.spool.lck

Windowsの場合：spool.lck

(3)　スプールジョブディレクトリ

ジョブ通し番号と同じ名称のディレクトリで，ジョブ単位に作成されます。ジョブ終了時に「ジョブ識別子-ジョブ名」に変更されます。

蓄積されたスプールジョブはadshhkコマンドで削除できます。adshhkコマンドについては「3.9　スプールジョブを削除する」を参照してください。

(4)　EVENTFILE_ROOT_INF_000000_000000_000001

ルートジョブ検索イベントファイルです。adshevtoutコマンド（ジョブ定義スクリプトの稼働実績情報の出力）で指定された条件に該当するかを判定するための情報が格納されます。このファイルはルートジョブ単位に作成します。

次の場合，作成しません。

JP1/Advanced Shell - Developerの場合

デバッガモードで実行する場合

KNAX0091-Iメッセージを出力する前に，adshexecコマンドが実行を終了した場合

(5)　EVENTFILE_実行開始日時_ジョブ識別子

イベントファイルです。イベントファイルの作成中はファイル名の後ろに「_making」が付きます。このファイルは，ルートジョブ，子孫ジョブ単位に作成します。

イベントファイル名の例

EVENTFILE_20120422_193502_123456

次の場合，作成しません。

JP1/Advanced Shell - Developerの場合

デバッガモードで実行する場合

KNAX0091-Iメッセージを出力する前に，adshexecコマンドが実行を終了した場合

実行開始日時

ルートジョブまたは子孫ジョブの実行開始日時（UTC）が，次の形式で出力されます。

YYYYMMDD_hhmmss_dddddd

YYYY：西暦年を4桁の10進数（1970〜2038）で出力します。

MM：月を2桁の10進数（01〜12）で出力します。

DD：日を2桁の10進数（01〜31）で出力します。

hh：時を2桁の10進数（00〜23）で出力します。

mm：分を2桁の10進数（00〜59）で出力します。

ss：秒を2桁の10進数（00〜59）で出力します。

dddddd：マイクロ秒を6桁の10進数（000000〜999999）で出力します。

ジョブ識別子

ルートジョブまたは子孫ジョブに付与される6桁の10進数が出力されます。

(6)　JOBLOG

コマンドの実行結果やファイルの割り当て結果など，ジョブの動作状況を示すメッセージが出力されます。

(7)　JOBLOG_ジョブ識別子_通番

子孫ジョブのジョブ実行ログです。

子孫ジョブ起動時に次のどちらかの方法で，子孫ジョブを簡潔出力モードまたは最小出力モードを指定した場合だけ作成されます。

adshexecコマンドの-mオプションでSIMPLEまたはMINIMUMを指定する

adshscripttoolコマンドの-mオプションでSIMPLEまたはMINIMUMを指定する

OUTPUT_MODE_CHILDパラメーターでSIMPLEまたはMINIMUMを指定する

ただし，SPOOLJOB_CHILDJOBパラメーターにMERGE（子孫ジョブのスプールジョブをルートジョブのスプールジョブにマージする）を指定した場合は作成されません。

(8)　SCRIPT

スクリプトイメージファイルです。最初に起動したジョブ定義スクリプトファイルと，#-adsh_scriptコマンドで指定した外部のジョブ定義スクリプトファイルの内容が出力されます。その他の.（ドット）コマンドなどで指定する外部のジョブ定義スクリプトファイルは出力されません。ログとしてジョブ定義スクリプトの内容を出力したい場合は，#-adsh_scriptコマンドを使用します。

なお，SPOOLJOB_CHILDJOBパラメーターでMERGEを指定し，ルートジョブを拡張出力モード，子孫ジョブを最小出力モードで動作する場合は，子孫ジョブのSCRIPTはルートジョブのSCRIPTにマージされません。詳細については，「3.5.1(3)(c)　ルートジョブと子孫ジョブで出力モードが異なる場合」を参照してください。

(9)　STDERR

ジョブの標準エラー出力です。ルートジョブ起動時に次のどちらかの方法で，ルートジョブを簡潔出力モードまたは最小出力モードを指定した場合は作成されません。

adshexecコマンドの-mオプションでSIMPLEまたはMINIMUMを指定する

OUTPUT_MODE_ROOTパラメーターにSIMPLEまたはMINIMUMを指定する

ファイルの先頭行には次に示すヘッダが出力されます。

********   JOB SCOPE STDERR    ********

(10)　STDOUT

ジョブの標準出力です。adshexecコマンドの-sオプションおよび環境ファイルのOUTPUT_STDOUTパラメーターにSPOOLを指定した場合に作成されます。ルートジョブ起動時に次のどちらかの方法で，ルートジョブを簡潔出力モードまたは最小出力モードを指定した場合は作成されません。

adshexecコマンドの-mオプションでSIMPLEまたはMINIMUMを指定する

OUTPUT_MODE_ROOTパラメーターにSIMPLEまたはMINIMUMを指定する

ファイルの先頭行には次に示すヘッダが出力されます。

********   JOB SCOPE STDOUT    ********

(11)　ステップ番号_ステップ名_STDOUT

ジョブステップを定義した場合の，該当するジョブステップ中の標準出力です。ジョブステップ名が8バイトを超える場合，ファイル名に含むステップ名は，ジョブステップ名の最初の8バイトになります。

adshexecコマンドの-sオプションおよび環境ファイルのOUTPUT_STDOUTパラメーターにSPOOLを指定した場合に作成されます。ルートジョブ起動時に次のどちらかの方法で，ルートジョブを簡潔出力モードまたは最小出力モードを指定した場合は作成されません。

adshexecコマンドの-mオプションでSIMPLEまたはMINIMUMを指定する

OUTPUT_MODE_ROOTパラメーターにSIMPLEまたはMINIMUMを指定する

(12)　ステップ番号_ステップ名_STDERR

ジョブステップを定義した場合の，該当するジョブステップ中の標準エラー出力です。ジョブステップ名が8バイトを超える場合，ファイル名に含むステップ名は，ジョブステップ名の最初の8バイトになります。

ルートジョブ起動時に次のどちらかの方法で，ルートジョブを簡潔出力モードまたは最小出力モードを指定した場合は作成されません。

adshexecコマンドの-mオプションでSIMPLEまたはMINIMUMを指定する

OUTPUT_MODE_ROOTパラメーターにSIMPLEまたはMINIMUMを指定する

(13)　0000_ジョブ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名

ジョブステップ外で#-adsh_spoolfileコマンドによって割り当てられたプログラム出力データファイルです。

(14)　C子孫ジョブ起動順序通し番号_0000_ジョブ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名

子孫ジョブのジョブステップ外で#-adsh_spoolfileコマンドによって割り当てられたプログラム出力データファイルです。

環境ファイルのSPOOLJOB_CHILDJOBパラメーターにMERGE（子孫ジョブのスプールジョブをルートジョブのスプールジョブにマージ）を指定した場合だけ作成されます。

(15)　ステップ番号_ステップ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名

ジョブステップ内で#-adsh_spoolfileコマンドによって割り当てられたプログラム出力データファイルです。

(16)　C子孫ジョブ起動順序通し番号_ステップ番号_ステップ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名

子孫ジョブのジョブステップ内で#-adsh_spoolfileコマンドによって割り当てられたプログラム出力データファイルです。

環境ファイルのSPOOLJOB_CHILDJOBパラメーターにMERGE（子孫ジョブのスプールジョブをルートジョブのスプールジョブにマージ）を指定した場合だけ作成されます。

3.4.3　ジョブ実行ログへの特定の情報メッセージの出力を抑止する

特定の情報メッセージをジョブ実行ログファイルへ出力させないことで，ジョブ実行ログファイルの出力量を抑えられます。この機能を使用するには，環境ファイルにJOBLOG_SUPPRESS_MSGパラメーターを指定します。

出力を抑止できるメッセージの種類と，JOBLOG_SUPPRESS_MSGパラメーターの詳細については，「7.　環境ファイルで設定するパラメーター」の「JOBLOG_SUPPRESS_MSGパラメーター（ジョブ実行ログへ出力させないメッセージを定義する）」を参照してください。

3.4.4　ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止する

ジョブの実行結果をほかのプログラムで利用する場合などに，次の出力が実行されないように設定できます。

スプールジョブディレクトリ下のファイルへの，標準出力と標準エラー出力の出力

標準出力と標準エラー出力への，情報メッセージと警告メッセージの出力（一部の例外メッセージを除く）

標準エラー出力への，ジョブ終了時のジョブ実行ログの出力

そのためには，次のどちらかの方法で簡潔出力モードまたは最小出力モードを指定します。

環境設定時にOUTPUT_MODE_ROOTパラメーター（ルートジョブの場合）またはOUTPUT_MODE_CHILDパラメーター（子孫ジョブの場合）で設定

OUTPUT_MODE_ROOTパラメーターについては「OUTPUT_MODE_ROOTパラメーター（ルートジョブの実行結果の出力情報に関する出力方式を定義する）」，OUTPUT_MODE_CHILDパラメーターについては「OUTPUT_MODE_CHILDパラメーター（子孫ジョブの実行結果の出力情報に関する出力方式を定義する）」を参照してください。

ジョブ実行時にadshexecコマンドの-mオプションで指定

adshexecコマンドについては「adshexecコマンド（バッチジョブを実行する）」を参照してください。

adshscripttoolコマンドの-mオプションで指定

adshscripttoolコマンドについては「adshscripttoolコマンド（ジョブ定義スクリプトの作成を支援する）」を参照してください。

環境設定パラメーターとコマンドの両方を指定した場合はコマンドの指定が優先されます。どちらも指定しなかった場合は拡張出力モードで実行します。

(1)　拡張出力モード，簡潔出力モードおよび最小出力モードの出力内容の差異

拡張出力モード，簡潔出力モードおよび最小出力モードの出力内容の差異を次に示します。

表3‒1　拡張出力モード，簡潔出力モードおよび最小出力モードの出力内容の差異

出力時期

拡張出力モードの場合

簡潔出力モードの場合

最小出力モードの場合

ジョブ実行時

標準出力，標準エラー出力は，ジョブの種類によって次のように異なります。

ルートジョブ

標準出力と標準エラー出力をスプールジョブディレクトリへ出力します。

子孫ジョブ

プロセス起動時の出力先へ出力します。

標準出力，標準エラー出力は，プロセス起動時の出力先へ出力します。

標準出力，標準エラー出力へ出力するJP1/Advanced Shellのメッセージは，エラーメッセージだけを出力します。※1

同左

ジョブ終了時

ジョブ実行ログを標準エラー出力（子孫ジョブの場合はルートジョブの標準エラー出力※2）に出力します。

ジョブ実行ログを標準エラー出力に出力しません。ただし，JOBLOGだけに出力するエラーメッセージは，エラーを通知するため，ジョブ実行中に標準エラー出力にも出力します。

子孫ジョブのJOBLOGは，ルートジョブのスプールジョブディレクトリ下に作成され，ジョブ終了後も残ります。※2

JOBEXECLOG_PRINTパラメーターの指定に関係なく，この動作となります。

同左

デバッグ実行時

JOBLOGを標準エラー出力にタイムリーに出力します。

標準出力，標準エラー出力へ出力するJP1/Advanced Shellのメッセージは起動時の標準出力，標準エラー出力へ出力します。

JOBLOGは標準エラー出力に出力しません。

標準出力，標準エラー出力へ出力するJP1/Advanced Shellのメッセージは起動時の標準出力，標準エラー出力へ出力します。

デバッグ終了時はエラーメッセージ以外のメッセージは出力しません。ただし，デバッグ対象ではない子孫ジョブは，通常実行と同様に動作します。

JOBLOGは標準エラー出力に出力しません。

標準出力，標準エラー出力へ出力するJP1/Advanced Shellのメッセージは起動時の標準出力，標準エラー出力へ出力します。

デバッグ終了時は出力抑止対象外のメッセージだけを出力します。ただし，デバッグ対象ではない子孫ジョブは，通常実行と同様に動作します。

注※1

エラーメッセージ以外にも，例外として出力されるメッセージがあります。例外として出力されるメッセージと，メッセージの種類ごとの出力先については，「11.2　メッセージの出力先」を参照してください。

注※2

子孫ジョブのジョブ実行ログをルートジョブのジョブ実行ログへマージする場合（SPOOLJOB_CHILDJOBパラメーターにMERGEを指定）は出力されません。

ジョブ定義スクリプトから別のジョブ定義スクリプトを簡潔出力モードまたは最小出力モードで起動する場合は，子孫ジョブを使用してください。ルートジョブを簡潔出力モードまたは最小出力モードで起動した場合，標準エラー出力にエラーメッセージが表示されます。

(2)　簡潔出力モードまたは最小出力モードで実行するジョブのスプールジョブディレクトリを探す方法

簡潔出力モードまたは最小出力モードを選択すると，割り当てられたジョブ識別子や，スプールジョブディレクトリ名を出力するメッセージが出力されなくなります。簡潔出力モードまたは最小出力モードで実行したジョブのスプールジョブディレクトリを探す方法を次に示します。

事前に#-adsh_jobコマンド（ジョブ名の宣言）で一意なジョブ名を指定する。

ジョブ開始時に次の環境変数の値を標準エラー出力に出力させるか，特定のファイルに出力させて必要なときに参照できるようにしておく。

環境変数ADSH_JOBID（ジョブ識別子が格納される）

環境変数ADSH_JOB_NAME（ジョブ名が格納される）

ジョブの実行日時を基に探す。

3.5　ジョブ実行ログ

ジョブ実行ログとは，バッチジョブの実行結果を通知する利用者向けのログ情報のことです。このログ情報はスプールジョブディレクトリ下のファイルに出力され，ユーザープログラムの標準出力以外はジョブ終了時に標準エラー出力に出力されます。標準エラー出力の結果はJP1/AJS - Viewなどによって確認できます。

ジョブ実行ログには，次の情報が出力されます。

バッチジョブの開始・終了メッセージ

ジョブステップの開始・終了メッセージ

ジョブ定義スクリプトの内容

実行したコマンドの結果

準備したファイルの状況，後処理の結果

ユーザープログラムの標準出力（stdout）※1

ユーザープログラムの標準エラー出力（stderr）※2

カバレージ取得に関するメッセージ

注※1

次のどちらかが指定されている場合に，ジョブ実行中に起動時の標準出力へ出力されます。そのため，ジョブ終了後は実行結果が残らなくなり，JP1/AJS - Viewでも確認できません。

adshexecコマンドの-sオプションまたは環境ファイルのOUTPUT_STDOUTパラメーターにPARENTを指定した場合

ルートジョブが簡潔出力モードまたは最小出力モードの場合

注※2

ルートジョブが簡潔出力モードまたは最小出力モードの場合は，スプールジョブディレクトリ下のファイルには出力されませんが，ジョブ実行中に起動時の標準エラー出力へ出力されます。

JP1/AJSを使用しない場合は，環境ファイルのSPOOL_DIRパラメーターに指定したスプールルートディレクトリ中の，バッチジョブごとのディレクトリに格納されているJOBLOGファイルなどを参照してください。

なお，情報メッセージの一部をJOBLOGファイルへ出力させないようにするには，JOBLOG_SUPPRESS_MSGパラメーターで設定します。指定できるメッセージなどについては，「7.　環境ファイルで設定するパラメーター」の「JOBLOG_SUPPRESS_MSGパラメーター（ジョブ実行ログへ出力させないメッセージを定義する）」を参照してください。

3.5.1　ジョブの種類ごとのジョブ実行ログの出力内容

ジョブ実行ログの出力内容は，実行したジョブの種類によって次のように異なります。

(1)　ルートジョブ実行時のジョブ実行ログの出力先と出力内容

ルートジョブ実行時のジョブ実行ログの出力先と出力内容について，拡張出力モード，簡潔出力モードおよび最小出力モード（OUTPUT_MODE_ROOTパラメーターで指定）に分けて説明します。

(a)　拡張出力モードを選択した場合

拡張出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

メッセージの出力先

内容

JOBLOG

スプール内のファイルに出力されます。

デバッグ実行時は，標準エラー出力にもジョブ実行中に出力されます。

スクリプトイメージ

スプール内のファイルに出力されます。

標準出力の出力先

次のどちらかで指定した出力先へ出力されます。

adshexecコマンドの-sオプション

環境ファイルのOUTPUT_STDOUTパラメーター

デバッグ実行時は起動時の標準出力に出力されます。

標準エラー出力の出力先

スプール内のファイルに出力されます。

デバッグ実行時は起動時の標準エラー出力に出力されます。

ジョブごとにスプールジョブディレクトリが作成されます。

ジョブ実行後，標準出力を除いたジョブ実行ログの内容が標準エラー出力に出力されます。

デバッグ実行時は，ジョブ終了後のジョブ実行ログの内容を標準エラー出力に出力しません。

(b)　簡潔出力モードを選択した場合

簡潔出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

メッセージの出力先

内容

JOBLOG

スプール内のファイルに出力されます。

スクリプトイメージ

標準出力の出力先

スプール内のファイルには出力されません。プロセス起動時の出力先に出力されます。

標準エラー出力のエラーメッセージと，標準出力のエラーメッセージが出力されます（デバッグ実行時にはエラーメッセージ以外のメッセージも出力されます）。

また，JOBLOGのエラーメッセージが標準エラー出力に出力されます。

通常実行時には，メッセージ種別がWおよびIのメッセージ（シグナル受信，イベント受信メッセージは除く）は出力抑止されます。

標準エラー出力の出力先

なお，ジョブ終了時にジョブ実行ログは標準エラー出力に出力されません。

(c)　最小出力モードを選択した場合

最小出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

メッセージの出力先

内容

JOBLOG

スプール内のファイルに，出力抑止対象外のメッセージが出力されます。

スクリプトイメージ

標準出力の出力先

スプール内のファイルには出力されません。プロセス起動時の出力先に出力されます。

標準エラー出力と標準出力の出力抑止対象外のメッセージが出力されます（デバッグ実行時には出力抑止対象外のメッセージも出力されます）。

また，JOBLOGの出力抑止対象外のメッセージが標準エラー出力に出力されます。

標準エラー出力の出力先

なお，ジョブ終了時にジョブ実行ログは標準エラー出力に出力されません。

出力が抑止されるメッセージは次のとおりです。

時期

出力抑止されるメッセージ

通常実行時

メッセージ種別がWおよびIのメッセージ（シグナル受信，イベント受信メッセージは除く）

メッセージ種別がEの次に示すメッセージ

KNAX0101-E，KNAX2201-E，KNAX6521-E，KNAX6522-E，KNAX6541-E，KNAX6542-E，KNAX6551-E，KNAX6552-E，KNAX6561-E，KNAX6562-E，KNAX6586-E，KNAX6591-E，KNAX6592-E，KNAX6593-E，KNAX6594-E，KNAX6596-E

メッセージ種別がIの次に示すメッセージ

KNAX7893-I，KNAX7896-I

デバッグ実行時

メッセージ種別がWおよびIのメッセージ（シグナル受信，イベント受信メッセージは除く）

メッセージ種別がEの次に示すメッセージ

KNAX0101-E，KNAX2201-E，KNAX6521-E，KNAX6522-E，KNAX6541-E，KNAX6542-E，KNAX6551-E，KNAX6552-E，KNAX6561-E，KNAX6562-E，KNAX6586-E，KNAX6591-E，KNAX6592-E，KNAX6593-E，KNAX6594-E，KNAX6596-E

(2)　子孫ジョブ実行時のジョブ実行ログの出力先と出力内容

子孫ジョブ実行時のジョブ実行ログの出力先と出力内容について，拡張出力モード，簡潔出力モードおよび最小出力モード（OUTPUT_MODE_CHILDパラメーターで指定）に分けて説明します。子孫ジョブのスプールジョブをルートジョブのスプールジョブへマージする場合の出力内容は，「(3)　子孫ジョブのスプールジョブをルートジョブのスプールジョブへマージした場合」を参照してください。

(a)　拡張出力モードを選択した場合

拡張出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

メッセージの出力先

内容

JOBLOG

一時的にスプール内のファイルに出力されます。

子孫ジョブ終了時に，プロセス起動時の標準エラー出力に出力したあと，スプール内のファイルは削除されます。

スクリプトイメージ

一時的にスプール内のファイルに出力されますが，子孫ジョブ終了時に削除されます。

標準出力の出力先

プロセス起動時の出力先に出力されます。

標準エラー出力の出力先

ジョブ実行中にスプールジョブディレクトリが作成されますが，ジョブ実行後に削除されます。その際，スプールジョブディレクトリ内に割り当てたプログラム出力データファイルも削除されます。そのため，スプールジョブディレクトリのリネーム成功を示すKNAX6380-Iメッセージは出力されません。

ジョブ実行後，JOBLOGの内容が標準エラー出力に出力されます。ただし，次に示すヘッダ行は出力されません。

---------------------------------------------------------------
 JP1/Advanced Shell バージョン番号

 [Information]
   Jobid           : ジョブ識別子
   Spool Directory : スプールジョブディレクトリパス
   Date            : 実行日付
   Config-system   : 環境ファイルパス（システム環境ファイル）
   Config-job      : 環境ファイルパス（ジョブ環境ファイル）
   HostName        : ホスト名
 [JP1 Parameter]
   JP1/AJSから渡された環境変数
---------------------------------------------------------------
********  JP1/Advanced Shell MESSAGE  ********

JOBLOG以外のジョブ実行ログは出力されないため，JP1/AJSやログインシェルなどからジョブ実行ログは参照できません。

なお，ジョブの終了コードは親プロセスのジョブのJOBLOGへ出力されるため，adshexecコマンドの実行終了を示すKNAX7999-Iメッセージは，標準エラー出力には出力されません。

(b)　簡潔出力モードを選択した場合

簡潔出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

メッセージの出力先

内容

JOBLOG

ルートジョブのスプール内の子孫ジョブごとのファイルに出力されます。

スクリプトイメージ

一時的にスプール内のファイルに出力されますが，子孫ジョブ終了時に削除されます。

標準出力の出力先

プロセス起動時の出力先に出力されます。

標準エラー出力のエラーメッセージと，標準出力のエラーメッセージが出力されます。また，JOBLOGのエラーメッセージが標準エラー出力に出力されます。

エラーメッセージ以外のメッセージは出力されません。

メッセージ種別がWおよびIのメッセージ（シグナル受信，イベント受信メッセージは除く）は出力抑止されます。

標準エラー出力の出力先

ジョブ実行中，JOBLOGにメッセージを出力します。このうち，エラーメッセージは標準エラー出力にも出力されます。

ジョブ実行ログは，ルートジョブのスプールジョブディレクトリ下に，子孫ジョブごとにファイル出力されます。ジョブの実行後もジョブ実行ログは標準エラー出力へ出力されません。

(c)　最小出力モードを選択した場合

最小出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

メッセージの出力先

内容

JOBLOG

ルートジョブのスプール内の子孫ジョブごとのファイルに，出力抑止対象外のメッセージが出力されます。

スクリプトイメージ

一時的にスプール内のファイルに出力されますが，子孫ジョブ終了時に削除されます。

標準出力の出力先

プロセス起動時の出力先に出力されます。

標準エラー出力と標準出力の出力抑止対象外のメッセージが出力されます。また，JOBLOGの出力抑止対象外のメッセージが標準エラー出力に出力されます。

出力抑止したメッセージは出力されません。

標準エラー出力の出力先

出力が抑止されるメッセージは次のとおりです。

メッセージ種別がWおよびIのメッセージ（シグナル受信，イベント受信メッセージは除く）

メッセージ種別がEの次に示すメッセージ

KNAX0101-E，KNAX2201-E，KNAX6521-E，KNAX6522-E，KNAX6541-E，KNAX6542-E，KNAX6551-E，KNAX6552-E，KNAX6561-E，KNAX6562-E，KNAX6586-E，KNAX6591-E，KNAX6592-E，KNAX6593-E，KNAX6594-E，KNAX6596-E

メッセージ種別がIの次に示すメッセージ

KNAX7893-I，KNAX7896-I

(3)　子孫ジョブのスプールジョブをルートジョブのスプールジョブへマージした場合

SPOOLJOB_CHILDJOBパラメーターにMERGEを指定した場合，子孫ジョブのスプールジョブは，ルートジョブのスプールジョブへマージされます。その場合のジョブ実行ログの出力内容の概要を次に示します。ジョブ実行ログの全体の出力例は，「3.5.3　ジョブ実行ログの出力例（子孫ジョブのスプールジョブをルートジョブのスプールジョブへマージした場合）」を参照してください。

(a)　通常実行時

JOBLOG

子孫ジョブのJOBLOGは，子孫ジョブ実行の読み替え規則に合致した旨のメッセージと，子孫ジョブ実行コマンドの終了メッセージとの間に出力されます。

出力されるJOBLOGの前後に，次の図のように子孫ジョブのJOBLOG出力開始と出力終了を示す記号を出力します。

SCRIPT

ルートジョブのSCRIPTの下に，子孫ジョブのSCRIPTを出力します。子孫ジョブの出力部分には，ヘッダ「******** Script IMAGE ********」は出力しません。

STDERR

子孫ジョブの標準エラー出力の前後に，次の図のように子孫ジョブのSTDERR出力開始と出力終了を示す記号を出力します。

この記号は，子孫ジョブが簡潔出力モードまたは最小出力モードの場合は出力しません。

STDOUT

STDOUTはマージされません。

(b)　デバッグ実行時

JOBLOG

通常実行時と同じ形式でマージされます。なお，子孫ジョブの終了直後に，標準エラー出力にも同じ内容が出力されます。

SCRIPT

通常実行時と同じ形式でマージされます。なお，SCRIPTの内容は標準エラー出力には出力されません。

STDERR，STDOUT

子孫ジョブの標準エラー出力の前後に，次の図のように子孫ジョブのSTDERRとSTDOUTを合わせたものの出力開始と出力終了を示す記号を出力します。子孫ジョブの標準エラー出力や標準出力をリダイレクトしている場合でも，[STDERR,STDOUT]という記号は標準エラー出力に出力されます。

この記号は，子孫ジョブが簡潔出力モードまたは最小出力モードの場合は出力しません。

(c)　ルートジョブと子孫ジョブで出力モードが異なる場合

SPOOLJOB_CHILDJOB環境設定パラメーターにMERGEを指定し，かつルートジョブが拡張出力モード，子孫ジョブが最小出力モードで動作する場合，JOBLOGとSCRIPTのマージ結果は次のようになります。

JOBLOG

最小出力モードで動作する子孫ジョブのJOBLOGに，メッセージが出力されていない場合

この子孫ジョブのJOBLOGはルートジョブのJOBLOGにマージされません。そのため，子孫ジョブのJOBLOGの出力開始と出力終了を示す記号も出力されません。

最小出力モードで動作する子孫ジョブのJOBLOGに，メッセージが出力されている場合

この子孫ジョブのJOBLOGはルートジョブのJOBLOGにマージされます。また，子孫ジョブのJOBLOGの出力開始と出力終了を示す記号も出力されます。

子孫ジョブのJOBLOGの出力開始と出力終了を示す記号は，通常実行時・デバッグ実行時とも">>>>>> [JOBLOG] パス名"と"<<<<<< [JOBLOG] パス名"です。

SCRIPT

子孫ジョブのSCRIPTは，ルートジョブのSCRIPTにマージされません。

また，子ジョブが最小出力モードで，そこから起動する孫ジョブが拡張出力モードまたは簡潔出力モードの場合も，子ジョブのSCRIPTがマージされないため，子ジョブのSCRIPTにマージされた孫ジョブのSCRIPTも出力されません。

ルートジョブが簡潔出力モードまたは最小出力モードの場合も同様です。ただし，その場合は標準エラー出力にSCRIPTを出力しません。

3.5.2　ジョブ実行ログの出力例

ルートジョブと子孫ジョブを実行した場合の，ジョブ実行ログの出力例を次に示します。

(1)　例1（ch1.shとch2.shを定義）

次のように，ルートジョブから起動する子孫ジョブch1.shと，ルートジョブのジョブステップ内から起動する子孫ジョブch2.shを定義した場合について説明します。

この場合に標準エラー出力へ出力されるルートジョブのジョブ実行ログについて，構成と出力例を次に示します。

(a)　ジョブ実行ログの構成

ジョブ実行ログの構成と，子孫ジョブch1.shとch2.shの実行結果の出力個所を次に示します。ch1.shの実行結果はジョブスコープ内に，ch2.shの実行結果はステップスコープ内に出力されます。

(b)　ジョブ実行ログの出力例

ジョブ実行ログの出力例を次に示します。

(2)　例2（child1.sh，child2.sh，grandchild.shを定義）

次のように子孫ジョブchild1.sh，child2.sh，さらに子孫ジョブchild2.shから起動するgrandchild.shを定義した場合について説明します。

この場合に標準エラー出力へ出力されるルートジョブのジョブ実行ログについて，構成と出力例を次に示します。

(a)　ジョブ実行ログの構成

ジョブ実行ログの構成と，子孫ジョブchild1.sh，child2.sh，grandchild.shの実行結果の出力個所を次に示します。grandchild.shの実行結果は，子孫ジョブchild2.shの実行結果の中に出力されます。

(b)　ジョブ実行ログの出力例

ジョブ実行ログの出力例を次に示します。

3.5.3　ジョブ実行ログの出力例（子孫ジョブのスプールジョブをルートジョブのスプールジョブへマージした場合）

環境設定パラメーターSPOOLJOB_CHILDJOBでMERGEを選択（子孫ジョブのスプールジョブをルートジョブのスプールジョブへマージ）した場合の，ジョブ実行ログの出力例を次に示します。

(1)　例1（ch1.shとch2.shを定義）

次のように，ルートジョブから起動する子孫ジョブch1.shと，ルートジョブのジョブステップ内から起動する子孫ジョブch2.shを定義した場合について説明します。

この場合に標準エラー出力へ出力されるルートジョブのジョブ実行ログについて，構成と出力例を次に示します。

(a)　ジョブ実行ログの構成

ジョブ実行ログの構成と，子孫ジョブch1.shとch2.shの実行結果の出力個所を次に示します。子孫ジョブの実行結果がJOBLOGとSCRIPTにも出力されます。

(b)　ジョブ実行ログの出力例

ジョブ実行ログの出力例を次に示します。

(2)　例2（child1.sh，child2.sh，grandchild.shを定義）

次のように子孫ジョブchild1.sh，child2.sh，さらに子孫ジョブchild2.shから起動するgrandchild.shを定義した場合について説明します。

この場合に標準エラー出力へ出力されるルートジョブのジョブ実行ログについて，構成と出力例を次に示します。

(a)　ジョブ実行ログの構成

ジョブ実行ログの構成と，子孫ジョブchild1.sh，child2.sh，grandchild.shの実行結果の出力個所を次に示します。子孫ジョブの実行結果がJOBLOGとSCRIPTにも出力されます。

JP1/AJSなどから参照できるジョブ実行ログ

デバッグ実行時のジョブ実行ログ

(b)　ジョブ実行ログの出力例

ジョブ実行ログの出力例を次に示します。

JP1/AJSなどから参照できるジョブ実行ログ

デバッグ実行時のジョブ実行ログ

3.5.4　ジョブ実行ログの出力例（簡潔出力モードまたは最小出力モードを選択した場合）

環境設定パラメーターOUTPUT_MODE_ROOTまたはOUTPUT_MODE_CHILDで，簡潔出力モードまたは最小出力モードを選択した場合の，ジョブ実行ログの出力例を次に示します。なお，簡潔出力モードと最小出力モードでは，出力されるエラーメッセージが異なります。

(1)　ジョブ実行ログの構成

ジョブ実行ログの構成を次に示します。

JP1/AJSなどから参照できるジョブ実行ログ

デバッグ実行時のジョブ実行ログ

(2)　ジョブ実行ログの出力例

ジョブ実行ログの出力例を次に示します。

JP1/AJSなどから参照できるジョブ実行ログ

■環境設定パラメーター

#-adsh_conf OUTPUT_MODE_ROOT SIMPLE
#-adsh_conf OUTPUT_MODE_CHILD SIMPLE
#-adsh_conf CHILDJOB_EXT ash

■ジョブ定義スクリプト：logroot.ash

#-adsh_job SampleJobRoot
#-adsh_file_temp WORK01
#-adsh_file_temp WORK02
./logsub.ash data tokyo 2>$WORK01
./logsub.ash data fukuoka 2>$WORK02
echo -E "***WORK01*****" >&2
cat $WORK01 >&2
echo -E "***WORK02*****" >&2
cat $WORK02 >&2

■ジョブ定義スクリプト：logsub.ash

#-adsh_job SampleSub
cat $1 | grep $2 >&2

■入力データ：data

aichi     nagoya      052
fukuoka   kurume      0942
fukushima iwaki       0246
tokyo     machida     042
tokyo     tachikawa   042

■実行例

デバッグ実行時のジョブ実行ログ

3.5.5　ジョブ実行ログの出力例（標準エラー出力だけを出力する場合）

環境設定パラメーターJOBEXECLOG_PRINTでSTDERRを選択（ジョブ実行ログに標準エラー出力だけを出力する）した場合の，ジョブ実行ログの出力例を次に示します。

この例では，次に示すジョブ定義スクリプト「sample.ash」「samplesub1.ash」「samplesub2.ash」が定義されていることを前提としています。

ジョブ定義スクリプト「sample.ash」の内容

#-adsh_job SAMPLEJOB
echo JOB_STDERR_001 >&2
cd /home/user01/dir
cd xxx
cd /home/user01
#-adsh_step_start S1 -run always -onError cont
echo STEP_STDERR_001 >&2
cd /home/user01/dir
cd xxx
cd /home/user01
#-adsh_step_end
echo JOB_STDERR_002 >&2
#-adsh_step_start S2 -run always -onError cont
echo STEP_STDERR_002 >&2
./samplesub1.ash
#-adsh_step_end
cd /home/user01/dir
cd xxx
cd /home/user01
echo JOB_STDERR_003 >&2
./samplesub2.ash

ジョブ定義スクリプト「samplesub1.ash」の内容

#-adsh_job SAMPLE_SUB1
echo SUB1_JOB_STDERR_001 >&2
cd /home/user01/dir
cd xxxSUB1
cd /home/user01
#-adsh_step_start SUB1_S1 -run always -onError cont
echo SUB1_STEP_STDERR_001 >&2
cd /home/user01/dir
cd xxxSUB1
cd /home/user01
#-adsh_step_end
echo SUB1_JOB_STDERR_002 >&2
#-adsh_step_start SUB1_S2 -run always -onError cont
echo SUB1_STEP_STDERR_002 >&2
#-adsh_step_end
cd /home/user01/dir
cd xxxSUB1
cd /home/user01
echo SUB1_JOB_STDERR_003 >&2

ジョブ定義スクリプト「samplesub2.ash」の内容

#-adsh_job SAMPLE_SUB2
echo SUB2_JOB_STDERR_001 >&2
cd /home/user01/dir
cd xxxSUB2
cd /home/user01
#-adsh_step_start SUB2_S1 -run always -onError cont
echo SUB2_STEP_STDERR_001 >&2
cd /home/user01/dir
cd xxxSUB2
cd /home/user01
#-adsh_step_end
echo SUB2_JOB_STDERR_002 >&2
#-adsh_step_start SUB2_S2 -run always -onError cont
echo SUB2_STEP_STDERR_002 >&2
#-adsh_step_end
cd /home/user01/dir
cd xxxSUB2
cd /home/user01
echo SUB2_JOB_STDERR_003 >&2

このときのジョブ実行ログの出力例を次に示します。

3.6　実行したコマンドとその引数を出力する

シェルオプションxtraceを有効にすると，実行したコマンドとその引数がトレース情報として標準エラー出力へ出力されます。

シェルオプションxtraceを有効にする方法は次の3種類です。

ジョブ定義スクリプトのsetコマンドに，-xオプションまたは-o xtraceオプションを指定して実行する

ジョブ実行時にadshexecコマンドに-xオプションを指定して実行する

JP1/Advanced Shellエディタの［実行環境の設定］ダイアログボックスで，「xtraceを指定する」を選択する

トレース情報は次の形式で出力されます。

トレース情報の先頭にはシェル変数PS4の値が付与されます。

変数の値を参照している場合は，変数の置換結果が出力されます。

コマンドの引数にワイルドカードが含まれている場合，ワイルドカードによる置換結果が出力されます。

トレース情報の出力例

実行したジョブ定義スクリプトと，それによって出力されるトレース情報を次の例に示します。

ジョブ定義スクリプトの内容

0001 : set -o xtrace
0002 : typeset -i cnt=1
0003 : if [ $cnt -eq 1 ]
0004 : then
0005 :   echo "--- JOB START ---"
0006 : fi
0007 : date

標準エラー出力への出力結果

+ typeset -i cnt=1
+ [ 1 -eq 1 ]
+ echo --- JOB START ---
+ date

トレース情報に関する注意事項

シェルオプションxtraceを有効にしても，次に示すコマンドとその引数は出力されません。

testコマンドの省略形である[[ ]]コマンド

スクリプト拡張コマンド

letコマンドの省略形である(( ))コマンドは，トレース情報ではletコマンドに置き換えて出力されます。(( ))コマンドの指定例と出力情報を次に示します。

ジョブ定義スクリプトの内容

0001 : set -o xtrace
0002 : typeset -i a=0
0003 : (( a=(2+3)*9 ))
0004 : echo $a

標準エラー出力への出力結果

+ typeset -i a=0
+ let  a=(2+3)*9
+ echo 45

トレース情報には関数自体のトレース情報は出力されますが，関数内のコマンドのトレース情報は出力されません。関数内のコマンドのトレース情報を出力するには，typesetコマンドを実行して関数のトレースモードを有効にしてください。typesetコマンドの指定例と出力情報を次に示します。

ジョブ定義スクリプトの内容

0001 : set -o xtrace
0002 : fn1(){
0003 :   echo "call $1 $2"
0004 :   echo $LINENO
0005 : }
0006 : echo "in main"
0007 : fn1 "function" "1"
0008 : typeset -ft fn1
0009 : fn1 "function" "2"

標準エラー出力への出力結果

+ echo in main
+ fn1 function 1
+ typeset -ft fn1
+ fn1 function 2
+ echo call function 2
+ echo 4

シェルオプションxtraceを有効にすると，子孫ジョブで実行したジョブ定義スクリプト自体のトレース情報は出力されますが，子孫ジョブ内のコマンドのトレース情報は出力されません。子孫ジョブで実行するジョブ定義スクリプトのトレース情報を出力する場合は，子孫ジョブ用のジョブ定義スクリプト内で別途，xtraceシェルオプションを有効にする必要があります。

シェルオプションxtraceを有効にしても，ヒアドキュメントの入力内容はトレース情報として出力されません。

3.7　ジョブ定義スクリプトの稼働実績情報を出力する

ジョブ定義スクリプトの稼働実績情報は，ジョブで実行した各コマンドの実行時間，CPU時間，出力されたメッセージ，ジョブステップの実行結果などの情報です。ジョブの実行状況の把握や，ジョブの実行遅延の原因の調査などに利用できます。

ジョブ定義スクリプトの稼働実績情報の採取と出力の流れを次に示します。

図3‒4　ジョブ定義スクリプトの稼働実績情報の採取と出力

ユーザーがadshexecコマンドでジョブを実行すると，adshexecコマンドがジョブのジョブ定義スクリプトの稼働実績情報を採取し，スプールのイベントファイルに出力します。

adshevtoutコマンドは，イベントファイル内の，ジョブ定義スクリプトの稼働実績情報をCSV形式で出力します。

CSV形式のジョブ定義スクリプトの稼働実績情報は，表計算ソフトウェアなどを使用して解析します。

3.7.1　ジョブ定義スクリプトの稼働実績情報の採取

ジョブ定義スクリプトの稼働実績情報の採取の可否を次の表に示します。

環境

実行状態

ジョブ定義スクリプトの稼働実績情報の採取

実行環境

通常

○

デバッガモード

×

開発環境

（非該当）

×

（凡例）

○：採取できる

×：採取できない

標準では，adshexecコマンドでジョブを実行すると，adshexecコマンドがジョブのジョブ定義スクリプトの稼働実績情報を採取し，スプールのイベントファイルに出力します。

ただし，環境ファイルで次のように指定すると，adshexecコマンドはジョブ定義スクリプトの稼働実績情報をイベントファイルに出力しません。

　#-adsh_conf EVENT_COLLECT NO

3.7.2　ジョブ定義スクリプトの稼働実績情報の出力

adshevtoutコマンドを使用して，スプールにあるイベントファイル内のジョブ定義スクリプトの稼働実績情報をCSV形式で出力します。

adshevtoutコマンドの指定方法や，ジョブ定義スクリプトの稼働実績情報の出力例については，「8.　運用時に使用するコマンド」の「adshevtoutコマンド（ジョブ定義スクリプトの稼働実績情報を出力する）」を参照してください。

(1)　ジョブ定義スクリプトの稼働実績情報を出力するジョブの指定

adshevtoutコマンドで，ジョブ定義スクリプトの稼働実績情報を出力するジョブを指定できます。

次の内容で，出力するジョブを指定します。

ジョブの実行開始日時の範囲

JP1/AJSのジョブ名，ジョブ実行ID，ジョブ番号など

JP1/Advanced Shellのジョブ名，ジョブ識別子，ジョブ定義スクリプトファイルのパス名など

複数の条件を指定した場合，すべての条件を満たす情報が出力されます。

条件を指定しなければ，スプールにあるすべてのジョブの，ジョブ定義スクリプトの稼働実績情報を出力します。ただし，アクセスできないイベントファイル内にある，ジョブ定義スクリプトの稼働実績情報は出力しません。

(2)　ジョブ定義スクリプトの稼働実績情報の出力情報の制御

adshevtoutコマンドの指定で，次のように出力情報を制御できます。

ヘッダ情報を出力しない。

ヘッダ情報だけを出力する（ジョブ定義スクリプトの稼働実績情報を出力しない）。

ジョブ定義スクリプトの稼働実績情報内のメッセージだけを出力する。

ジョブ定義スクリプトの稼働実績情報の環境変数の情報を出力しない。

(3)　参照するスプール

adshevtoutコマンドは，スプールにあるイベントファイルを参照し，ジョブ定義スクリプトの稼働実績情報を出力します。

adshevtoutコマンドが参照するスプールは，adshexecコマンドと同じく，指定された環境ファイルから決定します。

adshevtoutコマンドで論理ホストを指定された場合，adshexecコマンドと同じく，論理ホストに対応づけられたスプールを参照します。

(4)　ジョブ定義スクリプトの稼働実績情報の出力先

ジョブ定義スクリプトの稼働実績情報は，adshevtoutコマンドの標準出力（stdout）へ出力します。

リダイレクト機能を使用すると，ファイルに出力することもできます。

3.7.3　稼働実績情報の日時とタイムゾーンの関係

adshevtoutコマンドは実行されたときのタイムゾーンに従い，日時を年月日，時分秒の形式で解釈し，出力します。タイムゾーンは環境変数TZで指定します。

次の例に示すように，同一の日時指定例1であっても，タイムゾーンが異なれば，年月日，時分秒の形式での日時の表現は変わります。日時指定例2，日時指定例3についても同様です。

タイムゾーン

日時指定例1

日時指定例2

日時指定例3

UTC-2

2012-06-10 08:00:00

2012-06-10 23:00:00

2012-06-11 15:00:00

UTC

2012-06-10 10:00:00

2012-06-11 01:00:00

2012-06-11 17:00:00

UTC+3

2012-06-10 13:00:00

2012-06-11 04:00:00

2012-06-11 20:00:00

UTC+9

2012-06-10 19:00:00

2012-06-11 10:00:00

2012-06-12 02:00:00

備考

UTC+9は，協定世界時（UTC）から9時間進んでいるタイムゾーンであることを示します。環境変数TZに設定する場合と符号が異なります。

3.7.4　複数のOR条件でジョブ定義スクリプト稼働実績情報を出力する

adshevtoutコマンドは，引数に指定されたすべての条件を満たすジョブのジョブ定義スクリプト稼働実績情報を出力します。

複数の条件のどれかの条件に合致する情報を出力したい場合，ORとなる各条件の数だけadshevtoutコマンドを実行して，ジョブ定義スクリプト稼働実績情報を1つのCSVファイルに連結して出力します。

次の例ではジョブ定義スクリプト稼働実績情報を「outfile」ファイルへ連結して出力します。

adshevtout  -d                                    >  outfile
adshevtout  -t  条件1を指定するオプション        >> outfile
adshevtout  -t  条件2を指定するオプション        >> outfile
　　………
adshevtout  -t  条件nを指定するオプション        >> outfile

1回目のadshevtoutコマンドで，ヘッダ行だけを出力する（-dの指定でジョブ定義スクリプト稼働実績情報を出力しない）。

2回目のadshevtoutコマンドで，ヘッダ行の出力なし（-tの指定）で，条件1に該当するジョブの稼働実績情報を追加出力する。

3回目のadshevtoutコマンドで，ヘッダ行の出力なし（-tの指定）で，条件2に該当するジョブの稼働実績情報を追加出力する。

n＋1回目のadshevtoutコマンドで，ヘッダ行の出力なし（-tの指定）で，条件nに該当するジョブの稼働実績情報を追加出力する。

このようにadshevtoutコマンドを実行することで，複数のor条件に一致する稼働実績情報を出力できます。

3.7.5　異なるスプールのジョブ定義スクリプト稼働実績情報を出力する

adshevtoutコマンドを1回実行して出力できるジョブ定義スクリプト稼働実績情報は，adshevtoutコマンドの実行時に環境ファイルで指定されているスプールにあるジョブのものだけです。ほかのスプールにあるジョブのジョブ定義スクリプト稼働実績情報は，環境ファイルを切り替えて出力してください。

例を次に示します。次に示すように，各環境ファイルにスプールルートディレクトリが指定されているとします。

（例）

環境ファイル「envfile1」：スプールルートディレクトリ「spooldir1」を指定

環境ファイル「envfile2」：スプールルートディレクトリ「spooldir2」を指定

環境ファイル「envfile3」：スプールルートディレクトリ「spooldir3」を指定

この各スプールルートディレクトリにあるジョブのジョブ定義スクリプト稼働実績情報は，次のように環境ファイルを切り替えて，adshevtoutコマンドを実行します。

export ADSH_ENV=envfile1
adshevtout

export ADSH_ENV=envfile2
adshevtout

export ADSH_ENV=envfile3
adshevtout

3.7.6　稼働実績情報の形式

adshevtoutコマンドは，稼働実績情報をCSV形式で出力します。

(1)　稼働実績情報の種類

adshevtoutコマンドで出力される稼働実績情報は，大きく分けて次に示す情報があります。各情報が1個のレコードとなります。

adshexecコマンドの実行開始

環境変数

コマンド

メッセージ

ジョブステップの実行開始

ジョブステップの実行終了

ジョブステップの実行スキップ

ジョブの実行終了

(2)　稼働実績情報の構成

稼働実績情報は，ジョブ単位に次に示す順序で出力します。

順序

出力項目

備考

1

ヘッダ情報

−

2

adshexecコマンドの実行開始

−

3

環境変数

環境変数がある場合に出力

4

コマンド

メッセージ

ジョブステップの実行開始

ジョブステップの実行終了

ジョブステップの実行スキップ

ジョブの実行終了

ジョブ定義スクリプトの実行に応じて出力

（凡例）

−：該当なし

メッセージと次に示すレコードの出力順序は前後することがあります。

コマンド

ジョブステップの実行開始

ジョブステップの実行終了

ジョブステップの実行スキップ

ジョブの実行終了

また，次に示す項目の間で，稼働実績情報の出力順序は規定されていません。

スプールジョブ間の出力順序

スプールジョブ内の，ルートジョブ，子孫ジョブの出力順序

(3)　稼働実績情報のレコードの構成

稼働実績情報のレコードは，複数の項目から構成されます。

項目の値は，ダブルクォーテーション（"）で囲まれます。項目の値がダブルクォーテーション（"）を含む場合，1個のダブルクォーテーション（"）を，連続する2個のダブルクォーテーション（"）で表します。

項目は，コンマ（,）で区切ります。

3.7.7　CSV形式の稼働実績情報のレコードと出力項目

次の表に，CSV形式の稼働実績情報のレコードと出力項目の関係を示します。

表3‒2　稼働実績情報のレコードと出力項目

項番

項目名

adshexecコマンドの実行開始

環境変数

コマンド

コマンド（スクリプト拡張コマンド）

メッセージ

ジョブステップの実行開始

ジョブステップの実行終了

ジョブステップの実行スキップ

ジョブの実行終了

1

EvtName

○

○

○

○

○

○

○

○

○

2

RecTZ

○

○

○

○

○

○

○

○

○

3

RecTime

○

○

○

○

○

○

○

○

○

4

PhysicalHostName

○

○

○

○

○

○

○

○

○

5

LogicalHostName

△

△

△

△

△

△

△

△

△

6

OsName

○

○

○

○

○

○

○

○

○

7

Jp1ajsService

△

△

△

△

△

△

△

△

△

8

Jp1ajsRootJobnet

△

△

△

△

△

△

△

△

△

9

Jp1ajsJobName

△

△

△

△

△

△

△

△

△

10

Jp1ajsExecId

△

△

△

△

△

△

△

△

△

11

Jp1ajsJobId

△

△

△

△

△

△

△

△

△

12

Jp1asJobName

○

○

○

○

○

○

○

○

○

13

Jp1asJobId

○

○

○

○

○

○

○

○

○

14

Jp1asJobTime

○

○

○

○

○

○

○

○

○

15

Jp1asJobPid

○

○

○

○

○

○

○

○

○

16

Jp1asUid

○

○

○

○

○

○

○

○

○

17

Jp1asGid

○

○

○

○

○

○

○

○

○

18

Jp1asUserName

○

○

○

○

○

○

○

○

○

19

Jp1asGroupName

○

○

○

○

○

○

○

○

○

20

Jp1asScriptPath

○

○

○

○

○

○

○

○

○

21

Jp1asEnvPath

○

○

○

○

○

○

○

○

○

22

Jp1asSpoolPath

○

○

○

○

○

○

○

○

○

23

Jp1asJobLang

○

○

○

○

○

○

○

○

○

24

Jp1asJobEncode

○

○

○

○

○

○

○

○

○

25

RecTZExec

○

○

○

○

○

○

○

○

○

26

Jp1asJobParentJobName

△

△

△

△

△

△

△

△

△

27

Jp1asJobParentJobId

△

△

△

△

△

△

△

△

△

28

Jp1asJobParentJobTime

△

△

△

△

△

△

△

△

△

29

Jp1asJobParentJobPid

△

△

△

△

△

△

△

△

△

30

Jp1asJobRc

×

×

×

×

×

×

×

×

○

31

Jp1asJobSig

×

×

×

×

×

×

×

×

○

32

EnvVar

×

○

×

×

×

×

×

×

×

33

Jp1asScriptLineNo

×

×

○

○

×

○

○

○

×

34

Jp1asStepSeq

×

×

○

×

×

○

○

○

×

35

Jp1asStepName

×

×

△

×

×

△

△

△

×

36

Jp1asStepSkip

×

×

×

×

×

×

×

○

×

37

Jp1asStepRc

×

×

×

×

×

×

○

×

○

38

Jp1asStepSig

×

×

×

×

×

×

○

×

○

39

Jp1asCmdExec

×

×

○

○

×

×

×

×

×

40

Jp1asCmdType

×

×

○

○

×

×

×

×

×

41

Jp1asCmdPath

×

×

△

○

×

×

×

×

×

42

Jp1asCmdArg

×

×

△

△

×

×

×

×

×

43

Jp1asLang

×

×

○

○

×

×

×

×

×

44

Jp1asCharEncode

×

×

○

○

×

×

×

×

×

45

Jp1asCmdStart

×

×

○

×

×

×

×

×

×

46

Jp1asCmdEnd

×

×

○

×

×

×

×

×

×

47

Jp1asCmdElaps

×

×

○

×

×

×

×

×

×

48

Jp1asCmdRc

×

×

○

×

×

×

×

×

×

49

Jp1asCmdSig

×

×

○

×

×

×

×

×

×

50

Jp1asCmdPid

×

×

△

×

×

×

×

×

×

51

Jp1asCmdCpuUser

×

×

△

×

×

×

×

×

×

52

Jp1asCmdCpuSys

×

×

△

×

×

×

×

×

×

53

Reserved1

×

×

×

×

×

×

×

×

×

54

Reserved2

×

×

×

×

×

×

×

×

×

55

Jp1asMsgId

×

×

×

×

○

×

×

×

×

56

Jp1asMsgText

×

×

×

×

○

×

×

×

×

57

Jp1asMsgLang

×

×

×

×

○

×

×

×

×

58

Jp1asMsgEncode

×

×

×

×

○

×

×

×

×

（凡例）

○：項目の情報が出力されます。

△：項目の情報が出力されます。出力する情報がない場合は空文字列となります。

×：出力する情報がないため，空文字列となります。

3.7.8　CSV形式の稼働実績情報の出力項目

次の表に，CSV形式の稼働実績情報の出力項目（列）を示します。

表3‒3　稼働実績情報の出力項目（列）

項番

項目名

内容

1

EvtName

稼働実績情報（レコード）の種類を示す名前。

adshStart：adshexecコマンドの実行開始

envVar：環境変数

command：コマンド

message：メッセージ

stepStart：ジョブステップの実行開始

stepEnd：ジョブステップの実行終了

stepSkip：ジョブステップの実行スキップ

jobEnd：ジョブの実行終了

2

RecTZ

adshevtoutコマンドの実行時のタイムゾーン※。

稼働実績情報の日時を表現するためのタイムゾーンとして使用します。

3

RecTime

稼働実績情報の記録日時※。

4

PhysicalHostName

物理ホスト名。

5

LogicalHostName

論理ホスト名。

論理ホストで実行していない場合，空文字列。

6

OsName

OS名。

次に示す文字列。

Windows

Linux

AIX

HP-UX

Solaris

7

Jp1ajsService

JP1/AJSのスケジューラーサービス名。

JP1/AJSが環境変数AJS_AJSCONFに設定する値。

JP1/AJSからジョブを起動した場合に出力します。

8

Jp1ajsRootJobnet

JP1/AJSのルートジョブネット名。

JP1/AJSが環境変数AJSNETNAMEに設定する値。

JP1/AJSからジョブを起動した場合に出力します。

9

Jp1ajsJobName

JP1/AJSのジョブ名。

JP1/AJSが環境変数AJSJOBNAMEに設定する値。

JP1/AJSからジョブを起動した場合に出力します。

10

Jp1ajsExecId

JP1/AJSのジョブの実行ID。

JP1/AJSが環境変数AJSEXECIDに設定する値。

JP1/AJSからジョブを起動した場合に出力します。

11

Jp1ajsJobId

JP1/AJSのジョブ番号。

JP1/AJSが環境変数JP1JobIDに設定する値。

JP1/AJSからジョブを起動した場合に出力します。

12

Jp1asJobName

JP1/Advanced Shellのジョブ名。

13

Jp1asJobId

JP1/Advanced Shellのジョブ識別子。

14

Jp1asJobTime

adshexecコマンドの実行開始日時※。

15

Jp1asJobPid

adshexecコマンドのプロセスid。

16

Jp1asUid

adshexecコマンドのプロセスのユーザーid。

Windowsの場合，空文字列。

17

Jp1asGid

adshexecコマンドのプロセスのグループid。

Windowsの場合，空文字列。

18

Jp1asUserName

adshexecコマンドのプロセスのユーザー名。

19

Jp1asGroupName

adshexecコマンドのプロセスのグループ名。

Windowsの場合，空文字列。

20

Jp1asScriptPath

ジョブ定義スクリプトのパス名※。

21

Jp1asEnvPath

環境ファイルのパス名※。

22

Jp1asSpoolPath

スプールディレクトリのパス名※。

スプールジョブのディレクトリ名は，ジョブが終了した状態では「ジョブ識別子-ジョブ名」ですが，この項目は，「ジョブ識別子」と出力します。

23

Jp1asJobLang

adshexecコマンドの実行開始時の環境変数LANGの値。

24

Jp1asJobEncode

adshexecコマンドの実行開始時の文字コード※。

25

RecTZExec

adshexecコマンドの実行時のタイムゾーン※。

このタイムゾーンは，稼働実績情報の日時を表現するためには使用しません。

26

Jp1asJobParentJobName

親ジョブのジョブ名。

ルートジョブの場合，空文字列。

27

Jp1asJobParentJobId

親ジョブのジョブ識別子。

ルートジョブの場合，空文字列。

28

Jp1asJobParentJobTime

親ジョブの実行開始日時※。

ルートジョブの場合，空文字列。

29

Jp1asJobParentJobPid

親ジョブのプロセスid。

ルートジョブの場合，空文字列。

30

Jp1asJobRc

adshexecコマンドの終了コード。

31

Jp1asJobSig

adshexecコマンドがシグナルで終了した場合のシグナル番号。

シグナルで終了しない場合，0。

Windowsの場合，空文字列。

32

EnvVar

adshexecコマンドを起動した時の環境変数。

「環境変数名＝値」の形式。

詳細は「(1)　項目EnvVarの環境変数」を参照してください。

33

Jp1asScriptLineNo

ジョブ定義スクリプトの行番号。

詳細は「(2)　項目Jp1asScriptLineNoの行番号」を参照してください。

34

Jp1asStepSeq

ジョブステップ番号。

ステップ外の場合，空文字列。

35

Jp1asStepName

ジョブステップ名。

ジョブステップ名の省略時，ステップ外の場合，空文字列。

36

Jp1asStepSkip

ジョブステップの実行をスキップした時の先行コマンド，ジョブステップの状態。

normal：正常であるためスキップ。

abnormal：エラー終了が発生しているためスキップ。

37

Jp1asStepRc

ジョブステップの終了コード。

38

Jp1asStepSig

ジョブステップがシグナルで終了した場合のシグナル番号。

シグナルで終了しない場合，0。

Windowsの場合，空文字列。

39

Jp1asCmdExec

コマンドの実行形態。

空文字列：フォアグラウンド実行。

back：バックグラウンド実行。

詳細は「(3)　項目Jp1asCmdExecのコマンド実行形態」を参照してください。

40

Jp1asCmdType

コマンドの種類。

assign：シェル変数更新のシェル標準コマンド。

embStd：シェル標準コマンド，シェル拡張コマンド。

embAdsh：スクリプト拡張コマンド。

extCmd：外部コマンド。

41

Jp1asCmdPath

コマンド名。

外部コマンドの場合，コマンドのパス名※。

詳細は「(4)　項目Jp1asCmdPathのコマンド名，コマンドのパス名」を参照してください。

42

Jp1asCmdArg

コマンドの引数。各引数はスペースで区切ります。

コマンドライン，ジョブ定義スクリプトに記述された引数そのものではなく，その引数を評価（展開）した結果の文字列で，コマンドに引き渡す文字列です。

43

Jp1asLang

コマンド実行時の環境変数LANGの値。

44

Jp1asCharEncode

コマンド実行時の文字コード※。

45

Jp1asCmdStart

コマンドの実行開始日時※。

46

Jp1asCmdEnd

コマンドの実行終了日時※。

47

Jp1asCmdElaps

コマンドの実行経過時間。

コマンドの実行開始日時と実行終了日時の差（単位：マイクロ秒）。

48

Jp1asCmdRc

コマンドの終了コード（リターンコード）。

49

Jp1asCmdSig

コマンドがシグナルで終了した場合のシグナル番号。

シグナルで終了しない場合，0。

Windowsの場合，空文字列。

50

Jp1asCmdPid

外部コマンドのプロセスid。

51

Jp1asCmdCpuUser

コマンドのユーザーCPU時間※（単位：マイクロ秒）。

52

Jp1asCmdCpuSys

コマンドのシステムCPU時間※（単位：マイクロ秒）。

53

Reserved1

予約項目。空文字列。

54

Reserved2

予約項目。空文字列。

55

Jp1asMsgId

メッセージid。

56

Jp1asMsgText

メッセージテキスト。

57

Jp1asMsgLang

メッセージ出力時の環境変数LANGの値。

58

Jp1asMsgEncode

メッセージ出力時の文字コード※。

注※

出力項目の内容について次の表で説明します。

項目

出力内容

改行文字

各項目の値に含まれる改行文字はスペースに置換します。

具体的には，LF(0x0A)，CR(0x0D)の各文字コードをそれぞれスペース(0x20)に置き換えます。

Windowsの改行，CR(0x0D)，LF(0x0A)の2バイトは，スペース(0x20)，スペース(0x20)の2バイトに置き換えます。

日時

日時は次の形式で表現します。

YYYY-MM-DD hh:mm:ss.nnn

YYYY：西暦年

MM：月

DD：日

hh：時

mm：分

ss：秒

nnn：ミリ秒

日時は，adshevtoutコマンドを実行した時の環境変数TZに指定されたタイムゾーンで表現します。

adshexecコマンドで稼働実績情報を採取する際に時刻取得関数でエラーが発生し，日時情報を取得できていない場合は，日時を次のように表現します。

EEEE-EE-EE ee:ee:ee.eee

タイムゾーン

UTCとの時差を次のどちらかの形式で示します。符号は環境変数TZの設定とは異なります。

+hh:mm:ss

-hh:mm:ss

hh：時

mm：分

ss：秒

時差が0である場合，"+00:00:00" です。

（例）

協定世界時（UTC）から9時間進んでいるタイムゾーンの場合，" +09:00:00" です。

タイムゾーンを上記の形式に変換できない場合，項目の値を "+EE:EE:EE" とします。

文字コード

Windowsの場合

実際に使用している文字コードに関係なくSJIS固定です。

Linux，AIX，HP-UX，Solarisの場合

環境変数LANGの値から判定した文字コードを次のように示します。

　SJIS：シフトJISコード

　EUC：Extended Unix Code

　UTF8：UTF-8

環境変数LANGの値から文字コードを判定できない場合，次の値とします。

　OTHER（環境変数LANGの値）

パス名

パス名の連続したディレクトリ区切り文字は，そのまま出力します。

連続したディレクトリ区切り文字を1個のディレクトリ区切り文字に置換しません。

たとえば，指定されたパス名が"C:¥¥dir"である場合，"C:¥dir"とは出力しません。"C:¥¥dir"と出力します。

CPU時間

外部コマンドの場合

外部コマンドを実行したプロセスのCPU時間。

外部コマンドでない場合

コマンドを実行したadshexecのプロセスのCPU時間。

各コマンドを実行した時のCPU時間ではありません。

(1)　項目EnvVarの環境変数

出力する環境変数は次のとおりです。

ジョブの起動時に設定されていた環境変数を出力します。

環境ファイルで環境変数を設定している場合，環境ファイルでの設定を反映したあとの環境変数を出力します。

adshexecコマンドが設定する環境変数を出力します。

adshexecコマンドが削除した環境変数は出力しません。

環境変数ADSH_JOB_NAMEの値はジョブ名の標準値，ADSHxxxxxx （xxxxxx：ジョブ識別子）です。#-adsh_jobで指定するジョブ名ではありません。

子孫ジョブについても上記と同様です。

(2)　項目Jp1asScriptLineNoの行番号

次の場合，項目の値は空文字列です。

trapコマンドで指定した，アクションのコマンドを実行する場合。

#-adsh_scriptコマンドを実行する場合。

コマンド置換で指定されたコマンドを実行する場合。

関数を実行した場合，関数の本体に定義された実行コマンドの行番号を出力します。

(3)　項目Jp1asCmdExecのコマンド実行形態

「cmd1 | cmd2 | cmd3」を実行した場合，cmd1，cmd2は別プロセスで実行するため，項目の値は"back"となります。

(4)　項目Jp1asCmdPathのコマンド名，コマンドのパス名

(a)　コマンドを別プロセスで実行した場合

次の例のように，コマンドを別プロセスで実行した場合，項目の値は"Another process script"となります。

（例）

(echo1 a ; echo2 b)
(echo1 a) &
(echo1 a ; echo2 b) &
{ echo1 a ; echo2 b ; } &
{ echo1 a ; echo2 b ; } |&

次の場合，「{ echo1 a ; echo2 b ; }」の部分の値が"Another process script"となります。

{ echo1 a ; echo2 b ; } | echo3 c

(b)　パイプで実行した場合

「cmd1 | cmd2 | cmd3」を実行した場合，cmd1，cmd2，cmd3がすべて外部コマンドのときは項目の値は次のようになります。

cmd1：コマンド名（ファイル名）

cmd2：コマンド名（ファイル名）

cmd3：パス名

3.7.9　ジョブ定義スクリプトの稼働実績情報の出力内容

ジョブ定義スクリプトの稼働実績情報の出力例を次に示します。この例では1行目にヘッダ行を出力しています。

"EvtName","RecTZ","RecTime","PhysicalHostName","LogicalHostName",…
"adshStart","+09:00:00","2012-07-12 12:23:15.381","HOST01","",…
"envVar","+09:00:00","2012-07-12 12:23:15.382","HOST01","",…
　　：（ジョブ定義スクリプトの稼働実績情報の出力内容）

3.8　ユーザー応答機能を使用する

ユーザー応答機能は，JP1イベントを発行することでJP1/IMにバッチジョブの情報を通知し，また，それに対して応答を返すことができる機能です。この機能を利用すると，JP1/AJSから起動した場合などのように標準入出力となる画面を持たない環境でも，指定した文字列を運用者に対して通知できます。

運用者は，コマンド実行によって発行されたJP1イベントを，JP1/IM - Managerに接続したJP1/IM - Viewから監視できます。JP1/IM - Viewの統合コンソールでは複数のサーバのJP1イベントを表示できるため，運用者は複数のサーバを一元的に監視できます。

3.8.1　前提条件

JP1/IMなど必要なプログラムについては，「2.2.2　環境ごとに必要なプログラム」を参照してください。また，「2.8　ユーザー応答機能を設定する」に示す環境設定を実施してください。

3.8.2　実行方法

ユーザー応答機能でJP1イベントとして発行する文字列は，次のコマンドで指定します。これらのコマンドはジョブ定義スクリプトに指定します。

コマンド名

用途

コマンド指定方法の記載個所

adshecho

事象通知メッセージをJP1イベントとして発行する

「9.4　シェル拡張コマンド」の「adshechoコマンド（指定した事象通知メッセージをJP1イベントとして発行する）」

adshread

応答要求メッセージを応答待ちイベントとして発行する

「9.4　シェル拡張コマンド」の「adshreadコマンド（指定した応答要求メッセージを応答待ちイベントとして発行する）」

発行されたJP1イベントはJP1/IM - Viewの画面に表示され，応答待ちイベントの場合，運用者はJP1/IM - Viewから応答を入力できます。

3.8.3　JP1/IM - Viewとの関係

ユーザー応答機能を使用すると，ジョブ定義スクリプトで指定した事象通知メッセージおよび応答要求メッセージがJP1イベントとして出力されます。JP1イベントとして出力した事象通知メッセージおよび応答要求メッセージは，JP1/IM - Viewで参照できます。

adshreadコマンドで指定した応答要求メッセージの場合は，JP1/IM - Managerで応答待ちイベントとして扱われます。応答待ちイベントはJP1/IM - Viewで滞留して表示され，JP1/IM - Viewから応答が入力できます。

応答手順についてはJP1/IMのマニュアルを参照してください。JP1/IM - Viewから応答入力する場合に［応答入力］画面に表示される状態と意味を次の表に示します。

表3‒4　JP1/IM - Viewの［応答入力］画面に表示される状態と意味

状態

意味

JP1/IM - Viewからの応答入力可否

READY TO RESPOND

応答を入力できる状態である。

○

NO LONGER MANAGED BY JP1/AS

応答要求メッセージが，JP1/Advanced Shellによって管理されていないため，応答できない状態である。

×

RESPONDED SUCCESSFULLY

応答要求メッセージに対する応答に成功した。

×

ALREADY RESPONDED

応答要求メッセージに対する応答がすでに入力されている。

×

INTERNAL ERROR

JP1/Advanced Shellで内部エラーが発生したため，応答できない。

×

（凡例）

○：応答できる。

×：応答できない。

3.8.4　ユーザー応答機能の入出力先に標準入出力を指定する方法

adshechoコマンドやadshreadコマンドはJP1イベントを発行するため，ジョブ定義スクリプトをデバッグする場合など，JP1/BaseやJP1/IMが存在しない環境で使用すると，これらのコマンドはエラー終了します。このような場合でもジョブ定義スクリプトのデバッグ作業を行えるように，ユーザー応答機能では次の機能を提供します。

JP1/IM - Viewではなく標準出力に文字列を出力する機能

JP1/IM - Viewからではなく標準入力から応答を入力する機能

adshechoコマンドやadshreadコマンドを使用したときにJP1イベントを発行するか標準入出力を使用するかは，USERREPLY_DEBUG_DESTINATIONパラメーターで選択できます。USERREPLY_DEBUG_DESTINATIONパラメーターは，システム環境ファイルまたはジョブ環境ファイルで指定します。また，adshechoコマンドやadshreadコマンドに-dオプションを指定することで，文字列の入出力先を標準入出力にすることができます。

ユーザー応答機能の入出力先に標準入出力を指定する機能は，デバッグ実行時（UNIXの場合はadshexec -dで実行，Windowsの場合は開発環境から実行）だけ有効です。この機能を使用する場合，ユーザー応答機能の関連プログラムであるJP1/Base，JP1/Integrated Management - Manager，JP1/Integrated Management - Viewは不要です。また，ユーザー応答機能管理デーモン・サービスを起動する必要はありません。

また，次のパラメーターの指定は無効となります。

HOSTNAME_JP1IM_MANAGERパラメーター

USERREPLY_JP1EVENT_INTERVALパラメーター

USERREPLY_WAIT_MAXCOUNTパラメーター

3.8.5　adshechoコマンドまたはadshreadコマンドがエラー終了した場合の対処

adshechoコマンドまたはadshreadコマンドがエラー終了した場合でも，再実行によって成功する場合があります。再実行する場合は次の例を参考に，adshechoコマンドまたはadshreadコマンドを再実行するジョブ定義スクリプトを作成してください。

#! /opt/jp1as/bin/adshexec

###
#adshreadコマンドを実行する関数
#引数  ：応答要求メッセージ
#終了コード：0 (正常終了)
#        1 (リトライ可能なエラーで終了)
#        2 (リトライ不可能なエラーで終了)
###

func_adshread()
{
    adshread ans "$1"

  case "$?" in
    # 正常終了
    0 )             return 0 ;;
    # リトライ可能なエラーで終了した場合
    3 | 4 | 6 | 8 ) return 1 ;;
    # 上記以外のエラーで終了
    * )             return 2 ;;
  esac
}

###
### スクリプトの本体
###

#
# ジョブとして実行する処理を記述
#

###
### オペレータの応答を待って処理を続行する
###

  while :
  do

    #adshreadコマンドを実行する関数を呼び出す。
    func_adshread "処理を続行しますか？(Y/N)【ホスト名：$HOSTNAME, スクリプト名：$0】"

    if [ $? = 0 ]; then       #adshreadコマンドが正常に終了した
      break                   #ループを抜ける
    elif [ $? = 1 ] ; then    #adshreadコマンドがリトライ可能なエラーで終了した
      continue                #adshreadコマンドを再実行する
    else                      #adshreadコマンドがリトライ可能なエラー以外で終了した
      echo "adshreadコマンドがエラー終了しました。"
      exit 1                  #スクリプトを終了する
    fi
  done

###
### adshreadが受け取った応答に応じて処理を行う
###

  if [ "$ans" = "Y" ] ; then
    adshecho "「Y」が入力されました。処理を続行します。"
  elif [ "$ans" = "N" ] ; then
    adshecho "「N」が入力されました。処理を終了します。"
    exit 1                       #スクリプトを終了する
  else
    adshecho "指定以外の応答が入力されました。処理を終了します。"
    exit 1                       #スクリプトを終了する
  fi

3.8.6　注意事項

HOSTNAME_JP1IM_MANAGERパラメーターで指定したJP1/IM - Managerに接続したJP1/IM - View以外からは応答はできません。

JP1/IM - Managerが滞留できる応答待ちイベント数には上限があるため，これを超えない運用を設計してください。

JP1/IM - Viewから入力できる文字コードは，ASCII文字コード（制御文字を除く）の範囲内です。範囲以外の文字コードを入力するとエラーメッセージが表示されるため，範囲内の文字コードで再入力してください。

adshechoコマンドおよびadshreadコマンドを実行すると，HOSTNAME_JP1IM_MANAGERパラメーターで指定したホストに対して，JP1/BaseがTCP/IPのコネクションの切断と新たなポートで接続します。

コネクションが使用していたポートは，OSのMSL（Maximum Segment Lifetime）× 2（秒）の間は使用できなくなるため，MSLの値が大きいまたはポート数が少ない場合には，ポートが枯渇するおそれがあります。

そのため，MSL × 2（秒）の間に出力するJP1イベント数，MSL，およびポート数は，次に示す条件を満たすようにしてください。

n × MSL × 2/3 ＜ ポート数

　n：MSL × 2（秒）の間にユーザー応答機能によって出力するJP1イベントの数

UNIXの場合，応答要求メッセージを共有メモリ上で管理するために，ユーザー応答機能管理デーモンの起動時に次の名称のファイルをスプールディレクトリに作成します。

.adsh_mqueue

.adsh_mqueue_論理ホスト名（論理ホストのユーザー応答機能管理デーモンを起動した場合）

上記のファイルは，ユーザー応答機能管理デーモンの動作中は削除しないでください。なお，上記のファイルはユーザー応答機能管理デーモンを終了しても削除されないで，次のユーザー応答機能管理デーモン起動時に再利用されます。

HP-UXの場合は，上記のファイルのほかに，次の名称のファイルをスプールディレクトリに作成します。

.adsh_mqueueS

.adsh_mqueue_論理ホスト名S（論理ホストのユーザー応答機能管理デーモンを起動した場合）

上記のファイルは，ユーザー応答機能管理デーモンの動作中は削除しないでください。なお，上記のファイルはユーザー応答機能管理デーモンの終了時に削除されます。

OSをシャットダウンする場合は，ユーザー応答機能管理デーモンおよびサービスを停止してからシャットダウンしてください。ユーザー応答機能管理デーモンおよびサービスの停止時に応答待ち状態の応答要求メッセージが存在する場合，これらのデーモンやサービスは，応答要求メッセージをキャンセルしてから停止します。しかし，OSのシャットダウン処理が実行されると，応答要求メッセージのキャンセルが実行される前にシャットダウンする場合があります。この場合，JP1/IM - Viewに応答待ちイベントが滞留したままになります。

3.9　スプールジョブを削除する

スプールに格納されたスプールジョブは，スプールディレクトリに保存されたまま，増加します。このため，定期的に古いスプールジョブを削除してディスクの空き容量を増やす必要があります。

スプールジョブの削除方法

スプールジョブを削除するためには，次のadshhkコマンドを入力します。adshhkコマンドの指定方法については「adshhkコマンド（スプールジョブを削除する）」を参照してください。

adshhk 対象リストファイル名 レポートファイル名 ログファイル名 ［日数］

対象リストファイル名のファイルには，削除したいスプールジョブのあるスプールディレクトリ名などをadshhkコマンドの実行前に記載する必要があります。

レポートファイル名のファイルにadshhkコマンドの実行結果が出力されます。実行結果は，トレースログにも出力されます。

ログファイル名のファイルには，エラーメッセージを出力します。

adshhkコマンド実行日の前日を基点にして，指定した日数以前のスプールジョブを削除します。例えば，2を指定した場合，昨日（基点）とおとといの2日間の指定となるため，おととい以前のスプールジョブを削除します。なお，当日のスプールジョブは削除できません。

adshhkコマンドで作成されるレポートファイル

adshhkコマンドを実行した場合，実行結果がレポートファイルに出力されます。次のレポートファイルの例では，先頭行にヘッダ情報が出力されています。

"jobid","jobname","rc","start date","end date","act","info","spool","target days","execute date"
"000056","JOB001","1","2011/06/13 09:03:31","2011/06/13 09:03:31","delete","","C:¥Documents and Settings¥All Users¥Documents¥Hitachi¥jp1as¥jp1ase¥spool","15","2011/06/30 18:19:58"
                  ：

（凡例）

実行結果の1行目の見出しの意味は次のとおりです。2行目以降には対応した項目の値が表示されます。

見出し

意味

jobid

ジョブ識別子

jobname

ジョブ名

rc

ジョブの終了コード

start date

ジョブの実行開始日時（yyyy/mm/dd hh:mm:ssの形式）。

デバッグモードで起動したときにデバッガ自身に割り当てるスプールは，ジョブの実行結果ではなくデバッガのログ出力用のため，デバッグの開始日時が出力されます。

end date

ジョブの終了日時（yyyy/mm/dd hh:mm:ssの形式）。

デバッグモードで起動したときにデバッガ自身に割り当てるスプールは，ジョブの実行結果ではなくデバッガのログ出力用のため，ジョブ終了日時は出力されません。

act

適用した動作（keep：保存，delete：削除，error：削除処理中にエラー発生）

info

エラーの詳細情報

spool

スプールディレクトリ

target days

対象日数

execute date

コマンドの実行開始日時（yyyy/mm/dd hh:mm:ssの形式）

注意事項

スプールのディレクトリの下に，JP1/Advanced Shellが作成するファイルやディレクトリではないユーザー独自のファイルやディレクトリが存在する場合，adshhkコマンドはKNAX4419-Eメッセージなどを出力して終了します。

3.10　カバレージ情報を取得する

ユーザーがジョブ実行時にカバレージ情報を取得する指定をすると，JP1/Advanced Shellは，ジョブ定義スクリプトのコマンドが実行されたかどうかをカバレージ情報ファイル（ascファイル）に記録します。

ユーザーがカバレージ情報を操作するコマンドを実行して，カバレージ情報をマージしたり，表示したりできます。

3.10.1　カバレージ情報の概要

カバレージ情報とは，プログラムのテストがどれだけ網羅されているかを示す指標です。カバレージ情報の指標にはC0情報とC1情報があります。

(1)　C0情報とC1情報

C0情報とC1情報について説明します。

C0（ステートメントカバレージ情報）：コマンド網羅性

テスト対象となるジョブ定義スクリプト中のコマンドをどれだけ実行したかの指標で，次の式で計算できます。

C0＝（実行が済んだコマンドの数）／（全コマンドの数）×100（%）

C1（ブランチカバレージ情報）：分岐網羅性

テスト対象となるジョブ定義スクリプト中の分岐をどれだけ実行したかの指標で，次の式で計算できます。

C1＝（実行が済んだ分岐の数）／（実行できる分岐の数）×100（%）

(2)　カバレージ情報の機能

カバレージ情報は，ジョブ定義スクリプトをテストするときの参考資料として使用できます。また，カバレージ情報を蓄積，表示またはマージできます。カバレージ情報の取得対象については，「付録A　カバレージ情報を取得する対象」を参照してください。

カバレージ情報の採取，表示およびマージ方法には，WindowsとUNIXとで次の表で示す相違点があります。

表3‒5　WindowsとUNIXでのカバレージ情報の採取，表示およびマージの相違点

環境

カバレージ情報の採取

カバレージ情報の表示

カバレージ情報のマージ

Windowsの開発環境

JP1/Advanced Shellエディタのデバッグ機能を使用してカバレージ情報を採取します。採取した情報はカバレージ情報ファイルに蓄積されます。

実行環境の設定で「カバレージを蓄積する」を選択しないとカバレージ情報は採取しません。

カバレージ採取の一括有効化機能は利用できません。

次のどちらかの方法で表示できます。

adshcvshowコマンド

JP1/Advanced Shellエディタ

adshcvmergコマンド※でマージします。

エディタではマージできません。

Windowsの実行環境

ジョブ定義スクリプト実行時にadshexecコマンドでカバレージの蓄積オプション（-t）を指定して，カバレージ情報を採取します。採取した情報はカバレージ情報ファイルに蓄積されます。

デバッグ機能は使用できません。

adshcvshowコマンドで表示します。

adshcvmergコマンド※でマージします。

UNIXの実行環境

adshexecコマンドで次のオプションを指定します。両方のオプションを指定することもできます。

カバレージの蓄積オプション（-t）を指定してカバレージ情報ファイルに採取します。

デバッグオプション（-d）を指定してメモリに採取します。

カバレージ情報ファイルに採取した場合，adshcvshowコマンドで表示します。

メモリに採取した場合，info coverageコマンドで表示します。

adshcvmergコマンド※でマージします。

注

異なるプラットフォーム間でのカバレージ情報の相互運用で，次の注意が必要です。

異なるプラットフォーム間でカバレージ情報を転送しないでください。

採取したカバレージ情報ファイルは，他OSのコマンドでは処理できません。

注※

adshcvmergコマンドによって，1回の実行につき2つのカバレージ情報ファイルのカバレージ情報をマージできます。3つ以上のカバレージ情報ファイルのカバレージ情報をマージする場合は，このコマンドを複数回実行して，カバレージ情報のマージを繰り返してください。

3.10.2　カバレージ情報の管理

カバレージ情報はカバレージ情報ファイル（ascファイル）で管理します。

(1)　カバレージ情報ファイルのファイル名と格納ディレクトリ

(a)　ファイル名

カバレージ情報はジョブ定義スクリプトとユーザー単位にまとめられます。このため，デフォルトのascファイル名には，ジョブ定義スクリプト名とユーザー名が含まれます。

実行環境の場合，コマンドオプションで任意のascファイル名を指定できます。

エディタの場合，デフォルトのascファイル名となります。任意のascファイル名は指定できません。

デフォルトのascファイル名を次に示します。

ジョブ定義スクリプト名（拡張子を除きます）_ユーザー名.asc

ascファイルの名称のバイト数がOSの上限値を超えた場合，カバレージの取得に失敗します。実行するジョブ定義スクリプトのファイル名の文字数に注意してください。

(b)　格納ディレクトリ

実行環境の場合，デフォルトのascファイルは，コマンド実行時のカレントディレクトリに作成します。

開発環境の場合，Windowsのエディタからカバレージ情報を蓄積しているときは，ジョブ定義スクリプトファイルがあるディレクトリにascファイルを作成します。

(2)　ascファイルの更新

ascファイルは，カバレージ情報の蓄積，またはマージ時に更新されます。

ascファイルは複数のユーザーで同時に共用できません。ほかのユーザーで使用中のascファイルを使おうとすると，KNAX6211-Eメッセージを出力してコマンドがエラーとなります。

(3)　ascファイルの出力処理

ディスク容量不足などの理由で，ascファイルへのカバレージ情報の書き込みが失敗すると，カバレージ情報が失われます。

指定されたascファイル（デフォルトのascファイル名の場合を含む）がすでに存在する場合，前に採取したカバレージ情報を失わないように，次のようにascファイルが更新されます。指定されたascファイル（デフォルトのascファイル名の場合を含む）は直接更新しません。

一時ascファイルに新しいカバレージ情報を出力する。

既存のascファイルをバックアップascファイルに変更する。

一時ascファイルを指定されたascファイル（デフォルトのascファイル名の場合を含む）に変更する。

バックアップascファイルを削除する。

このため，ascファイルへのカバレージ情報の出力処理が途中で終了しても，コマンドの再実行時にカバレージ情報が適切に回復して，コマンドの処理を続行します。

一時ascファイルとバックアップascファイルは，コマンドの処理が正常に終了した場合は残りませんが，ascファイルへのカバレージ情報の出力処理が途中で終了すると残る場合があります。これらのファイルは，コマンドを再実行した場合，またはコマンドを処理して正常に終了した場合，削除されます。

一時ascファイルは手動で削除してもかまいませんが，バックアップascファイルは削除しないでください。削除すると，コマンドがエラー終了する直前までに蓄積してきたカバレージ情報を失うことになります。

カバレージ機能を使用する場合，通常，上記のことを意識する必要はありません。

指定されたascファイル（デフォルトのascファイル名の場合を含む）が，新しいカバレージ情報で更新されたかどうかは，直近のコマンドの実行で，KNAX6242-Iメッセージの出力の有無で判断できます。KNAX6242-Iメッセージを出力した場合，指定されたascファイル（デフォルトのascファイル名の場合を含む）の内容は，新しいカバレージ情報で更新されています。

(4)　ascファイルに関連するファイル名

カバレージ情報をascファイルに採取するとき，一時的に格納するファイルを作成します。このファイルを一時カバレージ情報ファイル（一時ascファイル）と呼びます。

一時ascファイルのファイル名

次のように，ファイル名の先頭部分が固定の文字列となります。

adshexecコマンドの場合：adshexec_temp_任意

バックアップascファイルのファイル名

ascファイルを一時的にリネームするファイル名（バックアップascファイル）は次のようになります。

adshexecコマンドの場合：adshexec_backup_任意

コマンドの引数に指定するascファイル（デフォルトのascファイルを含む）は，前述したファイル名がOSが許容するパス名の最大バイト数以下となるように指定する必要があります。

コマンドの実行中に処理がキャンセルされると，一時ascファイルとバックアップascファイルが残ることがあります。残ったファイルの扱いを次に示します。

一時ascファイルが残っていても，コマンドを再実行できます。なお，一時ascファイルは手動で削除して再実行することもできます。

バックアップascファイルが残っている場合は，このバックアップファイルを削除しないでください。残っているバックアップascファイルは，adshexecコマンドが自動的に元のascファイル名に戻してカバレージ情報を採取します。また，手動で元のascファイル名に戻して再実行することもできます。

一時ascファイル，バックアップascファイルと同じ名称を持つユーザーファイルを作成しないでください。ascファイルと同一のディレクトリに，ascファイルに対応する一時ascファイルと同名のファイルがあると削除されます。ascファイルに対応するバックアップascファイルと同名のファイルがあると，ascファイルと扱ったり，削除されたりします。

(5)　一時ascファイルとバックアップascファイルの使用

実行環境では，adshexecコマンドの-tおよび-dオプションの指定によって，一時ascファイルとバックアップascファイルを使用するかどうかが変わります。実行環境での一時ascファイルとバックアップascファイルの使用を次の表に示します。

表3‒6　実行環境での一時ascファイルとバックアップascファイルの使用

adshexecコマンドのオプション

Windows

UNIX

-t

-d

一時ascファイル

バックアップascファイル

一時ascファイル

バックアップascファイル

なし

なし

×

×

×

×

なし

あり

−

−

○

×

あり

なし

○

○

○

○

あり

あり

−

−

○

○

（凡例）

○：ファイルを使用します。

×：ファイルを使用しません。

−：デバッグオプションは，Windowsでサポートしていません。

Windowsの開発環境では，［実行環境の設定］ダイアログボックスで指定する「カバレージの蓄積」の指定によって，一時ascファイルとバックアップascファイルを使用するかどうかが変わります。開発環境での一時ascファイルとバックアップascファイルの使用を次の表に示します。

表3‒7　開発環境での一時ascファイルとバックアップascファイルの使用

「カバレージの蓄積」の指定

Windowsの開発環境（エディタ）

一時ascファイル

バックアップascファイル

蓄積しない

×

×

蓄積する

○

○

蓄積する（ジョブ定義スクリプトファイル更新時はカバレージ情報ファイルを上書き）

○

○

（凡例）

○：ファイルを使用します。

×：ファイルを使用しません。

(6)　コマンドと一時ascファイル

コマンドの実行時，一時ascファイルを作業ファイルとして使用します。コマンドの実行前に一時ascファイルと同名のファイルがすでに存在する場合は，削除します。

(7)　adshexecコマンド実行時のascファイルの処理方法

adshexecコマンド実行時のascファイルの処理方法は，次のようになります。

表3‒8　adshexecコマンド実行時のascファイルの処理方法

コマンド起動時の状態

コマンドの処理

job.asc

adshexec_backup_job.asc

job.asc

adshexec_backup_job.asc

ascファイルの状態と処理方法

×

×

新規作成

なし

新旧のascファイルがない状態です。

ascファイルを新規に作成します。

×

○

なし

job.ascへ名称を変更

旧ascファイルjob.ascをバックアップファイルadshexec_backup_job.ascに名称を変更した状態です。

バックアップascファイルadshexec_backup_job.ascから，ascファイルjob.ascを回復します。

○

×

このファイルを使用

なし

job.ascは，旧ascファイル，新ascファイルのどちらかです。

新ascファイルである場合，直前の実行でKNAX6242-Iメッセージを出力しています。

○

○

このファイルを使用

このファイルを削除

job.ascは新ascファイル，adshexec_backup_job.ascは旧ascファイルです。

旧ascファイルであるadshexec_backup_job.ascを削除します。

新ascファイルであるjob.ascを使用します。

（凡例）

○：ファイルが存在します。

×：ファイルが存在しません。

job.asc：ascファイル名

adshexec_backup_job.asc：バックアップascファイル名

3.10.3　カバレージ情報の蓄積

(1)　カバレージ情報の蓄積方法と形式

ジョブ定義スクリプトを実行する場合に実行コマンドのオプションでカバレージ情報を蓄積することを指定します。カバレージ情報の蓄積を指定すると，ascファイルにカバレージ情報が蓄積されます。

カバレージ情報を蓄積するためのオプションは，-tオプションです。-oオプションでascファイルのファイル名を任意に変更できます。カバレージ情報を蓄積するオプションを指定した実行コマンドの形式を次に示します。通常の場合，実行するジョブ定義スクリプトに差分があったときはエラーとします。ただし，-fオプションを指定した場合，エラーにはならないでカバレージ情報を上書きします。

adshexec ［ほかのオプション…］ ［-t ［-f ］［-o ascファイルのパス名］］
ジョブ定義スクリプトファイルのパス名 ［実行時パラメーター］

UNIXの場合に，-tオプションではなく-dオプションを指定してadshexecコマンドを実行したときは，メモリ上だけでカバレージ情報を採取します。このとき，デバッガのinfo coverageコマンドでカバレージ情報を表示できます。デバッガのquitコマンドを入力してデバッガを終了すると，採取したカバレージ情報を破棄してメモリを解放します。

(2)　蓄積方法の種類

カバレージ情報の蓄積方法には，1回目の蓄積である初回蓄積と，2回目以降の蓄積である継続蓄積とがあります。1回目か2回目以降かの判定は，ascファイルがあるかどうかで決まります。

ジョブ定義スクリプトに変更があった場合，変更部分の行番号が不一致になります。このため，ascファイルにジョブ定義スクリプトの内容のバックアップ情報を保持します。ascファイルのバックアップ情報と差分が発生した場合，ジョブ定義スクリプトを実行しないでエラー終了となります。

初回蓄積の場合，ascファイルを新たに作成し，実行時のカバレージ情報を書き込みます。継続蓄積の場合，ascファイルの内容を読み込み，ascファイルの情報に現在の実行のカバレージ情報を追加して，ascファイルを更新します。

(a)　初回蓄積の例

初回蓄積の例を示します。

例1

カバレージ情報ファイル（ascファイル）が存在しない状態で，カバレージ情報を採取します。

例2

次に示す条件がすべて成立する場合は，初回蓄積になります。

カバレージ情報ファイル（ascファイル）が存在する

ジョブ定義スクリプトファイルが，すでに存在するカバレージ情報ファイルのカバレージ情報を採取したときと異なる

ジョブ定義スクリプトファイルが異なっていてカバレージ情報ファイルを初期化するオプション（adshexecコマンドで-fオプション）の指定がある

(b)　継続蓄積の例

次に示す条件がすべて成立する場合は，継続蓄積になります。

すでにカバレージ情報ファイル（ascファイル）が存在する

ジョブ定義スクリプトファイルが，すでに存在するカバレージ情報ファイルのカバレージ情報を採取したときと同一である

継続蓄積では，ジョブ定義スクリプトが前回カバレージ情報を採取したときと同一であることが継続蓄積の条件の1つになっています。次に示す場合，ジョブ定義スクリプトは同一であると判断します。

ジョブ定義スクリプトをバイナリ比較してサイズと内容が同一である

上記の条件が成立すれば，ジョブ定義スクリプトはファイル名やパスが異なっていても同一として取り扱います。

(3)　カバレージ情報ファイルに登録するジョブ定義スクリプトのファイル名

継続蓄積の場合，最後にカバレージ情報を採取したときのジョブ定義スクリプトのファイル名が有効となります。

例

次のファイルは，ファイル名は異なりますが，同一のジョブ定義スクリプトとします。

/dir1/file1

/dir2/file2

出力ascファイルをout.ascとして，上記のジョブ定義スクリプトを使用して，継続蓄積を実行すると，out.asc内のスクリプトファイル名は次に示すようになります。

adshexec -t -o out.asc /dir1/file1を実行すると，out.asc内のスクリプトファイル名は，/dir1/file1となります。

adshexec -t -o out.asc /dir2/file2を実行すると，out.asc内のスクリプトファイル名は，/dir2/file2となります。

再びadshexec -t -o out.asc /dir1/file1を実行すると，out.asc内のスクリプトファイル名は，/dir1/file1となります。

(4)　カバレージ情報ファイルの拡張子

カバレージ情報ファイル（ascファイル）の拡張子のデフォルトは，「.asc」です。ただし，カバレージ情報ファイルの拡張子「.asc」でなくてもかまいません。カバレージ情報を取得する場合，カバレージ情報ファイルとして指定した任意の拡張子のファイルをascファイルとして扱います。

(5)　ジョブ定義スクリプトのサイズ

ジョブ定義スクリプトファイルのサイズは，2GB未満とします。

(6)　蓄積したカバレージ情報の初期化

蓄積したカバレージ情報を初期化する場合は，該当するascファイルをrmコマンドなどで削除し，初回蓄積として再度カバレージ情報を採取してください。

3.10.4　カバレージ情報の表示

ジョブ定義スクリプトを実行し，カバレージ情報を表示するまでの流れを次の図に示します。

図3‒5　カバレージ情報の表示の流れ

なお，開発環境のエディタでもカバレージ情報を表示できます。エディタを使用してカバレージ情報を表示する方法の詳細については，「4.4.7　カバレージ情報を表示する」を参照してください。

(1)　表示方法とコマンドの形式

カバレージ情報は，カバレージ情報を表示するコマンド（adshcvshowコマンド）で表示します。コマンドに指定したascファイルの内容を表示します。-lオプションのオプション値としてジョブ定義スクリプトの範囲を指定することで，指定した範囲内のカバレージ情報を表示できます。

-sオプションを指定した場合，バックアップされているジョブ定義スクリプトの内容だけを表示します。-sオプションはascファイルのバックアップされているジョブ定義スクリプトの内容の確認やジョブ定義スクリプトとの差分を確認したいときに使用します。-sオプションを指定した場合，-lオプションによる範囲指定はできません。

カバレージ情報表示コマンドの形式を次に示します。

adshcvshow ｛[-l n1[-[n2]][,n3[-[n4]]]...]|-s｝ ascファイルのパス名

行指定の形式は，","で複数指定し"-"で範囲を指定します。例えば，1行目〜10行目と15行目と21行目〜30行目を指定したい場合，次のように指定します。

adshcvshow -l 1-10,15,21-30 ascファイルのパス名

"-"の後ろに数字を指定しなければ，前の値から最終行までの範囲を意味します。例えば，21行目から最終行まで指定したい場合，次のように指定します。

adshcvshow -l 21- ascファイルのパス名

(2)　カバレージ情報の表示形式

カバレージ情報の表示形式の説明を，次の表に示します。

表3‒9　カバレージ情報の表示形式の説明

項目

説明

JP1/Advanced Shell カバレージ情報（JP1/Advanced Shell Coverage Information）

JP1/Advanced Shellで取得したカバレージ情報を示します。

日時（右上の部分）

adshcvshowコマンドを実行した日時をyyyy-mm-dd hh:mm:ssの形式で表示します。月，日，時，分，秒が1桁の場合は，先頭に0を付加します。

見出し情報（Header Information）

見出しを示します。

ジョブ定義スクリプト名（Shellscript Name）

ジョブ定義スクリプトの絶対パス名を表示します。

ascファイルのバージョン（Asc version）

ascファイルのバージョン番号を表示します。

カバレージ情報の採取開始時刻（Coverage Start Time）

カバレージ情報の採取開始時刻を表示します。形式は，日時と同じです。

カバレージ情報の採取終了時刻（Coverage End Time）

カバレージ情報の採取終了時刻を表示します。形式は，日時と同じです。

カバレージ情報の採取回数（Test Count）

カバレージ情報を採取した回数を表示します。

カバレージ情報の採取回数が9999を超えた場合，「9999+」と表示します。

バッチジョブを実行するコマンド（adshexecコマンド）のオプションの指定によって採取回数の数え方が変わります。

adshexecコマンド（-tと-dを指定）

メモリ上のカバレージ情報の場合

・初期値

ascファイルがあるときは，ascファイルのカバレージ情報の採取回数となります。

ascファイルがないときは，0となります。

・更新

デバッガのrunコマンドの実行ごとにカバレージ情報の採取回数を1増やします。

ascファイルの場合

adshexecコマンドの終了時にデバッガのrunコマンドの実行回数だけカバレージ情報の採取回数を増やします。

adshexecコマンド（-tを指定）

　adshexecコマンドの終了時にカバレージ情報の採取回数を1増やします。

adshexecコマンド（-dを指定）

メモリ上のカバレージ情報の場合

・初期値

カバレージ情報の採取回数の初期値は0になります。

・更新

デバッガのrunコマンドの実行ごとにカバレージ情報の採取回数を1増やします。

ascファイルの場合

ascファイルは更新されません。

メイン情報（Main Information）

カバレージ情報（C0，C1情報）を表示します。

行番号（Line）

1から始まります。

行番号が9999を超えた場合，「9999+」と表示します。

付加情報（Info）

C0，C1情報の見出しです。カバレージ情報は，行単位に表示します。コマンドラインが複数行にまたがっている場合，コマンドが存在する行にC0，C1情報を表示します。

C0，C1情報のどちらも32個以内ならカバレージ情報を記録でき，この項目はスペースとなります。記録できない場合に表示される文字と意味を次に示します。

overC0：C0情報が32を超えています。

overC1：C1情報が32を超えています。

over：C0情報とC1情報の両方が32を超えています。

C0情報（C0）

C0情報を表示します。

@：コマンドが実行されました。

-：コマンドは実行されていません。

行に複数のコマンドが存在する場合，行の先頭から最大4個のコマンドまでのC0情報を4文字で表示します。

C1情報（C1）

C1情報を表示します。

@：実行パスが実行されました。

-：実行パスは実行されていません。

行に複数の実行パスが存在する場合，行の先頭から最大4個の実行パスまでのC1情報を4文字で表示します。

ジョブ定義スクリプト（<Shellscript Image>）

ジョブ定義スクリプトの内容を，行単位に表示します。範囲指定した場合，指定された範囲の行だけを表示します。

合計の情報（Total Information）

C0，C1情報の合計を表示します。範囲指定した場合，合計の情報以降は，表示されません。個数が99999999を超えた場合，「99999999+」と表示します。

C0，C1対象の総数（Target Total）

<C0>に対象コマンドの総数，<C1>に実行パスの総数を表示します。

<C0>

ジョブ定義スクリプト内のすべてのC0対象コマンドの個数を含みます。C0対象のコマンド数が32個を超える行が存在する場合でもすべての個数がカウントされます。

<C1>

ジョブ定義スクリプト内のすべてのC1対象実行パスの個数を含みます。C1対象の実行パス数が32個を超える行が存在する場合でもすべての個数がカウントされます。

C0，C1対象の実行した総数（Executed Total）

<C0>に実行したコマンドの総数，<C1>に実行した実行パスの総数を表示します。

<C0>

カバレージ情報として，実行を記録するのは，各行内で先頭からC0対象である32個のコマンドまでです。この32個のコマンド内の実行したコマンドが，カウントされます。

<C1>

カバレージ情報として，実行を記録するのは，各行内で先頭からC1対象である32個の実行パスまでです。この32個の実行パス内の実行した実行パスが，カウントされます。

C0，C1対象の未実行の総数（Unexecuted Total）

<C0>に未実行のコマンドの総数，<C1>に未実行の実行パスの総数を表示します。

<C0>

「C0対象の総数（Target Total）−C0対象の実行した総数（Executed Total）」になります。

<C1>

「C1対象の総数（Target Total）−C1対象の実行した総数（Executed Total）」になります。

実行比率（Coverage Rate）

C0とC1の実行比率（％）を表示します。小数点第2位以下を切り捨てて小数点第1位までを表示します。

<C0>

「C0対象の実行した総数（Executed Total）／C0対象の総数（Target Total）」になります。

C0対象のコマンド数が32個を超える行が存在した場合，すべてのコマンドを実行しても100％より小さくなります。

<C1>

「C1対象の実行した総数（Executed Total）／C1対象の総数（Target Total）」になります。

C1対象の実行パス数が32個を超える行が存在した場合，すべての実行パスを実行しても100％より小さくなります。

カバレージ情報を表示するコマンドの表示例を，C0，C1に情報を行ごとに1個まで表示した場合と4個まで表示した場合とに分けて示します。

(a)　カバレージ情報を表示するコマンドの表示例（C0，C1に情報を行ごとに1個まで表示した場合）

この例では，C0とC1が取得されたことが，Main Informationのところに1個の「@」と「-」で表示されています。

                    * JP1/Advanced Shell Coverage Information *

                                                            2011-07-20 20:40:09
****    Header Information    **************************************************
Shellscript Name     : /home/test/sample
Asc version          : 1.0
Coverage Start Time  : 2011-07-20 20:40:09
Coverage End Time    : 2011-07-20 20:40:09
Test Count           :    1

****    Main Information      **************************************************
Line   Info   C0   C1   <Shellscript Image>
    1
    2         @         echo 1
    3
    4         @    @    if true
    5                   then
    6         @           echo 2
    7              -    fi
    8
    9         @         echo 3
   10
   11         @    -    if false
   12                   then
   13         -           echo 4
   14              @    fi
   15
   16         @         echo 5
   17
   18         @    @    if true
   19                   then
   20         @           echo 6
   21              -    else
   22         -           echo 7
   23                   fi
   24
   25         @         echo 8
   26
   27         @    -    if false
   28                   then
   29         -           echo 9
   30              @    else
   31         @           echo 10
   32                   fi
   33
   34         @         echo 11
   35
   36

****    Total Information     **************************************************
                         <C0>      <C1>
  Target     Total         15         8
  Executed   Total         12         4
  Unexecuted Total          3         4
--------------------------------------------------------------------------------
                         <C0>      <C1>
  Coverage   Rate        80.0 %    50.0 %

(b)　カバレージ情報を表示するコマンドの表示例（C0，C1に情報を行ごとに4個まで表示した場合）

この例では，C0とC1が複数回取得されたことが，Main Informationの13行目と37行目に表示されています。

Lineの13行は，Lineの3行から7行までを1行に記述した場合です。

C0の列の"@@@@"の各文字は，先頭から，"echo 1"，"echo 2"，"echo 3"，"echo 4"の各コマンドを実行したことを示します。

C0の列の"@@@@"には，"echo 5"のコマンドを実行したことを示す情報はありません。

Lineの37行は，Lineの20行から31行までを1行に記述した場合です。

C0の列の"@@--"の各文字は，先頭から順に対応します。

1文字目の"@"は，"true"のコマンドを実行したことを示します。

2文字目の"@"は，"echo 1"のコマンドを実行したことを示します。

3文字目の"-"は，先頭から1個目の"elif"の次にある"true"のコマンドを実行しなかったことを示します。

4文字目の"-"は，"echo 2"のコマンドを実行しなかったことを示します。

上記以外のコマンド，つまり，先頭から2番目の"elif"の次にある"true"以降のコマンドについての実行の有無は，C0の列の"@@--"の各文字には表示しません。

C1の列の"@---"の各文字は，先頭から順に対応します。

1文字目の"@"は，"if"の最初の"then"の実行パスを実行したことを示します。

2文字目の"-"は，先頭から最初の"elif"の"then"の実行パスを実行しなかったことを示します。

3文字目の"-"は，先頭から2番目の"elif"の"then"の実行パスを実行しなかったことを示します。

4文字目の"-"は，"else"の実行パスを実行しなかったことを示します。

Lineの73行は，Lineの43行から67行までを1行に記述した場合です。

C0の列の"@@--"の各文字の意味，C1の列の"@---"の各文字の意味は，Lineの37行と同じです。

2番目の"if"の"then"の実行パス（先頭から5番目の実行パス）以降の実行パスの実行の有無は，C1の列の"@---"の各文字には表示しません。

                    * JP1/Advanced Shell Coverage Information *

                                                            2011-07-22 18:23:31
****    Header Information    **************************************************
Shellscript Name     : /home/test/sample1.ash
Asc version          : 1.0
Coverage Start Time  : 2011-07-22 18:23:31
Coverage End Time    : 2011-07-22 18:23:31
Test Count           :    1

****    Main Information      **************************************************
Line   Info   C0   C1   <Shellscript Image>
    1
    2
    3         @         echo 1
    4         @         echo 2
    5         @         echo 3
    6         @         echo 4
    7         @         echo 5
    8
    9
   10
   11
   12
   13         @@@@      echo 1;echo 2;echo 3;echo 4;echo 5
   14
   15
   16
   17
   18
   19
   20         @    @    if true
   21                   then
   22         @           echo 1
   23         -    -    elif true
   24                   then
   25         -           echo 2
   26         -    -    elif true
   27                   then
   28         -           echo 3
   29              -    else
   30         -           echo 4
   31                   fi
   32
   33
   34
   35
   36
   37         @@-- @--- if true ;then echo 1 ;elif true ;then echo 2 ;elif true ;then echo 3 ;else echo 4 ;fi
   38
   39
   40
   41
   42
   43         @    @    if true
   44                   then
   45         @           echo 1
   46         -    -    elif true
   47                   then
   48         -           echo 2
   49         -    -    elif true
   50                   then
   51         -           echo 3
   52              -    else
   53         -           echo 4
   54                   fi
   55
   56         @    @    if true
   57                   then
   58         @           echo 5
   59         -    -    elif true
   60                   then
   61         -           echo 6
   62         -    -    elif true
   63                   then
   64         -           echo 7
   65              -    else
   66         -           echo 8
   67                   fi
   68
   69
   70
   71
   72
   73         @@-- @--- if true ;then echo 1 ;elif true ;then echo 2 ;elif true ;then echo 3 ;else echo 4 ;fi; if true ;then echo 5 ;elif true ;then echo 6 ;elif true ;then echo 7 ;else echo 8 ;fi
   74

****    Total Information     **************************************************
                         <C0>      <C1>
  Target     Total         52        24
  Executed   Total         22         6
  Unexecuted Total         30        18
--------------------------------------------------------------------------------
                         <C0>      <C1>
  Coverage   Rate        42.3 %    25.0 %

(3)　C0情報とC1情報の表示方法

ジョブ定義スクリプトのスクリプト制御文の実行のしかたでカバレージ情報を採取する個所が変わります。カバレージ情報を表示した場合に実行された個所に「@」が表示されます。実行されなかった個所には，「-」が表示されます。

(a)　if文の場合

elseがないときの表示方法

thenのパスを実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     @    if           ←  C1を取得
@           true       ←  C0を取得
          then
@           cmd2       ←  C0を取得
@           cmd3       ←  C0を取得
     -    fi           ←  C1を取得しない

thenのパスを実行しなかった場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     -    if           ←  C1を取得しない
@           false      ←  C0を取得
          then
-           cmd2       ←  C0を取得しない
-           cmd3       ←  C0を取得しない
     @    fi           ←  C1を取得

thenのパスとthenでないパスの両方を実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     @    if           ←  C1を取得
@           false      ←  C0を取得
          then
@           cmd2       ←  C0を取得
@           cmd3       ←  C0を取得
     @    fi           ←  C1を取得

elseがあるときの表示方法

thenを実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     @    if           ←  C1を取得
@           true       ←  C0を取得
          then
@           cmd2       ←  C0を取得
     -    else         ←  C1を取得しない
-           cmd3       ←  C0を取得しない
          fi           ←  なし

elseを実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     -    if           ←  C1を取得しない
@           false      ←  C0を取得
          then
-           cmd2       ←  C0を取得しない
     @    else         ←  C1を取得
@           cmd3       ←  C0を取得
          fi           ←  なし

thenおよびelseの両方を実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     @    if           ←  C1を取得
@           false      ←  C0を取得
          then
@           cmd2       ←  C0を取得
     @    else         ←  C1を取得
@           cmd3       ←  C0を取得
          fi           ←  なし

(b)　for文の場合

ループを実行する場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     @    for          ←  C1を取得
          do
@           cmd1       ←  C0を取得
     -    done         ←  C1を取得しない

ループを実行しなかった場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     -    for          ←  C1を取得しない
          do
-           cmd1       ←  C0を取得しない
     @    done         ←  C1を取得

ループを実行する場合およびループを実行しなかった場合の両方を実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     @    for          ←  C1を取得
          do
@           cmd1       ←  C0を取得
     @    done         ←  C1を取得

(c)　while文およびuntil文の場合

while文の表示方法を示します。until文も同じ表示になります。

ループを実行する場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     @    while        ←  C1を取得
          do
@           cmd1       ←  C0を取得
     -    done         ←  C1を取得しない

ループを実行しなかった場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     -    while        ←  C1を取得しない
          do
-           cmd1       ←  C0を取得しない
     @    done         ←  C1を取得

ループを実行する場合およびループを実行しなかった場合の両方を実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
     @    while        ←  C1を取得
          do
@           cmd1       ←  C0を取得
     @    done         ←  C1を取得

(d)　case文の場合

*パターンの有無で，C1情報の表示方法が異なります。*パターンとは，case文でどのパターンにも一致しなかった場合のパターンです。

*パターンがある

esacにC1情報を表示しません。

*パターンがない

esacにC1情報を表示します。

*パターンがあるときの表示方法

ケース1を実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
          case $A in
     @      1)             ←  C1を取得
@              echo "abc"  ←  C0を取得
               ;;
     -      *)             ←  C1を取得しない
-              echo "efg"  ←  C0を取得しない
               ;;
          esac             ←  なし

*パターンを実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
          case $A in
     -      1)             ←  C1を取得しない
               echo "abc"
               ;;
     @      *)             ←  C1を取得
@              echo "efg"  ←  C0を取得
               ;;
          esac             ←  なし

ケース1および*パターンの両方を実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
          case $A in
     @      1)             ←  C1を取得
@              echo "abc"  ←  C0を取得
               ;;
     -      *)             ←  C1を取得しない
-              echo "efg"  ←  C0を取得しない
               ;;
          esac             ←  なし

*パターンがないときの表示方法

ケース1を実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
          case $A in
     @      1)             ←  C1を取得
@              echo "abc"  ←  C0を取得
               ;;
     -      2)             ←  C1を取得しない
-              echo "efg"  ←  C0を取得しない
               ;;
     -    esac             ←  C1を取得しない

ケース2を実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
          case $A in
     -      1)             ←  C1を取得しない
-              echo "abc"  ←  C0を取得しない
               ;;
     @      2)             ←  C1を取得
@              echo "efg"  ←  C0を取得
               ;;
     -    esac             ←  C1を取得しない

*パターンを実行した場合は，次のように表示されます。

C0   C1   ジョブ定義スクリプト
@         case $A in       ←  C0を取得
     -      1)             ←  C1を取得しない
-              echo "abc"  ←  C0を取得しない
               ;;
     -      2)             ←  C1を取得しない
-              echo "efg"  ←  C0を取得しない
               ;;
     @    esac             ←  C1を取得

(e)　#-adsh_step_startコマンドの場合

#-adsh_step_startコマンドの次の引数を指定した場合，先行のジョブステップやジョブ定義スクリプト中のスクリプト拡張コマンドの状態によって，そのジョブステップを実行するかどうかが変わります。

［-run ｛normal|abnormal|always｝］

ジョブステップを実行したかどうかを判断できるように，C1情報に次の情報を表示します。

--：この#-adsh_step_startまで実行が到達していません。

N-：先行のジョブステップ，またはジョブ定義スクリプトが正常です。

-A：先行のジョブステップ，またはジョブ定義スクリプトが異常です。

NA：「N-」と「-A」の両方のケースを実行しました。

(f)　#-adsh_step_errorコマンドの場合

ジョブステップ内でエラーが発生した場合，#-adsh_step_errorコマンドに続くジョブ定義スクリプトを実行します。このエラー処理を実行したかどうかを判断できるように，C1情報に次の情報を表示します。

--：この#-adsh_step_errorを含むジョブステップまで実行が到達していません。

N-：ジョブステップ内でエラーは発生していないため，エラー処理を実行していません。

-E：ジョブステップ内でエラーは発生していたため，エラー処理を実行しました。

NE：「N-」と「-E」の両方のケースを実行しました。

(g)　関数の場合

関数の実行例を次に示します。

C0   C1    ジョブ定義スクリプト
           funcAAA(){                 →1.
@              echo "start funcAAA"   →2.
     @         if true                →2.
               then                   →2.
@                echo true            →2.
     -         else                   →2.
-                echo false           →2.
               fi                     →2.
           }
             ：
@          funcAAA                    →3.

関数を実行した場合には，関数が定義されているところには，C0情報，C1情報を表示しません。

関数の本体には，実行したコマンド，実行パスのC0，C1情報を表示します。

関数を実行した場合には，関数を呼び出したところにC0情報を表示します。

(h)　( cmd1; cmd 2 )の場合

括弧で囲ったコマンドを別プロセスで実行します。この場合，コマンドグループ全体，コマンドグループ内の各コマンドに対して，カバレージ情報は採取しません。

(i)　{ cmd1; cmd2 }の場合

中括弧で囲んだコマンドを，adshexecコマンドと同一プロセスで実行します。この場合，コマンドグループ内の各コマンドに対して，カバレージ情報を採取します。

(j)　cmd1 &の場合

adshexecコマンドによるジョブ定義スクリプトの実行と並行して，バックグラウンドで別プロセスを生成してコマンドを実行します。バックグラウンドで実行されるジョブ定義スクリプトでは，カバレージ情報は採取しません。

(k)　trapのアクションの場合

trapのアクションでは，カバレージ情報を採取しません。

例

trap "date; echo xxx" INT

(l)　コマンド置換の場合

コマンド置換で実行するコマンド，スクリプト制御文のカバレージ情報は採取しません。

例

ls `which adshexec`

(m)　timeコマンドの引数の場合

timeコマンドの引数として実行するコマンドは，カバレージ情報を採取しません。

例

time adshexec script1

(n)　evalコマンドの引数の場合

evalコマンドの引数として実行するコマンドは，カバレージ情報を採取しません。

例

eval ls dir1

(o)　パイプ機能の場合

パイプ機能を使用して実行しているコマンドのカバレージ情報は採取しません。

例

ls | cat

(p)　外部スクリプトの場合

外部スクリプトの呼び出し先では，カバレージ情報を採取しません。外部スクリプトの呼び出し元では，カバレージ情報を採取します。なお，外部スクリプトの呼び出しは，C0の対象ですが，C1については，対象外です。

(4)　メモリ上に採取しているカバレージ情報の表示【UNIX限定】

デバッグ用のinfo coverageコマンドを使用した場合，メモリ上に採取している，カバレージ情報を表示できます。

表示するカバレージ情報は，初回蓄積か継続蓄積かどうかで変化します。初回蓄積の場合は，中断点までのカバレージ情報を表示します。継続蓄積の場合は，蓄積されたカバレージ情報に中断点までのカバレージ情報を合わせた結果を表示します。蓄積を指定しなかった場合は，初回蓄積の場合と同様に中断点までのカバレージ情報を表示します。

表示する情報の種類と形式は，カバレージ情報を表示するコマンド（adshcvshowコマンド）の場合と同じです。

(5)　C1実行比率100%とならないケース

#-adsh_step_startコマンドを使用していて，そのジョブステップに先行するジョブステップ，またはコマンドがない場合，すべての実行パスを実行してもC1実行比率が100%となりません。#-adsh_step_startコマンドは次の両方のケースをC1情報として取得しますが，#-adsh_step_startコマンドで定義するジョブステップに先行するジョブステップまたはコマンドがない場合，2.のケースを実行できないためです。

先行するすべてのジョブステップ，コマンドが正常終了している。

先行するジョブステップ，コマンドで正常終了していないものがある。

この場合，デバッグ時にエラー注入モードを有効にして該当個所でエラーをシミュレートする方法があります。これによってC1情報が取得され，C1実行比率を100%にすることができます。エラーのシミュレート方法を次に示します。

GUIでのデバッグの場合【Windows限定】

JP1/Advanced Shellエディタのメニュー［エラー注入モード］でエラーをシミュレートできます。手順については，「4.4.6(4)　エラーをシミュレートする」を参照してください。

CUIでのデバッグ（adshexecコマンドの-dオプションで開始）の場合【UNIX限定】

joberrmodeコマンドを使用することでエラーをシミュレートできます。joberrmodeコマンドについては，「6.2.20　エラー注入モードの有効/無効を設定する（joberrmodeコマンド）」を参照してください。

なお，エラー注入モードが有効かどうかはinfo statusコマンドで確認できます。info statusコマンドについては「6.2.18　ステータスを表示する（info statusコマンド）」を参照してください。

3.10.5　カバレージ情報のマージ

カバレージ情報をマージする目的は，複数のユーザーが同一のジョブ定義スクリプトのテストを行った結果を1つにすることです。あるジョブ定義スクリプトのテストケースを複数の人で分担してテストした場合，カバレージ情報を1つにまとめて作業のむだを省くことができます。

(1)　マージの方法

カバレージ情報は，カバレージ情報をマージするコマンド（adshcvmergコマンド）でマージします。コマンドに指定した2つのascファイルをマージします。コマンドの形式を次に示します。

adshcvmerg -o 出力先ファイル ascファイル1 ascファイル2

ascファイル1とascファイル2の情報をマージし，その結果を出力先ファイルにascファイル形式で出力します。

(2)　マージする情報の種類

マージする情報はテスト回数やカバレージ情報です。例えば，adshcvmerg -o out c1 c2コマンドを入力して，マージ処理を実行した場合，情報は次のように変更されます。

ジョブ定義スクリプトのフルパス名：c1のフルパス名

テスト回数：c1のテスト回数＋c2のテスト回数

カバレージ情報の採取開始日時：c1とc2で早い開始日時

カバレージ情報の採取終了日時：c1とc2で遅い終了日時

3.10.6　カバレージ採取の一括有効化機能

カバレージ採取の一括有効化機能を使用すると，adshexecコマンドのパラメーターを変更することなく，カバレージを採取できるようにします。

次の環境設定パラメーターでカバレージ情報を採取するように設定しておけば，adshexecコマンドによるバッチジョブの実行時にカバレージ情報を採取するオプション（-t）を指定しなくても有効にします。

BATCH_CVRパラメーター：カバレージ採取の一括有効化機能を使用する

ASC_FILEパラメーター：カバレージ採取の一括有効化機能で使用する蓄積ファイル名の生成規則を定義する

コマンドの指定例を次に示します。

adshexec ジョブ定義スクリプト名.ash

カバレージ情報を採取するオプション（-tおよび-o）を指定しないでジョブ定義スクリプトを実行します。

カバレージ採取の一括有効化機能を使用する場合，adshexecコマンドに-tオプションを指定できません。したがって，-tオプションを指定して「adshexec -t sample.ash」と指定してadshexecコマンドを実行したときは，終了コード1となり，エラー終了します。

環境ファイルに#-adsh_conf BATCH_CVR YESを設定することで，カバレージ情報を採取できます。

カバレージ採取の一括有効化機能でカバレージ機能を有効化すると，ascファイル（カバレージ情報ファイル）は，各コマンドを実行したカレントディレクトリに出力します。

環境ファイルに#-adsh_conf ASC_FILE cvr/ver001-*を指定している場合は，上記のコマンドは，「adshexec -t -o cvr/ver001-ジョブ定義スクリプト名 ジョブ定義スクリプト名.ash」と指定してadshexecコマンドを実行したときと同じ動作となります。

コマンドごとにカレントディレクトリが異なる場合，ascファイルを作成するディレクトリがさまざまなディレクトリに分散します。#-adsh_conf ASC_FILEを指定することで，ascファイルを出力するディレクトリを特定のディレクトリに設定できます。また，ascファイルのファイル名を統一できます。

環境ファイルの設定の詳細については，「2.6.11　バッチジョブの実行時にカバレージ情報を採取するオプションを指定しなくても有効にする」を参照してください。

3.11　ジョブを強制終了する

ジョブの強制終了について説明します。

3.11.1　ジョブの強制終了の方法

(1)　強制終了の方法

ジョブの強制終了には次の2とおりの方法があります。

JP1/AJSからジョブを起動している場合，JP1/AJSの強制終了操作を実行します。

JP1/AJSからWindowsまたはUNIXで実行されたジョブアイコンのジョブを強制終了する場合，環境変数AJS_BJEX_STOP=TERMを設定しておく必要があります。WindowsまたはUNIXで実行されたジョブアイコンのジョブの詳細については，「2.7.2　ジョブネットを定義して実行する」を参照してください。

adshexecコマンドのプロセスに対して，終了要求シグナルを送付します。Windowsの場合は，taskkillコマンドなどを用いてadshexecのプロセスを終了させます。

ジョブを強制終了すると，ジョブコントローラは実行中の子プロセスまたは子孫プロセスを強制終了します。詳細は，「(2)　子プロセスまたは子孫プロセスの強制終了」を参照してください。

子プロセスまたは子孫プロセスを強制終了したあと，割り当てたファイルの後処理をして後続のジョブステップ・コマンドを一切実行しないで終了します。後続ジョブステップのrun属性にabnormalやalwaysが指定されていても実行しません。ジョブを強制終了すると，UNIXではadshexecコマンドがシグナルによってエラー終了します。UNIXでのSIGTERM受信時のジョブの動作については「3.11.2　シグナル受信時の動作【UNIX限定】」，Windowsでの強制終了時のジョブの動作については「3.11.3　強制終了時のジョブの動作【Windows限定】」を参照してください。

なお，Windowsで強制終了が発生した場合，adshjavaコマンドにはTerminateProcess関数は実行されません。adshjavaコマンドは強制終了を検知してJavaのバッチアプリケーションを強制終了したあとに終了します。

注意事項

Windowsの場合，adshexecコマンドの起動時にadshexecsubコマンドをあわせて起動し，adshexecコマンドを強制終了すればadshexecsubコマンドも終了します。そのため，adshexecsubコマンドは強制終了しないでください。adshexecsubコマンドを強制終了すると，次の現象が発生する場合があります。

実行中の子孫プロセスが終了されません。

一時ファイルが残ったままとなる場合があります。

これらの現象が発生した場合は，taskkillコマンドやタスクマネージャーを使用して子孫プロセスを強制終了させ，一時ファイルを手動で削除してください。

注意事項

Windows環境のJP1/Advanced Shellでは，孫プロセスの強制終了のためにジョブオブジェクトを使用しているため，次の2点に注意してください。

JP1/Advanced Shellから生成した子プロセスをジョブオブジェクトに関連づけることはできません。

JP1/Advanced Shellのプロセスが，すでにジョブオブジェクトに関連づけられていた場合，ジョブの強制終了でJP1/Advanced Shellの子プロセスが生成したプロセスは終了しません。

注意事項

Windowsでは，子孫プロセスを生成する外部コマンドを実行するジョブを強制終了した場合，孫以下のプロセスが同時に256個以上存在すると，メッセージKNAX6381-Eを出力してスプールジョブディレクトリの名称変更が失敗することがあるため，次の3点に注意してください。

失敗したスプールジョブディレクトリを参照する場合は，直後のメッセージKNAX6382-Iに出力されるディレクトリ名を参照してください。

名称変更に失敗したスプールジョブディレクトリはadshhkコマンドでは削除されません。削除する場合は，手動で削除してください。

実行環境でスプールジョブディレクトリの名称変更に失敗したジョブは，adshevtoutコマンドでジョブ定義スクリプト稼働実績情報を出力しません。

(2)　子プロセスまたは子孫プロセスの強制終了

ジョブを強制終了すると，ジョブコントローラは子プロセスまたは子孫プロセスを強制終了してからジョブを終了します。

(a)　UNIXの場合

ジョブの入力モードによって，子プロセスまたは子孫プロセスの強制終了の方法が次のとおり異なります。

端末入力モード

adshexecコマンドの子プロセスだけにSIGTERMを送信します。adshexecコマンドの孫プロセス以下には，SIGTERMを送信しません。これらのプロセスの後処理を実行したい場合は，次のどちらかの方法でジョブを作成・実行してください。

外部コマンドをユーザーが作成する場合，SIGTERMを受信したら子孫プロセスにも自動的にSIGTERMを送信するなど，子孫プロセスの後処理を外部コマンド側で実行するようあらかじめ設計してください。

端末入力モードのジョブを強制終了する場合，「Ctrl+C」や「Ctrl+¥」などの操作は，adshexecコマンドだけでなく，孫プロセス以下を含むすべての子孫プロセスが対象になります。

強制終了後に孫プロセス以下が残ってしまった場合は，残ってしまったプロセスのプロセスIDをpsコマンドで確認し，killコマンドによって手動で終了させてください。

非端末入力モード

adshexecコマンドの子孫プロセスにSIGTERMを送信します。

(b)　Windowsの場合

adshexecコマンドの子孫プロセスをTerminateProcess関数およびTerminateJobObject関数で強制終了します。ジョブの入力モードによる強制終了方法の差異はありません。

(3)　Ctrl+Cなどの操作に関する注意事項【UNIX限定】

非端末入力モードでジョブを実行した場合，ルートジョブ，子孫ジョブ，およびほかに起動した外部コマンドを「Ctrl+C」や「Ctrl+¥」などの操作で一度に強制終了させることができないときがあります※。これらのジョブおよびコマンドを一度にすべて強制終了させたいときは，ログインシェル直下のルートジョブに対して，killコマンドでSIGTERMなどの終了要求シグナルを送信してください。

注※

非端末入力モードでジョブを実行した場合，adshexecコマンドのプロセスとその子プロセスとは，別々のプロセスグループになります。そのため，ログインシェルからジョブを実行中に「Ctrl+C」や「Ctrl+¥」などの操作を実行した場合，現在フォアグラウンドにいるプロセスグループに対してだけ，SIGINTやSIGQUITが送られます。

シグナルを受信したジョブの子孫プロセスとして動作するジョブおよび外部コマンドは強制終了されますが，親プロセスやそれより上位のプロセスとして動作するジョブおよび外部コマンドは強制終了されません。

3.11.2　シグナル受信時の動作【UNIX限定】

通常実行時とデバッグ実行時の，ジョブコントローラがシグナルを受信した場合の動作を説明します。

(1)　通常実行時

通常実行時にジョブコントローラがシグナルを受信した場合の動作について，SIGTERMシグナルと，それ以外に分けて示します。

(a)　SIGTERMの場合

SIGTERMを受信した場合の動作は環境設定パラメーターTRAP_ACTION_SIGTERMの指定に従います。

表3‒10　環境設定パラメーターTRAP_ACTION_SIGTERMにDISABLEを指定した場合※1

trapコマンドによる動作定義がない場合

trapコマンドによる動作定義がある場合

ルートジョブがSIGTERMを受信した場合

1回目：メッセージを出力し，後処理を実行してから，後続処理を実行しないで終了します。このときJP1/AJSからの起動でない場合は，自分にSIGTERMを送信してシグナル終了します。

2回目：即時終了します。

子孫ジョブがSIGTERMを受信した場合

SIGTERMを受信した子孫ジョブは，メッセージを出力し，後処理を実行してから，後続処理を実行しないで終了します。このとき自分にSIGTERMを送信してシグナル終了します。

また，子孫ジョブの親ジョブは，子プロセスが終了コード「128＋SIGTERMのシグナル番号」で終了した場合の動作に従って，後続処理を実行します。※2

trapコマンドで動作を定義できません。※3

注※1

環境設定パラメーターTRAP_ACTION_SIGTERMを指定しなかった場合も含みます。

注※2

子孫ジョブのシグナル受信時の動作の詳細については，「3.2.3(3)　シグナル受信時の子孫ジョブの動作」を参照してください。

注※3

trapコマンドでSIGTERMに対する動作を定義しようとすると，trapコマンドがエラーとなりジョブが終了します。

表3‒11　環境設定パラメーターTRAP_ACTION_SIGTERMにTERMを指定した場合

trapコマンドによる動作定義がない場合

trapコマンドによる動作定義がある場合

ルートジョブがSIGTERMを受信した場合

1回目：メッセージを出力し，後処理を実行してから，後続処理を実行しないで終了します。このときJP1/AJSからの起動でない場合は，自分にSIGTERMを送信してシグナル終了します。

2回目：即時終了します。

子孫ジョブがSIGTERMを受信した場合

SIGTERMを受信した子孫ジョブは，メッセージを出力し，後処理を実行してから，後続処理を実行しないで終了します。このとき自分にSIGTERMを送信してシグナル終了します。

また，子孫ジョブの親ジョブは，子プロセスが終了コード「128＋SIGTERMのシグナル番号」で終了した場合の動作に従って，後続処理を実行します※。

ルートジョブがSIGTERMを受信した場合

メッセージを出力し，trapコマンドでSIGTERMに対して定義したアクションを実行します。アクションを実行した後は後続処理を実行しないで終了します。JP1/AJSからの起動でない場合は，自分にSIGTERMを送信してシグナル終了します。

子孫ジョブがSIGTERMを受信した場合

メッセージを出力し，trapコマンドでSIGTERMに対して定義したアクションを実行します。アクションを実行した後は後続処理を実行しないで終了します。

また，子孫ジョブの親ジョブは，子プロセスがSIGTERMを受信した動作結果に従って，後続処理を実行します※。

注※

子孫ジョブのシグナル受信時の動作の詳細については，「3.2.3(3)　シグナル受信時の子孫ジョブの動作」を参照してください。

表3‒12　環境設定パラメーターTRAP_ACTION_SIGTERMにCONTを指定した場合

ジョブの起動方法

trapコマンドによる動作定義がない場合

trapコマンドによる動作定義がある場合

JP1/AJSから起動した場合

（カスタムジョブからの起動，または環境変数AJS_BJEX_STOPにTERMを設定した状態での起動）

ジョブ定義スクリプトを実行しないでジョブがエラー終了します（環境ファイル解析時のエラー）。

JP1/AJS以外から起動した場合

（上記以外の方法による起動）

ルートジョブがSIGTERMを受信した場合

1回目：メッセージを出力し，後処理を実行してから，後続処理を実行しないで終了します。このとき自分にSIGTERMを送信してシグナル終了します。

2回目：即時終了します。

子孫ジョブがSIGTERMを受信した場合

SIGTERMを受信した子孫ジョブの動作は，ルートジョブと同じです。

また，子孫ジョブの親ジョブは，子プロセスが終了コード「128＋SIGTERMのシグナル番号」で終了した場合の動作に従って，後続処理を実行します※。

ルートジョブがSIGTERMを受信した場合

メッセージを出力し，trapコマンドでSIGTERMに対して定義したアクションを実行します。アクションを実行した後はジョブ定義スクリプトの後続処理を続行します。

子孫ジョブがSIGTERMを受信した場合

SIGTERMを受信した子孫ジョブの動作は，ルートジョブと同じです。

また，子孫ジョブの親ジョブは，子プロセスがSIGTERMを受信した動作結果に従って，後続処理を実行します※。

注※

子孫ジョブのシグナル受信時の動作の詳細については，「3.2.3(3)　シグナル受信時の子孫ジョブの動作」を参照してください。

表3‒13　環境設定パラメーターTRAP_ACTION_SIGTERMにAUTOを指定した場合

ジョブの起動方法

trapコマンドによる動作定義がない場合

trapコマンドによる動作定義がある場合

JP1/AJSから起動した場合

（カスタムジョブからの起動，または環境変数AJS_BJEX_STOPにTERMを設定した状態での起動）

TERMを指定した場合と同じ動作です。

JP1/AJS以外から起動した場合

（上記以外の方法による起動）

CONTを指定した場合と同じ動作です。

(b)　SIGTERM以外の場合

表3‒14　シグナル受信時の動作

シグナルの種類

trapコマンドによる動作定義がない場合

trapコマンドによる動作定義がある場合

終了要求シグナル

SIGHUP，SIGINT，SIGXCPU，SIGXFSZ，SIGQUIT，SIGUSR1，SIGUSR2，SIGPIPE，SIGALRM，SIGVTALRM，SIGPROF

ルートジョブがシグナルを受信した場合

子孫プロセスの終了や一時ファイルの削除などの後処理を実行してから，後続命令を実行しないでシグナルによってエラー終了します。

子孫ジョブがシグナルを受信した場合

受信した子孫ジョブの動作はルートジョブ受信時と同じです。

ここで受信した子孫ジョブの親のジョブは，終了した子孫ジョブの結果に従って，後続処理を実行します。※1

ルートジョブがシグナルを受信した場合

trapコマンドで定義した動作に従います。

子孫ジョブがシグナルを受信した場合

受信した子孫ジョブの動作はルートジョブ受信時と同じです。

ここで受信した子孫ジョブの親のジョブは，子孫ジョブの結果に従って，後続処理を実行します。

SIGMSG，SIGDANGER，SIGMIGRATE，SIGPRE，SIGVIRT，SIGALRM1，SIGRECONFIG，SIGCPUFAIL，SIGGRANT，SIGRETRACT，SIGSOUND

上記と同様です。

【AIX限定】

上記と同様です。

【AIX限定】

SIGLOST

上記と同様です。

【HP-UX，Solaris限定】

上記と同様です。

【HP-UX，Solaris限定】

異常通知シグナル

SIGILL，SIGTRAP，SIGABRT，SIGFPE，SIGBUS，SIGSEGV，SIGSYS

ルートジョブがシグナルを受信した場合

対象シグナルに対するOSのデフォルトの動作に従ってプログラムを終了します。

子孫ジョブがシグナルを受信した場合

受信した子孫ジョブの動作はルートジョブ受信時と同じです。

ここで受信した子孫ジョブの親のジョブは，終了した子孫ジョブの結果に従って，後続処理を実行します。※1

ルートジョブがシグナルを受信した場合

trapコマンドで定義した動作に従います。

子孫ジョブがシグナルを受信した場合

受信した子孫ジョブの動作はルートジョブ受信時と同じです。

ここで受信した子孫ジョブの親のジョブは，子孫ジョブの結果に従って，後続処理を実行します。

SIGIOT，SIGEMT

上記と同様です。

【AIX，HP-UX，Solaris限定】

上記と同様です。

【AIX，HP-UX，Solaris限定】

SIGLOST

上記と同様です。

【AIX限定】

上記と同様です。

【AIX限定】

上記以外

ルートジョブがシグナルを受信した場合

対象シグナルに対するOSのデフォルトの動作に従います。

子孫ジョブがシグナルを受信した場合

受信した子孫ジョブの動作はルートジョブ受信時と同じです。

ここで受信した子孫ジョブの親のジョブは，子孫ジョブの結果に従って，後続処理を実行します。※1

ルートジョブがシグナルを受信した場合

trapコマンドで定義した動作に従います。※2

子孫ジョブがシグナルを受信した場合

受信した子孫ジョブの動作はルートジョブ受信時と同じです。

ここで受信した子孫ジョブの親のジョブは，子孫ジョブの結果に従って，後続処理を実行します。

注※1

子孫ジョブのシグナル受信時の動作の詳細については，「3.2.3(3)　シグナル受信時の子孫ジョブの動作」を参照してください。

注※2

SIGKILLとSIGSTOPについては，trapコマンドで動作を定義できません。

SIGWAITINGについては，trapコマンドで動作を定義できません。【AIX限定】

注意事項

trapコマンド使用時，動作に「-」を設定するとシグナル受信時の動作がデフォルトに戻ります。

デバッグ実行時の動作がこれらの表と異なるシグナルがあります。trapコマンドによる動作定義の有無とシグナルの動作の差異については，「(2)　デバッグ実行時」を参照してください。

(2)　デバッグ実行時

表3‒15　デバッグ実行時のシグナル受信時の動作

シグナルの種類

trapコマンドによる動作定義がない場合

trapコマンドによる動作定義がある場合

SIGINT

デバッガがジョブ定義スクリプトの実行を停止させて，デバッガのコマンド入力待ちとなります。※

デバッガがジョブ定義スクリプトの実行を停止させて，デバッガのコマンド入力待ちとなります。※

また，trapコマンドで定義した動作に従います。

SIGCHLD，

SIGTSTP，

SIGTTOU，

SIGURG，

SIGWINCH，

SIGIO，

SIGPWR

後続処理を続行します。

trapコマンドで定義した動作に従います。

SIGSTKFLT

【Linux限定】

SIGWAITING，SIGLWP，SIGFREEZE，SIGTHAW，SIGCANCEL，SIGXRES，SIGJVM1，SIGJVM2

【Solaris限定】

リアルタイムシグナル

【HP-UX，Linux，Solaris限定】

注※

ジョブ定義スクリプトの停止については，「6.2　CUIのデバッガ【UNIX限定】」を参照してください。

3.11.3　強制終了時のジョブの動作【Windows限定】

Windowsでの強制終了時のジョブの動作を次に示します。

なお，trapコマンドによって，TerminateProcessなどによるプロセス即時終了に対する動作を定義する場合，TRAP_ACTION_SIGTERMパラメーターにTERMを指定してください。

表3‒16　強制終了時のジョブの動作

強制終了方法

trapコマンドによる動作定義がない場合

trapコマンドによる動作定義がある場合

制御信号

CTRL＋C

CTRL＋BREAK

CTRL_CLOSE_EVENT

制御信号は，ルートジョブ，子孫ジョブ，およびコマンドとして動作するすべてのプロセスグループに対して送信されます。

制御信号を受信したルートジョブ（adshexec.exe）の場合

子プロセスadshexecsub.exeが後続のスクリプトを実行しないで後処理を実行して終了します。制御信号を受信したadshexec.exeは子プロセスの終了を待ってから終了します。

制御信号を受信したルートジョブ（adshexecsub.exe）および子孫ジョブの動作

制御信号を受信したadshexecsub.exeは，メッセージKNAX7896-Iを出力し，後続のスクリプトを実行しないで後処理を実行して終了します。

trapコマンドで動作を定義できません

CTRL_LOGOFF_EVENT

OSのログオフやシャットダウン処理を優先するため，後処理を実行しないで即時終了します。

trapコマンドで動作を定義できません

CTRL_SHUTDOWN_EVENT

TerminateProcessなどによるプロセス即時終了

即時終了の対象がルートジョブ（adshexec.exe）の場合

対象となるadshexec.exeは即時終了しますが，その子プロセスのadshexecsub.exeおよび子孫ジョブは後続のスクリプトを実行しないで後処理を実行して終了します。

即時終了の対象がルートジョブ（adshexecsub.exe）の場合

対象となるadshexecsub.exeは後処理を実行しないで即時終了します（このプロセスは即時終了しないでください）。

即時終了の対象が子孫ジョブの場合

対象となる子孫ジョブは後処理を実行しないで即時終了します（このプロセスは即時終了しないでください）。このとき，終了させられた子孫ジョブの親のジョブは，子プロセスが終了コード1でエラー終了した場合の動作に従って，後処理を実行します。

即時終了の対象がルートジョブ（adshexec.exe）の場合

対象となるadshexec.exeは即時終了しますが，その子プロセスのadshexecsub.exeおよび子孫ジョブはtrapコマンドで定義した動作を実行し，後処理を実行して終了します。

即時終了の対象がルートジョブ（adshexecsub.exe）の場合

対象となるadshexecsub.exeは後処理を実行しないで即時終了します（このプロセスは即時終了しないでください）。

即時終了の対象が子孫ジョブの場合

対象となる子孫ジョブは後処理を実行しないで即時終了します（このプロセスは即時終了しないでください）。このとき，終了させられた子孫ジョブの親のジョブは，子プロセスが終了コード1でエラー終了した場合の動作に従って，後処理を実行します。

注意事項

trapコマンド使用時，動作に「-」を設定すると，該当強制終了要求を受けたときの動作が無効になり，何も設定されていない状態に戻ります。

4　JP1/Advanced Shell - Developerを使用する【Windows限定】

JP1/Advanced Shell - Developerを使用して，Windows環境でジョブ定義スクリプトを開発するためのJP1/Advanced Shellエディタの操作方法について説明します。エディタを使用したジョブ定義スクリプトファイルのデバッグ方法についても説明します。

4.1　JP1/Advanced Shell - Developerの起動と終了【Windows限定】

JP1/Advanced Shellの開発環境では，ジョブ定義スクリプトファイルの作成やデバッグができます。JP1/Advanced Shellの開発環境の起動と終了方法について説明します。

4.1.1　JP1/Advanced Shell - Developerの起動

JP1/Advanced Shell - Developerの起動方法を説明します。ジョブ定義スクリプトファイルの作成や編集をする場合は，エディタを起動します。エディタには，2つの起動方法があります。

(1)　スタートメニューからの起動方法

［スタート］から［すべてのプログラム］−［JP1_Advanced Shell - Developer］を選択する。

JP1_Advanced Shell - Developerのグループから「エディタ」アイコンを選択する。

(2)　右クリックメニューからの起動方法

エクスプローラからジョブ定義スクリプトファイルを右クリックする。

［編集］を選択する。

4.1.2　JP1/Advanced Shell - Developerの終了

JP1/Advanced Shell - Developerを終了するには，JP1/Advanced Shellエディタウィンドウで次のどちらかの操作を実行します。

［ファイル］−［終了］を選択します。

ツールバーの［終了］ボタンをクリックします。

これによってエディタ機能が終了します。

4.2　JP1/Advanced Shellエディタの状態【Windows限定】

エディタには編集モードとデバッグモードがあります。

4.2.1　編集モード

ジョブ定義スクリプトファイルを作成・編集している状態です。エディタの起動時に設定されるモードです。

4.2.2　デバッグモード

作成したジョブ定義スクリプトファイルをデバッグしている状態です。エディタの編集画面はグレーアウトされ，ジョブ定義スクリプトの編集はできません。デバッグモードには，次の2つの機能があります。

文法チェック

［デバッグ］−［文法チェック］メニューを選択する，またはツールバーの［文法チェック］ボタンをクリックすると文法チェックが行われます。

デバッグ実行

次のメニューを選択またはボタンをクリックすると，デバッグが実行されます。

［デバッグ］−［ブレークポイントまで実行］メニューを選択する，またはツールバーの［ブレークポイントまで実行］ボタンをクリックする

［デバッグ］−［ステップイン］，［ステップオーバー］もしくは［ステップアウト］メニューを選択する，またはツールバーの［ステップイン］，［ステップオーバー］もしくは［ステップアウト］ボタンをクリックする

文法チェックについては「4.4.4　文法をチェックする」を，デバッグについては「4.4.6　デバッグをする」を参照してください。

4.3　JP1/Advanced Shellエディタの操作【Windows限定】

エディタはジョブ定義スクリプトを新規に作成したり，既存のジョブ定義スクリプトを編集したりするためのプログラムです。ここでは，エディタを起動すると表示されるJP1/Advanced Shellエディタウィンドウについて説明します。また，エディタの機能をメニューごとに説明します。

JP1/Advanced Shellエディタウィンドウでできる操作の一覧を次に示します。（ ）内は参照先です。

ジョブ定義スクリプトを新規に作成する（4.4.1）

エディタの動作環境を設定する（4.4.2）

ジョブ定義スクリプトの実行環境を設定する（4.4.3）

文法をチェックする（4.4.4）

文字列を検索および置換する（4.4.5）

デバッグ実行時のブレークポイントを設定・解除する（4.4.6(1)）

デバッグを実行・中止する（4.4.6(2)）

ウォッチへ変数を追加する（4.4.6(3)）

エラーをシミュレートする（4.4.6(4)）

trapコマンドのアクションを実行する（4.4.6(5)）

デバッグ実行時のカバレージ情報を表示する（4.4.7）

既存のジョブ定義スクリプトを編集する（4.5）

ジョブ定義スクリプトを保存する（4.6）

ジョブ定義スクリプトファイルの内容を印刷する※

直前の操作を元に戻す※

直前の操作をやり直す※

選択した文字列をクリップボードに切り抜く※

選択した文字列をクリップボードにコピーする※

クリップボードの文字列を指定の位置に貼り付ける※

すべての文字列を選択する※

実行ポイント行へジャンプする※

ツールバーの表示・非表示を切り替える※

ステータスバーの表示・非表示を切り替える※

ツールバーを整列させる※

ルーラーの表示・非表示を切り替える※

縦スクロールバーの表示・非表示を切り替える※

横スクロールバーの表示・非表示を切り替える※

行番号の表示・非表示を切り替える※

ファイルの先頭を表示する※

ファイルの末尾を表示する※

ウォッチウィンドウの表示・非表示を切り替える※

エラーウィンドウの表示・非表示を切り替える※

ヘルプを表示する※

注※

これらの操作はこのマニュアルでは特に説明していません（これらは，Windowsの標準の操作に準じているか，メニュー一覧で該当するメニューを選択するだけで実行できる操作です）。

4.3.1　JP1/Advanced Shellエディタウィンドウ

JP1/Advanced Shellエディタウィンドウ，およびウィンドウの各部の名称を，次の図に示します。

図4‒1　JP1/Advanced Shellエディタウィンドウ

(1)　ツールバー

ツールバーには，メニューバーから選択できるコマンドの中から，頻繁に使用するコマンドだけをボタンの形で表示しています。ボタンをマウスでクリックするだけで，該当するコマンドを実行できます。表示メニューによって非表示にすることもできます。なお，ボタンにマウスを移動させると説明が表示されます。

JP1/Advanced Shellエディタウィンドウのツールバーには，標準ツールバー，編集ツールバー，デバッグツールバーおよび検索ツールバーのボタンが表示されます。

標準ツールバー

標準ツールバーのボタンと機能を次の表に示します。

ボタン

機能

［新規作成］ボタン

新規にジョブ定義スクリプトファイルを作成します。

［開く］ボタン

既存のジョブ定義スクリプトファイルを開きます。

［保存］ボタン

作業中のジョブ定義スクリプトファイルを保存します。

［印刷］ボタン

作業中のジョブ定義スクリプトファイルを印刷します。

［終了］ボタン

JP1/Advanced Shellエディタを終了し，ファイルを保存するかどうかを選択します。

［ヘルプ］ボタン

JP1/Advanced Shellのオンラインヘルプを表示します。

編集ツールバー

編集ツールバーのボタンと機能を次の表に示します。

ボタン

機能

［元に戻す］ボタン

直前に行った動作を元に戻します。

［やり直し］ボタン

直前に行った動作をやり直します。

［切り抜き］ボタン

選択範囲を切り取ってクリップボードに保存します。

［コピー］ボタン

選択範囲をコピーしてクリップボードに保存します。

［貼り付け］ボタン

クリップボードの内容を指定の位置に貼り付けます。

［すべて選択］ボタン

ファイル全体を選択します。

［オプション］ボタン

エディタの動作環境を設定します。

デバッグツールバー

デバッグツールバーのボタンと機能を次の表に示します。

ボタン

機能

［文法チェック］ボタン

記述したジョブ定義スクリプトの文法をチェックします。

［ブレークポイントまで実行］ボタン

ブレークポイントまでの実行スタート，およびリスタートをします。

［スクリプトの停止］ボタン

ジョブ定義スクリプトを停止します。［スクリプトの停止］ボタンをクリックしたときに実行していたコマンドはそのまま実行を続け，次のコマンドの実行に移る前に停止します。

［デバッグの中止］ボタン

［デバッグの中止］ボタンをクリックしたときに実行していたコマンドはそのまま実行を続け，次のコマンドの実行に移る前に停止します。そのあとジョブ定義スクリプトを停止し，デバッグを中止します。

［ステップイン］ボタン

次のコマンドまたはステートメントを1つずつ実行します。関数を呼び出す場合は，その関数の中も1行ずつ実行して停止します。

［ステップオーバー］ボタン

次のコマンドまたはステートメントを1つずつ実行します。関数を呼び出す場合，関数の中は1行ずつ停止しませんが，ブレークポイントがあるときは停止します。

［ステップアウト］ボタン

関数の呼び出し元まで実行します。関数を呼び出した次の行またはブレークポイントで停止します。

［ブレークポイントの設定／解除］ボタン

ブレークポイントを設定，または解除します。

［ブレークポイントをすべて解除］ボタン

設定されているブレークポイントをすべて解除します。

［実行環境の設定］ボタン

スクリプトファイルの実行環境を設定します。

［ウォッチウィンドウの表示／非表示］ボタン

ウォッチウィンドウの表示・非表示を切り替えます。

［ウォッチへ追加］ボタン

指定した変数をウォッチウィンドウに追加します。

［カバレージ情報の表示］ボタン

デバッグ実行時のカバレージ情報を表示します。

検索ツールバー

検索ツールバーのボタンと機能を次の表に示します。

ボタン

機能

［検索］ボタン

検索または置換する文字列を入力します。

［前検索］ボタン

文字列を上に向かって検索または置換します。

［次検索］ボタン

文字列を下に向かって検索または置換します。

(2)　ルーラー

行のカラム数を表示する目盛です。

(3)　行番号

ジョブ定義スクリプトの行番号を表示するための領域です。

(4)　ブレークポイントエリア

ブレークポイントを示す記号（[図データ]）と，次に実行する位置を示す記号（[図データ]）およびデバッガのプロセスの終了を示す記号（[図データ]）を表示するための領域です。

(5)　ステータスバー

ステータスバーは，JP1/Advanced Shellエディタが現在実行している処理に関するメッセージや，処理終了後の状態に関するメッセージを表示するための領域です。JP1/Advanced Shellエディタウィンドウのステータスバーの機能を次の表に示します。

表4‒1　JP1/Advanced Shellエディタウィンドウのステータスバーの機能

ステータスバー

機能

ジョブ識別子

デバッグ実行したジョブのジョブ識別子を表示します。

現在位置

カーソルの位置を表示します。

全体

編集中のジョブ定義スクリプトファイルの行数を表示します。

上書き状態

Insertキーで切り替える上書き状態を表示します。次の2つのモードがあります。デフォルトは挿入モードです。

上書：上書きモード

挿入：挿入モード

(6)　クライアントエリア

クライアントエリアには，ジョブ定義スクリプトファイルの内容が表示されます。

4.3.2　JP1/Advanced Shellエディタウィンドウのメニュー

JP1/Advanced Shellエディタウィンドウのメニューバーに表示されるメニュー，およびJP1/Advanced Shellエディタウィンドウで表示されるポップアップメニューについて説明します。

(1)　メニューバーのメニュー

エディタウィンドウのメニューについて説明します。エディタウィンドウのメニューを次の表に示します。

表4‒2　JP1/Advanced Shellエディタウィンドウのメニュー

メニュー

機能

［ファイル］

［新規作成］

新規にジョブ定義スクリプトファイルを作成します。

［開く］

既存のジョブ定義スクリプトファイルを開きます。

［保存］

作業中のジョブ定義スクリプトファイルを保存します。

［名前を付けて保存］

作業中のジョブ定義スクリプトファイルに名前を付けて保存します。

［印刷］

作業中のジョブ定義スクリプトファイルを印刷します。

［終了］

エディタを終了し，ファイルを保存するかどうかを選択します。

（ファイル名）

指定のファイルを開きます。

直前に保存したジョブ定義スクリプトファイルが最大9個表示されます。

［編集］

［元に戻す］

直前に行った動作を元に戻します。

［やり直し］

直前に行った動作をやり直します。

［切り抜き］

選択範囲を切り取ってクリップボードに保存します。

［コピー］

選択範囲をコピーしてクリップボードに保存します。

［貼り付け］

クリップボードの内容を指定の位置に貼り付けます。

［すべて選択］

ファイル全体を選択します。

［オプション］

エディタの動作環境を設定します。

［デバッグ］

［文法チェック］

ジョブ定義スクリプトの文法をチェックします。

［ブレークポイントまで実行］

デバッグモードで，ブレークポイントまでの実行スタート，およびリスタートします。

［スクリプトの停止］

ジョブ定義スクリプトの実行を次の行で停止します。［スクリプトの停止］を選択したときに実行していたコマンドはそのまま実行を続け，次のコマンドの実行に移る前に停止します。

［デバッグの中止］

［デバッグの中止］を選択したときに実行していたコマンドはそのまま実行を続け，次のコマンドの実行に移る前に停止します。そのあとジョブ定義スクリプトを停止し，デバッグを中止します。

［ステップイン］

デバッグモードで，次のコマンドまたはステートメントを1つずつ実行します。関数を呼び出すときは，その関数の中も1行ずつ実行して停止します。

［ステップオーバー］

デバッグモードで，次のコマンドまたはステートメントを1つずつ実行します。関数を呼び出すときは，関数の中は1行ずつ停止しませんが，ブレークポイントがあるときは停止します。

［ステップアウト］

関数の呼び出し元まで実行します。関数を呼び出した次の行またはブレークポイントで停止します。

［ブレークポイントの設定／解除］

ブレークポイントを設定，または解除します。

［ブレークポイントをすべて解除］

設定されているブレークポイントをすべて解除します。

［実行環境の設定］

スクリプトファイルの実行環境を設定します。

［ウォッチへ変数の追加］

指定した変数をウォッチウィンドウへ追加します。

［エラー注入モード］

ジョブ定義スクリプトの実行停止中にエラー注入モードを有効，または無効にします。

［トラップアクションの実行］

trapコマンドのアクションを実行し，ブレークポイントまで実行します。

［実行ポイント行へジャンプ］

現在の実行ポイント行へジャンプします。

［表示］

［ツールバー］−［標準ツールバー］

標準ツールバーの表示・非表示を切り替えます。

［ツールバー］−［編集ツールバー］

編集ツールバーの表示・非表示を切り替えます。

［ツールバー］−［デバッグツールバー］

デバッグツールバーの表示・非表示を切り替えます。

［ツールバー］−［検索ツールバー］

検索ツールバーの表示・非表示を切り替えます。

［ステータスバー］

ステータスバーの表示・非表示を切り替えます。

［ツールバーの整列］

ツールバーを整列します。

［ルーラー］

ルーラーの表示・非表示を切り替えます。

［縦スクロールバー］

縦スクロールバーの表示・非表示を切り替えます。

［横スクロールバー］

横スクロールバーの表示・非表示を切り替えます。

［行番号を表示］

行番号の表示・非表示を切り替えます。

［ファイルの先頭を表示］

ジョブ定義スクリプトファイルの先頭を表示します。

［ファイルの末尾を表示］

ジョブ定義スクリプトファイルの末尾を表示します。

［ウォッチウィンドウを表示］

ウォッチウィンドウの表示・非表示を切り替えます。

［エラーウィンドウを表示］

エラーウィンドウの表示・非表示を切り替えます。

［カバレージ情報の表示］

デバッグ実行時のカバレージ情報を表示します。

［検索］

［検索］

検索または置換する文字列を入力します。

［置換］

文字列を指定した文字列に置換します。

［前検索］

文字列を上に向かって検索または置換します。

［次検索］

文字列を下に向かって検索または置換します。

［ヘルプ］

［ヘルプを開く］

JP1/Advanced Shellオンラインヘルプを表示します。

［バージョン情報］

プログラムの情報，バージョンおよび著作権を表示します。

(2)　ポップアップメニュー

JP1/Advanced Shellエディタウィンドウのクライアントエリアでマウスの右ボタンをクリックすると，ポップアップメニューが表示されます。ポップアップメニューの内容は編集モードの場合とデバッグモードの場合とで異なります。

編集モードのポップアップメニュー

編集モードの場合に表示されるポップアップメニューを次の表に示します。

ポップアップメニュー

機能

［新規作成］

新規にジョブ定義スクリプトファイルを作成します。

［開く］

既存のジョブ定義スクリプトファイルを開きます。

［保存］

作業中のジョブ定義スクリプトファイルを保存します。

［元に戻す］

直前に行った動作を元に戻します。

［やり直し］

直前に行った動作をやり直します。

［切り抜き］

選択範囲を切り取ってクリップボードに保存します。

［コピー］

選択範囲をコピーしてクリップボードに保存します。

［貼り付け］

クリップボードの内容を指定の位置に貼り付けます。

［すべて選択］

ファイル全体を選択します。

デバッグモードのポップアップメニュー

デバッグモードの場合に表示されるポップアップメニューを次の表に示します。

ポップアップメニュー

機能

［コピー］

選択範囲をコピーしてクリップボードに保存します。

［ブレークポイントの設定／解除］

ブレークポイントを設定，または解除します。

［ウォッチへ追加］

選択した変数をウォッチウィンドウへ追加します。

4.3.3　JP1/Advanced Shellエディタウィンドウでのマウスとキーの操作

JP1/Advanced Shellエディタウィンドウでのマウスとキーの操作について説明します。

(1)　マウス操作

JP1/Advanced Shellエディタウィンドウのクライアントエリアでのマウス操作を次の表に示します。

表4‒3　JP1/Advanced Shellエディタウィンドウでのマウス操作

操作

機能

クリック

それまでの選択を解除して，新たに対象を選択します。

ダブルクリック

文字列を選択します。

右クリック

ポップアップメニューを表示します。

(2)　キー操作

JP1/Advanced Shellエディタウィンドウのクライアントエリアでのキー操作と，モードごとの操作の可否を次の表に示します。

表4‒4　JP1/Advanced Shellエディタウィンドウでのキー操作

操作

編集モード

デバッグモード

機能

Ctrl+A

○

○

ファイル全体を選択します。

Ctrl+C

○

○

選択範囲をコピーします。

Ctrl+E

○

×

スクリプトファイルの実行環境を設定します。

Ctrl+F

○

△

検索または置換する文字列を入力します。

Ctrl+H

○

×

文字列を指定した文字列に置換します。

Ctrl+N

○

×

新規にジョブ定義スクリプトファイルを作成します。

Ctrl+O

○

×

既存のジョブ定義スクリプトファイルを開きます。

Ctrl+P

○

×

作業中のジョブ定義スクリプトファイルを印刷します。

Ctrl+S

○

×

作業中のジョブ定義スクリプトファイルを保存します。

Ctrl+V

○

×

クリップボードの内容を指定の位置に貼り付けます。

Ctrl+X

○

×

選択範囲を切り取ります。

Ctrl+Z

○

×

直前に行った動作を元に戻します。

Ctrl+Home

○

○

ジョブ定義スクリプトファイルの先頭を表示します。

Ctrl+End

○

○

ジョブ定義スクリプトファイルの末尾を表示します。

F1

○

○

JP1/Advanced Shellヘルプを表示します。

F3

○

△

文字列を下に向かって検索または置換します。

F5

○

×

ブレークポイントまでの実行スタート，およびリスタートします。

F7

○

×

ジョブ定義スクリプトの文法をチェックします。

F9

○

○

ブレークポイントを設定，または解除します。

F11

○

○

次のコマンドまたはステートメントを1つずつ実行します。関数を呼び出すときは，その関数の中も1行ずつ実行して停止します。

Alt+0

×

○

指定した変数をウォッチウィンドウへ追加します。

Alt+1

×

○

ウォッチウィンドウの表示・非表示を切り替えます。

Alt+2

×

○

エラーウィンドウの表示・非表示を切り替えます。

Alt+F4

○

○

JP1/Advanced Shellエディタを終了し，ファイルを保存するかどうかを選択します。

Shift+F3

○

△

文字列を上に向かって検索または置換します。

Shift+F5

×

○

ジョブ定義スクリプトを停止し，デバッグを中止します。

Shift+F9

○

○

指定ブレークポイントをすべて解除します。

Shift+F11

○

○

関数の呼び出し元まで実行します。関数を呼び出した次の行またはブレークポイントで停止します。

Shift+Ctrl+F11

○

○

次のコマンドまたはステートメントを1つずつ実行します。関数を呼び出すときは，関数の中は1行ずつ停止しませんが，ブレークポイントがあるときは停止します。

Shift+Ctrl+Z

○

×

直前に行った動作をやり直します。

Enter

○

×

行頭からのスペースとタブをコピーして新しい行を作成します。「{」の次に改行を入力したときは，次の行にはタブを追加し，さらにその次の行に「}」を追加します。

（凡例）

○：操作できる機能

△：一部操作できる機能

×：操作できない機能

4.4　新規にジョブ定義スクリプトを作成する【Windows限定】

JP1/Advanced Shellエディタで新規にジョブ定義スクリプトを作成する方法について説明します。

4.4.1　ジョブ定義スクリプトを新規に作成する

ジョブ定義スクリプトファイルを新規に作成します。

［ファイル］−［新規作成］メニューを選択する。

新規にJP1/Advanced Shellエディタウィンドウが表示されます。

4.4.2　エディタの動作環境を設定する

エディタの動作環境を設定します。

［編集］−［オプション］メニューを選択する。

［オプション（書式）］ダイアログボックスが表示されます。

ダイアログボックスの設定方法については「4.7.1　オプション（書式）ダイアログボックス」を参照してください。

書式に関する情報を設定する。

［色］タブをクリックする。

［オプション（色）］ダイアログボックスが表示されます。

表示色に関する情報を設定する。

すべての項目の表示色をデフォルトに戻すには［すべてリセット］ボタンをクリックしてください。

ダイアログボックスの設定方法については，「4.7.2　オプション（色）ダイアログボックス」を参照してください。

［OK］ボタンをクリックする。

エディタの動作環境が設定され，ダイアログボックスが閉じます。

4.4.3　ジョブ定義スクリプトの実行環境を設定する

ジョブ定義スクリプトファイルごとに，実行時パラメーター，実行時ディレクトリ，ジョブ環境ファイル，および論理ホストを設定できます。設定した情報は，デバッグ情報ファイルに保存されます。

［デバッグ］−［実行環境の設定］メニューを選択する。

［実行環境の設定］ダイアログボックスが表示されます。

ダイアログボックスの設定方法については，「4.7.3　実行環境の設定ダイアログボックス」を参照してください。

［OK］ボタンをクリックする。

実行環境が設定され，ダイアログボックスが閉じます。

カバレージの蓄積で「蓄積しない」を選択している場合，カバレージ情報は採取されません。

4.4.4　文法をチェックする

ジョブ定義スクリプトファイルの文法をチェックします。ジョブ定義スクリプトの文法が正しいかどうかのチェックだけ行い，実行しません。カバレージを蓄積するオプションを指定しても実行しないため，蓄積しません。adshexecコマンドの-cオプションの指定に相当します。

コンソールは表示されません。エラーはエラーウィンドウに表示されます。

［デバッグ］−［文法チェック］メニューを選択する。

エディタがデバッグモードになり，文法チェックが開始されます。

文法チェック時は一瞬，画面が暗くなります。

文法チェック中の表示

文法チェック終了の表示

文法エラーがある場合はエラーウィンドウにエラー内容が表示されます。

エラーウィンドウの内容を確認する。

エラーウィンドウについては，「4.7.4　エラーウィンドウ」を参照してください。

注意事項

デバッグモードのときは，メニューがグレーアウトされて［デバッグ］−［文法チェック］は選択できません。

ファイル名のないジョブ定義スクリプトファイルに対して文法チェックを実行しようとすると，ファイル名を付けて保存するためのダイアログボックスが表示されます。ジョブ定義スクリプトファイル名（.ash）を付けて保存しないと，文法チェックは実行できません。

ジョブ定義スクリプトファイルの内容が更新されている場合，ファイルを更新するかどうかを問い合わせるメッセージが表示されます。更新する場合はファイルを保存して文法チェックを実行してください。

4.4.5　文字列を検索および置換する

ジョブ定義スクリプトファイル中の文字列の検索および置換について説明します。

(1)　文字列を検索する

ジョブ定義スクリプトファイル中の文字列を検索します。

［検索］−［検索］メニューを選択する。

［検索］ダイアログボックスが表示されます。

ダイアログボックスの設定方法については，「4.7.5　検索ダイアログボックス」を参照してください。

［置換する］がチェックされていないことを確認する。

［置換する］がチェックされている場合は，チェックを外してください。

［検索］に検索文字列を指定する。また，必要に応じて［大文字／小文字の区別］，および［単語の検索］をチェックする。

［前検索］ボタン，または［次検索］ボタンをクリックする。

検索文字列が検索されます。検索文字列がない場合は，ビープ音が鳴ります。

検索を終了する場合は，［キャンセル］ボタンをクリックする。

［検索］ダイアログボックスが閉じます。

(2)　文字列を置換する

ジョブ定義スクリプトファイル中の文字列を置換します。

［検索］−［置換］メニューを選択する。

［検索］ダイアログボックスが表示されます。

ダイアログボックスの設定方法については，「4.7.5　検索ダイアログボックス」を参照してください。

［置換する］がチェックされていることを確認する。

［置換する］がチェックされていない場合は，チェックしてください。

［検索］に置換前の文字列を指定する。また，必要に応じて［大文字／小文字の区別］，および［単語の検索］をチェックする。

［置換］に置換後の文字列を指定する。

［前検索］ボタン，または［次検索］ボタンをクリックする。

指定した内容で置換が始まります。置換するための文字列がない場合は，ビープ音が鳴ります。

置換を終了する場合は，［キャンセル］ボタンをクリックする。

［検索］ダイアログボックスが閉じます。

4.4.6　デバッグをする

ジョブ定義スクリプトファイルの動作を確認しながらデバッグ実行することをデバッグといいます。

adshexecコマンドの-dオプションの指定に相当します。デバッグをすると，コンソールが表示されます。エラーメッセージはエラーウィンドウに表示されます。

コンソールの内容を確認するためにプロセス終了の直前で停止します。初期化処理や構文解析でエラーがあった場合，プロセス終了前で停止しないでエラーウィンドウにエラーメッセージが表示されます。

デバッグの方法には，次の2種類があります。

方法

操作

概要

実行

［デバッグ］−［ブレークポイントまで実行］メニュー

ブレークポイントまでの実行スタート，およびリスタートをします。

ステップ実行

［デバッグ］−［ステップイン］メニュー

ジョブ定義スクリプトを1行ずつ実行して停止します。関数を呼び出す場合は，その関数の中も1行ずつ実行して停止します。

［デバッグ］−［ステップオーバー］メニュー

ジョブ定義スクリプトを1行ずつ実行して停止します。関数を呼び出す場合，関数の中は1行ずつ停止しませんが，ブレークポイントがあるときは停止します。

［デバッグ］−［ステップアウト］メニュー

関数を呼び出した次の行またはブレークポイントで停止します。

注意事項

ファイル名のないジョブ定義スクリプトファイルに対してデバッグを実行しようとすると，ファイル名を付けて保存するためのダイアログボックスが表示されます。ジョブ定義スクリプトファイル名（.ash）を付けて保存しないと，デバッグは実行できません。

ジョブ定義スクリプトファイルの内容が更新されている場合，ファイルを更新するかどうかを問い合わせるメッセージが表示されます。ファイルを更新するとデバッグが実行できます。

「プログラムの終了」のダイアログで「すぐに終了」を選択したときなど，デバッグ実行中にエディタが強制終了された場合，デバッガのプロセスであるadshesub.exeだけ終了せずに，コンソールを表示し続ける場合があります。その場合，taskkillコマンドまたはタスクマネージャーからadshesub.exeプロセスを終了させてください。

(1)　デバッグ実行時のブレークポイントを設定・解除する

デバッグの実行時に，一時的に実行を停止させる位置を設定，または解除します。

JP1/Advanced Shellエディタの場合，カーソルがある行にブレークポイントを設定するため，外部スクリプトには設定できません。事前に外部スクリプトにブレークポイントを設定していても，外部スクリプトのブレークポイントでは停止しません。設定できるブレークポイントの数の上限は999です。

(a)　ブレークポイントを設定する

ブレークポイントを設定したい行にカーソルを移動させる。

［デバッグ］−［ブレークポイントの設定］メニューを選択する。

カーソルのある行にブレークポイントが設定されます。ブレークポイントは，行の左側に[図データ]で表示されます。ジョブ定義スクリプトは，ブレークポイントを設定した行の先頭（実行前）まで実行して停止します。

(b)　一部のブレークポイントを解除する

ブレークポイントを解除したい行にカーソルを移動させる。

［デバッグ］−［ブレークポイントの解除］メニューを選択する。

カーソルのある行のブレークポイントが解除されます。

(c)　すべてのブレークポイントを解除する

ブレークポイントが設定されているジョブ定義スクリプトを表示する。

［デバッグ］−［ブレークポイントをすべて解除］メニューを選択する。

表示されているジョブ定義スクリプトファイルのブレークポイントがすべて解除されます。

注意事項

編集モードの場合は，任意の行にブレークポイントを設定できます。デバッグモードの場合，ブレークポイントを設定できるのは，実行対象となっているコマンド，またはステートメント単位に限られます。

実行できない行にブレークポイントが設定されている場合は，デバッグモード開始時に，エディタが自動的に下方向に適切な位置を検索して，そこにブレークポイントを設定します。

ブレークポイントは，999個まで指定できます。

(2)　デバッグを実行・中止する

(a)　ブレークポイントまで実行する場合

［デバッグ］−［ブレークポイントまで実行］メニューを選択する，またはツールバーの［ブレークポイントまで実行］ボタンをクリックする。

JP1/Advanced Shellエディタがデバッグモードになり，デバッグが始まります。次に実行される行の左側には，実行する位置を示す記号（[図データ]）が表示されます。コメント行やスペース行は無視されます。

ブレークポイント（[図データ]）を指定している行まで実行されると，実行が一時的に停止されます。

ブレークポイントの設定方法については，「(1)　デバッグ実行時のブレークポイントを設定・解除する」を参照してください。

デバッグを中止したい場合は，［デバッグ］−［デバッグの中止］メニューを選択する，またはツールバーの［デバッグの中止］ボタンをクリックする。

メニューを選択した時点で，デバッグが中止され，メッセージを出力して後処理をして終了します。プロセス終了前で停止しないでデバッグを終了します。エディタは編集モードに戻ります。

(b)　1行ずつ実行（関数の中もステップ実行）する場合

［デバッグ］−［ステップイン］メニューを選択する，またはツールバーの［ステップイン］ボタンをクリックする。

エディタがデバッグモードになり，デバッグが始まります。次に実行される行の左側には，実行する位置を示す記号（[図データ]）が表示されます。コメント行やスペース行は無視されます。関数の中も1行ずつ実行します。ジョブ定義スクリプトの最後の行まで実行すると，デバッガのプロセスの終了を示す記号（[図データ]）が表示されます。

CUIとは異なって，外部スクリプトを実行する場合，外部スクリプトでは停止しないで，エディタで表示しているジョブ定義スクリプトの次のコマンドで停止します。

デバッグを中止したい場合は，［デバッグ］−［デバッグの中止］メニューを選択する，またはツールバーの［デバッグの中止］ボタンをクリックする。

メニューを選択した時点で，デバッグが中止され，メッセージを出力して後処理をして終了します。なお，プロセス終了前で停止しないでデバッグを終了します。エディタは編集モードに戻ります。

(c)　1行ずつ実行（関数の中はステップ実行しない）する場合

［デバッグ］−［ステップオーバー］メニューを選択する，またはツールバーの［ステップオーバー］ボタンをクリックする。

エディタがデバッグモードになり，デバッグが始まります。次に実行される行の左側には，実行する位置を示す記号（[図データ]）が表示されます。コメント行やスペース行は無視されます。ジョブ定義スクリプトの最後の行まで実行すると，デバッガのプロセスの終了を示す記号（[図データ]）が表示されます。

CUIとは異なって，外部スクリプトを実行する場合，外部スクリプトでは停止しないで，エディタで表示しているジョブ定義スクリプトの次のコマンドで停止します。

デバッグを中止したい場合は，［デバッグ］−［デバッグの中止］メニューを選択する，またはツールバーの［デバッグの中止］ボタンをクリックする。

メニューを選択した時点で，デバッグが中止され，メッセージを出力して後処理をして終了します。なお，プロセス終了前で停止しないでデバッグを終了します。エディタは編集モードに戻ります。

(d)　関数の終わりまで実行する場合

［デバッグ］−［ステップアウト］メニューを選択する，またはツールバーの［ステップアウト］ボタンをクリックする。

エディタがデバッグモードになり，デバッグが始まります。次に実行される行の左側には，実行する位置を示す記号（[図データ]）が表示されます。コメント行やスペース行は無視されます。ジョブ定義スクリプトの最後の行まで実行すると，デバッガのプロセスの終了を示す記号（[図データ]）が表示されます。

CUIとは異なって，関数に入っていない状態でも，ジョブ定義スクリプトの終わりまでジョブ定義スクリプトを実行します。ただし，関数をリターンするまでにブレークポイントがある場合は停止します。

実行中のジョブ定義スクリプトを停止させたい場合は，［デバッグ］−［スクリプトの停止］メニューを選択する，またはツールバーの［スクリプトの停止］ボタンをクリックする。

［スクリプトの停止］ボタンをクリックしたときに実行していたコマンドはそのまま実行を続け，次のコマンドの実行に移る前に停止します。

デバッグを中止したい場合は，［デバッグ］−［デバッグの中止］メニューを選択する，またはツールバーの［デバッグの中止］ボタンをクリックする。

メニューを選択した時点で，デバッグが中止され，メッセージを出力して後処理をして終了します。なお，プロセス終了前で停止しないでデバッグを終了します。エディタは編集モードに戻ります。

(e)　デバッグ実行時のエラーウィンドウ，ウォッチウィンドウおよびコンソール

エラーウィンドウ

デバッグで検出された解析エラーや実行エラーは，エラーウィンドウに表示されます。また，ウォッチウィンドウに追加されている変数の値は，実行停止時に更新されて，表示されます。

エラーウィンドウについては，「4.7.4　エラーウィンドウ」を参照してください。

ウォッチウィンドウ

ウォッチウィンドウに表示される変数の値は，ジョブ定義スクリプト停止時に更新して表示されます。ウォッチウィンドウを表示したい場合は，ジョブ定義スクリプト停止中に［表示］−［ウォッチウィンドウを表示］メニューを選択する，またはツールバーの［ウォッチウィンドウを表示］ボタンをクリックしてください。このメニューは，ジョブ定義スクリプト停止中にだけ選択できます。また，ウォッチウィンドウで変数名をダブルクリックすると［値の更新］ダイアログボックスが表示されます。［値の更新］ダイアログボックスは，変数名の値を更新できます。

ウォッチウィンドウについては，「4.7.6　ウォッチウィンドウ」を，［値の更新］ダイアログボックスの設定方法については，「4.7.8　値の更新ダイアログボックス」を参照してください。

コンソール

デバッグ実行時に標準出力，標準エラー出力およびジョブ実行ログ相当の情報はコンソールに表示されます。コンソールは，ジョブ定義スクリプトを実行するプロセスが動作している間は表示され，プロセスが終了すると閉じます。ジョブ定義スクリプト実行中はコンソールがアクティブになり，ジョブ定義スクリプト停止時にエディタがアクティブになります。

(3)　ウォッチへ変数を追加する

ウォッチウィンドウに指定した変数を追加します。

デバッグモードで，［デバッグ］−［ウォッチへ変数の追加］メニューを選択する。

［変数の追加］ダイアログボックスが表示されます。

ダイアログボックスの設定方法については，「4.7.7　変数の追加ダイアログボックス」を参照してください。

追加したい変数の名前を入力する。

入力できるのは99バイトまでです。これを超えた変数名を入力できません。

［追加］ボタンをクリックする。

入力した変数の名前がウォッチウィンドウに追加されます。

［キャンセル］ボタンをクリックする。

［変数の追加］ダイアログボックスが閉じます。

デバッグモードで，JP1/Advanced Shellエディタウィンドウのクライアントエリアで文字列を選択してから［デバッグ］−［ウォッチへ変数の追加］メニューを選択すると，選択した文字列が「変数名」に表示されます。

追加した変数をウォッチウィンドウから削除する場合は，変数名を右クリックし，［変数名の削除］メニューを選択します。

(4)　エラーをシミュレートする

ジョブ定義スクリプト内のすべての実行パスを実行しても，C1実行比率が100%とならない場合があります。この現象は，#-adsh_step_startコマンドのジョブステップに先行するジョブステップまたはエラーとなるコマンドがない場合に発生します。

この場合，#-adsh_step_startコマンド以前に実行する個所でエラーをシミュレートすることで，先行のジョブステップ，またはジョブ定義スクリプトが異常なC1情報を取得することが可能になり，C1実行比率を100%にすることができます。なお，エラー注入モードを有効にした場合のジョブ定義スクリプトの動作は，「6.2.20　エラー注入モードの有効/無効を設定する（joberrmodeコマンド）」を参照してください。

手順を次に示します。

エラーをシミュレートしたい行にカーソルを移動させ，ブレークポイントを設定する。

ブレークポイントの設定方法については，「(1)　デバッグ実行時のブレークポイントを設定・解除する」を参照してください。

エラーをシミュレートしたい行までデバッグを実行する。

1.で設定したブレークポイントまでデバッグを実行します。ブレークポイントまで実行するとデバッグの実行が一時的に停止します。デバッグをブレークポイントまで実行する方法については，「(2)　デバッグを実行・中止する」を参照してください。

［デバッグ］−［エラー注入モード］メニューを選択する。

［エラー注入モード］メニューは，ブレークポイントなどでジョブ定義スクリプトが停止している場合だけ選択できます。

これによってエラー注入モードが有効になり，［エラー注入モード］メニューの左側には次のように「レ」が表示されます。

この状態でデバッグを再開することでエラーがシミュレートされ，C1情報が取得されます。

エラー注入モードを解除するには，デバッグを再開する前に［エラー注入モード］メニューを再選択してください。

デバッグを再開する。

ステップイン，ステップオーバー，ステップアウトまたはブレークポイントまで実行することで，エディタがデバッグモードになり，デバッグが再開されます。

ジョブ定義スクリプトの最後の行まで実行が終了すると，エラー注入モードは解除されます。

(5)　trapコマンドのアクションを実行する

ジョブコントローラが強制終了要求を受けた場合の動作は，trapコマンドのアクションによって定義できます。デバッグ実行時にtrapコマンドのアクションを実行する方法を次に示します。

デバッグ実行によって，トラップアクションが定義された後の任意の行でジョブ定義スクリプトを停止する。

デバッグ実行の方法については，「(2) デバッグを実行・中止する」を参照してください。

［デバッグ］-［トラップアクションの実行］メニューを選択する。

［トラップアクションの実行］メニューは，ブレークポイントなどでジョブ定義スクリプトが停止している場合にだけ選択できます。

メニュー選択後，ブレークポイントまで実行されます。このとき，次の順序でコマンドが実行されます。

1) 現在停止している位置のコマンドを実行

2) アクション部分のコマンドを実行

3) 1) の後続のコマンドを実行

なお，環境設定パラメーターTRAP_ACTION_SIGTERMにDISABLEを指定している場合，またはtrapコマンドによるアクションの定義がない場合，このメニューを選択してもtrapコマンドのアクションを実行しないでブレークポイントまで実行されます。

注意事項

trapコマンドのアクションの実行中に，ジョブ定義スクリプトの実行は停止できません。

この機能によるアクションの実行中にジョブが終了した場合，ジョブを強制終了した場合とは異なり，最後に実行したコマンドの終了コードがジョブの終了コードに反映されます。例えば，この機能を使用して，アクションで「exit 2」を実行した場合，終了コード2でジョブが終了しますが，ジョブを強制終了してアクションで「exit 2」が実行された場合，終了コード1でジョブがエラー終了します。

このメニューを選択した後，直後のコマンドの実行がスキップされる場合※，アクションは実行されません。

注※　例えば，次に示す場合にコマンドの実行がスキップされます。

・エラー注入モードを有効にする。

・onError属性にstopを指定したジョブステップ内のコマンドがエラー終了する。

4.4.7　カバレージ情報を表示する

カバレージを採取している場合，エディタで開いているジョブ定義スクリプトまたはデバッグ実行中のジョブ定義スクリプトに対してカバレージ情報を表示します。デバッグ中の場合は採取中のカバレージ情報が表示され，デバッグ終了後の場合は最後に採取したカバレージ情報が表示されます。カバレージ情報は一時ファイルに出力され，メモ帳（notepad.exe）で表示されます。

カバレージ情報を表示するための［カバレージ情報の表示］メニューは，［実行環境の設定］でカバレージを［蓄積する］に設定した場合に有効となります。［蓄積する］に設定していない場合，メニューがグレーアウトされ，選択できません。

エディタの終了やデバッグの終了時でも，メモ帳は表示されたままです。デバッグ実行中にカバレージ情報が変更されても，表示内容は更新されません。

カバレージ情報を表示したあと，カバレージ情報の表示を中止する手順を次に説明します。

［表示］−［カバレージ情報の表示］メニューを選択する，またはツールバーの［カバレージ情報の表示］ボタンをクリックする。

メモ帳を開いて，カバレージ情報が表示されます。表示されたカバレージ情報は任意のファイル名で保存することもできます。

カバレージ情報の表示を終了する場合は，メモ帳を閉じて終了する。

カバレージ情報の表示を終了します。

4.5　既存のジョブ定義スクリプトを編集する【Windows限定】

JP1/Advanced Shellエディタで既存のジョブ定義スクリプトを編集する方法について説明します。ジョブ定義スクリプトファイルを編集するには，3つの開始方法があります。

右クリックメニューからの開始方法

エクスプローラからジョブ定義スクリプトファイルを右クリックする。

［編集］を選択する。

ドラッグアンドドロップでの開始方法

エクスプローラからジョブ定義スクリプトファイルをドラッグする。

「エディタ」アイコン，またはすでに起動しているエディタウィンドウにドロップする。

なお，エディタウィンドウについては，「4.3　JP1/Advanced Shellエディタの操作【Windows限定】」を参照してください。

エディタのメニューからの開始方法

［ファイル］−［開く］メニューを選択する，または［ファイル］−編集履歴から編集を開始する。

編集する既存のジョブ定義スクリプトファイルを選択する。

4.6　ジョブ定義スクリプトを保存する【Windows限定】

JP1/Advanced Shellエディタでジョブ定義スクリプトを保存する方法について説明します。

ジョブ定義スクリプトファイルを上書き保存したい場合は，［ファイル］−［保存］メニューを選択する。

ジョブ定義スクリプトファイルを上書き保存します。

ジョブ定義スクリプトファイルを別名で保存したい場合は，［ファイル］−［名前を付けて保存］メニューを選択する。

ジョブ定義スクリプトファイルを別名で保存します。

4.7　JP1/Advanced Shellエディタウィンドウの画面の詳細【Windows限定】

JP1/Advanced Shellエディタウィンドウの操作中に表示されるダイアログボックスおよびウィンドウの一覧を，次に示します。

オプション（書式）ダイアログボックス

オプション（色）ダイアログボックス

実行環境の設定ダイアログボックス

エラーウィンドウ

検索ダイアログボックス

ウォッチウィンドウ

変数の追加ダイアログボックス

値の更新ダイアログボックス

コンソール

4.7.1　オプション（書式）ダイアログボックス

JP1/Advanced Shellエディタウィンドウで，［編集］−［オプション］メニューを選択すると，［オプション］ダイアログボックスが表示されます。

［オプション］ダイアログボックスには，「書式」と「色」のタブがあります。

「書式」タブを選択すると，［オプション（書式）］ダイアログボックスが表示されます。

(1)　ダイアログボックスの項目

フォント名

現在使用している文字のフォント名が表示されます。フォントを変更するには，［フォントの指定］ボタンをクリックします。

デフォルトでは「FixedSys」が設定されています。

フォントサイズ

現在使用している文字のフォントサイズを指定します。フォントサイズを変更するには，［フォントの指定］ボタンをクリックします。

デフォルトでは「14」が設定されています。

文字の折り返し

文字を折り返す方法を選択します。

デフォルトでは「ウィンドウ幅で折り返す」が選択されています。

ウィンドウ幅で折り返す

文字をウィンドウ幅で折り返す場合に選択します。

文字数を指定する

文字を固定の文字数で折り返す場合に選択します。

折り返し文字数

折り返す文字数を指定します。

「文字数を指定する」が選択されている場合にだけ指定できます。

20〜512（単位：バイト）の範囲で指定してください。

デフォルトでは「100」が指定されています。

タブの文字数

タブの文字数（単位：バイト）を選択します。

デフォルトでは「4」が選択されています。

タブ記号を表示する

タブを示す記号の表示／非表示を指定します。

デフォルトではチェックされています。

改行記号を表示する

改行を示す記号の表示／非表示を指定します。

デフォルトではチェックされています。

全角スペース記号を表示する

全角スペースを表す記号の表示／非表示を指定します。

デフォルトではチェックされています。

「元に戻す」の実行回数

［編集］−［元に戻す］を何回まで実行できるようにするかを指定します。

10〜999の範囲で指定してください。デフォルトでは「100」が指定されています。

(2)　ダイアログボックスでの操作

［OK］ボタンをクリックすると，指定した書式が設定されてダイアログボックスが閉じます。

［キャンセル］ボタンをクリックすると，書式を変更しないでダイアログボックスが閉じます。

4.7.2　オプション（色）ダイアログボックス

JP1/Advanced Shellエディタウィンドウで，［編集］−［オプション］メニューを選択すると，［オプション］ダイアログボックスが表示されます。

［オプション］ダイアログボックスには，「書式」と「色」のタブがあります。

「色」タブを選択すると，［オプション（色）］ダイアログボックスが表示されます。

(1)　ダイアログボックスの項目

テキスト

テキストの色を指定します。

デフォルトでは「システムカラー」が設定されています。

編集時の背景

編集モードのときの背景色を指定します。

デフォルトでは「システムカラー」が設定されています。

デバッグ時の背景

デバッグモードのときの背景色を指定します。

デフォルトでは「灰色」が設定されています。

コメント行

コメント行の色を指定します。

デフォルトでは「緑色」が設定されています。

改行記号

改行記号の色を指定します。

デフォルトでは「赤色」が設定されています。

組み込みコマンド

組み込みコマンドの色を指定します。

デフォルトでは「青色」が設定されています。

予約語

予約語および「]]」の色を指定します。

デフォルトでは「青色」が設定されています。

拡張コマンド

拡張コマンドの色を指定します。

デフォルトでは「青色」が設定されています。

文字列

文字列の色を指定します。

デフォルトでは「暗紫色」が設定されています。

更新行番号

更新行番号の色を指定します。

デフォルトでは「黄色」が設定されています。

現在位置カーソル

現在位置を示すカーソルの色を指定します。

デフォルトでは「青色」が設定されています。

すべてリセット

すべての項目に対する色の指定をデフォルト値に戻します。

(2)　ダイアログボックスでの操作

［すべてリセット］以外の各項目のボタンをクリックすると，［色の設定］ダイアログボックスが表示され，色が選択できます。さらに，［色の設定］ダイアログボックスの［色の作成］ボタンをクリックすると，［色の作成］ダイアログボックスが表示され，色を作成して指定できます。

［OK］ボタンをクリックすると，指定した色が設定されてダイアログボックスが閉じます。

［キャンセル］ボタンをクリックすると，色を変更しないでダイアログボックスが閉じます。

4.7.3　実行環境の設定ダイアログボックス

JP1/Advanced Shellエディタウィンドウで，［デバッグ］−［実行環境の設定］メニューを選択すると，［実行環境の設定］ダイアログボックスが表示されます。

(1)　ダイアログボックスの項目

実行時パラメーター

ジョブ定義スクリプトに渡す実行時パラメーターを指定します。

例

ファイル名が「a.ash」のジョブ定義スクリプトを使用する場合，実行時パラメーターに「ABC」を指定すると，「ABC」が「a.ash」に対する第1引数になります。

実行時ディレクトリ

ジョブ定義スクリプトを実行するカレントドライブ，またはフォルダを指定します。

指定がない場合は，エディタのカレントフォルダになります。

エディタのカレントフォルダは次のどれかになります。

ジョブ定義スクリプトファイルがあるフォルダ

プログラムフォルダ

プログラムのカレントフォルダ

ショートカットの作業フォルダ

例

ジョブ定義スクリプト名がa.ashのファイルにジョブ定義スクリプト「pwd」が記載されていたとします。実行時ディレクトリに「C:¥」を指定すると，次のようにWindows環境で指定した場合と同じになります。

　C:¥> a.ash
　C:¥
　C:¥>

ジョブ環境ファイル

デバッグ時に使用するジョブ環境ファイルを指定します。指定したファイルは，デバッグ対象のジョブで使用されます。

指定を省略した場合は，環境変数ADSH_ENVに指定されたファイルが使用されます。環境変数ADSH_ENVにもファイルが指定されていない場合は，デフォルト値で実行されます。

論理ホスト

ユーザー応答機能で使用する論理ホストを指定します。デバッグ対象のジョブで実行するユーザー応答機能は，指定した論理ホストで実行されます。

指定を省略した場合は，物理ホストで実行されます。

カバレージの蓄積

カバレージ情報を蓄積するかどうかを指定します。

蓄積しない

カバレージを蓄積しません。adshexecコマンドの-tオプションを指定しない場合に相当します。デバッグ実行中のカバレージ情報の表示機能は有効になりません。

蓄積する

カバレージを蓄積します。ジョブ定義スクリプトファイルが更新されている場合は，ジョブ定義スクリプトを実行しないで終了します。adshexecコマンドの-tオプションの指定に相当します。エディタからカバレージ情報を表示できます。

蓄積する（ジョブ定義スクリプトファイル変更時はカバレージ情報ファイルを上書き）

カバレージを蓄積します。ジョブ定義スクリプトファイルが更新されている場合は，蓄積されたカバレージ情報を破棄し，新規に蓄積を開始します。adshexecコマンドの-tオプションと-fオプションを同時に指定した場合に相当します。エディタからカバレージ情報を表示できます。

デフォルトでは「蓄積しない」が選択されています。

カバレージ情報は，カバレージ情報ファイル（ascファイル）に保存されます。ascファイルは，ジョブ定義スクリプトファイルがあるディレクトリに作成されます。ascファイルがすでに存在する場合は，ジョブ定義スクリプトファイルがあるディレクトリのascファイルを使用します。

カバレージ情報ファイルに蓄積されたカバレージ情報を表示する場合は，エディタの［表示］−［カバレージ情報の表示］メニューまたはadshcvshowコマンドを使用します。また，2つのカバレージ情報ファイルのカバレージ情報をマージする場合は，adshcvmergコマンドを使用します。カバレージ情報については，「3.10　カバレージ情報を取得する」を参照してください。

シェルオプション

シェルオプションxtraceを指定するかどうかを指定します。

xtraceを指定しない

デバッグ実行開始時にシェルオプションxtraceを指定しません。adshexecコマンドに-xオプションを指定しない場合に相当します。

xtraceを指定する

デバッグ実行開始時にシェルオプションxtraceを指定します。adshexecコマンドに-xオプションを指定する場合に相当します。

この項目を選択すると，実行したコマンドとその引数がトレース情報として標準エラー出力へ出力されます。詳細については，「3.6　実行したコマンドとその引数を出力する」を参照してください。

デフォルトでは「xtraceを指定しない」が選択されています。

このほかにシェルオプションには，使用できる機能の制限や，実行モードの切り替えをするための機能があります。シェルオプションについては，「5.6　シェルオプション」を参照してください。

(2)　ダイアログボックスでの操作

［OK］ボタンをクリックすると，ダイアログボックスで設定した情報が各実行環境ファイルとして作成されます。

［キャンセル］ボタンをクリックすると，実行環境ファイルを作成しないでダイアログボックスが閉じます。

4.7.4　エラーウィンドウ

デバッグ実行で発生したエラーを表示します。ジョブ定義スクリプト停止中に表示します。

(1)　クライアントエリア

種類

エラーの種類を表示します。エラーには，次の2つの種類があります。

解析：文法解析でエラーが発生しました。

実行：実行時エラーが発生しました。

ジョブ定義スクリプトファイル名

エラーが発生したジョブ定義スクリプトファイル名を表示します。ただし，エディタで編集中のファイルの場合はスペースになります。

行

エラー発生個所の行番号を表示します。

内容

エラーの内容を表示します。

(2)　エラーウィンドウの操作

ジョブ定義スクリプトファイル名がスペースの場合，エラーの種類の表示欄をダブルクリックすると，該当するエラー行の先頭にカーソルが移動します。

ジョブ定義スクリプトファイル名がスペースの場合，エラーの種類の表示欄を右クリックすると，該当するエラーの個所にカーソルを移動するための，［ジャンプ］ポップアップメニューが表示されます。

4.7.5　検索ダイアログボックス

JP1/Advanced Shellエディタウィンドウで，［検索］−［検索］メニューを選択すると，［検索］ダイアログボックスが表示されます。

［検索］−［検索］メニューを選択しないで［検索］−［前検索］，または［次検索］メニューを選択した場合も，［検索］ダイアログボックスが表示されます。

(1)　ダイアログボックスの項目

置換する

文字列を置換する場合はチェックします。

デフォルトではチェックされていません。

検索

検索する文字列を指定します。

置換

検索文字列を置き換える文字列を指定します。「置換する」がチェックされている場合だけ，指定できます。

大文字／小文字の区別

大文字と小文字を区別して検索する場合はチェックします。

デフォルトではチェックされていません。

単語の検索

単語だけを検索する場合にチェックします。

デフォルトではチェックされていません。

(2)　ダイアログボックスでの操作

［前検索］ボタンをクリックすると，検索文字列を上方向に検索します。

［次検索］ボタンをクリックすると，検索文字列を下方向に検索します。

［すべて置換］ボタンをクリックすると，ジョブ定義スクリプトファイル中にあるすべての検索文字列を「置換」で指定した文字列に置換します。

［キャンセル］ボタンをクリックすると，ダイアログボックスが閉じます。

(3)　注意事項

「置換」，および「検索」に指定した文字列は，過去10件分だけドロップダウンリストに記憶されます。

検索文字列がない場合はビープ音が鳴ります。

4.7.6　ウォッチウィンドウ

デバッグ実行時に変数名とその変数の値を表示します。

ウォッチウィンドウへの変数の追加方法については，「4.4.6(3)　ウォッチへ変数を追加する」を参照してください。

(1)　クライアントエリア

変数名

変数名が表示されます。

値

変数の値が表示されます。指定した変数が不当な場合は，次に示す文字列を表示します。

Error:Bad Number

数値型の変数に数値以外を設定した場合に表示されます。

Error:Internal Error

内部エラーの場合に表示されます。

Error:Invalid Data

変数名が無効の場合に表示されます。また，配列変数名だけを指定したインデックス番号が有効な範囲にない場合，指定した配列変数の次元が異なる場合は値を参照できないため，表示されます。

Error:Not Enough Core

メモリ不足の場合に表示されます。

Error:Read Only

読み込み専用の変数に値を設定した場合に表示されます。

No Value

値が存在しない変数を指定した場合に表示されます。

読み込み専用の変数を変更しようとした場合や数値型の変数に文字列を指定した場合は，上記のエラーが表示されます。デバッグを再開すると，変更前の値が設定されています。

(2)　ウォッチウィンドウの操作

変数名を右クリックすると，次の2つを選択するポップアップメニューが表示されます。

値の更新

選択した変数名の値を更新します。

変数名の削除

選択した変数名を削除します。

変数名をダブルクリックすると，［値の更新］ダイアログボックスが表示されます。

4.7.7　変数の追加ダイアログボックス

デバッグモードで，［デバッグ］−［ウォッチへ変数の追加］メニューを選択すると，［変数の追加］ダイアログボックスが表示されます。

(1)　ダイアログボックスの項目

変数名

追加する変数名を指定します。

(2)　ダイアログボックスでの操作

［追加］ボタンをクリックすると，指定した変数名がウォッチウィンドウに追加されて［変数の追加］ダイアログボックスが閉じます。

［キャンセル］ボタンをクリックすると，変数を追加しないでダイアログボックスが閉じます。

(3)　注意事項

［デバッグ］−［ウォッチへ変数の追加］メニューはデバッグモードの場合にだけ，選択できます。

同じ変数を複数指定しても，存在しない変数を指定してもエラーにはなりません。

指定できる変数名は99バイトまでです。これを超えた部分は切り捨てられます。

変数名は，99個まで指定できます。

4.7.8　値の更新ダイアログボックス

［ウォッチウィンドウ］で変数名をダブルクリックすると，［値の更新］ダイアログボックスが表示されます。

(1)　ダイアログボックスの項目

変数名

更新する対象の変数名が表示されます。

値

更新したい値を入力します。値は1,024バイトまで入力できます。更新する対象の変数名が未定義状態の場合，値は変更されません。

デフォルトでは現在の値が設定されています。

(2)　ダイアログボックスでの操作

［更新］ボタンをクリックすると，指定した変数の値が更新されて［値の更新］ダイアログボックスが閉じます。

［キャンセル］ボタンをクリックすると，変数の値を更新しないでダイアログボックスが閉じます。

4.7.9　コンソール

デバッグ実行時に，標準出力，標準エラー出力およびジョブ実行ログ相当の情報を表示します。

(1)　コンソールの操作

デバッグ対象のジョブが終了するとコンソールは閉じます。環境ファイルおよびジョブ定義スクリプトの文法エラーなどがある場合，エラーウィンドウおよびジョブ識別子を基にスプールに出力されている実行結果を参照して対応してください。

プロパティの設定方法はコマンドプロンプトの設定方法と同じです。

5　ジョブ定義スクリプトの作成

ジョブ定義スクリプトの文法について説明します。

5.1　ジョブ定義スクリプトを構成する基本要素

この節では，ジョブ定義スクリプトを構成する基本要素について説明します。

注意事項

ジョブ定義スクリプトを記述する際は次の点に注意してください。

ジョブ定義スクリプトの1行は8,191バイト以下にしてください。1行が8,192バイト以上の場合，ジョブ定義スクリプトはエラー終了します。

ただし，継続行については異なる行として扱います。継続行については，「5.1.6(3)　行継続」を参照してください。

スクリプト拡張コマンドを使用した行については，スクリプト拡張コマンドの制限事項に従って，継続する行を含めて，8,191バイト以下にしてください。

スクリプト拡張コマンドの制限事項については，「9.1.3(1)　制限事項」を参照してください。

ファイルの入出力時にファイルパスを変換する場合は，ファイル入出力が発生するタイミングでバイト数が変わります。そのため，変換による1行の上限を超えたときでもエラーとはしないで処理を継続します。

5.1.1　予約語

JP1/Advanced Shellでは，ジョブ定義スクリプト内で使用する特殊な字句を予約語として登録しています。予約語はコマンドの最初の単語として使用された場合に意味を持ち，引用符で囲まれていないかぎり予約語として認識されます。予約語をコマンドの2番目以降に使用した場合，通常の変数として扱われます。そのため，予約語と同じ字句を使用する場合は注意が必要です。

予約語の確認はシェル標準コマンドのcommand -V，whence -vで行います。commandコマンドおよびwhenceコマンドについては，「9.3　シェル標準コマンド」の「commandコマンド（コマンドを実行する）」または「whenceコマンド（文字列をコマンドとした場合の解釈を表示する）」を参照してください。

予約語を次に示します。

!　[[　{　}　case　do　done　elif　else　esac　fi　for　function　if　in　select　then　time　until　while

5.1.2　変数

変数とはジョブ定義スクリプト内で値を代入する領域のことです。変数の作成および変数の値を参照できます。また，変数は，エクスポートによって子プロセスに環境変数として引き継がせることができます。変数のことをシェル変数ともいいます。

(1)　変数の命名規則

作成する変数の名称は，命名規則の範囲で任意に指定できます。また，英字は大文字と小文字を区別するため，同じスペルであっても異なる変数名になります。

ただし，Windows環境で小文字が含まれる変数をエクスポートし，環境変数として使用しようとすると，VAR_ENV_NAME_LOWERCASEパラメーターの指定によってはエラーとなります。

変数の命名規則を次に示します。環境変数の命名規則については「(a)　環境変数の命名規則【Windows限定】」を参照してください。

使用できる文字は英数字と_（アンダースコア）だけです。

先頭文字は数字以外にしてください。

変数名の長さは無制限です。ただし，入力行の上限およびCUIデバッガのコマンド入力文字数の上限が存在します。そのため，ジョブ定義スクリプト内で使用する変数の長さは上限以下であることを推奨します。

入力行の上限については，「5.1　ジョブ定義スクリプトを構成する基本要素」を参照してください。CUIデバッガのコマンド入力文字数の上限については，「6.1.4　デバッガのコマンド一覧【UNIX限定】」を参照してください。

(a)　環境変数の命名規則【Windows限定】

VAR_ENV_NAME_LOWERCASEパラメーターの指定によって，使用できる環境変数名は次のように異なります。

VAR_ENV_NAME_LOWERCASEパラメーターにDISABLEを指定した場合

小文字を含む環境変数名は使用できません。

小文字が含まれる変数をエクスポートしようとするとエラーとなります。

VAR_ENV_NAME_LOWERCASEパラメーターにENABLEを指定した場合

小文字を含む環境変数名を使用できます。ただし，「ADSH」から始まる環境変数名は小文字では定義しないでください。

指定時の注意事項を次に示します。

ジョブ定義スクリプトで小文字のシェル変数名をエクスポートした場合，そのあと呼ばれる外部コマンドには，環境変数名が小文字のまま渡ります。Windowsでは大文字と小文字を区別しないため，スペルが同じ環境変数名を同一と解釈し，最後にエクスポートした値が環境変数として渡されます。しかし，シェル変数は大文字・小文字が区別されるため，それぞれ別の値を保持するので，注意してください。

例えば，次の指定では環境変数名の「ABC」と「abc」は区別されないため，最初は環境変数値として「lowercase」が設定されますが，最後に「uppercase」が設定されます。

export abc=lowercase

export ABC=uppercase

シェル変数をエクスポートした場合，そのシェル変数のスコープ内で同じスペルのシェル変数のexport属性は無効になります。配列でもすべての要素のexport属性が無効になります。

ローカルシェル変数の場合，そのシェル変数のスコープ外の同じスペルのシェル変数のexport属性は有効になり，関数の処理を抜けると環境変数値は回復します。

コマンドやパラメーターで小文字を指定できるかどうかは，VAR_ENV_NAME_LOWERCASEパラメーターの設定によって次のように異なります。

コマンドまたはパラメーター

VAR_ENV_NAME_LOWERCASEパラメーターの設定値

DISABLE

ENABLE

exportパラメーター（環境設定パラメーター）

大文字・小文字を指定できるが，区別はされない。

同左

exportコマンド，

typeset -xコマンド

小文字のシェル変数名は指定できない。

小文字のシェル変数名も指定できるが，環境変数名の大文字・小文字は区別されない。

ただし，シェル変数としては大文字・小文字は区別され，別のシェル変数と見なされる。

setコマンド

（-aオプション）

setコマンド以降のシェル変数をすべてエクスポートするが，小文字のシェル変数に値を設定するとエラーになる。

setコマンド以降のシェル変数をすべてエクスポートするが，小文字のシェル変数でも値を設定すると，そのシェル変数がエクスポートされる。

ただし，環境変数名の大文字・小文字は区別されない。

unsetコマンド，

readonlyコマンド，

readコマンド

シェル変数名なので小文字を指定できる。

同左

#-adsh_fileコマンド，

#-adsh_file_tempコマンド，

#-adsh_spoolfileコマンド

ファイル環境変数定義名には小文字を指定できない。

ファイル環境変数定義名に小文字を指定できる。

ただし，環境変数名の大文字・小文字は区別されない。

#-adsh_step_startコマンド

ジョブステップ名はステップの戻り値を格納するシェル変数名に使用されるが，小文字を指定できる。

-stepVarで指定するシェル変数名は小文字を指定できる。

同左

#-adsh_path_varコマンド

変数名に小文字を指定できる。

同左

スクリプト拡張コマンドの{環境変数名}による置換

環境変数名に小文字を指定できる。

同左

GUIデバッガでウォッチするシェル変数

シェル変数名に小文字を指定できる。

同左

adshreadコマンド

シェル変数名に小文字を指定できる。

同左

for シェル変数

シェル変数名に小文字を指定できる。

同左

awkコマンドのENVIRON組み込み変数

添え字に環境変数名を指定できるが，小文字も指定できる。

同左

adshjavaコマンドのバッチアプリケーションに渡す引数

システムプロパティで環境変数名を指定できるが，adshjavaコマンドは文字種別をチェックしない。

同左

稼働実績情報取得機能で採取する環境変数

環境変数名と値を採取するが，環境変数名の文字種別をチェックしない。

同左

(2)　変数の作成と値の代入

変数を作成，および値を代入する場合の書式を次に示します。

変数名=値

変数は=の左項に変数名を記述することで作成されます。作成された変数には，値の書き込みおよび値の読み込みができます。変数に値を代入する場合は，=の右項に値を記述します。変数は次の点に注意して作成してください。

変数の属性が読み込み専用の場合，変数への値の代入はエラー終了し，ジョブは終了します。変数の属性を読み込み専用に変更する場合は，シェル標準コマンドのreadonlyコマンドを使用します。

readonlyコマンドについては，「9.3　シェル標準コマンド」の「readonlyコマンド（変数の属性を読み込み専用に変更する，または読み込み専用の変数を表示する）」を参照してください。

変数名に未作成の変数を指定した場合は，変数の作成と同時に値が代入されます。変数に代入する値が文字列の場合，何文字でも代入できます。

しかし，typesetコマンドで整数型に定義した変数に数値を代入する場合や，変数に代入した数値を使用して算術演算する場合は，変数の値および算術結果が-2147483648〜2147483647の範囲内でなければなりません。範囲外の値を指定した場合，正しい結果を求めることができません。

=の両脇にはスペースを入力しないでください。スペースが入っていた場合，変数は作成されません。

変数にスペースやメタキャラクタを含む文字列を代入する場合は，クォーテーション（'または"）で囲んでメタキャラクタを無効化にするか，エスケープ文字を使用してください。メタキャラクタおよびメタキャラクタの無効化については，「5.1.6　メタキャラクタ」を参照してください。

(3)　変数の値の参照

(a)　参照方法

変数の値を参照する場合の書式を次に示します。

$変数名
または
${変数名}

変数に代入された値は，変数名に$を付けることで参照できます。参照する変数は変数名と完全に一致した変数が対象となります。ただし，変数名に使用できない文字を指定した場合，それまでの文字を変数名と認識し処理をします。

参照する変数名の文字列に，変数名には指定できない文字を指定した場合の実行例

abc=xxx
echo $abc@zzz

→xxx@zzzが標準出力に出力されます。

また，参照する変数名を明示的に指定したい場合は，変数名を{ }で囲むことで参照できます。ただし，{ }で囲った場合は，変数名に使用できない文字が含まれていても変数名の一部として扱い処理をします。

変数abcを明示的に指定し，参照する場合の実行例

abc=xxx
abcdef=yyy
echo ${abc}def

→xxxdefが標準出力に出力されます。

(b)　offset（参照起点）とlength（参照長）を指定した参照方法

offset（参照起点）とlength（参照長）を指定して変数の値を参照する場合の書式を次に示します。

${変数名:offset}

または

${変数名:offset:length}

または

${変数名::length}

参照する変数に代入された値の特定の部分を参照したい場合，変数名に続けて「:offset」または「:offset:length」を指定します。

offsetやlengthには変数名の命名規則に示されている文字および数値以外は指定できません。offsetやlengthに指定する変数名および数値は，次の規則に従い記述してください。

指定値

指定規則

数値（符号なし）の場合

指定値の前後にはスペース，タブは指定できません。

数値（符号あり）の場合

符号の直前にはスペースを指定する必要があります。それ以外の指定値の前後にはスペース，タブは指定できません。

変数の場合

指定値の前後にはスペース，タブは指定できません。

offsetの指定省略の場合

スペースの指定はできますが，タブの指定はできません。

複数行にわたって記述する場合，行の終端に¥を付けて改行できます。

offsetとlengthに指定できる数値の範囲を次に示します。

種類

指定範囲（単位：文字）※

指定例

offset

-65535〜65535

0を指定した場合，文字列の先頭から出力されます。

正の値を指定した場合，文字列の先頭+1番目を起点として出力されます。

負の値を指定した場合，文字列の終端から数えた位置が起点となります。

（例）

文字列数10のデータに対し，offsetに0，3，または-1を指定した場合の参照先を次に示します。

length

0〜65536

（例）

文字列数10のデータに対し，offset=3，length=3を指定した場合，出力できる文字の範囲は次の図の太線で囲まれた部分です。

注※

数値は次のどちらかの方法で指定できます。

8進数，10進数，16進数の数値

指定した数値は次のように自動判別されます。

・0xから始まる文字列(0xa)は，16進数と判別されます。

・0から始まる文字列(012)は，8進数と判別されます。

・8進数でも16進数でもない数値は，10進数と判別されます。

・-0は，0を指定した場合と同等に扱われます。

・数値に符号（「-」または「+」）を付けた場合，「:」と符号との間には1つ以上のスペースを入れる必要があります。

数値を代入した変数名

指定した変数名の変数が存在しない場合，または変数に代入値が指定されていない場合は，変数値には0が仮定されます。

複数の変数を再帰的に参照する変数名を指定した場合，offsetの再帰回数が1,024回，lengthの再帰回数が1,025回を超えると，エラーになります。

offsetおよびlengthの指定に関する注意事項を次に示します。

次の指定は構文エラーとなります。

offsetまたはlengthに，数値でも変数名でもない文字列を指定した場合

echo ${ABC:123D}

→「123D」は数値でも変数名でもないためエラーとなる

offsetまたはlengthに指定した変数名に，数値でも変数名でもない文字列が設定されている場合

CNT=123D

echo ${ABC:CNT}

→指定した変数の値「123D」は数値でも変数名でもないためエラーとなる

offsetを不当に省略した場合

echo ${ABC:}

→offsetの指定がないため，エラーとなる

offsetおよびlengthに算術式を指定した場合

echo ${ABC:10-2}

→算術式が指定されているため，エラーとなる

offsetおよびlengthに指定した変数に$や${}を付けた場合

ABC=abcdefghijklmn

AA=1

echo ${ABC:$AA}

→offsetおよびlengthに指定する変数に$や${}を付けているため，エラーとなる

offsetの直前またはlengthの直前にタブを指定した場合

（次の例ではoffsetの直前にタブを指定しています。｢→｣はタブを示します）

ABC=abcdefghijklmn

AA=1

BB=1

echo ${ABC:→AA:BB}

→offsetの直前にタブを指定しているため，エラーとなる

offsetまたは変数に設定されている数値が，変数に設定された文字列の長さを超えている場合，変数に設定されている文字列は取り出されません。

ABC=abcdefghijklmn
echo ${ABC:20}

→変数ABCの文字列の長さが14文字しかないため，取り出せない

offsetまたはlengthに指定した変数名が未定義か，変数値が空の場合，offsetまたはlengthは0が指定されたものとして処理します。

offsetやlengthに指定する変数の値をtypesetコマンドで属性変更した場合，変更方法によっては基数が変更（-Zオプションでゼロ詰めを指定すると8進数扱いとなる）されて，参照範囲が変わってしまう場合があります。また，基数変更で指定値が不正となることがあります。

次の例では，typesetコマンドでの属性変更でゼロ詰めを指定することで，変数L1に指定した12が012となり，8進数と解釈されます。

ABC=abcdefghijklmnopqrstuvwxyz
typeset -Z3 D1=4
typeset -Z3 L1=12
echo ${ABC:D1:L1}

→012（8進数）が10（10進数）と解釈され，efghijklmn（10文字）がSTDOUTに出力される

また，次の例では，typesetコマンドでの属性変更でゼロ詰めを指定することで，変数D1に指定した8は008となり8進数と解釈されます。しかし，8進数では0〜7の数値しか指定できないため，エラーとなります。

ABC=abcdefghijklmnopqrstuvwxyz
typeset -Z3 D1=8
typeset -Z3 L1=12
echo ${ABC:D1:L1}

→8進数に8が指定されていると解釈され，エラーとなる

offsetやlengthに指定する変数が，再帰的な参照指定または循環参照指定となっている場合はエラーとなります。例を次に示します。

再帰的な参照指定の例

ABC=abcdefghijklmnopqrstuvwxyz

D1=D1

echo ${ABC:D1}

循環参照指定の例

ABC=abcdefghijklmnopqrstuvwxyz

D1=D2

D2=D1

echo ${ABC:D1}

offsetおよびlengthの実行例を次に示します。

offset(5)を指定

ABC=abcdefghijklmn
echo ${ABC:5}

→「fghijklmn」が標準出力に出力される。

offset(5)を指定しlength(4)を指定

ABC=abcdefghijklmn
echo ${ABC:5:4}

→「fghi」が標準出力に出力される。

offset(-1)を指定

ABC=abcdefghijklmn
echo ${ABC: -1}

→「n」が標準出力に出力される。

offsetを定義した変数名を指定

DEF=abcdefghijklmn
CNT=5
echo ${DEF:CNT}

→「fghijklmn」が標準出力に出力される。

offsetとlengthを定義した変数名を指定

DEF=abcdefghijklmn
CNT=5
LEN=4
echo ${DEF:CNT:LEN}

→「fghi」が標準出力に出力される。

offsetを定義した変数名を指定

DEF=abcdefghijklmn
CNT=-1
echo ${DEF:CNT}

→「n」が標準出力に出力される。

変数xyzを明示的に指定し，変数に指定した値の5文字目から3文字分までを参照する場合，変数xyzにマルチバイト文字が含まれている状態で，offsetとlengthの値を変数CNTとLENに代入して参照

xyz=あいうえおかきくけこさしすせabcdefghそたち
CNT=4
LEN=3
echo ${xyz: CNT: LEN}

→「おかき」が標準出力に出力される。

変数xyzを明示的に指定し，変数に指定した値の-17文字目から14文字分までを参照する場合，変数xyzにマルチバイト文字が含まれている状態で，offsetとlengthの値を変数CNTとLENに代入して参照

xyz=あいうえおかきくけこさしすせabcdefghそたち
CNT=-17
LEN=14
echo ${xyz: CNT: LEN}

→「けこさしすせabcdefgh」が標準出力に出力される。

(4)　変数に設定できる書式，属性

JP1/Advanced Shellでは変数に対して書式および属性を設定できます。設定できる書式と属性を次の表に示します。

表5‒1　変数に対して設定できる書式

書式

意味

左詰め

変数に代入されている値を左詰めに変換します。

右詰め

変数に代入されている値を右詰めに変換します。

ゼロ詰め

変数に代入されている値を右詰めに変換します。さらに，値が数値の場合は，値の先頭までのスペースに0を挿入します。

小文字変換

変数に代入されている値のうち，大文字を小文字に変換します。

大文字変換

変数に代入されている値のうち，小文字を大文字に変換します。

表5‒2　変数に対して設定できる属性

属性

意味

整数型属性

変数に代入されている値を整数として扱います。

また，出力時の基数を定義できます。

読み込み専用属性

変数を読み込み専用とします。

エクスポート属性

変数をエクスポートします。

書式および属性はtypesetコマンドで設定します。typesetコマンドの詳細については，「typesetコマンド（変数や関数の属性と値を明示的に宣言する）」を参照してください。

変数に対して書式を設定した例を次に示します。この例では，次の変数が定義されている場合を仮定しています（△はスペース）。例の各行の右側には，定義内容に対する説明を記載しています。

　　STRn="△AbCdeFgHiJk△"
　　NUMn="12345"

ジョブ定義スクリプトの内容

typeset -L STR1         # STR1を左詰め書式に変更
echo $STR1              # STR1を出力
typeset -L5 STR2        # STR2を領域長5バイト，左詰め書式に変更
echo $STR2              # STR2を出力
typeset -R STR3         # STR3を右詰め書式に変更
echo $STR3              # STR3を出力
typeset -R4 NUM1        # NUM1を領域長4バイト，右詰め書式に変更
echo $NUM1              # NUM1を出力
typeset -Z9 STR4        # STR4を領域長9バイト，ゼロ詰め書式に変更
echo $STR4              # STR4を出力
typeset -Z9 NUM2        # NUM2を領域長9バイト，ゼロ詰め書式に変更
echo $NUM2              # NUM2を出力
typeset -l STR5         # STR5を小文字変換書式に変更
echo $STR5              # STR5を出力
typeset -u STR6         # STR6を大文字変換書式に変更
echo $STR6              # STR6を出力
typeset -i16 NUM3       # NUM3を16進数表記の整数型属性に変更
echo $NUM3              # NUM3を出力

実行したジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
AbCdeFgHiJk             ← STR1の出力結果
AbCde                   ← STR2の出力結果
AbCdeFgHiJk             ← STR3の出力結果
2345                    ← NUM1の出力結果
CdeFgHiJk               ← STR4の出力結果
000012345               ← NUM2の出力結果
abcdefghijk             ← STR5の出力結果
ABCDEFGHIJK             ← STR6の出力結果
16#3039                 ← NUM3の出力結果

5.1.3　配列

JP1/Advanced Shellでは変数の1つとして，配列を作成および参照できます。

要素番号0から65,535までの，最大65,536個の要素を保持する1次元配列を作成できます。要素を一つも指定しなかった場合，配列は設定されません。

(1)　配列の作成

配列の作成方法を次に示します。

複数の要素を一度に作成する場合（setコマンドを使用する方法）

set -A 配列名 値 値 …
set +A 配列名 値 値 …

使用例

set -A abc 1 2 3
echo ${abc[1]}

→2が標準出力に出力されます。

この方法では複数の要素を一度に作成できます。set -Aコマンドについては，「9.3　シェル標準コマンド」の「setコマンド（シェルオプションを設定する，配列を作成する，または変数の値を表示する）」を参照してください。

1つの要素を作成する場合

配列名[要素番号]=値

使用例

abc[0]=1
abc[1]=2
abc[2]=3
echo ${abc[1]}

→2が標準出力に出力されます。

この方法では要素を1つずつ作成します。複数の要素を作成する場合は，作成する要素分実行してください。また，要素番号0の配列は，変数と同じになります。

複数の要素を一度に作成する場合（setコマンドを使用しない方法）

配列名=(値 値 …)

使用例

abc=(1 2 3)
echo ${abc[1]}

→2が標準出力に出力されます。

この方法では複数の要素を一度に作成できます。作成方法の詳細については，「(2)　配列名=(値 値 …)による配列の作成」を参照してください。

(2)　配列名=(値 値 …)による配列の作成

「配列名=(値 値 …)」の形式で定義した配列は，「set -A 配列名 値 値 …」の形式で登録されます。JOBLOGには「配列名=(値 値 …)」の形式でなく，「setコマンド」が実行されたように出力されます。

配列を「配列名=(値 値 …)」の形式で作成した場合も，配列要素の管理方法はほかの配列と同じです。例えば，次の定義で作成した配列は，「set -A ARRAY x1 x2 x3 x4 x5」で作成した配列と同じです。

ARRAY=(x1 x2 x3 x4 x5)と定義した場合の配列要素

ARRAY[0]=x1
ARRAY[1]=x2
ARRAY[2]=x3
ARRAY[3]=x4
ARRAY[4]=x5

したがって，JOBLOGへの出力，カバレージの採取，およびシェルオプションxtraceの出力は，setコマンドで配列定義をした場合と同じ出力結果になります。

なお，「配列名=()」と定義した場合は，名称が"配列名"で値が空文字列のシェル変数が作成されます。これは「配列名=」と定義した場合と同じです。

(a)　配列の生成例

次に示す変数を使用して，シェル変数を含む配列要素を生成する例を表に示します。

A=a
B=b
C=c
MA=' a b c' ※
MB=d

注※

「'」はスペースの有無を明確にするために便宜的に記載しています。実際の変数値には含まれません。

表5‒3　配列要素の生成例

配列定義

生成される配列の内容

生成される配列の数

(a b c)

[0]=a [1]=b [2]=c

3

($A $B $C)

[0]=a [1]=b [2]=c

3

(${A}${B}${C})

[0]=a [1]=b [2]=c

3

($A $B `echo 1`)

[0]=a [1]=b [2]=1

3

($A$B $C)

[0]=ab [1]=c

2

(${A}xyz ${B}stu)

[0]=axyx [1]=bstu

2

($MA $MB)

[0]=a [1]=b [2]=c [3]=d

4

($MA$MB)

[0]=a [1]=b [1]=cd

3

(b)　配列を使用した場合のJOBLOGの出力例

配列の定義例と，それによるJOBLOGの出力例を示します。

配列SEQ1に配列数3の配列要素(x1 x2 x3)を設定する。

SEQ1=(x1 x2 x3)
echo ${SEQ1[@]}

→ "x1 x2 x3"が標準出力に出力されます。

配列SEQ1を使用したJOBLOGの出力例を次に示します。

KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
KNAX0724-I Jobid was assigned. Jobid=000001
---------------------------------------------------------------
 JP1/Advanced Shell 10-50

 [Information]
   Jobid           : 000001
   Spool Directory : /var/opt/jp1as/spool/000001/
   Date            : 2014/06/20
   Config-system   : /opt/jp1as/conf/adshrc.ase
   Config-job      : /home/jp1asuser1/conf/adsh.conf
   HostName        : vm002149
 [JP1 Parameter]
---------------------------------------------------------------
********  JP1/Advanced Shell MESSAGE  ********
14:38:44 000001 KNAX0091-I ADSH000001 Job started.
14:38:44 000001 KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
14:38:44 000001 KNAX7902-I adshexec will run in tty stdin mode.
14:38:44 000001 KNAX6112-I Command set(line=1) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
14:38:44 000001 KNAX6112-I Command echo(line=2) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
14:38:44 000001 KNAX0098-I ADSH000001 Job ended. rc=0 E-Time=0.001s C-Time=0.000s

********   Script IMAGE    ********

***** /home/jp1asuser1/shell/A.sh *****
0001 : SEQ1=(x1 x2 x3)
0002 : echo ${SEQ1[@]}
0003 :

***** CONVERSION INFORMATION *****

********   JOB SCOPE STDERR    ********
KNAX0098-I ADSH000001 Job ended. rc=0 E-Time=0.001s C-Time=0.000s

******** JOBSTEP OUTPUT ********
KNAX6380-I Job name will be added to spool job directory. spool job directory="/var/opt/jp1as/spool/000001-ADSH000001/"
KNAX7999-I JP1/Advanced Shell ended. rc=0

********   JOB SCOPE STDOUT    ********
x1 x2 x3

配列SEQ1に，次のように配列要素を代入した変数名を定義し，配列数3の配列を設定する。

ARR1=x1
ARR2=x2
ARR3=x3
SEQ1=($ARR1 $ARR2 $ARR3)
echo ${SEQ1[@]}

→ "x1 x2 x3"が標準出力に出力されます。

配列SEQ1を使用したJOBLOGの出力例を次に示します。

KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
KNAX0724-I Jobid was assigned. Jobid=000002
---------------------------------------------------------------
 JP1/Advanced Shell 10-50

 [Information]
   Jobid           : 000002
   Spool Directory : /var/opt/jp1as/spool/000002/
   Date            : 2014/06/20
   Config-system   : /opt/jp1as/conf/adshrc.ase
   Config-job      : /home/jp1asuser1/conf/adsh.conf
   HostName        : vm002149
 [JP1 Parameter]
---------------------------------------------------------------
********  JP1/Advanced Shell MESSAGE  ********
14:39:33 000002 KNAX0091-I ADSH000002 Job started.
14:39:33 000002 KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
14:39:33 000002 KNAX7902-I adshexec will run in tty stdin mode.
14:39:33 000002 KNAX6110-I Command ARR1=x1(line=1) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
14:39:33 000002 KNAX6110-I Command ARR2=x2(line=2) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
14:39:33 000002 KNAX6110-I Command ARR3=x3(line=3) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
14:39:33 000002 KNAX6112-I Command set(line=4) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
14:39:33 000002 KNAX6112-I Command echo(line=5) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
14:39:33 000002 KNAX0098-I ADSH000002 Job ended. rc=0 E-Time=0.001s C-Time=0.000s

********   Script IMAGE    ********

***** /home/jp1asuser1/shell/B.sh *****
0001 : ARR1=x1
0002 : ARR2=x2
0003 : ARR3=x3
0004 : SEQ1=(${ARR1} ${ARR2} ${ARR3})
0005 : echo ${SEQ1[@]}

***** CONVERSION INFORMATION *****

********   JOB SCOPE STDERR    ********
KNAX0098-I ADSH000002 Job ended. rc=0 E-Time=0.001s C-Time=0.000s

******** JOBSTEP OUTPUT ********
KNAX6380-I Job name will be added to spool job directory. spool job directory="/var/opt/jp1as/spool/000002-ADSH000002/"
KNAX7999-I JP1/Advanced Shell ended. rc=0

********   JOB SCOPE STDOUT    ********
x1 x2 x3

(c)　注意事項

1行に記述できるバイト数は8,192バイトまでです。そのため，配列要素番号を拡張した配列を定義した場合，最大配列数を1行のコマンドラインにすべて記述するとエラーになります。8,192バイトを超える場合は，継続行指定（'¥'）で1行に指定できるバイト数に区切ってください。

継続行指定（'¥'）を使った定義例を次に示します。

<setコマンドでの定義例>

set -A ARRAY x0¥
 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 … x1000 ¥
x1001 x1002 x1003 x1004 x1005 x1006 x1007 x1008 x1009 x1010 x1011 … x2000 ¥
　　　:
x65001 x65002 x65003 x65004 x65005 x65006 x65007 x65008 x65009 … x65535

<代入式での定義例>

ARRAY=( x0¥
 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 … x1000 ¥
x1001 x1002 x1003 x1004 x1005 x1006 x1007 x1008 x1009 x1010 x1011 … x2000 ¥
　　　:
x65001 x65002 x65003 x65004 x65005 x65006 x65007 x65008 x65009 … x65535)

(3)　配列の値の参照

配列の値の参照方法を次に示します。

配列の1要素の値を参照する場合

${配列名[要素番号]}

使用例

set -A abc 1 2 3
echo ${abc[1]}

→2が標準出力に出力されます。

配列の全要素の値を参照する場合

配列の全要素の値を参照するには，次の4種類の方法があります。

参照方法1

${配列名[*]}

使用例

set -A abc 1 2 3
echo ${abc[*]}

→1 2 3が標準出力に出力されます。

参照方法2

${配列名[@]}

使用例

set -A abc 1 2 3
echo ${abc[@]}

→1 2 3が標準出力に出力されます。

参照方法3

"${配列名[*]}"

注　参照方法3の場合，IFSシェル変数の値で区切られます。

使用例

set -A abc 1 2 3
IFS=:
echo "${abc[*]}"

→1:2:3が標準出力に出力されます。

参照方法4

"${配列名[@]}"

使用例

set -A abc 1 2 3
echo "${abc[@]}"

→1 2 3が標準出力に出力されます。

配列の値の参照例を次に示します。

ジョブ定義スクリプトの内容

set -A myArray a01 a02 a03     #myArrayを配列として定義する。
for myElement in ${myArray[*]} #myArrayの全要素をfor文のwordlistsに展開する。
do
  echo $myElement
done

標準出力への出力結果

a01
a02
a03

5.1.4　関数

同じジョブ定義スクリプトファイル内や外部ファイルに関数を定義すると使用できます。関数を定義する場合の書式を次に示します。

書式1

関数名() {
      command
      :
      （略）
}

書式2

function 関数名 {
      command
      :
      （略）
}

関数名の命名規則は変数と同じです。また，シェル標準コマンド，シェル拡張コマンドと同名の関数は定義できません。変数の命名規則については，「5.1.2(1)　変数の命名規則」を参照してください。

関数を実行するジョブ定義スクリプトと異なるファイルに定義した場合，関数を実行する前に.（ドット）コマンド，または#-adsh_scriptコマンドで関数を定義したジョブ定義スクリプトを呼び出す必要があります。

書式を次に示します。.（ドット）コマンドについては，「9.3　シェル標準コマンド」の「.コマンド（シェルスクリプトを実行する）」，#-adsh_scriptコマンドについては，「9.5　スクリプト拡張コマンド」の「#-adsh_scriptコマンド（実行中のジョブ定義スクリプトから外部のジョブ定義スクリプトファイルを呼び出す）」を参照してください。

. 関数を定義したファイル名

または

#-adsh_script 関数を定義したファイル名

ジョブ定義スクリプト内で定義した関数の名称が，同一ジョブ定義スクリプト内，.（ドット）コマンドで呼び出したジョブ定義スクリプト内，または#-adsh_scriptコマンドで呼び出したジョブ定義スクリプト内で定義したほかの関数と重複していた場合，関数を実行する位置の直前に定義された関数が実行されます。

関数を実行する場合の書式を次に示します。関数には引数を指定できます。指定した引数は関数内では位置パラメーター$1以降に格納されます。

関数名 [args]

なお，関数内の位置パラメーター$0には，書式に応じて次の内容が格納されます。

書式1で定義した関数の場合，シェルスクリプト名称が格納される。

書式2で定義した関数の場合，関数名が格納される。

関数の引数の指定有無と位置パラメーターの関係を次の表に示します。

表5‒4　関数の引数の指定有無と位置パラメーターの関係

関数呼び出し元の位置パラメーター

関数の引数

関数開始時の位置パラメーター

関数からの回復時の位置パラメーター

指定あり

指定あり

引数に指定された値

関数呼び出し元の位置パラメーターの値

指定あり

指定なし

値なし

関数呼び出し元の位置パラメーターの値

指定なし

指定あり

引数に指定された値

値なし（関数呼び出し元の位置パラメーターの値）

指定なし

指定なし

値なし

値なし（関数呼び出し元の位置パラメーターの値）

(1)　関数内ローカル変数

JP1/Advanced Shellでは，関数内でtypesetコマンドを使用して変数を定義すると，関数内で有効なローカル変数を定義できます。定義した変数は，関数が完了した時点で関数実行前の状態に回復されます。関数内ローカル変数の実行例を次に示します。

ジョブ定義スクリプトの内容

0001 : myfunc(){             # 関数myfuncの定義
0002 :   typeset -r var=abc  # 関数内ローカル変数にvarを読み込みで定義
0003 :   echo $var           # 変数varの値を出力
0004 :   readonly -p         # 読み込み専用属性の変数を出力
0005 :   return 0
0006 : }
0007 : typeset -i var=123    # 変数varを整数型で定義
0008 : typeset | grep var    # 変数varの属性を出力
0009 : myfunc                # 関数myfuncを実行
0010 : echo $var             # 関数実行後の変数varの値を出力
0011 : readonly -p           # 読み込み専用属性の変数を出力
0012 : typeset | grep var    # 変数varの属性を出力
0013 : exit 0
0014 :

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
typeset -i var             ←8行目の結果。変数varは整数型で定義済み
abc                        ←3行目の結果。変数varはabcに更新
readonly var=abc           ←4行目の結果。変数varは読み込み専用属性
readonly ADSH_DIR_BIN=/opt/jp1as/bin/
readonly ADSH_DIR_CMD=/opt/jp1as/cmd/
123                        ←10行目の結果。関数完了後，変数varの値は回復
readonly ADSH_DIR_BIN=/opt/jp1as/bin/
readonly ADSH_DIR_CMD=/opt/jp1as/cmd/
typeset -i var             ←12行目の結果。8行目の出力結果と同じ

(2)　トレースモード

関数のトレースモードを有効にすることで，関数に記述されたコマンドを実行すると同時にコマンドの内容を標準エラー出力に出力できます。

関数のトレースモードへの切り替えはシェル標準コマンドのtypesetコマンドで実行します。typesetコマンドについては，「9.3　シェル標準コマンド」の「typesetコマンド（変数や関数の属性と値を明示的に宣言する）」を参照してください。

例として，typesetコマンドの指定内容と，標準エラー出力への出力結果を次に示します。

ジョブ定義スクリプトの内容

0001 : fn(){
0002 :   echo "--- `date`"
0003 : }
0004 : typeset -ft fn
0005 : fn

関数のトレースモードによる標準エラー出力への出力結果

+ date
+ echo --- Thu Mar 28 16:00:00 JST 2013

(3)　関数のオートロード機能

関数のオートロード機能を使用すると，実行するシェルスクリプト内で使用する関数だけが実行時に定義されます。オートロード機能を使用しない場合と比べて，共通化された関数が実行有無に関係なく一度に実行されることがなくなるため，バッチジョブの実行性能が向上します。

関数のオートロード機能を使用する手順は次のとおりです。

関数を定義したファイル（関数定義ファイル）を作成し，関数名と同じファイル名で保存する。

関数定義ファイル内に複数の関数を定義した場合，記述したすべての関数が定義されます。そのため，関数定義ファイルで定義した関数名がすでに定義されている関数と重複していた場合，関数の定義内容が上書きされるため，注意してください。

なお，関数定義ファイル内にコマンドなど関数定義以外の内容を記述した場合は，外部スクリプトと同等に動作します。

ジョブ定義スクリプトに次のコマンドを指定して，関数のオートロード機能を有効にする。

typeset -fu 関数名 [関数名2...]

関数名には，関数定義ファイル名と同じ名前の関数を指定します。

また，JP1/Advanced Shellでは「typeset -fu」コマンドの別名としてautoloadを提供します。autoloadの形式は次のとおりです。

autoload 関数名 [関数名2...]

typesetコマンドについては，「9.3　シェル標準コマンド」の「typesetコマンド（変数や関数の属性と値を明示的に宣言する）」を参照してください。

autoloadについては，「5.1.5　コマンドの別名定義」を参照してください。

シェル変数FPATHに，関数定義ファイルを格納したディレクトリを指定する。

オートロード機能を有効にした関数が関数定義ファイルに定義されていない場合，シェル変数FPATHに指定されたディレクトリから関数名と一致する関数定義ファイルの内容を読み込んで，記述されているすべての関数を定義します。シェル変数FPATHは，ジョブ定義スクリプトおよび環境ファイルで指定できます。

(a)　オートロード機能の使用例（typeset -fuコマンド，autoloadコマンドを使用した場合）

typeset -fuコマンド，autoloadコマンドを使用した関数のオートロード機能の使用例を次に示します。この例では関数auto1，関数auto2，関数auto3に対してオートロード機能を実行しています。

関数定義ファイル（/home/jp1as/autoload/auto1）の内容

0001 : function auto1 {                      # 関数auto1の定義
0002 :  echo "start auto1 in FPATH file"
0003 :  return 11
0004 : }

関数定義ファイル（/home/jp1as/autoload/auto2）の内容

0001 : autoxx() {          # 関数autoxxの定義(auto2は定義しない)
0002 :   echo "start autoxx in FPATH file"
0003 :   return 255
0004 : }

/home/jp1as/autoloadディレクトリの関数定義ファイル

auto1

auto2

（関数定義ファイル「auto3」は存在しない）

ジョブ定義スクリプト（/home/jp1as/test.ash）の内容

0001 : export FPATH="/home/jp1as/autoload"     # FPATHの設定
0002 :
0003 : typeset -fu auto1 auto2  # 関数auto1,auto2にオートロード機能を適用
0004 : autoload auto3           # 関数auto3にオートロード機能を適用
0005 :
0006 : auto1                    # 関数auto1を実行
0007 : auto2                    # 関数auto2を実行
0008 : auto3                    # 関数auto3を実行

実行結果

********  JP1/Advanced Shell MESSAGE  ********
15:19:12 003500 KNAX0091-I ADSH003500 Job started.
15:19:12 003500 KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
15:19:12 003500 KNAX7902-I adshexec will run in non-tty stdin mode.
15:19:12 003500 KNAX6112-I Command export(line=1) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
15:19:12 003500 KNAX6112-I Command typeset(line=3) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
15:19:12 003500 KNAX6112-I Command typeset(line=4) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
15:19:12 003500 KNAX6112-I Command echo(line=2) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
15:19:12 003500 KNAX6112-I Command return(line=3) succeeded. rc=11 E-Time=0.000s C-Time=0.000s ※1
15:19:12 003500 KNAX6046-E Function "auto2" is not defined by "/home/jp1as/autoload/auto2". filename="/home/jp1as/test.ash" line=7 ※2
15:19:12 003500 KNAX6044-E Function definition file "auto3" is not found in FPATH directory. filename="/home/jp1as/test.ash" line=8 ※3
15:19:12 003500 KNAX0101-E ADSH003500 An error occurred during execution of job.
15:19:12 003500 KNAX0098-I ADSH003500 Job ended. rc=127 E-Time=0.005s C-Time=0.000s

注※1

関数auto1の実行結果が正常終了であることを示します。

注※2

関数auto2は，FPATHに指定されたディレクトリに同名の関数定義ファイルが存在していますが，その関数定義ファイルに関数auto2の定義がないため，KNAX6046-Eメッセージを出力しエラー終了します。

注※3

関数auto3は，FPATHに指定されたディレクトリに同名の関数定義ファイルが存在しないため，KNAX6044-Eメッセージを出力しエラー終了します。

(b)　注意事項

オートロード機能で関数定義ファイルを読み込んで定義された関数は，それ以降，同じファイル名の関数定義ファイルを読み込みません。ただし，unsetコマンドで無効化したあとに関数を再実行した場合は，同名の関数定義ファイルを読み込みます。

オートロード機能を有効にした関数であっても，すでに同一シェルスクリプト内，.（ドット）コマンドで呼び出したシェルスクリプト内，またはスクリプト拡張コマンド#-adsh_scriptで呼び出したシェルスクリプト内で定義済みであれば，関数定義ファイルを読み込みません。

同名の関数を異なる関数定義ファイルに定義した場合，あとで定義された関数が有効になります。関数定義ファイルに複数の関数を定義する場合は，関数名が重複していないか確認してください。

関数「fn1」を異なる関数定義ファイルに定義した例と，その場合の出力結果を次に示します。

関数定義ファイル（/home/jp1as/autoload/fn1）の内容

0001 : fn1(){　　　　　　　　　　　　# 関数fn1の定義1
0002 :   echo "start fn1"
0003 :   return 1
0004 : }

関数定義ファイル（/home/jp1as/autoload/fn2）の内容

0001 : fn2(){　　　　　　　　　　　　# 関数fn2の定義
0002 :   echo "start fn2"
0003 :   return 2
0004 : }
0005 : fn1(){　　　　　　　　　　　　# 関数fn1の定義2
0006 :   echo "start fn1 in fn2"
0007 :   return 21
0008 : }

ジョブ定義スクリプト（/home/jp1as/test.ash）の内容

0001 : export FPATH="/home/jp1as/autoload"　# FPATHの設定
0002 : typeset -fu fn1 fn2　　　　　　　　　# 関数fn1,fn2のオートロード機能を有効にする
0003 : fn1　　　　　　　　　　　　　　　　　# 関数fn1を実行
0004 : fn2　　　　　　　　　　　　　　　　　# 関数fn2を実行
0005 : fn1　　　　　　　　　　　　　　　　　# 関数fn1を再度実行

標準出力への出力結果

start fn1　　　　　　　　　　　　　←定義1のfn1が実行されます
start fn2
start fn1 in fn2　　　　　　　　　　←定義2のfn1が実行されます

定義されていない関数に対して，オートロード機能を有効にした場合，関数定義ファイルが読み込まれるまで未定義状態となります。そのため，CUIデバッガのinfo functionsコマンドで表示されません。

5.1.5　コマンドの別名定義

JP1/Advanced Shellではコマンドを別名（エイリアス）定義できます。別名定義にはaliasコマンドを使用します。書式を次に示します。

書式

alias エイリアス名=値

値にスペースを含む文字列を指定する場合は，クォーテーションで囲む必要があります。

また，エイリアス名には組み込みコマンド名を指定して再定義できますが，予約語を別名として再定義することはできません。例を次に示します。

組み込みコマンドを再定義した場合

alias read="read STR"  # エイリアス名readに"read STR"を定義する
uname | read           # readは"read STR"として実行される
echo $STR              # 変数STRに設定されたunameの結果が出力される

予約語を別名に指定した場合

alias while="echo JP1/AS"  # 予約語whileに対してエイリアスを定義する
while                      # whileは予約語として解釈され，
                           # while文の書式不正でエラー終了する

別名の定義および別名の一覧出力はaliasコマンドで実行します。また，定義した別名定義を無効にするにはunaliasコマンドで実行します。これらのコマンドの詳細については，「9.　ジョブ定義スクリプトのコマンドおよび制御文」の「aliasコマンド（エイリアスを定義する）」または「unaliasコマンド（エイリアス定義を無効にする）」を参照してください。

なお，JP1/Advanced Shellでは次のエイリアスが定義されています。

エイリアス名

定義内容

autoload

typeset -fu

functions

typeset -f

integer

typeset -i

local

typeset

type

whence -v

5.1.6　メタキャラクタ

メタキャラクタとは，ジョブ定義スクリプト内で特別な意味を持つキャラクタのことです。JP1/Advanced Shellのメタキャラクタを次に示します。

|　&　;　<　>　(　)　$　`　'　¥　"　~　#　*　[　]　?

メタキャラクタを一般的な文字として使用したい場合，メタキャラクタの無効化を行う必要があります。メタキャラクタの無効化の方法を次の表に示します。

表5‒5　メタキャラクタの無効化の方法

無効化の方法

意味

'str'

文字列strは'以外のすべての文字をそのままの文字として処理します。

"str"

文字列strは$，¥，`以外の文字をそのままの文字として処理します。

ただし，¥の直後の文字が$，¥，`，"の場合，¥はメタキャラクタとして有効となります。文字列strにそのままの文字として¥を含める場合は，¥¥と記述してください。

¥char

文字charの特殊な意味を無効（エスケープ文字）にします。

ただし，メタキャラクタを無効化した内容を出力する場合は，echoコマンドおよびprintコマンドなど，出力する組み込みコマンドの仕様に従って処理されます。

ジョブ定義スクリプトの内容

echo 'JP1/AS¥n'        # 1.
echo "JP1/AS¥n"        # 2.
echo JP1/AS¥¥n         # 3.
echo 'JP1/AS¥¥n'       # 4.

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
JP1/AS        ←1.の結果 echoコマンドが¥nを改行として出力

JP1/AS        ←2.の結果

JP1/AS        ←3.の結果

JP1/AS¥n      ←4.の結果 ¥をエスケープ扱いで¥nを文字として出力

メタキャラクタを使用した機能について説明します。

(1)　位置パラメーター

ジョブ定義スクリプトを実行する場合，ジョブ定義スクリプトファイル名の後ろに実行時パラメーターを指定すると，ジョブ定義スクリプトに引数として渡すことができます。JP1/Advanced Shellはこの引数を「位置パラメーター」と呼ぶ特殊な変数に代入します。位置パラメーターは「$0」から「$9」の10個が用意されており，「$0」には実行したジョブ定義スクリプトファイル名が代入されます。$1から$9には指定した順に引数が代入されます。JP1/Advanced Shellの位置パラメーターおよび関連する特殊文字について次の表に示します。

表5‒6　JP1/Advanced Shellの位置パラメーターおよび関連する特殊文字

位置パラメーターおよび特殊文字

意味

位置パラメーター

$0

ジョブ定義スクリプトのファイル名です。

$n

ジョブ定義スクリプトに指定した第n引数の値（nは1〜9まで）です。

関連する特殊文字

$#

ジョブ定義スクリプトに指定した引数の数です。

$*

ジョブ定義スクリプトに指定した引数すべてです。

$@

ジョブ定義スクリプトに指定した引数すべてです。

"$*"

ジョブ定義スクリプトに指定した引数すべてを一まとめにして扱います。

　例："$1 $2 $3 ... "

IFSシェル変数を変更していた場合，IFSシェル変数の値で区切られます。

"$@"

ジョブ定義スクリプトに指定した引数すべてを個別に扱います。

　例："$1" "$2" ... "

IFSシェル変数を変更していた場合，スペースで区切られます。

ジョブ定義スクリプト内で位置パラメーターを変更するには，シェル標準コマンドのsetコマンドを使用します。setコマンドについては，「9.3　シェル標準コマンド」の「setコマンド（シェルオプションを設定する，配列を作成する，または変数の値を表示する）」を参照してください。

(2)　文字列区切り

JP1/Advanced Shellは，IFSシェル変数に指定された文字を「文字列を区切る文字」として扱います。IFSシェル変数の初期値はスペース，タブ文字または改行文字であるため，スペースおよびタブ文字が文字列の区切りとして扱われます。複数のスペース，タブ文字が連続しても，1つの区切り文字として扱われます。IFSシェル変数の詳細については，「5.5　シェル変数」を参照してください。

また，スペースやタブ文字を文字列として使用する場合は，スペース，タブ文字を含む文字列をクォーテーション（’および”）で囲む必要があります。

(3)　行継続

複数行にわたってコマンドを記述する場合の記述手順を次に示します。

行の終端に¥を付けて改行します。

行の終端をクォーテーションで囲まないで改行し，複数行の最初と最後だけクォーテーションで囲みます。

このように記述すると行が継続していると判断し，同一行として処理されます。

(4)　コメント

ジョブ定義スクリプト内にコメントを記述できます。行中に「#」を記述すると，「#」以降から行末までをコメントとして扱い，処理を行います。ただし，「#」の後ろに「-adsh」が記述されている場合は，次のように処理をします。

行の先頭に#-adshを記述している場合

スクリプト拡張コマンドとして扱います。

前の行から継続して#-adshを記述している場合

コメント行として扱います。例を次に示します。

echo ABC ¥
#-adsh

ただし，前の行から継続していない，かつ行の先頭に記述していないときは，エラーになります。

#-adsh以外を記述している場合

コメント行として扱います。

なお，スクリプト拡張コマンドの行にはコメントを記述できません。

(5)　ワイルドカード

条件に合致するファイル名やディレクトリ名の特定，任意の文字列との比較などに，ワイルドカードが使用できます。

JP1/Advanced Shellで使用できるワイルドカードを次の表に示します。

表5‒7　JP1/Advanced Shellで使用できるワイルドカード

ワイルドカード

意味

?

任意の1文字に合致します。ただし，ドットファイルのドット「.」は除きます。

*

0文字以上の文字列に合致します。ただし，ドットファイルのドット「.」は除きます。

[…]

[ ]に囲まれた文字列のどれか1文字に合致します。[ ]に囲まれた文字列の先頭に!を付加した場合，[ ]に囲まれていない文字に合致します。]を文字として指定する場合は，文字列の先頭に指定してください。

ハイフン（-）で区切ると，ハイフンで区切られたその間にある任意の文字（その2文字も含む）に合致します。ハイフンを文字として指定する場合は，文字列の先頭または末尾に指定してください。記述例を「表5-8　ワイルドカード[ ]の記述例」に示します。

{str,...}

ブレース展開によって，コンマで区切られた文字列strを展開します。ただし，次の場合は展開しません。

braceexpandシェルオプションが無効の場合

noglobシェルオプションが有効の場合

ワイルドカード[ ]の記述例を次の表に示します。

表5‒8　ワイルドカード[ ]の記述例

記述例

意味

[]a]

文字列]aと合致します。

[!abc]

文字列abc以外と合致します。

[0-9]

0から9までのどれかに合致します。

[a-z]

英小文字に合致します。

[A-Z]

英大文字に合致します。

[0-9a-zA-Z]

英数字に含まれます。

[-abc]

文字列-abcと合致します。

[!-abc]

文字列-abc以外と合致します。

(6)　置換

置換機能として次の3つの機能があります。

変数置換

変数の状態，変数の値の文字列長（単位：バイト），変数が配列の場合の要素数，変数の値と指定されたパターンとのマッチングによって，展開する変数の値を置き換えます。

コマンド置換

コマンドの標準出力を変数の値として扱って処理します。

ファイル名置換

「*」や「?」などのワイルドカードを使用し，条件に合致するファイル名を展開します。ただし，シェルオプションのnoglobが有効の場合は，ファイル名置換は行われません。シェルオプションのnoglobについては「5.6.1　setコマンドで設定できるシェルオプション」を参照してください。

(a)　変数置換

変数置換には，変数の状態によって実行される変数置換，変数の値の文字列長や配列の要素数への変数置換，パターンマッチングの結果によって実行される変数置換，部分文字列展開があります。

変数の状態によって実行される変数置換

変数の状態によって実行される変数置換の書式を次の表に示します。variableには変数名，wordにはvariableの状態によって展開される変数を指定します。また，使用例および結果のaは未定義の変数，b=NULL，c=1とします。

表5‒9　変数の状態によって実行される変数置換の書式

書式

説明

使用例

結果

${variable:-word}

variableを変数として定義しかつ値を代入している場合，variableの値を返します。

variableは定義されていてNULLまたは未定義の場合，wordの展開結果を返します。variableの値は変更しません。

cnt=${a:-7}

cntに7を代入

cnt=${b:-8}

cntに8を代入

cnt=${c:-9}

cntにcの値を代入

${variable-word}

variableを変数として定義しかつ値を代入している場合，variableの値を返します。

variableは定義されていてNULLの場合，variableの値(NULL)を返します。variableが未定義のときは，wordの展開結果を返します。variableの値は変更しません。

cnt=${a-7}

cntに7を代入

cnt=${b-8}

cntにNULLを代入

cnt=${c-9}

cntにcの値を代入

${variable:=word}

variableを変数として定義しかつ値を代入している場合，variableの値を返します。

variableは定義されていてNULLまたは未定義の場合，wordの展開結果をvariableに代入し，variableの値を返します。ただし，この書式は変数だけに使用でき，位置パラメーターには使用できません。

cnt=${a:=7}

aに7を代入し，cntにaの値を代入

cnt=${b:=8}

bに8を代入し，cntにbの値を代入

cnt=${c:=9}

cntにcの値を代入

${variable=word}

variableを変数として定義しかつ値を代入している場合，variableの値を返します。

variableは定義されていてNULLの場合，variableの値(NULL)を返します。

variableが未定義の場合，wordの展開結果をvariableに代入し，variableの値を返します。ただし，この書式は変数だけに使用でき，位置パラメーターには使用できません。

cnt=${a=7}

cntに7を代入

cnt=${b=8}

cntにNULLを代入

cnt=${c=9}

cntにcの値を代入

${variable:?[word]}

variableを変数として定義しかつ値を代入している場合，variableの値を返します。

wordを指定し，かつvariableは定義されていてNULLまたは未定義の場合，wordの展開結果を標準エラー出力に出力し，ジョブ定義スクリプトは終了します。

wordを省略し，かつvariableは定義されていてNULLまたは未定義の場合，未定義を表すKNAX6050-Eメッセージを出力し，ジョブ定義スクリプトは終了します。

variableの値は変更しません。

cnt=${a:?7}

展開結果を標準エラー出力に出力し，シェル終了

cnt=${a:?}

メッセージを出力し，シェル終了

cnt=${b:?8}

展開結果を標準エラー出力に出力し，シェル終了

cnt=${c:?9}

cntにcの値を代入

${variable?[word]}

variableを変数として定義しかつ値を代入している場合，variableの値を返します。

variableは定義されていてNULLの場合，variableの値(NULL)を返します。

wordを指定し，かつvariableが未定義の場合，wordの展開結果を標準エラー出力に出力し，ジョブ定義スクリプトは終了します。

wordを省略し，かつvariableが未定義の場合，未定義を表すKNAX6050-Eメッセージを出力し，ジョブ定義スクリプトは終了します。

variableの値は変更しません。

cnt=${a?7}

展開結果を標準エラー出力に出力し，シェル終了

cnt=${a?}

メッセージを出力し，シェル終了

cnt=${b?8}

cntにNULLを代入

cnt=${c?9}

cntにcの値を代入

${variable:+word}

variableを変数として定義しかつ値を代入している場合，wordの展開結果を返します。それ以外の場合は，NULLを返します。

variableの値は変更しません。

cnt=${a:+7}

cntにNULLを代入

cnt=${b:+8}

cntにNULLを代入

cnt=${c:+9}

cntに9を代入

${variable+word}

variableを変数として定義しかつ値を代入している場合またはNULLの場合，wordの展開結果を返します。それ以外の場合は，NULLを返します。

variableの値は変更しません。

cnt=${a+7}

cntにNULLを代入

cnt=${b+8}

cntに8を代入

cnt=${c+9}

cntに9を代入

変数の値の文字列長や配列の要素数への変数置換

変数の値の文字列長，および配列の要素数への変数置換の書式を次の表に示します。variableには変数名，arrayには配列名を指定します。

表5‒10　変数の値の文字列長および配列の要素数への変数置換の書式

書式

説明

${#variable}

variableが「*」または「@」の場合，位置パラメーターの番号に置換されます。それ以外の場合は，環境設定パラメーターVAR_SHELL_GETLENGTHの指定に応じて次のように置換されます。

BYTE

variableに格納されている値の長さをバイト数に置換

CHARACTER

variableに格納されている値の長さを文字数に置換

環境設定パラメーターVAR_SHELL_GETLENGTHが指定されていない場合は，環境設定パラメーターVAR_SHELL_GETLENGTHにBYTEを指定した場合と同じ動作となります。

${#array[*]}

arrayで指定された配列の要素数に置換されます。

${#array[@]}

パターンマッチングの結果によって実行される変数置換

パターンマッチングの結果によって実行される変数置換の書式を次の表に示します。variableには変数名，patternにはvariableとパターンマッチングを行う文字列を指定します。patternにはワイルドカードによる指定もできます。

表5‒11　パターンマッチングの結果によって実行される変数置換の書式

分類

書式

説明

前方一致

${variable#pattern}

patternが変数の値の先頭と一致する場合，一致する部分で最も短い部分を削除した値に置換します。それ以外の場合はvariableの値に置換します。

${variable##pattern}

patternが変数の値の先頭と一致する場合，一致する部分で最も長い部分を削除した値に置換します。それ以外の場合はvariableの値に置換します。

後方一致

${variable%pattern}

patternが変数の値の終端と一致する場合，一致する部分で最も短い部分を削除した値に置換します。それ以外の場合はvariableの値に置換します。

${variable%%pattern}

patternが変数の値の終端と一致する場合，一致する部分で最も長い部分を削除した値に置換します。それ以外の場合はvariableの値に置換します。

変数の値を文字列指定（前方一致）で削除し出力する場合の実行例を次に示します。

ジョブ定義スクリプトの内容

abc=abcd1234xyz987abcd1234efg
echo ${abc#abcd}         # 1.
echo ${abc#a*2}          # 2.
echo ${abc##a*2}         # 3.
echo ${abc#*1234}        # 4.
echo ${abc##*1234}       # 5.
echo ${abc#1234}         # 6.

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
1234xyz987abcd1234efg      ←1.の結果 先頭のabcdを削除
34xyz987abcd1234efg        ←2.の結果 a…2の文字列を削除(最短一致)
34efg                      ←3.の結果 a…2の文字列を削除(最長一致)
xyz987abcd1234efg          ←4.の結果 先頭…1234の文字列削除(最短一致)
efg                        ←5.の結果 先頭…1234の文字列削除(最長一致)
abcd1234xyz987abcd1234efg  ←6.の結果 先頭が一致しないためabcの値を出力

変数の値を文字列指定（後方一致）で削除し出力する場合の実行例を次に示します。

ジョブ定義スクリプトの内容

abc=abcd1234xyz987abcd1234
echo ${abc%1234}         # 1.
echo ${abc%d*4}          # 2.
echo ${abc%%d*4}         # 3.
echo ${abc%34*}          # 4.
echo ${abc%%34*}         # 5.
echo ${abc%abcd}         # 6.

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
abcd1234xyz987abcd     ←1.の結果 最後尾の1234を削除
abcd1234xyz987abc      ←2.の結果 d…4の最後尾の文字列を削除(最短一致)
abc                    ←3.の結果 d…4の最後尾の文字列を削除(最長一致)
abcd1234xyz987abcd12   ←4.の結果 34以降の文字列を削除(最短一致)
abcd12                 ←5.の結果 34以降の文字列を削除(最長一致)
abcd1234xyz987abcd1234 ←6.の結果 最後尾が一致しない場合abcの値を出力

部分文字列展開

部分文字列展開の結果によって実行される変数置換の書式を次の表に示します。

表5‒12　部分文字列展開の書式

書式

説明

${variable:offset}

variableの展開結果から文字を取り出します。取り出す文字の先頭位置はoffsetで指定します。

${variable:offset:length}

variableの展開結果から最大length文字を取り出します。取り出す文字の先頭位置はoffsetで指定します。

${array[*]:offset}

配列の${array[offset]}を先頭とする要素を取り出します。

${array[*]:offset:length}

配列の${array[offset]}を先頭とする要素をlength個取り出します。

${array[@]:offset}

配列の${array[offset]}を先頭とする要素を取り出します。

${array[@]:offset:length}

配列の${array[offset]}を先頭とする要素をlength個取り出します。

（凡例）

variable：変数名を指定します。

array：配列名を指定します。

offset：部分展開する文字列および配列要素の先頭位置を指定します。

length：展開する文字数および配列要素数を指定します。

(b)　コマンド置換

コマンド置換の書式を次の表に示します。commandには実行するコマンド名および引数を指定します。

Windowsの場合，コマンド置換は外部コマンドを除いてカレントプロセスで実行されます。

表5‒13　コマンド置換の書式

書式名

書式

説明

$( )形式

$(command)

commandの文字列に「¥」が含まれていても「¥」は意味を持ちません。

逆引用符形式

`command`

commandの文字列に「¥」が含まれていると「¥」は意味を持ちます。

コマンド置換の中にコマンド置換を記述する場合，`command ¥`command¥``のように内側の逆引用符の直前に「¥」を記述してください。

逆引用符形式ではcommandの文字列内の「¥」はメタキャラクタとして扱われるため，$( )形式と逆引用符形式では，commandの文字列に「¥」が含まれている場合の実行結果が異なります。そのため，$( )形式の使用をお勧めします。

実行例および実行結果を次に示します。

$( )形式の場合

実行例

echo $(echo '¥$x')

実行結果

¥$x

逆引用符形式の場合

実行例

echo `echo '¥$x'`

実行結果

$x

Windowsの場合，コマンド置換はデータの受け渡しのために一時ファイルを使用します。UNIXの場合，PIPE_CMD_LASTパラメーターにCURRENTを指定した環境で，パイプ（|）でつながれた1つのコマンド群だけをコマンド置換に指定すると，データの受け渡しのために一時ファイルを使用します。例を次に示します。

例：

次の処理の場合，cmd2によって標準出力に出力されるデータは，一時ファイルに出力されてから，ジョブ定義スクリプト中に文字列として展開されます。

  `cmd1 | cmd2`

次の処理の場合は，コマンド群が2つあるため，一時ファイルは作成されません。

  `cmd1 | cmd2; cmd3 | cmd4`

一時ファイルは，環境設定パラメーターTEMP_FILE_DIRで指定された場所に作成します。

(c)　ファイル名置換

ファイル名置換の書式を次の表に示します。patternはパターンマッチングを行う文字列を指定します。patternにはワイルドカードによる指定もできます。

表5‒14　複数パターンによるファイル名置換の書式

書式

意味

使用例

一致する文字列

?(pattern|pattern ...)

patternに指定された文字列のうち，どれか1つと合致します。

?(h)

空文字列，h

*(pattern|pattern ...)

patternに指定された文字列のうち，0または1つ以上と合致します。

*(h)

空文字列，h，h，hh，hhh，…

+(pattern|pattern ...)

patternに指定された文字列のうち，1つ以上と合致します。

+(h)

h，hh，hhh，…

@(pattern|pattern ...)

patternに指定された文字列のうち，1つだけ合致します。

@(h)

h

!(pattern|pattern ...)

patternに指定された文字列のうち，1つを除くすべてと合致します。

!(h)

hを除く任意の文字列

1つ以上のパターンを「|」で区切ることで，複数のパターンを同時に指定し，合致するファイル名を置換できます。ただし，パターンの区切り文字である「|」の前後にスペースを挿入しないでください。また，パターンの前後にスペースを挿入した場合，スペースもパターンの一部として扱われます。

使用例を次に示します。

ファイル名置換の使用例

ジョブ定義スクリプトの内容

ls -C                     # 1.カレントディレクトリに存在するファイルを表示
ls -C ?(*.sh|*.exe|*.dot) # 2.拡張子がsh,exec,dotのどれかのファイル名を表示
ls -C *(*.sh|*.exe)       # 3.拡張子がsh,exeのどちらかのファイル名を表示
ls -C +(*.jhs|*h)         # 4.拡張子がjhsまたは終端がhのファイル名を表示
ls -C @(*.c|*.jhs)        # 5.拡張子がcまたはjhsのファイル名を表示
ls -C !(*.c|*.jhs)        # 6.拡張子cまたはjhs以外のファイル名を表示

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
a.jhs  a.sh  a.txt  func.c  ←1.の実行結果
a.sh                        ←2.の実行結果
a.sh                        ←3.の実行結果
a.jhs  a.sh                 ←4.の実行結果
a.jhs  func.c               ←5.の実行結果
a.sh  a.txt                 ←6.の実行結果

ファイル名の先頭文字がドット(.)の場合は，パターンとの合致対象から外されます。先頭文字がドットのファイル名をパターンとの合致対象に含める場合は，明示的にドットを指定する必要があります。

(7)　算術展開

算術展開とは，算術をした上でその結果に置き換えることです。算術展開の書式と実行例を次に示します。

$((算術式))

算術展開の実行例

ジョブ定義スクリプトの内容

x=100          # 1.xに代入されている値は100
x=$((x-1))     # 2.算術を実行し，その結果をxに代入する
echo $x        # 3.変数xの値を標準出力へ出力する

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
99             ←xに代入されている値は99

(8)　入出力リダイレクト

ジョブ定義スクリプトでは，コマンド実行前に実行結果の出力先の変更やコマンド実行に必要な情報の入力先を変更できます。これを入出力リダイレクトといいます。JP1/Advanced Shellで使用できる入出力リダイレクトについて説明します。

(a)　リダイレクト

JP1/Advanced Shellで使用できるリダイレクトを次の表に示します。リダイレクトは左から右に解釈されます。

表5‒15　JP1/Advanced Shellで使用できるリダイレクト

リダイレクト

意味

>file

fileを標準出力として使用します。fileが存在しない場合は，ファイルを作成します。すでにfileが存在する場合は，上書きします。

< file

fileを標準入力として使用します。

command_1 | command_2

パイプです。command_1の標準出力をcommand_2の標準入力とします。

>>file

fileを標準出力として使用します。fileが存在しない場合は，ファイルを作成します。すでにfileが存在する場合は，追記します。

>|file

fileを標準出力として使用します。fileが存在しない場合は，ファイルを作成します。すでにfileが存在する場合は，上書きします。

<>file

fileを読み取りと書き込みのために標準入力としてオープンします。

<<label

ヒアドキュメントです。

n>file

n番のファイルディスクリプタの出力先をfileにします。

n<file

n番のファイルディスクリプタはfileから入力します。

>&n

標準出力をn番ファイルディスクリプタにコピーします。

<&n

標準入力をn番ファイルディスクリプタからコピーします。

>&-

標準出力をクローズします。

<&-

標準入力をクローズします。

|&※1

UNIXの場合，親プロセスからの入出力を伴うバックグラウンドプロセスを起動します。

>&p※2

バックグラウンドプロセスの出力先を標準出力とします。

<&p※2

バックグラウンドプロセスの入力は標準入力からとなります。

注※1

「|&」を使用して，親プロセスからの入出力を伴うバックグラウンドプロセスを複数起動しようとすると，KNAX6029-Eメッセージが出力され，ジョブ定義スクリプトがエラー終了する場合があります。そのため，「|&」を使用する場合は，waitコマンドなどを使用し，バックグラウンドプロセスを複数同時に起動しないようにしてください。

また，Windows版ではサポートしていません。

注※2

Windows版では，バックグラウンドプロセスを生成できないため使用できません。

(b)　ファイルディスクリプタ

JP1/Advanced Shellの入出力種別ごとのファイルディスクリプタを次の表に示します。

表5‒16　JP1/Advanced Shellの入出力種別ごとのファイルディスクリプタ

入出力種別

ファイルディスクリプタ

備考

標準入力

0

−

標準出力

1

adshexecコマンドの-sオプションおよび環境ファイルのOUTPUT_STDOUTパラメーターにSPOOLを指定した場合，JP1/Advanced ShellがシェルからスプールのSTDOUTへの出力（stdout）として使用しているため，このファイルディスクリプタで端末をオープンしていません。

標準エラー出力

2

JP1/Advanced ShellがシェルからスプールのSTDERRへの出力（stderr）として使用しているため，このファイルディスクリプタで端末をオープンしていません。

上記以外

3〜9

ユーザーがジョブ定義スクリプト内で使用できるファイルディスクリプタです。

（凡例）

−：特になし。

(c)　ヒアドキュメント

ヒアドキュメントとは，標準入力をジョブ定義スクリプト内で生成することです。ヒアドキュメントに関する書式を次の表に示します。なお，ヒアドキュメントではデータの受け渡しに一時ファイルを使用します。一時ファイルは，環境設定パラメーターTEMP_FILE_DIRで指定されたディレクトリに作成します。

表5‒17　ヒアドキュメントに関する書式

書式

意味

<< label

document

label

labelに囲まれたdocumentの部分が標準入力に渡されます。documentの部分に記述された変数は置換され，スペース，タブ文字はそのまま標準入力に渡されます。

<<- label

document

label

labelに囲まれたdocumentの部分が標準入力に渡されます。documentの部分に記述された変数は置換され，スペースはそのまま標準入力に渡されます。しかし，各行の行頭のタブ文字は削除されます。

<< ¥label

document

label

labelに囲まれたdocumentの部分が標準入力に渡されます。documentの部分に記述された変数は置換されません。

<< 'label'

document

label

(d)　パイプ

複数のコマンドを接続し，1つのコマンドの標準出力を別のコマンドの標準入力として使用したい場合に，パイプでコマンドを接続します。パイプで接続されたコマンドのセットをパイプラインと呼びます。

Windowsの場合

パイプラインは左から右へ処理が実行され，パイプラインのコマンドは逐次的に実行されます。組み込みコマンド，関数，外部コマンドのうち，外部コマンドだけは別プロセスで実行されます。また，コマンド間のデータの受け渡しに一時ファイルを使用します。一時ファイルは環境設定パラメーターTEMP_FILE_DIRで指定されたディレクトリに作成します。

UNIXの場合

パイプラインは左から右へ処理が実行され，パイプラインのコマンドは別々のプロセスとして実行されます。

最後のコマンドをカレントプロセスと別プロセスのどちらで実行するかはPIPE_CMD_LASTパラメーターで定義できます。デフォルトはカレントプロセス※です。なお，PIPE_CMD_LASTパラメーターにCURRENTを指定した場合，パイプラインの最後のコマンドへの標準入力として一時ファイルを使用します。一時ファイルは環境設定パラメーターTEMP_FILE_DIRで指定されたディレクトリに作成します。PIPE_CMD_LASTパラメーターについては，「7.　環境ファイルで設定するパラメーター」の「PIPE_CMD_LASTパラメーター（パイプの最終コマンドの実行プロセスを定義する）【UNIX限定】」を参照してください。

注※

別プロセスで実行するコマンド（外部コマンド，子孫ジョブ，UNIX互換コマンド，シェル運用コマンド，サブシェル，バックグラウンド指定のコマンド，バックグラウンドプロセス指定のコマンド）は除きます。

また，UNIXでは複数のコマンドをパイプで接続して実行する場合，入力側のコマンドが実行終了してプロセスが存在しない状態で，出力側のコマンドがパイプへ出力すると，出力側のコマンドがSIGPIPEを受信する場合があります。

JP1/Advanced Shellでは，コマンドがSIGPIPEをハンドリングしている場合を除き，KNAX6522-Eメッセージを出力してエラー終了します。

(9)　コマンドセパレータ

コマンドセパレータを使用すると，ジョブ定義スクリプトの1行に複数のコマンドを記述できます。コマンドセパレータに関する書式を次の表に示します。

表5‒18　コマンドセパレータに関する書式

書式

意味

command;

セミコロン（;）までをコマンドおよびコマンド引数として解釈します。

command_1△₀&&△₀command_2

AND制御演算子です。左項のコマンドが終了コード0で終了すると，右項のコマンドを実行します。

command_1△₀||△₀command_2

OR制御演算子です。左項のコマンドが終了コード0以外で終了すると，右項のコマンドを実行します。

また，コマンドセパレータは，グループ化したコマンドを1つのコマンド群として扱い，実行できます。

(10)　コマンドのグループ化

コマンドをグループ化すると，複数のコマンドをまとめて実行できます。また，グループ化したコマンド群をグループ化することもできます。コマンドのグループ化に関する書式を次の表に示します。

表5‒19　コマンドのグループ化に関する書式

書式

意味

(command_1;△₀command_2; ... )

サブシェル（子プロセス）※でグループ化されたコマンドを実行します。コマンド実行中に環境を変更しても変更内容はカレントシェルに引き継がれません。グループ化するコマンドはセミコロンまたは改行文字で区切ります。

(command_1（改行）

command_2（改行）

... )

{△₁command_1;△₀command_2; ...;}

カレントシェルでグループ化されたコマンドを実行します。コマンド実行中に環境を変更すると変更内容がコマンド終了後も引き継がれます。グループ化するコマンドはセミコロンまたは改行文字で区切ります。

この書式の場合，「{」の後ろに1つ以上のスペースを挿入しかつ最後のコマンドにセミコロン（;）または改行文字を挿入してください。

{△₁command_1（改行）

command_2（改行）

...（改行）

}

注※

Windows版では，サブシェル（子プロセス）でグループ化されたコマンドの実行はサポートしていません。

(11)　そのほかのメタキャラクタ

そのほかに，次の表に示すメタキャラクタが使用できます。

表5‒20　使用できるメタキャラクタ

メタキャラクタ

意味

~※1

シェル変数のHOME※2に置き換えられます。

~任意の文字列

【UNIX限定】

/または引数区切り文字までの文字列と一致するユーザー名が/etc/passwdファイルに登録されているか確認します。

登録されている場合は，一致するユーザーのログインディレクトリに置き換えられます。

登録されていない場合は，そのままの文字列として解釈されます。

~+※1

シェル変数のPWDに置き換えられます。

~-※1

シェル変数のOLDPWDに置き換えられます。

&※3

ジョブ定義スクリプトや関数をバックグラウンドで実行します。

注※1

「~」，「~+」および「~-」は，クォーテーションで囲んだり，クォーテーションで囲まれた文字列やエスケープ文字（¥）の直前に記述されたりすると，対応するシェル変数に置き換わりません。このような場合はシェル変数を使用してください。

注※2

シェル変数のHOMEは自動では設定されません。環境変数として定義してください。

注※3

「&」はWindows版ではサポートしていません。

5.1.7　別プロセスでの実行【UNIX限定】

ジョブ定義スクリプト内に次の書式が記述されていた場合，カレントプロセスとは異なるプロセスで実行します。別プロセスで変更した内容については，カレントプロセスには引き継がれません。別プロセスで実行する使用例を次に示します。

パイプ（|）による別プロセスの実行

パイプ（|）による別プロセス実行は，PIPE_CMD_LASTパラメーターの指定によって動作が異なります。

（例）

hostname | read STR

PIPE_CMD_LASTパラメーターにCURRENTを指定した場合

hostnameコマンドは別プロセスで実行されますが，readコマンドはカレントプロセスで実行されます。

PIPE_CMD_LASTパラメーターにOTHERを指定した場合

hostnameコマンド，readコマンドともに別プロセスで実行されます。そのため，変数STRにはhostnameコマンドの結果が代入されません。

コマンド置換（$()や``）による別プロセスの実行

（例）

$(date '+%Y%m%d')  #dateコマンドの出力結果を名称とするコマンドを実行
`date '+%Y%m%d'`   #dateコマンドの出力結果を名称とするコマンドを実行

|&によるバックグラウンドプロセスの実行

（例）

echo abc |&       # 文字列abcをバックグラウンドプロセス実行で出力
sleep 1
read -p STR       # バックグラウンドプロセスで出力した内容を読み込む
echo $STR

コマンドのグループ化によるサブシェル実行

（例）

(TZ=GMT; export TZ; date) # 環境変数TZを一時的にGMTに変更して時刻を出力

&によるバックグラウンド実行

（例）

sleep 10 &

文字列の置換は別プロセス側で行います。そのため，例えば上記の書式で変数に代入した文字列をコマンドとして実行すると，ジョブ実行ログファイルのコマンド実行結果には置換前の変数名が出力されます。ただし，エイリアスはカレントプロセスで解決した上で実行するため，エイリアス解決後のコマンド名が出力されます。

ジョブ定義スクリプトの内容

ls="ls -lt"                       # 変数lsに"ls -lt"を代入
alias gt="grep test"              # エイリアス名gtに"grep test"を定義
$ls | gt                          # ls -lt | grep testを実行

実行ジョブのジョブ実行ログファイルの内容

<省略>
********  JP1/Advanced Shell MESSAGE  ********
18:35:04 003001 KNAX0091-I ADSH003001 Job started.
18:35:04 003001 KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
18:35:04 003001 KNAX7902-I adshexec will run in non-tty stdin mode.
18:35:04 003001 KNAX6110-I Command ls=ls -lt(line=1) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
18:35:04 003001 KNAX6112-I Command alias(line=2) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
18:35:04 003001 KNAX6116-I Command $ls(line=3) succeeded. rc=0 E-Time=0.074s C-Time=0.010s
18:35:04 003001 KNAX6116-I Command grep(line=3) succeeded. rc=0 E-Time=0.072s C-Time=0.010s
18:35:04 003001 KNAX0098-I ADSH003001 Job ended. rc=0 E-Time=0.078s C-Time=0.020s

上記の書式で指定したコマンドに対して#-adsh_rc_ignoreコマンドの指定を有効にする場合，#-adsh_rc_ignoreコマンドの引数に指定するコマンド名は，置換前の文字列のベース名を指定する必要があります。

注意事項

別プロセスで次のシェル標準コマンドを実行した場合，コマンドの実行結果が正常終了とエラー終了のどちらになるかは，カレントプロセスで実行した場合と異なります。異なる点は次のとおりです。

letコマンド

別プロセスで実行した場合，算術式を指定しないで実行すると，終了コード1で正常終了します。

exitコマンド，returnコマンド

別プロセスで実行した場合，引数に数字以外を指定して実行すると，終了コード1で正常終了します。

getoptsコマンド

別プロセスで実行した場合，オプションの終了を検出すると，終了コード1でエラー終了します。#-adsh_step_startコマンドのsuccessRC属性や，#-adsh_rc_ignoreコマンドを使用して，エラー終了とならないようにしてください。

readコマンド

別プロセスで実行した場合，ファイルの終了（EOF）を検出すると，終了コード1でエラー終了します。#-adsh_step_startコマンドのsuccessRC属性や，#-adsh_rc_ignoreコマンドを使用して，エラー終了とならないようにしてください。

別プロセスでの実行中に，そのプロセスが終了要求シグナルを受信すると，シグナルの種類によっては別プロセスでの実行を継続する場合があります。別プロセスで実行した内容を確実に強制終了したい場合は，そのプロセスにSIGTERMを送信してください。

5.1.8　パターンマッチング

JP1/Advanced Shellでは，一部の標準コマンドやスクリプト制御文でパターンとの比較ができます。例えば，「${variable#pattern}」の書式の場合，変数variableの値のうち，パターンpatternと一致する部分で最も短い部分を削除した値に置換します。使用例を次に示します。

使用例

$ var=abcd
$ echo ${var#a[b]}
cd

パターンと比較できるかどうかは機能ごとに決まっています。パターンの書式が不正な場合，パターンを通常の文字列として比較します。例えば，「[a*(b])」の場合，本来パターンとして特別な意味を持つ「[」，「*(」および「]」はすべて通常の文字として比較されます。使用例を次に示します。

使用例

$ var='[a*(b])cd'
$ echo ${var#[a*(b])}
cd

5.1.9　エスケープ文字

(1)　エスケープ文字の種類

echoコマンドとprintコマンドでは，次の表に示す文字をエスケープ文字として解釈します。

エスケープ文字

意味

echoコマンド

printコマンド

¥a

アラート文字（ベル）

○

○

¥b

バックスペース文字

○

○

¥c

行末の改行を抑止する（¥cの後ろに指定した文字は出力されない）

○

○

¥f

フォームフィード文字（改ページ）

○

○

¥n

改行文字

○

○

¥r

復帰文字

○

○

¥t

タブ文字

○

○

¥v

垂直タブ文字

○

○

¥0nnn※1

1〜3桁の8進数で表されたASCIIコードの文字（0〜7）

○

○

¥xnn※2

1〜2桁の16進数で表されたASCIIコードの文字（0〜9，a〜f，A〜F）

○

×

¥¥

1つのバックスラッシュ文字

○

○

（凡例）

○：指定できます。

×：指定できません。

注※1

指定したASCIIコード文字が1桁または2桁の場合，前に0を付けて3桁で指定しても，同じ意味として解釈されます。例えば，次の3つの指定は同じ意味として解釈され，アラート文字（ベル）が3回出力されます。

echo -e "¥07"

echo -e "¥007"

echo -e "¥0007"

注※2

環境設定パラメーターESCAPE_SEQ_ECHO_HEXにYESを指定した場合だけ有効になります。ESCAPE_SEQ_ECHO_HEXパラメーターについては，「7.　環境ファイルで設定するパラメーター」の「ESCAPE_SEQ_ECHO_HEXパラメーター（16進数表記のASCIIコード文字をエスケープ文字として解釈するかを定義する）」を参照してください。

指定したASCIIコード文字が1桁の場合，前に0を付けて2桁で指定しても，同じ意味として解釈されます。例えば，次の2つの指定は同じ意味として解釈され，改行文字が2回出力されます。

echo -e "¥xA"

echo -e "¥x0A"

(2)　echoコマンドに-eオプションと-Eオプションを指定しなかった場合の解釈

echoコマンドに-eオプション（エスケープ文字を解釈する）も-Eオプション（エスケープ文字を解釈しない）も指定しなかった場合，エスケープ文字の解釈は環境設定パラメーターESCAPE_SEQ_ECHO_DEFAULTの定義に従います。ESCAPE_SEQ_ECHO_DEFAULTパラメーターについては，「7.　環境ファイルで設定するパラメーター」の「ESCAPE_SEQ_ECHO_DEFAULTパラメーター（エスケープ文字関連のオプション省略時のechoコマンドの動作を定義する）」を参照してください。

5.1.10　スクリプト拡張コマンドの指定

ジョブ定義スクリプトの行の先頭に「#-adsh」が記述されている場合，スクリプト拡張コマンドへの要求と見なされ，スクリプト拡張コマンドを実行します。

スクリプト拡張コマンドについては，「9.5　スクリプト拡張コマンド」を参照してください。

5.1.11　外部コマンドの指定

ジョブ定義スクリプトの組み込みコマンド以外のプログラムを外部コマンドと総称します。外部コマンドには，UNIX互換コマンド，OSが提供するコマンドおよびユーザーが独自に作成したプログラムなどが該当します。ジョブ定義スクリプト中にこれらをコマンド名として記述することで，外部コマンドを実行できます。

外部コマンドの指定方法を次に示します。

$ 外部コマンドのパス

(1)　Windowsでの外部コマンドの実行

(a)　外部コマンドの拡張子の定義

Windowsの場合，拡張子「.com」，「.exe」，「.cmd」，「.bat」の実行ファイルは，ジョブ定義スクリプトから実行できます。ただし，環境変数PATHEXTにこれらの拡張子を登録しておくと，ジョブ定義スクリプトに拡張子の指定が不要になります。

ジョブ定義スクリプトから外部コマンドを実行する場合，環境変数PATHEXTに登録されている拡張子の順に実行されます。例えば，環境変数PATHEXTの値に「.COM;.EXE;」が指定され，シェル変数PATHの示す場所に「ls.com」と「ls.exe」がある場合は，最初に「ls.com」が実行されます。

外部コマンドの検索例を次に示します。環境変数PATHEXTの値が「.COM;.EXE;」である場合，次のように実行されます。

ls      ←拡張子がないため，「.com」「.exe」の順に拡張子を付与して検索し実行される。
ls.exe  ←拡張子があるため，「ls.exe」が実行される。

(b)　外部コマンド実行前の処理のスキップ

外部コマンドを実行する前に，外部コマンドのパス，およびその引数に対して次の処理が実行されます。これらの処理が不要な場合，commandコマンドに-wオプションを指定して，外部コマンドを実行してください。

"（ダブルクォーテーション）の前の「¥」を「¥¥」に変換する処理

"（ダブルクォーテーション）の前に「¥」を付与する処理

"（ダブルクォーテーション）で囲む処理

commandコマンドの-wオプションについては，「9.3　シェル標準コマンド」の「commandコマンド（コマンドを実行する）」を参照してください。

使用例

command -w ."¥¥prog.exe" "ABC"

(c)　バッチファイルの実行時の制限

バッチファイルを実行する場合，次の制限があります。

引数なしの場合

バッチファイルパスに&，(，)，[，]，{，}，^，=，;，!，'，+，,，`，~を含む場合，「<cmd.exeパス> /c <バッチファイルパス>」と指定し，バッチファイルパス中の記号を"'¥でエスケープしてください。

引数ありの場合

次のすべての制限があります。

「<cmd.exeパス> /c <バッチファイルパス> <引数1> <引数2> … <引数n>」と指定してください。

バッチファイルパスに&，(，)，[，]，{，}，^，=，;，!，'，+，,，`，~を含む場合，バッチファイルパス中の記号を"'¥でエスケープしてください。

スペースまたは&，(，)，[，]，{，}，^，=，;，!，'，+，,，`，~を含む引数は，スペースや記号を"'¥でエスケープしてください。

引数は"で囲まれたものがバッチファイルに渡ります。また，最後の引数は先頭にだけ"が付きます。このため，バッチファイルから引数を参照するときは"を自動的に取り除く%~1, %~2 … %~nの形式で参照してください。

(2)　UNIXでの外部コマンドの実行

実行権限が付与された実行形式のバイナリファイルのときは，ジョブ定義スクリプトから実行できます。

また，実行権限の付与されたテキストファイルは，ファイルの先頭に「#!実行プログラムパス」を記述することで，ジョブ定義スクリプトから実行できます。この場合，#!の指定に従って実行プログラムが実行されます。

(3)　コマンドの実行方法の優先順序

ジョブコントローラはジョブ定義スクリプトに指定されたファイルを実行する場合，次の順に条件判定してファイルを実行します。

【Windows限定】

CHILDJOB_PGMパラメーターの条件を満たした場合，子孫ジョブとして実行します。

CHILDJOB_SHEBANGパラメーターの条件を満たした場合，子孫ジョブとして実行します。

CHILDJOB_SHEBANGパラメーターのデフォルト定義に合致した場合，子孫ジョブとして実行します。

CHILDJOB_EXTパラメーターの条件を満たした場合，子孫ジョブとして実行します。

拡張子がexe，bat，cmd，またはcomのファイルの場合，コマンドとして実行します。

上記条件のどれにも該当しない場合，コマンドの起動に失敗します。ただし，ジョブの実行は継続されます。

【UNIX限定】

CHILDJOB_PGMパラメーターの条件を満たした場合，子孫ジョブとして実行します。

ファイルの実行権限がある場合，手順3.以降の判定を実施します。実行権限がない場合，コマンドの起動に失敗しエラー終了します。ただし，ジョブの実行は継続します。

CHILDJOB_SHEBANGパラメーターの条件を満たした場合，子孫ジョブとして実行します。

CHILDJOB_SHEBANGパラメーターのデフォルト定義に合致した場合，子孫ジョブとして実行します。

CHILDJOB_EXTパラメーターの条件を満たした場合，子孫ジョブとして実行します。

ファイルがバイナリファイルの場合，コマンドとして実行します。

ファイルがテキストファイルの場合，スクリプトとして実行します。

#!が指定されている場合は，#!に指定された実行プログラムで実行します。

#!が指定されていない場合は，「/bin/sh」で実行します。

子孫ジョブ関連のパラメーターを同時に指定した場合の使用例を次に示します（test.shは存在し，実行権限ありとします）。

例1

■環境ファイルの内容

#-adsh_conf CHILDJOB_PGM /bin/sh
#-adsh_conf CHILDJOB_SHEBANG /bin/ksh
#-adsh_conf CHILDJOB_EXT sh

■test.shの内容

#!/bin/ksh
echo JP1AS

■ジョブ定義スクリプトの内容

/bin/sh ./test.sh

→CHILDJOB_PGMパラメーターが適用され，test.shは子孫ジョブとして実行します。

例2

■環境ファイルの内容

#-adsh_conf CHILDJOB_PGM /bin/sh
#-adsh_conf CHILDJOB_SHEBANG /bin/ksh
#-adsh_conf CHILDJOB_EXT sh

■test.shの内容

#!/bin/ksh
echo JP1AS

■ジョブ定義スクリプトの内容

./test.sh

→CHILDJOB_SHEBANGパラメーターが適用され，test.shは子孫ジョブとして実行します。

例3

■環境ファイルの内容

#-adsh_conf CHILDJOB_PGM /bin/sh
#-adsh_conf CHILDJOB_SHEBANG /bin/ksh
#-adsh_conf CHILDJOB_EXT sh

■test.shの内容

#!/bin/sh
echo JP1AS

■ジョブ定義スクリプトの内容

./test.sh

→CHILDJOB_EXTパラメーターが適用され，test.shは子孫ジョブとして実行します。

例4

■環境ファイルの内容

#-adsh_conf CHILDJOB_PGM /bin/sh
#-adsh_conf CHILDJOB_SHEBANG /bin/ksh
#-adsh_conf CHILDJOB_EXT sh

■test.shの内容

#! /opt/jp1as/bin/adshexec
echo JP1AS

■ジョブ定義スクリプトの内容

./test.sh

→CHILDJOB_SHEBANGパラメーターのデフォルト定義に合致するため，test.shは子孫ジョブとして実行します。

例5

■環境ファイルの内容

#-adsh_conf CHILDJOB_PGM /bin/sh
#-adsh_conf CHILDJOB_SHEBANG /bin/ksh
#-adsh_conf CHILDJOB_EXT sh

■test.shの内容

#!/bin/ksh
echo JP1AS

■ジョブ定義スクリプトの内容

/bin/ksh ./test.sh

→CHILDJOB_EXTパラメーター，CHILDJOB_PGMパラメーター，CHILDJOB_SHEBANGパラメーター，CHILDJOB_SHEBANGパラメーターのデフォルト定義のどの定義にも該当しないため，test.shは子孫ジョブとして実行されないで，/bin/kshで実行します。

例6

■環境ファイルの内容

#-adsh_conf CHILDJOB_PGM /opt/jp1as/bin/adshexec
#-adsh_conf CHILDJOB_SHEBANG /bin/ksh
#-adsh_conf CHILDJOB_EXT sh

■test.shの内容

#!/bin/ksh
echo JP1AS

■ジョブ定義スクリプトの内容

/opt/jp1as/bin/adshexec ./test.sh

→CHILDJOB_PGMパラメーターが適用され，test.shは子孫ジョブとして実行します。

例7

■環境ファイルの内容

#-adsh_conf CHILDJOB_PGM ./test.sh
#-adsh_conf CHILDJOB_SHEBANG /bin/ksh
#-adsh_conf CHILDJOB_EXT sh

■test.shの内容

#!/bin/ksh
echo JP1AS

■ジョブ定義スクリプトの内容

./test.sh

→条件判定の順序に従い，CHILDJOB_PGMパラメーターを判定します。CHILDJOB_PGMパラメーターの定義に一致するため，読み替えが実施されます。ただし，子孫ジョブとして実行するファイルが指定されていないため，実行エラーになります。

(4)　関数と同名の子孫ジョブまたは外部コマンドの優先順序

関数と同名の子孫ジョブ，または外部コマンドの優先順序を次に示します。

メインスクリプトで関数を定義済み，または#-adsh_script，.（ドット）コマンドによって関数定義ファイルを読み込んでいる場合は，常に関数が優先されます。

関数にオートロード属性が付加されていて，かつシェル変数FPATHに指定されたディレクトリ内に関数と同名の関数定義ファイルが存在する場合は，関数が優先されます。

関数にオートロード属性が付加されていないが，シェル変数FPATHに指定されたディレクトリ内に関数と同名の関数定義ファイルが存在する場合は，次の順に判定します。

環境変数PATHに指定されたディレクトリに関数と同名のジョブ定義スクリプト，または外部コマンドが存在する場合は，子孫ジョブまたは外部コマンドが実行されます。

環境変数PATHに指定されたディレクトリに該当するジョブ定義スクリプト，または外部コマンドが存在しない場合は，関数が実行されます。

環境変数PATHとシェル変数FPATHに指定されたディレクトリのどちらにも該当するファイルが存在しない場合は，実行するコマンドが存在しないためエラー終了します。

5.1.12　UNIX互換コマンドの指定

WindowsのコマンドプロンプトおよびUNIXのシェルからUNIX互換コマンドを入力できます。また，ジョブ定義スクリプト中でUNIX互換コマンドを使用してWindowsまたはUNIXで実行できます。UNIX互換コマンドを使用すると，ファイルやディレクトリの表示，作成，検索などの機能が実行できます。

実行ファイル形式のUNIX互換コマンドを使用するジョブ定義スクリプトをWindowsやUNIXで共用するためには，シェル変数ADSH_DIR_CMDを使用してUNIX互換コマンドを定義してください。シェル変数ADSH_DIR_CMDについては「5.5.1　JP1/Advanced Shellが設定するシェル変数」を参照してください。

シェル変数ADSH_DIR_CMDを使用してUNIX互換コマンド（dateコマンド）をジョブ定義スクリプトに定義する例を次に示します。

"${ADSH_DIR_CMD}date"

5.1.13　ジョブ定義スクリプト実行時のシェルと書式チェックの指定

(1)　シェルの指定

UNIXの場合，ジョブ定義スクリプトファイルの1行目に，ジョブ定義スクリプトを実行するためのシェルを指定できます。指定方法を次に示します。

#!実行ファイルパス

この状態で次のコマンドを実行すると，ジョブ定義スクリプトの1行目に記述した実行ファイルのパスのシェルでジョブ定義スクリプトが実行されます。なお，実行ファイルのパスを省略した場合，/bin/shで実行されます。

$ ジョブ定義スクリプトファイルのパス

また，次のようにadshexecコマンドのパスを先頭に付記してコマンドを実行した場合，ジョブ定義スクリプトの1行目の記述に関係なく，adshexecコマンドのパスでジョブ定義スクリプトが実行されます。

$ adshexecコマンドのパス ジョブ定義スクリプトファイルのパス

(2)　字句の書式チェック

adshexecコマンドでジョブ定義スクリプトファイルを実行すると，ジョブ定義スクリプトファイルに記述された字句の書式チェックをしてから実行します。ただし，ジョブ定義スクリプトファイル内で.（ドット）コマンドで読み込んでいる外部ファイルについては，書式チェックをしません。

ジョブ定義スクリプトを実行しないで字句の書式チェックだけを実行する場合は，adshexecコマンドに-cオプションを指定して実行してください。

5.2　条件判定

ジョブ定義スクリプトは，制御文に記述された条件式の結果を基に，実行する処理を制御します。条件判定として，制御文と条件式について説明します。

5.2.1　制御文

JP1/Advanced Shellは，次に示す制御文を使用できます。詳細については，「9.6　スクリプト制御文」を参照してください。

case

文字列の内容に応じて，幾つかある処理のうち，1つを実行します。

for

値を順次変化させながら，同じ処理を繰り返し実行します。

if

条件に合わせて分岐することで，各条件に沿った処理を実行します。

until

条件が成立するまで，同じ処理を繰り返し実行します。

while

条件が成立している間，同じ処理を繰り返し実行します。

制御文の次に示す個所に，コマンド置換，またはスクリプト拡張コマンドを除く任意のコマンドを指定できます。

コマンド置換を指定できる個所

case文の式およびパターン

for文のwordlist

コマンド置換，またはスクリプト拡張コマンドを除く任意のコマンドを指定できる個所

if文の条件1（ifの後ろの条件），および条件2（elifの後ろの条件）

until文の条件

while文の条件

指定した任意のコマンドの終了コードは，ジョブおよびジョブステップの終了コードに反映されません。制御文の実行が完了した時点でのジョブおよびジョブステップの終了コードは制御文のブロック内で最後に実行されたコマンドの終了コードになります。

ただし，次の条件のどれかに該当する場合は，指定した任意のコマンドの終了コードは，ジョブおよびジョブステップの終了コードに反映されます。ジョブステップが完了した時点でのジョブおよびジョブステップの終了コードは，指定したコマンドの終了コードになります。

指定したコマンドがコマンド置換ではなく，exitコマンドまたはreturnコマンドである場合

指定したコマンドがコマンド置換ではなく，特殊組み込みコマンドであり，かつエラーとなった場合

指定した1.，2.以外のコマンドがエラーとなり，かつ制御文がonError属性にstopを指定したジョブステップ内であった場合

JP1/AJSでジョブをエラーとしたい場合など，エラーとなったコマンドの終了コードをジョブの終了コードに反映したい場合は，onError属性にstopを指定したジョブステップ内に制御文を記述してください。

if文での例を次に示します。

例1

if `cmdA true`　 ←cmdAは存在しないコマンド名
then
  echo "true"
else
  echo "false"　←else節が実行される
fi
# この時点でのジョブの終了コードは0となる

上記の例1で，if文の条件1に指定したコマンド置換のcmdAが存在しないコマンド名の場合，条件が偽と見なされelse節の「echo "false"」が実行されます。このとき，if文が完了した時点でのジョブの終了コードは0になります。

例2

#-adsh_step_start S1 -onError stop
if `cmdA true`      ←cmdAは存在しないコマンド名
then
  echo "true"
else
  echo "false"
fi
#-adsh_step_end    ←then節もelse節も実行しないでジョブステップ中断
# ジョブステップS1，およびこの時点でのジョブの終了コードは127となる

上記の例2で，if文の条件1に指定したコマンド置換のcmdAが存在しないコマンド名の場合，if文のthen節とelse節のどちらも実行しないでジョブステップの実行を中断します。このとき，ジョブステップが完了した時点でのジョブの終了コードは，指定したコマンドが存在しないことを示す127になります。ジョブステップの定義，およびonError属性については，「9.5　スクリプト拡張コマンド」の「#-adsh_step_start コマンド，#-adsh_step_error コマンド，#-adsh_step_end コマンド（ジョブステップを定義する）」を参照してください。

5.2.2　条件式

条件式では，数値比較，文字列比較，ファイル属性，論理演算子および三項演算子を使用します。

条件式の共通仕様を次に説明します。

testコマンドまたはletコマンドを使用して条件評価を行います。

testコマンドは代替書式である[]および[[]]を含みます。また，letコマンドは代替書式である(())を含みます。

testコマンドを使用して条件評価する場合，変数と演算子の間にスペースを入れてください。[[]]を使用する場合は，「[[」の直後と「]]」の直前にスペースを入れてください。

[[]]を使用して条件判定するときの使用例を次に示します。

if [[ $arg1 -eq $args ]]; then
　　echo TRUE
fi

letコマンドの引数にtestコマンドの引数（-eqなど）を指定した場合，letコマンドは変数と解釈して動作します。

(1)　数値比較

数値の比較に使用する演算子を次の表に示します。

表5‒21　数値の比較に使用する演算子

演算子を使った条件式

判定

testコマンドでの使用可否

letコマンドでの使用可否

数値1 -eq 数値2

数値1と数値2が等しい場合は真。

○

×

数値1 -ne 数値2

数値1と数値2が等しくない場合は真。

○

×

数値1 -ge 数値2

数値1が数値2以上の場合は真。

○

×

数値1 -gt 数値2

数値1が数値2より大きい場合は真。

○

×

数値1 -le 数値2

数値1が数値2以下の場合は真。

○

×

数値1 -lt 数値2

数値1が数値2より小さい場合は真。

○

×

数値1 == 数値2

数値1と数値2が等しい場合は真。

○※1

○

数値1 != 数値2

数値1と数値2が等しくない場合は真。

○※1

○

数値1 >= 数値2

数値1が数値2以上の場合は真。

×

○

数値1 > 数値2

数値1が数値2より大きい場合は真。

○※1※2

○

数値1 < 数値2

数値1が数値2より小さい場合は真。

○※1※2

○

数値1 <= 数値2

数値1が数値2以下の場合は真。

×

○

（凡例）

○：使用できます。

×：使用できません。

注※1

数値ではなく，文字列として比較します。文字列比較については，「5.2.2(2)　文字列比較」を参照してください。

注※2

[[ ]]だけで使用できます。その他の書式では使用できません。

数値比較の使用例を次に示します。

a=1
b=2
if [[ $a -lt $b ]]; then
  echo TRUE
else
  echo FALSE
fi

while (( $a != $b )); do
  echo LOOP
  ((a+=1))
done

(2)　文字列比較

文字列の比較に使用する演算子を次の表に示します。

表5‒22　文字列の比較に使用する演算子

演算子を使った条件式

判定

testコマンドでの使用可否

letコマンドでの使用可否

文字列

文字列の長さが1文字以上の場合は真。ただし，[[ ]]コマンドでは使用できません。

○

×

-n 文字列

文字列の長さが1文字以上の場合は真。

文字列の長さが0なら，KNAX6041-Eメッセージを出力し，終了コード2でエラー終了します。ただし，[[ ]]コマンドで文字列を指定しなかった場合は書式不正となり，KNAX6041-Eメッセージを出力し，終了コード1でエラー終了します。

○

×

-z 文字列

文字列の長さが0の場合は真。

○

×

-o 文字列

文字列が現在有効に設定されているシェルオプションの文字列と一致する場合は真。

シェルオプションの文字列については，「5.6.1　setコマンドで設定できるシェルオプション」の「表5-34　setコマンドで設定できるシェルオプション」の「名称」を参照してください。

○

×

文字列 = pattern

文字列とpatternが一致する場合は真。

○

×

文字列 == pattern

文字列とpatternが一致する場合は真。

○

×

文字列 != pattern

文字列とpatternが不一致の場合は真。

○

×

文字列1 < 文字列2

文字列1と文字列2をASCIIコード順に比較します。文字列1より文字列2が大きい場合は真。

○※

×

文字列1 > 文字列2

文字列1と文字列2をASCIIコード順に比較します。文字列1より文字列2が小さい場合は真。

○※

×

（凡例）

○：使用できます。

×：使用できません。

注※

[[ ]]で使用できます。その他の書式では使用できません。

比較する文字列にはスペースなどが含まれる場合があるため，"（ダブルクォーテーション）で囲むことを推奨します。使用例を次に示します。

str1="aaa"
str2="bbb"
test "$str1" == "$str2"
[[ "$str1" == "$str2" ]]

比較する文字列には*，?，[…]のワイルドカードが指定できます。ただし，[[ ]]だけで使用できます。その他の書式ではワイルドカードを使用できません。また，ワイルドカードを使用した文字列を"（ダブルクォーテーション）で囲んだ場合，ワイルドカードが持つ意味が無効化されてしまうため，注意してください。使用例を次に示します。

str1="adsh"
str2="ads?"
str3="ad*"
[[ "$str1" == "$str2" ]]   ←ワイルドカードが無効。文字列"ads?"の比較をする
[[ $str1 != $str3 ]]       ←ワイルドカードが有効

[[ ]]による文字列比較の使用例を次に示します。ワイルドカードは，*，?，[…]が指定できます。

if [[ abc == ab* ]]; then
    echo TRUE
fi

ワイルドカードについては，「5.1.6(5)　ワイルドカード」を参照してください。

(3)　ファイル属性

ファイルの形式や権限などの属性を評価する場合に使用する演算子を次の表に示します。

表5‒23　ファイルの形式や権限などの属性を評価する演算子

演算子を使った条件式

判定

testコマンドでの使用可否

letコマンドでの使用可否

-a file

fileが存在する場合は真。

○

×

-b file

fileが存在し，ブロック型デバイスの場合は真。※1

○

×

-c file

fileが存在し，キャラクタ型デバイスの場合は真。※1

○

×

-d file

fileが存在し，ディレクトリの場合は真。

○

×

-e file

fileが存在する場合は真。

○

×

-f file

fileが存在し，通常ファイルの場合は真。

○

×

-g file

fileが存在し，setgidビットがセットされている場合は真。※1

○

×

-h file

fileが存在し，シンボリックリンクの場合は真。※2

○

×

-k file

fileが存在し，スティッキービットがセットされている場合は真。※1

○

×

-p file

fileが存在し，パイプファイルの場合は真。※1

○

×

-r file

Windowsの場合，fileが存在する場合は真。

UNIXの場合，fileが存在し，カレントプロセスから読み込み可能なときは真。

○

×

-s file

次の条件をすべて満たす場合は真。

【Windowsの場合】

fileが存在する

fileがフォルダ以外である

ファイルサイズが1バイト以上である

【UNIXの場合】

fileが存在する

ファイルサイズが1バイト以上，またはディレクトリである

-sはUNIXとWindowsで真の条件が異なるため，ディレクトリまたはフォルダの存在チェックには-dを使用してください。

○

×

-t fd

端末をオープンしているfdの場合は真。※3

○

×

-u file

fileが存在し，setuidビットがセットされている場合は真。※1

○

×

-w file

Windowsの場合，読み取り専用属性が設定されていないか，またはディレクトリのときは真。

UNIXの場合，fileが存在し，カレントプロセスから書き込み可能なときは真。

○

×

-x file

Windowsの場合，次のどれかに該当するときは真。

拡張子が「.com」，「.exe」，「.cmd」または「.bat」である

ディレクトリである

環境ファイルのCHILDJOB_EXTパラメーターまたはCHILDJOB_SHEBANGパラメーター（デフォルト定義含む）で設定した条件に一致するファイルである※4

UNIXの場合，fileが存在し，カレントプロセスから実行可能なときは真。

○

×

-G file

fileが存在し，fileが属するグループが呼び出し元のプロセスの実効グループIDと一致している場合は真。※2

○

×

-L file

fileが存在し，シンボリックリンクの場合は真。※2

○

×

-O file

fileが存在し，所有者がプロセスの有効ユーザーIDの場合は真。※2

○

×

-S file

fileが存在し，ソケットの場合は真。※1

○

×

file1 -ef file2

file1とfile2が存在し，file1とfile2の実体が同じ（シンボリックリンク先が同じまたはハードリンク先が同じ）場合は真。※2

○

×

file1 -nt file2

file1とfile2が存在し，file1の最終修正日時がfile2よりも新しい場合は真。また，file1が存在し，file2が存在しない場合も真。

○

×

file1 -ot file2

file1とfile2が存在し，file1の最終修正日時がfile2よりも古い場合は真。また，file2が存在し，file1が存在しない場合も真。

○

×

-H file

常に偽。

○

×

（凡例）

○：使用できます。

×：使用できません。

注※1

Windows環境の場合，存在しないファイル種別やフラグについて判定されるため，常に偽となります。

注※2

Windows環境でtestコマンドを実行する場合，判定時の処理がサポートされていないため，エラーとなります。ただし，UNSUPPORT_TESTパラメーターを指定することで，メッセージを出力してエラーとしたり，正常にしたりすることもできます。パラメーターの詳細については，「7.3　環境設定パラメーター」の「UNSUPPORT_TESTパラメーター（サポートしていない条件式の実行時の動作を定義する）【Windows限定】」を参照してください。

注※3

fdに10以上の値を指定しないでください。指定した場合，値は保証できません。

注※4

CHILDJOB_SHEBANGパラメーターの詳細については，「7.3　環境設定パラメーター」の「CHILDJOB_SHEBANGパラメーター（子孫ジョブとして実行するジョブ定義スクリプトファイルの実行プログラムパスを定義する）」を参照してください。

CHILDJOB_EXTパラメーターの詳細については，「7.3　環境設定パラメーター」の「CHILDJOB_EXTパラメーター（子孫ジョブとして実行するジョブ定義スクリプトファイルの拡張子を定義する）」を参照してください。

ファイル属性の使用例を次に示します。

FILE="$HOME/script/test.ash"
if [[ -a $FILE ]];
then
  echo "$FILE exists."
else
  echo "$FILE does not exist."
fi

(4)　論理演算

論理演算で評価する場合に使用する演算子を次の表に示します。

表5‒24　論理演算で評価する場合に使用する演算子

演算子を使った条件式

判定

testコマンドでの使用可否

letコマンドでの使用可否

expr1 -a expr2

expr1とexpr2の結果が両方とも真の場合，真。

○※

×

expr1 -o expr2

expr1とexpr2の結果がどちらか一方でも真の場合，真。

○※

×

expr1 && expr2

expr1とexpr2の結果が両方とも真の場合，真。

○

○

expr1 || expr2

expr1とexpr2の結果がどちらか一方でも真の場合，真。

○

○

! expr

exprの結果が偽の場合，真。

○

○

（凡例）

○：使用できます。

×：使用できません。

注※

[[ ]]では使用できません。

論理演算の使用例を次に示します。

DIR="/tmp"
FILE="/tmp/test.ash"
a=2
b=4
if test -d $DIR -a -a $FILE
then
  echo "$DIR is directory and $FILE exists."
else
  echo "$DIR is not directory or $FILE does not exist."
fi

while ((a*0 || b-3)); do
  echo LOOP
  let b-=1
done

ただし，testコマンドで論理演算子「&&」および「||」を使用する場合は，次のように記述してください。

a=1
b=2
c=3
if test "$a" == 1 && test "$b" == 2; then
    echo "True"
else
    echo "False"
fi
if test "$a" != "$b" || test "$a" != "$c"; then
    echo "True"
else
    echo "False"
fi

(5)　三項演算子

if-elseの省略記法である三項演算子を使用できます。JP1/Advanced Shellで使用できる三項演算子を次の表に示します。

表5‒25　JP1/Advanced Shellで使用できる三項演算子

演算子を使った条件式

判定

testコマンドでの使用可否

letコマンドでの使用可否

expr1?expr2: expr3

expr1の結果が真であればexpr2の結果，偽であればexpr3の結果を返します。

×

○

（凡例）

○：使用できます。

×：使用できません。

三項演算子の使用例を次に示します。

VAR1=3
VAR2=2
ANSWER=0

((ANSWER=VAR1>VAR2?8+VAR1:8*VAR2))
echo $ANSWER

5.3　算術演算

ジョブ定義スクリプト内では，typesetコマンドの-iオプションで明示的に整数型と宣言しないかぎり，変数の値は数字であっても文字として扱われます。しかし，letコマンドまたは(())の中に算術演算を行う演算子を指定すると，変数に代入されている値を数値として扱い，算術演算が行えます。

JP1/Advanced Shellは，算術演算子，増分・減分演算子，ビットごとの論理演算子，代入演算子が使用できます。演算子の共通仕様を説明します。

letコマンドで算術演算する場合，変数と演算子の間にスペースを入れないでください。スペースを入れた場合は，書式不正でエラー終了します。変数と演算子の間にスペースを入れたい場合は，letコマンドの省略形である(( ))を使用するか，またはクォーテーションで算術式を囲む必要があります。

使用例

let   NUM = 100 - 99      # クォーテーションで囲まれていないため，エラー終了する
let " NUM = 100 - 99 "    # クォーテーションで囲まれているため，算術式は実行される
(( NUM    = 100 - 99 ))   # 省略形(( ))を使用しているため，算術式は実行される

算術式には数値および数字が代入された変数を指定できます。数値は基数表記（基数#値）で指定できます。

基数表記を省略した場合は10進数と解釈され，演算が実行されます。

数字以外の文字が代入されている変数を指定した場合は，エラー終了します。

5.3.1　算術演算子

算術演算子は，ジョブ定義スクリプト内で変数の値に対して四則演算を行うための演算子です。JP1/Advanced Shellで使用できる算術演算子を次の表に示します。

表5‒26　JP1/Advanced Shellで使用できる算術演算子

算術演算子

意味

-num

単項マイナス演算子です。numの値を負の値にします。

num1*num2

num1とnum2を掛けた結果を返します。

num1/num2

num1をnum2で割った結果を返します。

num1%num2

num1をnum2で割ったときの余りを返します。

num1+num2

num1とnum2を足した結果を返します。

num1-num2

num1からnum2を引いた結果を返します。

num1**num2

num1をnum2で累乗した結果を返します。

num2に0より小さい値を指定した場合はKNAX6068-Eメッセージを出力し，終了コード2でエラー終了します。

5.3.2　増分・減分演算子

増分・減分演算子は，同一変数への増分，減分処理を簡潔に表現するための演算子です。JP1/Advanced Shellで使用できる増分・減分演算子を次の表に示します。

表5‒27　JP1/Advanced Shellで使用できる増分・減分演算子

増分・減分演算子

意味

num++

numを参照したあと，numを1加算します。

num--

numを参照したあと，numを1減算します。

++num

numを1加算したあと，numの値を参照します。

--num

numを1減算したあと，numの値を参照します。

5.3.3　ビットごとの論理演算子

ビットごとの演算子は，変数の値に対してビット単位で論理演算処理をするための演算子です。JP1/Advanced Shellで使用できるビットごとの論理演算子を次の表に示します。

表5‒28　JP1/Advanced Shellで使用できるビットごとの論理演算子

ビットごとの論理演算子

意味

num1&num2

num1とnum2をビット単位で論理積演算した結果を返します。

num1|num2

num1とnum2をビット単位で論理和演算した結果を返します。

num1^num2

num1とnum2をビット単位で排他的論理和演算した結果を返します。

num1<<num2

num1をnum2ビットだけ左シフトした結果を返します。

num1>>num2

num1をnum2ビットだけ右シフトした結果を返します。

~num

numをビット否定した結果です。1の補数を返します。

5.3.4　代入演算子

代入演算子は，変数への値の代入を行うための演算子です。また，変数の四則演算，ビットごとの論理演算を行った結果を代入できます。JP1/Advanced Shellで使用できる代入演算子を次の表に示します。

表5‒29　JP1/Advanced Shellで使用できる代入演算子

代入演算子

意味

num1=num2

num1にnum2を代入します。

num1*=num2

num1とnum2を掛けた結果をnum1に代入します。

num1/=num2

num1をnum2で割ったときの結果をnum1に代入します。

num1%=num2

num1をnum2で割ったときの余りをnum1に代入します。

num1+=num2

num1とnum2を足した結果をnum1に代入します。

num1-=num2

num1からnum2を引いた結果をnum1に代入します。

num1<<=num2

num1をnum2ビットだけ左シフトした結果をnum1に代入します。

num1>>=num2

num1をnum2ビットだけ右シフトした結果をnum1に代入します。

num1&=num2

num1とnum2をビット単位で論理積演算した結果をnum1に代入します。

num1|=num2

num1とnum2をビット単位で論理和演算した結果をnum1に代入します。

num1^=num2

num1とnum2をビット単位で排他的論理和演算した結果をnum1に代入します。

5.4　条件判定と算術演算の優先順位

優先順位は，letコマンドで使用できる次の演算子を対象とします。

数値比較

論理演算子

三項演算子

算術演算子

条件式および算術演算の優先順位を次の表に示します。優先順位は項番1が最も高く，以降項番の順に低くなります。演算処理は優先順位が高い方から順に行われます。

表5‒30　演算子の優先順位

優先順位

演算子

1

-（単項マイナス演算子），!，++，--，~

2

**

3

*，/，%

4

+，-

5

<<，>>

6

<，<=，>，>=

7

==，!=

8

&

9

^

10

|

11

&&

12

||

13

?:（三項演算子）

14

=，+=，-=，*=，/=，%=，&=，^=，|=，<<=，>>=

例えば次の計算式では，「**」の方が「*」よりも優先順位が高いため，「3**3」が先に計算されます。その結果，aに代入される値は54になるため，「54」が標準出力に出力されます。

let a=2*3**3   ← 3の3乗に2を掛ける
echo $a        ← aとして「54」が標準出力に出力される

5.5　シェル変数

シェル変数とは，値を定義してからジョブ定義スクリプトが終了するまで引き継がれる変数のことです。JP1/Advanced Shellはシェル変数を設定および使用できます。シェル変数の値を参照・変更すると，ジョブ定義スクリプトを実行する環境をカスタマイズできます。

Windowsの場合，システムのプロパティで設定した環境変数など，ジョブコントローラ起動時に設定されている環境変数の名前は，VAR_ENV_NAME_LOWERCASEパラメーターを次のように指定することで，大文字に変換されてシェル変数として取り込まれます。

VAR_ENV_NAME_LOWERCASEパラメーターの指定

ジョブコントローラ起動時に設定されている環境変数名の変換

ENABLE

環境変数の名称はHOME，PATH，SHELLだけ大文字に変換し，それ以外の環境変数名はそのままの名称でシェル変数として取り込みます。

DISABLE

環境変数の名称はすべて大文字に変換して，シェル変数として取り込みます。

また，ジョブコントローラ起動時に設定されている環境変数の名前がJP1/Advanced Shellで使用できる変数の命名規則に一致しない場合，シェル変数に取り込まれますが，そのシェル変数を使用することはできません。変数の命名規則については，「5.1.2(1)　変数の命名規則」を参照してください。

なお，JP1/Advanced Shellでは変数名として使用できないシェル変数があります。このシェル変数を使用すると，エラーメッセージが表示されます。使用できないシェル変数を次に示します。

COLUMNS，EDITOR，EXECSHELL，FCEDIT，HISTFILE，HISTSIZE，KSH_VERSION，MAIL，MAILCHECK，MAILPATH，POSIXLY_CORRECT，SH_VERSION，TMOUT，VISUAL

また，次のシェル変数はJP1/Advanced Shellが内部的に使用するシェル変数であるため，使用しないでください。使用してもエラーメッセージは出力しません。

PS1，PS2，PS3

5.5.1　JP1/Advanced Shellが設定するシェル変数

JP1/Advanced Shellが設定するシェル変数を次の表に示します。これらのシェル変数に対して，値の設定，属性の変更，設定の解除はしないでください。

表5‒31　JP1/Advanced Shellが設定するシェル変数

シェル変数名

設定される値

#

現在のジョブ定義スクリプトまたは関数に渡された引数の数が設定されます。

-

シェルに設定されているシェルオプションの省略形の文字列が設定されます。

ただし，省略形の文字がないシェルオプションは，この変数には設定されません。

?

直前に実行したコマンドの終了コードが設定されます。

$

シェルのプロセスIDとして，次に示すプログラムのプロセスIDが設定されます。

【Windows限定】

adshexecsub.exeまたはadshesub.exeのプロセスID

【UNIX限定】

adshexecのプロセスID

_

adshexecコマンド起動時に設定されている値が設定されます。値が設定されていない場合は，adshexecコマンド起動時のargv[0]の内容が設定されます。

また，子プロセスとして起動した外部コマンド，子孫ジョブの起動時には，argv[0]の内容が設定されます。

!

最後にバックグラウンドで実行したコマンドのプロセスIDが設定されます。

ADSH_DIR_BIN※1

JP1/Advanced Shellのプログラムフォルダ（bin）のパス名が設定されます。※2

ADSH_DIR_CMD※1

JP1/Advanced ShellのUNIX互換コマンドのフォルダ（cmd）のパス名が設定されます。※3

ADSH_RC_STEPLAST※1

過去に実行した最終ジョブステップの終了コードが設定されます。

ジョブステップが1つも実行されていない場合は，シェル変数が未定義です。

ADSH_RC_STEPMAX※1

過去に実行した全ジョブステップの終了コードの最大値が設定されます。

ジョブステップが1つも実行されていない場合は，シェル変数が未定義です。

ADSH_RC_STEPMIN※1

過去に実行した全ジョブステップの終了コードの最小値が設定されます。

ジョブステップが1つも実行されていない場合は，シェル変数が未定義です。

ADSH_STEPRC_ジョブステップ名※1

「ジョブステップ名」で示すジョブステップの終了コードが設定されます。「ジョブステップ名」で示すジョブステップが実行されていない場合は，シェル変数が未定義です。

重複するジョブステップ名が存在する場合，最後に実行されたジョブステップの終了コードが格納されます。

LINENO

実行中のジョブ定義スクリプトの現在行の行番号が設定されます。

OLDPWD

cdコマンドで設定された直前の作業ディレクトリが設定されます。

OPTARG

getoptsコマンドで処理された最後のオプション引数の値が設定されます。

OPTIND

getoptsコマンドで処理された最後のオプション引数のインデックスが設定されます。

PPID

Windowsの場合は0が設定されます。

UNIXの場合はシェルの親のプロセス番号が設定されます。

PWD

現在の作業ディレクトリが設定されます。

RANDOM

0から32767（=0x7FFF）までの整数の乱数が設定されます。

REPLY

引数を指定しないreadコマンドによって読み込まれた内容が設定されます。

SECONDS

シェルが起動してからの経過秒数が設定されます。

関数情報配列※1

adshexecコマンドで実行中の関数の情報が一次元配列で設定されます。次に示す配列があります。

呼び出し関数名称配列

関数呼び出し行番号配列

関数定義スクリプトファイル名配列

関数情報配列については，「5.5.3　関数情報配列」を参照してください。

注※1

特別な意味を持つこれらのシェル変数を総称してシェル拡張変数と呼びます。

注※2

ジョブ定義スクリプトでadshfileコマンドを使用する場合の定義例を次に示します。

"${ADSH_DIR_BIN}adshfile" -s job -n keep -a del ${VAL01}

注※3

ジョブ定義スクリプトでexprコマンドを使用する場合の定義例を次に示します。

num=`"${ADSH_DIR_CMD}expr" $NUM - 1`

シェル変数の使用例を次に示します。

スクリプト制御文のifで条件判定し，先行ジョブステップの実行結果によって後続ジョブステップの実行を制御する場合

#!/opt/jp1as/bin/adshexec
#-adsh_job JOB001
#-adsh_step_start STEP01
    uap01
#-adsh_step_end
if [[ $ADSH_STEPRC_STEP01 -eq 0 ]]; then   ←STEP01が終了コード0の場合
    #-adsh_step_start STEP02               だけ，STEP02を実行
        uap02
    #-adsh_step_end
fi

ジョブ定義スクリプトをexitコマンドで終了するとき，ジョブステップ終了コードの最大値で終了する場合

#!/opt/jp1as/bin/adshexec
#-adsh_job JOB001

#-adsh_step_start STEP01
  uap01
#-adsh_step_end

#-adsh_step_start STEP02 -run always
  uap02
#-adsh_step_end

#-adsh_step_start STEP03 -run always
  exit $ADSH_RC_STEPMAX        ←ジョブステップ終了コードの最大値を，
#-adsh_step_end                  ジョブの終了コードとする。

5.5.2　ユーザーが値を設定するシェル変数

JP1/Advanced Shellでユーザーが値を設定して使用できるシェル変数を次の表に示します。

表5‒32　JP1/Advanced Shellで使用できるシェル変数

シェル変数名

ユーザーが設定する値

CDPATH

cdコマンドで移動するディレクトリが作業ディレクトリの下に存在しない場合，検索する候補のパスを指定します。

ENV

【Windows，Linux限定】

KSH_ENV_READパラメーターがYES，または省略されていた場合，シェル起動時に読み込む.envファイル名を指定します。

【AIX，HP-UX，Solaris限定】

KSH_ENV_READパラメーターがYESの場合，シェル起動時に読み込む.envファイル名を指定します。

FPATH

関数定義ファイルの格納ディレクトリを指定します。オートロード機能が有効な関数が参照された場合，または実行する関数が定義されていない場合に，指定したディレクトリを検索します。関数名と同じ名称のファイルの内容を読み込み，現在の環境で定義して実行します。

HOME

ホームディレクトリを指定します。

IFS

Internal Field Separatorの略です。指定された文字によって文字列の区切りを示します。また，IFSの先頭文字は「$*」を置換用の引数を区切る文字として使用します。初期値はスペース，タブ文字，改行文字です。

PATH

コマンドの検索パスを指定します。

PS4

シェルオプションxtraceが有効の場合に，各行の先頭に配置されるプロンプト文字列です。初期値は+です。

SHELL

シェル実行時に保持されるシェルのパス名を指定します。

TMPDIR

一時ファイルはすべて環境設定パラメーターTEMP_FILE_DIRに指定されたディレクトリに作成されるため，このシェル変数を変更しても無効となります。

このほかに，#-adsh_path_varコマンドを使用した場合，WindowsとUNIX間でディレクトリのパスを変換するためのシェル変数を定義して使用できます。シェル変数の定義については，「5.8.5　パス名を扱うシェル変数を定義する」を参照してください。

5.5.3　関数情報配列

adshexecコマンドが実行する関数の情報は，一次元配列である関数情報配列に格納されます。

関数情報配列の使用有無は環境設定パラメーターVAR_SHELL_FUNCINFOで定義します。配列名も環境設定パラメーターVAR_SHELL_FUNCINFOの指定によって決まります。環境設定パラメーターVAR_SHELL_FUNCINFOについては，「VAR_SHELL_FUNCINFOパラメーター（関数情報配列の使用有無を選択する）」を参照してください。

関数情報配列の特徴は次のとおりです。

関数情報配列はジョブ定義スクリプトの実行時から終了まで存在します。ただし，.ENVファイル内で関数を実行した場合，関数情報配列は存在しません。

要素数の範囲は0〜65,535です。

属性は文字列書式属性へ変更できます。属性を関数内ローカル変数へ変更することはできません。

関数情報配列は読み込み専用属性です。そのため，配列の値の参照はできますが，値の設定や配列の無効化はできません。

(1)　関数情報配列の種類

関数情報配列には次の表に示す種類があります。

表5‒33　関数情報配列の種類と配列名

配列の種類

説明

配列名

VAR_SHELL_FUNCINFOにTYPE_Aを指定した場合

VAR_SHELL_FUNCINFOにTYPE_Bを指定した場合

呼び出し関数名称配列

呼び出しスタックにあるすべての関数名を格納する配列です。

要素番号0には現在実行中の関数名を格納します。最も下の要素には"main"を格納します。

シェル標準コマンドの.（ドット）コマンド，およびスクリプト拡張コマンドの#-adsh_scriptで外部スクリプトを呼び出した場合は"source"を格納します。

ADSH_FUNCNAME

FUNCNAME

関数呼び出し行番号配列※1

呼び出しスタックにあるすべての関数が呼び出されたスクリプトファイルの行番号を格納する配列です。

要素番号0には現在実行中の関数を呼び出した行番号を格納します。最も下の要素には"0"を格納します。

外部スクリプトの場合はシェル標準コマンドの.（ドット）コマンド，およびスクリプト拡張コマンドの#-adsh_scriptを実行した行番号を格納します。

属性は整数型へ変更することもできます。

ADSH_LINENO

BASH_LINENO

関数定義スクリプトファイル名配列※2

呼び出しスタックにある関数が定義されたスクリプトファイル名を格納する配列です。

要素番号0には現在実行中の関数を定義したスクリプトファイル名を格納します。最も下の要素にはジョブ定義スクリプト名を絶対パスで格納します。

外部スクリプトの場合は外部スクリプトファイルを絶対パスで格納します。

ADSH_SOURCE

BASH_SOURCE

注※1

シグナルや強制終了要求を受けたときにtrapアクション内で関数を呼び出した場合，関数呼び出し行番号配列には，trapアクション内ではなく，trapアクションを呼び出した処理の行番号が格納されます。

例えば，次の定義では行番号4で関数fn1を呼び出していますが，行番号4はtrapアクション内のため，行番号6が配列に格納されます。

1  fn1(){
2    echo ${ADSH_LINENO[*]}
3  }
4  trap fn1 INT
5
6  kill -INT $$
7  pwd

注※2

adshexecコマンドを-rオプションで実行した場合，関数定義スクリプトファイル名配列のスクリプトファイル名には「-r CMDLINE」が格納されます。例を次に示します。

C:¥tmp>adshexec -m SIMPLE -r "echo ${ADSH_SOURCE[*]}"
-r CMDLINE

C:¥tmp>

(2)　関数情報配列の構造

次のジョブ定義スクリプト（ファイル名：func.ash）を例に，配列の遷移について説明します。

1    fn3(){
2      echo "JP1/AS"
3    }
4    fn2(){
5      fn3
6    }
7    fn1(){
8      fn2
9    }
10   fn1

このジョブ定義スクリプトを実行すると，配列の状態は関数fn3の実行によって次の図のように遷移します。

(3)　関数情報配列に関する注意事項

関数情報配列はジョブ定義スクリプト内で変更できません。そのため，CUIやGUIでのデバッグ時は，値の参照（watch，print，およびinfo variablesコマンド）はできますが，更新（setコマンド）はできません。

関数情報配列をエクスポートすると，次のように動作します。

配列ではなく，変数として要素0の内容が引き継がれます。ただし，関数情報配列はジョブ起動時に再設定されるため，子孫ジョブの場合は上書きされてしまいます。

子孫ジョブの稼働実績情報には，上書き前のエクスポートされた値が出力されます。

#-adsh_step_startコマンドのstepVar属性には，関数情報配列の名称は指定できません。指定するとKNAX6312-Eメッセージを出力してエラー終了します。

【Windows版限定】関数定義スクリプトファイル名配列には「¥」を含むスクリプトファイルの絶対パスが格納されます。echoコマンド，printコマンドではシェル変数展開後の「¥」をエスケープ文字として扱います。そのため，echoコマンド，printコマンドで関数定義スクリプトファイル名配列の値を出力する場合は，次のように指定し実行してください。

echoコマンドで出力する場合は-Eオプションを指定するか，または環境設定パラメーターESCAPE_SEQ_ECHO_DEFAULTにNOを指定してください。

printコマンドで出力する場合は-rオプションを指定してください。

5.6　シェルオプション

シェルオプションは，使用できる機能を制限したり，実行モードの切り替えをしたりできます。シェルオプションの設定方法は2つあります。

ジョブ定義スクリプト内でsetコマンドを実行し，設定します。

adshexecコマンドのオプションとして設定します。

5.6.1　setコマンドで設定できるシェルオプション

setコマンドで設定できるシェルオプションを次の表に示します。setコマンドについては「9.3　シェル標準コマンド」の「setコマンド（シェルオプションを設定する，配列を作成する，または変数の値を表示する）」を参照してください。

表5‒34　setコマンドで設定できるシェルオプション

名称

設定方法

シェルオプションを設定した場合の意味

デフォルト値

allexport※1

-a

-o allexport

変数をすべて自動的にエクスポートします。

無効

braceexpand

-o braceexpand

ブレース展開を有効にします。ブレース展開とは，ブレース({ })で囲んだ部分を複数の単語にする展開のことです。ブレースで囲まれた1つ以上のコンマで区切られた文字をブレースの前後の文字と結合し，1つの変数として展開します。例えば，a{1,2,3}はa1，a2，a3に展開されます。

有効

bgnice※2

-o bgnice

すべてのバックグラウンドジョブの優先順位を下げて実行します。

無効

noglob

-f

-o noglob

ファイル名置換を禁止します。ファイル名置換については，「5.1.6(6)　置換」を参照してください。

また，ブレース展開を無効にします。ブレース展開を有効にする場合は，noglobシェルオプションを無効にしてください。シェルオプションを無効にする方法については，「9.3　シェル標準コマンド」の「setコマンド（シェルオプションを設定する，配列を作成する，または変数の値を表示する）」を参照してください。

無効

nounset

-u

-o nounset

置換対象の変数に値が設定されていない場合，ジョブはエラー終了し，シェルが終了します。

無効

verbose※3

-v

-o verbose

ジョブ定義スクリプトから読み込んだ内容をコマンド実行前に標準エラー出力に出力します。

無効

xtrace

-x

-o xtrace

シェル変数PS4の値を行の先頭に配置した上で，実行されたコマンドとその引数を標準エラー出力に出力します。ただし，[[ ]]コマンド，スクリプト拡張コマンドおよびその引数は出力しません。また，(( ))による算術演算はletコマンドに置き換えられて出力されます。

無効

注※1

Windows版では，環境設定パラメーターでVAR_ENV_NAME_LOWERCASE DISABLEを指定した場合は，変数名に英小文字を含む変数をエクスポートできません。そのため，allexportシェルオプションを有効にしたあとに，英小文字を含むシェル変数を定義または値を更新すると，エラーメッセージを出力してバッチジョブを終了します。

注※2

Windows版ではサポートしていません。

注※3

verboseオプションを指定すると，ジョブステップを定義するコマンドの入力行出力先が変わります。

#-adsh_step_startコマンドの場合

実行した時点でジョブのSTDERRからジョブステップのSTDERRに切り替わるため，#-adsh_step_start自身の入力行出力はジョブのSTDERRに出力されます。

#-adsh_step_endコマンドの場合

実行した時点でジョブステップのSTDERRからジョブのSTDERRに切り替わるため，#-adsh_step_end自身の入力行出力はジョブステップのSTDERRに出力されます。

例を次に示します。

ジョブ定義スクリプト

　set -o verbose 　　　 ←またはset -v

　#-adsh_step_start S1
　  cmdA
　#-adsh_step_error
　  cmdB
　#-adsh_step_end
　  cmdC

ジョブのSTDERR

　#-adsh_step_start S1
　  cmdC
　　：

ジョブステップS1のSTDERR

　  cmdA
　#-adsh_step_error
　  cmdB
　#-adsh_step_end

注意事項

実行時パラメーターやJP1/Advanced Shellエディタでデバッグ実行をする場合，コマンドの実行結果は標準エラー出力へ出力されます。setコマンドでverboseオプションを指定すると，コマンドの実行結果のメッセージは次の行の内容を出力したあとで出力されます。例を次に示します。

ジョブ定義スクリプト

001:  set -o verbose
002:  echo "Line 002"
003:  echo "Line 003"

デバッグ実行時の出力例を次に示します。

KNAX7018-I Breakpoint "1": filename="test.ash" line=1
KNAX7032-I Stop in the script "test.ash".
1: set -o verbose
Current: set
(adshdb) step　　　←ジョブ定義スクリプトの001行目のsetコマンドを実行
echo "Line 002"　　←ジョブ定義スクリプトの002行目を読み込んだ内容を出力
KNAX6112-I Command set(line=1) succeeded. rc=0 E-Time=0.000s C-Time=0.000s　　　←ジョブ定義スクリプトの001行目のsetコマンドの結果出力
KNAX7032-I Stop in the script "test.ash".
2: echo "Line 002"
Current: echo
(adshdb)
Line 002
        :

5.6.2　adshexecコマンドで設定できるシェルオプション

adshexecコマンドで設定できるシェルオプションを次の表に示します。adshexecコマンドについては「8.3　シェル運用コマンド」の「adshexecコマンド（バッチジョブを実行する）」を参照してください。

表5‒35　adshexecコマンドで設定できるシェルオプション

名称

設定方法

シェルオプションを設定した場合の意味

noexec

-c

コマンドを読み取り，構文エラーがないかをチェックします。ただし，コマンドは実行しません。

xtrace

-x

シェルオプションxtraceを有効にした場合と同じ動作になります。詳細については，「3.6　実行したコマンドとその引数を出力する」を参照してください。

5.7　ジョブ情報の環境変数

ジョブ開始時やジョブステップ開始時に，ジョブ名，ジョブ識別子およびジョブステップ名を環境変数に設定し，ジョブ定義スクリプトファイルやユーザープログラムから参照できます。

ADSH_JOB_NAME（ジョブ開始時にジョブ名が設定される）

ADSH_JOBID（ジョブ開始時にジョブ識別子が設定される）

ADSH_STEP_NAME（ジョブステップ開始時にジョブステップ名が設定される）

これらの環境変数については，「2.5　環境変数を設定する」を参照してください。

5.8　ジョブ，ジョブステップおよびコマンドを定義する

スクリプト拡張コマンドを使用してジョブ名を宣言したり，ジョブ，ジョブステップおよびコマンドの定義をしたりできます。スクリプト拡張コマンドについては，「9.5　スクリプト拡張コマンド」を参照してください。

5.8.1　ジョブ名を宣言する

#-adsh_jobコマンドを使用して，ジョブ定義スクリプトのジョブ名を宣言します。

指定方法を次に示します。指定方法1または指定方法2のどちらかの方法で指定してください。

指定方法1

1行目：#!任意文字列
2行目：△₀#-adsh_job ジョブ名

指定方法2

1行目：△₀#-adsh_job ジョブ名

#-adsh_jobコマンドを指定しない場合，デフォルトの属性値は次の表のようになります。

属性

省略または未宣言時の仮定値

例

ジョブ名

ADSHジョブ識別子

ジョブ識別子が000010の場合：ADSH000010

5.8.2　ジョブの打ち切り条件を定義する

#-adsh_job_stopコマンドを使用して，ジョブステップ終了時に，ジョブを打ち切るかどうかを判断する条件を定義します。

(1)　判定するタイミング

ジョブステップ終了時に，終了コードがこの属性で定義されているかを毎回判定します。定義されていれば後続のジョブ定義スクリプトを実行しないでジョブが終了します。

(2)　有効範囲

指定した個所以降のジョブ定義スクリプトの実行で有効になります。また，先行ジョブ定義スクリプトでこのコマンドが指定されている場合，先行ジョブ定義スクリプトの指定はリセットされ，新たに指定した条件だけが有効になります。

指定例を次に示します。

01: #!/opt/jp1as/bin/adshexec
02: #-adsh_job JOB0001
03:
04: #-adsh_step_start STEP1
05: #-adsh_step_end
06:
07: #-adsh_job_stop 4:            ←この定義は行09〜13の指定が有効範囲
08:
09: #-adsh_step_start STEP2
10: #-adsh_step_end
11:
12: #-adsh_step_start STEP3
13: #-adsh_step_end
14:
15: #-adsh_job_stop 8:16,24:32    ←この定義は行17〜18の指定が有効範囲
16:
17: #-adsh_step_start STEP4
18: #-adsh_step_end

(3)　ジョブの打ち切り条件定義の例

#-adsh_job_stopコマンドでジョブの打ち切り条件を定義した場合，次のようになります。

#-adsh_job_stopコマンドで指定した終了コードで終了しても，ジョブステップ外のコマンドはジョブを中断しません。

#-adsh_job_stopコマンドで指定した終了コードで終了した場合，ジョブステップはジョブを中断します。

#-adsh_job_stopコマンドを実行してジョブを中断した場合，後続のジョブステップ外コマンドは実行しません。また，run属性の指定に関係なく後続のジョブステップも実行しません。

実行例を次に示します。

#-adsh_job JOB_STOP
#-adsh_rc_ignore CBLRTN
#-adsh_job_stop 4                    ←rc=4でジョブを打ち切るよう指定

echo "Job start."
CBLRTN  004  #rc=4で成功するコマンド ←ジョブステップ外のコマンドがrc=4となるが，
                                       中断しない

#-adsh_step_start STEP01
echo "Step start."
CBLRTN  004  #rc=4で成功するコマンド
#-adsh_step_end                      ←ジョブステップがrc=4で終了し，中断する

#-adsh_step_start STEP03 -run always  ←run属性に関係なく後続ジョブステップを実行しない
  echo "command in step"
#-adsh_step_end

echo "Job end."                      ←後続コマンドを実行しない

5.8.3　ジョブステップを定義する

#-adsh_stepで始まるジョブステップ定義コマンドを使用して，ジョブ定義スクリプトの一部分を，ジョブステップとしてグループ化します。ジョブステップとは，グループ化した一まとまりのコマンド群のことです。

(1)　グループ化の方法

ジョブステップとして通常実行するコマンド群は，#-adsh_step_startコマンドから#-adsh_step_errorコマンドまたは#-adsh_step_endコマンドまでのブロック内に記述します。このブロックをジョブステップ正常ブロックと呼びます。

ジョブステップ正常ブロック内の最後のコマンドがエラー終了した場合にだけ実行するコマンド群を，#-adsh_step_errorコマンドから#-adsh_step_endコマンドまでのブロック内に記述します。このブロックをジョブステップエラーブロックと呼びます。

(2)　ジョブステップ実行の流れ

ジョブステップ実行の流れを，次に示します。

エラー終了した先行ジョブステップやエラー終了したコマンドの有無とrun属性の指定によって，ジョブステップをスキップするかどうかを決定します。run属性については，「9.5　スクリプト拡張コマンド」の「#-adsh_step_startコマンド，#-adsh_step_errorコマンド，#-adsh_step_endコマンド（ジョブステップを定義する）」を参照してください。

ジョブステップ正常ブロック内のコマンドを順に実行します。コマンドがエラー終了した場合，onError属性がstopのときは，後続コマンドを実行しないでジョブステップ正常ブロックを抜けます。onError属性がcontのときは後続コマンドを実行してからジョブステップ正常ブロックを抜けます。

#-adsh_step_errorが定義されている場合，ジョブステップ正常ブロック内で最後に実行したコマンドがエラー終了したときだけ，ジョブステップエラーブロック内のコマンドを順に実行します。

(3)　ジョブステップ内でだけ有効なシェル変数の宣言

stepVar属性を指定すると，このジョブステップ内でだけ有効なシェル変数を宣言できます。宣言したシェル変数をエクスポートしても，ジョブステップ内でだけエクスポートされた状態になります。

ジョブステップ開始時，JP1/Advanced Shellが自動的にシェル変数を未定義の状態とします。ただし，ジョブステップ内で有効なシェル変数としてPATHを指定した場合は，ジョブステップ開始前の値を引き継ぎます。

ジョブステップ終了時，JP1/Advanced Shellが自動的にシェル変数をジョブステップ開始時の状態に戻します。

宣言するシェル変数は，ジョブステップ外のシェル変数と同名のシェル変数を宣言できます。その場合の注意事項を次に示します。

宣言したシェル変数は，ジョブステップ外の同名シェル変数とは，まったく別の変数として扱います。

ジョブステップ開始時は，宣言したシェル変数は未定義状態になります。ジョブステップ外の同名シェル変数の値は，別のシェル変数として扱うため引き継ぎません。

ジョブステップ外の同名シェル変数を，ジョブステップ内で参照・更新できません。

ジョブステップ終了後は，再びジョブステップ外の同名シェル変数が参照・更新できます。

使用例を次に示します。

ジョブ定義スクリプトファイルの使用例

01: VAL1=AAA
02: echo "ステップ開始前（ステップ外）です"
03: echo "beforeStepVar1="$VAL1
04: echo "beforeStepVar2="$VAL2
05:
06: #-adsh_step_start S1 -stepVar VAL1,VAL2
07:   echo "ステップを開始しました"
08:   echo "startStepVar1="$VAL1
09:   echo "startStepVar2="$VAL2
10:   VAL1=XXX
11:   VAL2=YYY
12:   echo "endStepVar1="$VAL1
13:   echo "endStepVar2="$VAL2
14: #-adsh_step_end
15:
16: echo "ステップを終了しました"
17: echo "afterStepVar1="$VAL1
18: echo "afterStepVar2="$VAL2

ジョブステップ外に同名シェル変数が存在するVAL1と，ジョブステップ外に同名シェル変数が存在しないVAL2を宣言しています。

実行結果を次に示します。

ステップ開始前(ステップ外)です
beforeStepVar1=AAA  ←ジョブステップ外のVAL1を参照。ジョブステップ内のVAL1とは別物
beforeStepVar2=     ←ジョブステップ外のVAL2を参照するが，存在しない
ステップを開始しました
startStepVar1=      ←ジョブステップ内のVAL1を参照。ジョブステップ外のVAL1とは別物
startStepVar2=
endStepVar1=XXX
endStepVar2=YYY
ステップを終了しました
afterStepVar1=AAA   ←ジョブステップ外のVAL1を参照。ジョブステップ内のVAL1とは別物
afterStepVar2=      ←ジョブステップ外のVAL2を参照するが，存在しない

ジョブステップ内でだけ有効なシェル変数にPATHを指定すると，PATHシェル変数へのパス追加をジョブステップローカルに行えます。PATHの初期値はジョブステップ開始前の値を引き継ぎます。

ジョブステップローカルなPATHシェル変数へのパス追加の例を次に示します。ジョブ定義スクリプト実行開始時のPATHシェル変数の値を，a:bと仮定します。

#-adsh_job J1　　　　　　　　　　　　　→1.
cmdA
PATH=x:$PATH　　　　　　　　　　　　　 →2.
cmdB
#-adsh_step_start S1 -stepVar PATH　　 →3.
  cmdC
  PATH=y:$PATH　　　　　　　　　　　　 →4.
  cmdD
#-adsh_step_end　　　　　　　　　　　　→5.

ジョブステップローカルなPATHシェル変数へのパス追加の例の番号は，次に示す説明の順番と対応しています。

PATHの初期値は「a:b」とする。

ジョブステップ内で有効。PATHの値は「x:a:b」になる。

stepVarにPATHを指定する。シェル変数は削除されないで，値は「x:a:b」のまま。

ジョブステップ内で有効。PATHの値は「y:x:a:b」になる。

PATHをジョブステップ開始時の値に戻す。PATHの値は「x:a:b」になる。

#-adsh_path_varコマンドを使用すると，WindowsとUNIX間でディレクトリのパスを変換するためのシェル変数を定義して使用できます。機能の詳細については，「5.8.5　パス名を扱うシェル変数を定義する」を参照してください。

(4)　ジョブステップエラー時のジョブステップ終了コードの指定

ジョブステップでエラーが発生した場合，ジョブステップの終了コードを任意に設定できます。終了コードを任意に設定するには，ジョブステップエラーブロック内でexitコマンドの引数に任意の終了コードを指定して実行します。このとき，exitコマンドによってジョブが終了するため，ジョブの終了コードもexitコマンドの引数に指定した値となります。

ジョブステップエラーブロック内で.（ドット）コマンドまたは#-adsh_scriptコマンドを用いて外部スクリプトを呼び出し，呼び出した外部スクリプト内でexitコマンドに引数を指定して実行した場合も，引数に指定した値がジョブステップの終了コードになります。

ジョブステップエラーブロック内でexitコマンドに引数を指定して実行する例を次に示します。

#-adsh_step_start STEP1
  cmdA
  cmdB                 ←終了コード1でエラー終了
  cmdC
#-adsh_step_error
  exit 4               ←ジョブステップはエラー終了し，exitの引数4が
#-adsh_step_end          ジョブステップの終了コードになる

ジョブステップエラーブロック内でexitコマンドに引数を指定しないで実行した場合は，ジョブステップ正常ブロック内で最後に実行したコマンドの終了コードがジョブステップの終了コードとなります。

ジョブステップエラーブロック内でexitコマンドに引数を指定しないで実行する例を次に示します。

#-adsh_step_start STEP1
  cmdA
  cmdB             ←終了コード1でエラー終了
  cmdC
#-adsh_step_error
  exit             ←ジョブステップはエラー終了し，exitの引数なしのため，
#-adsh_step_end      cmdBの終了コード1がジョブステップの終了コードになる

(5)　ジョブステップの実行例

すべてのコマンドが正常終了する場合と，途中でコマンドがエラー終了する場合のジョブ定義スクリプトファイルの実行例を次に示します。

すべてのコマンドが正常終了する場合の実行例

#!/opt/jp1as/bin/adshexec
#-adsh_job JOB001
#-adsh_step_start STEP001
  command1                              ←実行する
  command2                              ←実行する
  command3                              ←実行する
#-adsh_step_error
  command4                              ←実行しない
  command5                              ←実行しない
#-adsh_step_end
#-adsh_step_start STEP002
  command6                              ←実行する
#-adsh_step_end
#-adsh_step_start STEP003 -run abnormal
  command7                              ←実行しない
#-adsh_step_end
#-adsh_step_start STEP004 -run always
  command8                              ←実行する
#-adsh_step_end

command2がエラー終了する場合の実行例（onError属性がstop）

#!/opt/jp1as/bin/adshexec
#-adsh_job JOB001
#-adsh_step_start STEP001 -onError stop
  command1                              ←実行する
  command2                              ←実行する（エラー終了）
  command3                              ←実行しない
#-adsh_step_error
  command4                              ←実行する
  command5                              ←実行する
#-adsh_step_end
#-adsh_step_start STEP002
  command6                              ←実行しない
#-adsh_step_end
#-adsh_step_start STEP003 -run abnormal
  command7                              ←実行する
#-adsh_step_end
#-adsh_step_start STEP004 -run always
  command8                              ←実行する
#-adsh_step_end

command2がエラー終了する場合の実行例（onError属性がcont）

#!/opt/jp1as/bin/adshexec
#-adsh_job JOB001
#-adsh_step_start STEP001 -onError cont
  command1                              ←実行する
  command2                              ←実行する（エラー終了）
  command3                              ←実行する
#-adsh_step_error
  command4                              ←実行しない
  command5                              ←実行しない
#-adsh_step_end
#-adsh_step_start STEP002
  command6                              ←実行する
#-adsh_step_end
#-adsh_step_start STEP003 -run abnormal
  command7                              ←実行しない
#-adsh_step_end
#-adsh_step_start STEP004 -run always
  command8                              ←実行する
#-adsh_step_end

ジョブステップ外のコマンドがエラーとなった場合，後続ジョブ定義スクリプトは次のようになります。

後続のジョブステップ外コマンドは実行します。

後続のrun属性がnormalのジョブステップは実行しません。

後続のrun属性がabnormalまたはalwaysのジョブステップは実行します。

実行例を次に示します。

#-adsh_job CMD_ERROR

echo "Job start."
cd -x  #エラーとなるコマンド            ←このコマンドがエラーとなる
echo "Job end."                         ←ジョブステップ外のコマンドは実行する

#-adsh_step_start STEP01 -run normal    ←run normal指定のジョブステップは実行しない
  echo "command in step"
#-adsh_step_end

#-adsh_step_start STEP02 -run abnormal  ←run abnormal指定のジョブステップは実行する
  echo "command in step"
#-adsh_step_end

#-adsh_step_start STEP03 -run always    ←run always指定のジョブステップは実行する
  echo "command in step"
#-adsh_step_end

ジョブステップがエラーとなった場合，後続ジョブステップを実行するかどうかは後続ジョブステップのrun属性によって決定します。しかし，後続のジョブステップ外コマンドは実行しません。実行例を次に示します。

#-adsh_job STEP_ERROR

#-adsh_step_start STEP01
  echo "Step start."
  cd -x  #エラーとなるコマンド
  echo "Step end."
#-adsh_step_end     ←ジョブステップはエラーで終了する

echo "Job end."     ←先行ジョブステップがエラーの場合，後続のジョブステップ外コマンドは
                      実行しない

ジョブステップエラーブロック内で実行したコマンドの終了コードは，ジョブステップの終了コードには影響しません。ジョブステップ正常ブロック内で最後に実行したコマンドの終了コードが，ジョブステップの終了コードになります。実行例を次に示します。

#-adsh_job STEP_ERRBLK_RC

#-adsh_step_start STEP01
  echo "Step start."
  cd -x  #rc=1でエラーとなるコマンド      ←この結果がジョブステップの終了コードになる
  echo "Step end."
#-adsh_step_error
  echo "step error block"  #rc=0となるコマンド  ←ジョブステップのrcに影響を与えない
#-adsh_step_end    ←ジョブステップはcdコマンドのエラー結果が反映され，rc=1で終了する

(6)　関数，trapコマンドとの関係

関数およびtrapコマンドのアクションは，それらを定義した場所には関係なく，実行された場所によってジョブステップ内外のどちらで実行されたかが決まります。

5.8.4　正常終了するコマンドを定義する

(1)　終了コードが0以外でも正常終了となるコマンドを定義する

コマンドの終了コードが0以外でも正常終了と認識されるよう，正常終了とする終了コードのしきい値を設定できます。終了コードがこのしきい値を超えなければ，正常終了と処理されます。

終了コードのしきい値は次に示す環境設定パラメーターで設定します。

CMDRC_THRESHOLD_USE_PRESETパラメーター

次のすべてのUNIX互換コマンドに対し，終了コードのしきい値を設定します。設定できるしきい値は0または1です。

cmpコマンド

diffコマンド

egrepコマンド

exprコマンド

grepコマンド

sortコマンド

詳細については，「CMDRC_THRESHOLD_USE_PRESETパラメーター（UNIX互換コマンドの終了コードのしきい値を定義する）」を参照してください。

CMDRC_THRESHOLD_DEFINEパラメーター

対象となるコマンドと，終了コードのしきい値を設定します。指定できるコマンドの種類は次のとおりです。

外部コマンド

UNIX互換コマンド

シェルスクリプト

シェル運用コマンド

子孫ジョブ

詳細については，「CMDRC_THRESHOLD_DEFINEパラメーター（コマンドの終了コードのしきい値を定義する）」

(2)　常に正常終了するコマンドを定義する

#-adsh_rc_ignoreコマンドを使用すると，定義した名称のコマンドは，終了コードに関係なく常に正常終了します。その場合，対象コマンドの終了コードはジョブステップの成功または失敗の判定に影響しません。

ただし，コマンドがシグナル終了した場合は，指定に関係なくコマンドエラー終了になります。

なお，次に示すコマンドは，終了コードが0以外でもエラーになりません。したがって，このコマンドの指定に関係なく終了コードを無視します。

trueコマンド，falseコマンド

#-adsh_rc_ignoreコマンドの定義は，指定した個所以降のジョブ定義スクリプト実行で有効となります。ジョブステップ外に指定した場合はジョブ定義スクリプト全体に有効で，ジョブステップ内に指定した場合はジョブステップ内だけで有効です。ジョブステップ内に指定した場合，指定した個所以降からジョブステップ終了まで有効となり，ジョブステップ外に指定した値は一時的に無効になります。また，ジョブステップ内に指定するまではジョブステップ外に指定した値が有効になります。

指定例を次に示します。

01: #!/opt/jp1as/bin/adshexec
02: #-adsh_job JOB0001
03:
04: uap01
05: uap02
06: #-adsh_rc_ignore uap03,uap04    ←1.　ジョブステップ外に指定
07: uap03                           ←行07〜14の指定が1.の有効範囲
08:
09: #-adsh_step_start STEP1
10:   uap04
11: #-adsh_step_end
12:
13: #-adsh_step_start STEP2
14:   uap05
15:   #-adsh_rc_ignore uap06,uap07  ←2.　ジョブステップ内に指定
16:   uap06                         ←行16〜17の指定が2.の有効範囲
17:   uap07
18: #-adsh_step_end
19:
20: #-adsh_step_start STEP4         ←行20〜22の指定が1.の有効範囲
21:   uap08
22: #-adsh_step_end

5.8.5　パス名を扱うシェル変数を定義する

#-adsh_path_varコマンドを使用すると，パス名を扱うシェル変数を定義できます。パス名を扱うシェル変数を使用すると，それらを含む文字列のパス区切り文字およびディレクトリ区切り文字をWindowsやUNIXなどの環境に合わせて変換できます。

JP1/Advanced Shellは，次の条件をすべて満たす文字列のパス区切り文字およびディレクトリ区切り文字を変換します。パス変換ルール1とパス変換ルール2については，「PATH_CONV_RULEパラメーター」を参照してください。

「"（ダブルクォーテーション）」で囲まれた文字列（パス変換ルール1の場合）

「'（シングルクォーテーション）」で囲まれていない文字列（パス変換ルール2の場合）

環境ファイルのPATH_CONV_ENABLEパラメーターで定義されたパス区切り文字で区切られた文字列の中で，文字列「$パスを扱うシェル変数名」または文字列「${パスを扱うシェル変数名}」と前方一致する文字列

#-adsh_path_varコマンドは，次のどちらかの場合だけ使用できます。

1行目の「#!任意文字列」の次の行

#-adsh_jobコマンドの次の行

なお，次のようにすると継続行を指定できます。ただし，1行目の#-adsh_path_varコマンドの後ろにはシェル変数名を指定できません。

  1行目：#-adsh_path_var
  2行目：#-adsh  var001,var002,var003,var004

(1)　使用例

パス名を扱うシェル変数「PATH」「DIR」「DIR3」を#-adsh_path_varコマンドに定義する例を次に示します。

(a)　Windowsの場合

環境ファイルの指定

#-adsh_conf PATH_CONV_ENABLE / :                   ←パス変換の有効化
#-adsh_conf PATH_CONV_RULE 1                       ←パス変換ルール1を選択
#-adsh_conf PATH_CONV /home/hitachi "C:¥¥hitachi"  ←パス文字列の置換1
#-adsh_conf PATH_CONV /tmp/jp1as "D:¥¥jp1as_tmp"   ←パス文字列の置換2
#-adsh_conf PATH_CONV /tmp "C:¥¥temp"              ←パス文字列の置換3
#-adsh_conf PATH_CONV_ACCESS /dev/null nul         ←ファイル入出力時のファイルパスの変換

ジョブ定義スクリプトの指定

#-adsh_path_var PATH,DIR,DIR3    ←シェル変数の定義1

DIR="/home/hitachi/bin"          ←「DIR="C:¥¥hitachi¥¥bin"」にパス文字列の置換1で変換

"$DIR/myprog"                    ←シェル変数の定義1に従い「"$DIR¥¥myprog"」に変換

"${DIR}/myprog"                  ←シェル変数の定義1に従い「"${DIR}¥¥myprog"」に変換

DIR2=$DIR
"$DIR2/myprog"                   ←「$DIR2」はシェル変数の定義1にないため，変換されない

$DIR/myprog                      ←"(ダブルクォーテーション)で囲まれていないため，変換されない

FILE1="/tmp/jp1as/file"          ←パス文字列の置換2に従い「"D:¥¥jp1as_tmp¥¥file"」に変換

DIR3=""
ls "$DIR3../bin"                 ←シェル変数の定義1に従い「"..¥¥bin"」に変換。相対パスも変換

DIR4="/home/hitachi/sbin:$DIR2"  ←パス文字列の置換1に従い「C:¥¥hitachi¥¥sbin;$DIR2」に変換。
                                   パス区切り文字も変換

PATH="../bin/:$DIR"              ←シェル変数の定義1に従い「..¥¥bin¥¥;$DIR」に変換。
                                   パス区切り文字も変換

"$DIR2/myprog" > /dev/null       ←「nul」にファイル入出力時のファイルパスの変換で変換

(b)　UNIXの場合

環境ファイルの指定

#-adsh_conf PATH_CONV_ENABLE ¥¥ ;                  ←パス変換の有効化
#-adsh_conf PATH_CONV "C:¥¥hitachi" /home/hitachi  ←パス文字列の置換1
#-adsh_conf PATH_CONV "D:¥¥jp1as_tmp" /tmp/jp1as   ←パス文字列の置換2
#-adsh_conf PATH_CONV "C:¥¥temp" /tmp              ←パス文字列の置換3
#-adsh_conf PATH_CONV_ACCESS nul /dev/null         ←ファイル入出力時のファイルパスの変換

ジョブ定義スクリプトの指定

#-adsh_path_var PATH,DIR,DIR3   ←シェル変数の定義1

DIR="C:¥¥hitachi¥¥bin"          ←パス文字列の置換1に従い「DIR="/home/hitachi/bin"」に変換
"$DIR¥¥myprog"                  ←シェル変数の定義1に従い「"$DIR/myprog"」に変換

"${DIR}¥¥myprog"                ←シェル変数の定義1に従い「"${DIR}/myprog"」に変換

DIR2=$DIR
"$DIR2¥¥myprog"                 ←「$DIR2」はシェル変数の定義1にないため，変換されない

$DIR¥¥myprog                    ←"(ダブルクォーテーション)で囲まれていないため，変換されない

FILE1="D:¥¥jp1as_tmp¥¥file"     ←パス文字列の置換2に従い「"/tmp/jp1as/file"」に変換

DIR3=""
ls "$DIR3..¥¥bin"               ←シェル変数の定義1に従い「"../bin"」に変換。相対パスも変換

DIR4="C:¥¥hitachi¥¥sbin;$DIR2"  ←パス文字列の置換1に従い「/home/hitachi/sbin:$DIR2」に変換。
                                  パス区切り文字も変換

PATH="..¥¥bin¥¥;$DIR"           ←シェル変数の定義1に従い「../bin/:$DIR」に変換
                                  パス区切り文字も変換

"$DIR2¥¥myprog" > nul           ←ファイル入出力時のファイルパスの変換に従い「/dev/null」に変換

(2)　ジョブ定義スクリプトイメージへの出力例

ジョブ実行ログには，パスを変換する前のジョブ定義スクリプトに加え，変換したあとの行も出力します。また，ジョブ定義スクリプト中で合致した変換規則，ジョブ定義スクリプト名および行番号をメッセージとして出力します。

********  JP1/Advanced Shell MESSAGE  ********
（省略）
21:58:28 000903 KNAX6803-I Access path convert rule matched. filename="D:¥home¥path_conv.ash" line=4 rule_str="./local.log":"./myprog.log"
（省略）

********   Script IMAGE    ********

***** D:¥home¥path_conv.ash *****
0001 : #-adsh_job JOB001
0002 : #-adsh_path_var DIR
0003 : DIR="/home/hitachi/bin"; DIR2="/tmp/tmpfile"
0004 : "$DIR/myprog" > ./local.log
0005 : exit

***** converted lines in D:¥home¥path_conv.ash *****
0003 : DIR="C:¥¥Program Files"; DIR2="C:¥¥temp¥¥tmpfile"
0004 : "$DIR¥¥myprog"

***** CONVERSION INFORMATION *****
21:58:28 000903 KNAX6800-I Path convert rule matched. filename="D:¥home¥path_conv.ash" line=3 rule_str="/home/hitachi/bin":"C:¥¥Program Files"
21:58:28 000903 KNAX6800-I Path convert rule matched. filename="D:¥home¥path_conv.ash" line=3 rule_str="/tmp":"C:¥¥temp"
21:58:28 000903 KNAX6801-I Path convert rule matched. filename="D:¥home¥path_conv.ash" line=4 rule_var="DIR"

5.8.6　実行中のジョブ定義スクリプトから外部のジョブ定義スクリプトファイルを呼び出す

#-adsh_scriptコマンドを使用して，外部のジョブ定義スクリプトファイルのJP1/Advanced Shell起動時点での内容を，現在実行中のジョブ定義スクリプトファイルに挿入します。

このコマンドはシェル標準コマンドの.（ドット）コマンドとは異なって，JP1/Advanced Shell起動時点での外部スクリプトの内容を，呼び出し元のジョブ定義スクリプト内に展開します。呼び出し元のジョブ定義スクリプトと展開後のジョブ定義スクリプトは全体を1個のジョブ定義スクリプトとして構文解析し実行します。

外部スクリプトの定義と，呼び出し元ジョブ定義スクリプトの例を次に示します。

/scripts/exScript.ash（ジョブ開始時点での内容）

#-adsh_step_start exS1
  exUap01
#-adsh_step_end

#-adsh_step_start exS2
  exUap01
#-adsh_step_end

script.ash

#!/opt/jp1as/bin/adshexec
#-adsh_job JOB001

uap01

#-adsh_script /scripts/exScript.ash

uap2

script.ashは，次のジョブ定義スクリプトと同等の内容です。

#!/opt/jp1as/bin/adshexec
#-adsh_job JOB001

uap01

#-adsh_step_start exS1    ←ここから6行がexScript.ashが展開された部分
  exUap01
#-adsh_step_end

#-adsh_step_start exS2
  exUap01
#-adsh_step_end

uap2

.（ドット）コマンドと#-adsh_scriptコマンドの違いを次の表に示します。

表5‒36　.（ドット）コマンドと#-adsh_scriptコマンドの違い

項番

比較項目

.（ドット）コマンド

#-adsh_scriptコマンド

1

外部のジョブ定義スクリプト内でのスクリプト拡張コマンドの扱い

コメントとして扱います

スクリプト拡張コマンドとして扱います

2

スクリプトイメージへの出力

出力されません

出力されます

3

相対パス指定時の動作

相対パスで指定できます

ただし，環境変数PATHの値を参照してパスを解決します

相対パスで指定できます

ただし，環境変数PATHの値を参照しないで，adshexec起動時のカレントディレクトリからの相対パスとして解釈します

4

ジョブ内で使用できる上限数

制限がありません

4,095個が上限です

5

外部のジョブ定義スクリプト内からのコマンド実行

実行できます

実行できます

ただし，同じ外部のジョブ定義スクリプトを再帰的に呼び出し，実行することはできません

6

外部のジョブ定義スクリプトへの引数の指定

指定できます

指定できません

7

CUIデバッガ

breakコマンドによる外部のジョブ定義スクリプト内へのブレークポイントの設定

設定できません

設定できます

8

info functionコマンドによる外部のジョブ定義スクリプト内で定義した関数の情報表示

表示できません

ただし，外部のジョブ定義スクリプト内での関数定義が完了した時点で表示できるようになります

表示できます

9

listコマンドによる外部のジョブ定義スクリプト内容の表示

表示できません

表示できます

10

ジョブ定義スクリプトの実行を停止した際に表示される内容

行番号：表示できます

ソースファイル行：表示できません

コマンド文字列：表示できます

行番号：表示できます

ソースファイル行：表示できます

コマンド文字列：表示できます

(1)　相対パスで指定する場合

外部スクリプトを相対パスで指定すると，先行ジョブ定義スクリプトの動作に関係なく，adshexec起動時のカレントディレクトリからのパスになります。

また，ほかのディレクトリからの相対パス指定はできません。その場合は，絶対パスで指定してください。

指定例を次に示します。

adshexecコマンド起動時のカレントディレクトリ：/scripts

#/opt/jp1as/bin/adshexec
cd /work
#-adsh_script ex_script.ash      ←/scripts/ex_script.ashが実行される

この例では，#-adsh_scriptコマンドで外部スクリプトファイル/scripts/ex_script.ashが実行されます。直前のcdコマンドでカレントディレクトリを移動していますが，呼び出す外部スクリプトファイルのパスには影響しません。

(2)　絶対パスで指定する場合

/work/ex_script.ashを実行したい場合は，次のように絶対パスで指定してください。

adshexecコマンド起動時のカレントディレクトリ：/scripts

#/opt/jp1as/bin/adshexec
cd /work
#-adsh_script /work/ex_script.ash      ←/work/ex_script.ashが実行される

5.8.7　スクリプト拡張コマンドの終了コードとエラー発生時の動作

スクリプト拡張コマンドの終了コードを次の表に示します。終了コードは環境設定パラメーターで定義できます。

表5‒37　スクリプト拡張コマンドの終了コード

スクリプト拡張コマンド

実行結果

終了コードのデフォルト値

終了コードを設定する環境設定パラメーター

#-adsh_file

#-adsh_file_temp

#-adsh_job

#-adsh_job_stop

#-adsh_path_var

#-adsh_rc_ignore

#-adsh_spoolfile

#-adsh_step_start

#-adsh_step_error

正常終了

0

ADSHCMD_RC_SUCCESS

エラー終了

1

ADSHCMD_RC_ERROR

#-adsh_step_end

ジョブステップ正常終了

ジョブステップ正常ブロック内で最後に終了したコマンドの終了コード

−

ジョブステップエラー終了

ジョブステップエラーブロック内で引数を指定したexitコマンドを実行して終了

exitコマンドの引数

−

#-adsh_step_end自身のエラー終了

1

ADSHCMD_RC_ERROR

#-adsh_script

正常終了

呼び出した外部スクリプト内で最後に終了したコマンドの終了コード

−

エラー終了

1

ADSHCMD_RC_ERROR

（凡例）

−：該当しません。

スクリプト拡張コマンドを実行して，エラー終了またはジョブステップエラー終了となった場合，次のとおり動作します。

run属性にabnormalまたはalwaysが指定されている場合，ジョブステップを実行します。

run属性が省略されているまたはnormalが指定されている場合，ジョブステップを実行しません。

ジョブステップ外のコマンドは実行しません。

実行例を次に示します。

#-adsh_job EXCMD_ERROR

echo "Job start."

#-adsh_file ERRFILE file01 -chk exist   ←このスクリプト拡張コマンドがエラーとなる

#-adsh_step_start STEP01 -run normal    ←run属性にnormalを指定したジョブステップは
                                          実行しない
  echo "command in step"
#-adsh_step_end

#-adsh_step_start STEP02 -run abnormal  ←run属性にabnormalを指定した
                                          ジョブステップは実行する
  echo "command in step"
#-adsh_step_end

#-adsh_step_start STEP03 -run always    ←run属性にalwaysを指定したジョブステップは
                                          実行する
  echo "command in step"
#-adsh_step_end

echo "Job end."                         ←ジョブステップ外のコマンドは実行しない

5.8.8　ジョブ，ジョブステップおよびコマンドの終了コード

終了コードおよび実行結果の正常・異常について説明します。

(1)　ジョブの終了コード

ジョブの終了コードは最後に実行したジョブ定義スクリプトの終了コードになります。

JP1/Advanced Shellはジョブの実行結果について正常・異常を区別しません。終了コードをJP1/AJSなどにそのまま返します。

JP1/AJSからジョブを実行した場合，JP1/AJS - Viewなどで確認できるJP1/AJSのジョブの終了コードは，adshexecコマンドの終了コードではなく，JP1/AJSが定める終了コードとなることがあります。この場合，JP1/AJSのジョブの終了コードと，ジョブ実行ログなどに出力されるJP1/Advanced Shellのジョブの終了コードとは，値が異なることがあります。

例

JP1/AJSから起動したUNIX版のadshexecコマンドがSIGINTを受信した場合，JP1/Advanced Shellのジョブの終了コードは130になりますが，JP1/AJSのジョブの終了コードは-1になります。

ただし，ジョブの中でエラーが発生していた場合は，エラーメッセージを出力します。

(2)　ジョブステップの終了コード

ジョブステップの終了コードは，ジョブステップ正常ブロック内で最後に実行したコマンドの終了コードになります。ただし，ジョブステップエラーブロックでexitコマンドに引数を指定して実行すると，exitコマンドの引数をジョブステップの終了コードにできます。それ以外でジョブステップエラーブロック内で実行したコマンドの終了コードは，ジョブステップの終了コードに影響しません。ジョブステップの正常終了およびエラー終了について説明します。

ジョブステップの正常終了

ジョブステップ正常ブロック内で最後に実行したコマンドが正常終了しています。

ジョブステップのエラー終了

ジョブステップ正常ブロック内で最後に実行したコマンドがエラー終了しています。

(3)　外部コマンドの終了コード

外部コマンドの終了コードは，各コマンドで定められた終了コードになります。

外部コマンドがリターンできる値の範囲は，プラットフォームや外部コマンドを記述したプログラム言語の言語仕様などによって異なりますが，0〜255とすることを推奨します。この範囲を超えた場合，JP1/Advanced Shellでは，次に示す値を外部コマンドの終了コードとして扱います。

【UNIX限定】

外部コマンドがリターンする値の下位8ビット

【Windows限定】

外部コマンドがリターンする値が0以上の場合，値の下位8ビット

外部コマンドがリターンする値が0未満の場合，255

外部コマンドで例外※が発生して終了した場合，例外コードの下位8ビット

注※

例外として扱う例外コードと意味は次のとおりです。

表5‒38　例外として扱う例外コードと意味

項番

例外コード

意味

1

0xC0000005

スレッドがアクセス権を持っていない仮想アドレスへアクセスしようとしました。

2

0x80000003

ブレークポイントに到達しました。

3

0x80000002

メモリアクセスに関してアライメント規約の存在するハードウェア上で，ミスアライメントされたデータにアクセスしました（例えば，16ビット値が2バイト境界にまたがったり，32ビット値が4バイト境界にまたがったりすることはできません）。

4

0x80000004

トレースまたはシングルステップ機構による1命令ごとの実行です。

5

0xC000008C

スレッドが配列の範囲外にアクセスしようとしたことが，ハードウェアによって検出されました。

6

0xC000008D

浮動小数点演算で，オペランドのうち少なくとも1つが非正規化数（普通の浮動小数点フォーマットでは表現できないほど小さな値）です。

7

0xC000008E

スレッドが，浮動小数点演算で0による除算をしようとしました。

8

0xC000008F

浮動小数点演算の結果，正確な値が計算できませんでした。

9

0xC0000030

この表に列挙した以外の浮動小数点演算の例外です。

10

0xC0000091

浮動小数点演算の結果，指数部の値が制限範囲を超えました。

11

0xC0000032

浮動小数点演算の結果，スタックがオーバーフローまたはアンダーフローを起こしました。

12

0xC0000033

浮動小数点演算の結果，指数部の値が制限範囲を下回りました。

13

0xC0000094

スレッドが，整数演算で0による除算をしようとしました。

14

0xC0000035

整数演算の結果，オーバーフローが発生しました。

15

0xC0000096

現在のマシンモードでは実行できない命令（特権命令）を実行しようとしました。

16

0xC0000025

継続できない例外を起こした命令に対して，再実行を試みました。

外部コマンドの実行結果が次の表のどれかに該当する場合，その外部コマンドがエラー終了したと見なします。

外部コマンド実行結果

終了コード

外部コマンドの終了コードが0ではない場合（successRC属性，CMDRC_THRESHOLD_USE_PRESETパラメーター，CMDRC_THRESHOLD_DEFINEパラメーターで値を変更可能）

外部コマンドの終了コード

外部コマンドがシグナル終了した場合

外部コマンドが定めるシグナル終了時の終了コード※

指定された外部コマンドに実行権限がなく，実行できなかった場合

126

指定された外部コマンドが存在しないで，実行できなかった場合

127

注※

シグナルを受信すると，受信したシグナルの種別を示す文字列を標準エラー出力に出力することがあります。

なお，#-adsh_rc_ignoreコマンドで指定した外部コマンドは，終了コードに関係なくエラーにはなりません。

(4)　組み込みコマンドの終了コード

組み込みコマンドの終了コードは，各コマンドで定められた終了コードになります。組み込みコマンドの場合，実行結果の正常・エラーは，終了コードの値ではなく各コマンドの実行時にエラーとなる現象が発生したかどうかで判定されます。ただし，#-adsh_rc_ignoreコマンドで指定した組み込みコマンドは，コマンドの実行結果に関係なく，常に正常終了します。

各コマンドが正常・エラーとなる条件については，「9.　ジョブ定義スクリプトのコマンドおよび制御文」に記載している各コマンドの終了コードをご確認ください。

(5)　注意事項

UNIX互換コマンドおよびユーザーが作成したコマンドは，正常終了してもコマンドの終了コードが0ではない場合があります。例えば，diffコマンドは比較したファイルが異なるとき，終了コードが1となります。

このようなコマンドについては，正常かエラーかが正しく判定されるように，次の方法で記述してください。UNIX互換コマンドの終了コードの詳細については，「8.4　UNIX互換コマンド」を参照してください。

(a)　環境設定パラメーターで指定する場合

UNIX互換コマンドが正常かエラーかを正しく判定するには，CMDRC_THRESHOLD_USE_PRESETパラメーターにENABLEを指定します。

OS提供のコマンドまたはユーザーが作成したコマンドが正常かエラーかを正しく判定するには，CMDRC_THRESHOLD_DEFINEパラメーターで指定します。

(b)　ジョブ定義スクリプトで指定する場合

コマンドの実行結果を常に正常終了とする場合は，#-adsh_rc_ignoreコマンドの引数に，正常終了とするコマンド名を指定します。

正常かエラーかをコマンドの仕様に従って判定する場合は，対象コマンドをジョブステップ内に定義し，successRC属性で正常終了となる終了コードを指定します。successRC属性による指定は，ジョブステップ内のすべてのコマンドに対して有効となります。

5.8.9　シェル標準コマンドによるジョブの中断

シェル標準コマンドを実行した場合，シェル標準コマンドの種類およびシェル標準コマンドの実行結果によって，ジョブの実行を中断することがあります。この場合，KNAX6584-Iメッセージを出力して，後続ジョブステップおよび後続ジョブ定義スクリプトを実行しません。run属性がabnormalまたはalwaysのジョブステップについても実行しません。

また，この場合，実行したコマンドに対しては，#-adsh_rc_ignoreコマンドの指定および#-adsh_step_startコマンドのsuccessRC属性の指定は有効になりません。

(1)　ジョブ定義スクリプトを即時終了するコマンドの実行

ジョブ定義スクリプトを即時終了するシェル標準コマンドを実行した場合，ジョブの実行を中断します。ジョブ定義スクリプトを即時終了するコマンドを次に示します。

exitコマンド

returnコマンド※

引数に実行可能なコマンドが指定されたexecコマンド

注※

次の場合は終了しません。

関数内で実行した場合

外部スクリプト内で実行した場合

(2)　続行できないエラーの発生

シェル標準コマンドを実行した場合，文法エラーなどジョブ定義スクリプト自体が正常に動作しないエラーが発生する場合があります。この場合，ジョブの実行を中断します。文法エラーが発生する例を次に示します。

引数を指定しないでunsetコマンドを実行する場合

returnコマンドの引数に文字列を指定する場合※

Windows版でUNSUPPORT_TESTパラメーターに「ERR」が設定されている状態で，サポートしていない条件式を実行する場合

注※

次の場合，ジョブの実行は中断されません。

関数内で実行した場合

外部スクリプト内で実行した場合

5.8.10　ジョブ実行中にエラーが発生した場合の動作

ジョブ実行中にエラーが発生した場合の，後続のコマンド・制御文の動作について説明します。発生するエラーの種類を次に示します。

スクリプト拡張コマンドのエラー

#-adsh_fileコマンドでファイル割り当てに失敗したときなどで発生します。

シェル標準コマンドのエラー

続行できる場合

指定したコマンド名が見つからないとき，正規組み込みコマンドがエラーになったときなどで発生します。

続行できない場合

特殊組み込みコマンドのエラーなどで発生します。

(1)　ジョブステップ外でエラーが発生した場合

ジョブステップ外でエラーが発生した場合の動作を次の表に示します。

表5‒39　ジョブステップ外でエラーが発生した場合の動作

発生したエラーの種類

後続のコマンド・制御文の動作

スクリプト拡張コマンドのエラー

run属性がabnormalまたはalwaysのジョブステップを実行します。

上記以外のすべてのコマンド・制御文は実行しません。

シェル標準コマンドのエラー（続行できる場合）

run属性がnormalのジョブステップは実行しません。

上記以外のすべてのコマンド・制御文を実行します。

シェル標準コマンドのエラー（続行できない場合）

ジョブ定義スクリプトの実行を終了します。

ジョブステップ外でエラーが発生した場合の例を次に示します。

表5‒40　ジョブステップ外でエラーが発生した場合の例

ジョブ定義スクリプトのコーディング例

スクリプト拡張コマンドのエラー

シェル標準コマンドのエラー

続行できる場合

続行できない場合

#-adsh_file JOBFILE jobfile

×

−

−

cmdA

△

×

−

shift $n

△

○

×

cmdB

△

○

△

−

−

−

#-adsh_step_start NO -run normal

△

△

△

　echo "run normal step"

△

△

△

　cmdNormal

△

△

△

#-adsh_step_end

△

△

△

−

−

−

#-adsh_step_start AB -run abnormal

○

○

△

　echo "run abnormal step"

○

○

△

　cmdAbnormal

○

○

△

#-adsh_step_end

○

○

△

−

−

−

#-adsh_step_start AL -run always

○

○

△

　echo "run always step"

○

○

△

　cmdAlways

○

○

△

#-adsh_step_end

○

○

△

（凡例）

○：実行します。

△：実行しません。

×：エラーになります。

−：該当しません。

注

空行の個所は何も指定していないことを示します。

(2)　ジョブステップ正常ブロック内でエラーが発生した場合

ジョブステップ正常ブロック内でエラーが発生した場合の動作を次の表に示します。

表5‒41　ジョブステップ正常ブロック内でエラーが発生した場合の動作

発生したエラーの種類

後続のコマンド・制御文の動作

スクリプト拡張コマンドのエラー

シェル標準コマンドのエラー（続行できる場合）※

ジョブステップ正常ブロック内のすべてのコマンド・制御文は実行しません。

ジョブステップエラーブロックが定義されている場合，ジョブステップエラーブロックを実行します。

ジョブステップがエラー終了します。後続のコマンド・制御文の動作はジョブステップ外でスクリプト拡張コマンドのエラーが発生したときの動作と同一です。

シェル標準コマンドのエラー（続行できない場合）

ジョブ定義スクリプトの実行を終了します。

注※

onError属性がcontの場合，シェル標準コマンドのエラー（続行できる場合）がジョブステップ正常ブロック内の最後のコマンドであるときに限り，ジョブステップ正常ブロック内でエラーが発生したと見なします。

ジョブステップ正常ブロック内でエラーが発生した場合の例を，次に示します。

表5‒42　ジョブステップ正常ブロック内でエラーが発生した場合の例

ジョブ定義スクリプトのコーディング例

スクリプト拡張コマンドのエラー

シェル標準コマンドのエラー

続行できる場合

続行できる場合（onError属性がcontの場合）

続行できない場合

#-adsh_step_start S1 -onError stop

−

−

−

−

　#-adsh_file JOBFILE jobfile

×

−

−

−

　cmdA

△

×

×

−

　shift $n

△

△

○

×

　cmdB

△

△

○

△

#-adsh_step_error

○

○

△

△

　echo "step error block"

○

○

△

△

#-adsh_step_end

○

○

○

△

−

−

−

−

#-adsh_step_start NO -run normal

△

△

○

△

　echo "run normal step"

△

△

○

△

　cmdNormal

△

△

○

△

#-adsh_step_end

△

△

○

△

−

−

−

−

#-adsh_step_start AB -run abnormal

○

○

△

△

　echo "run abnormal step"

○

○

△

△

　cmdAbnormal

○

○

△

△

#-adsh_step_end

○

○

△

△

−

−

−

−

#-adsh_step_start AL -run always

○

○

○

△

　echo "run always step"

○

○

○

△

　cmdAlways

○

○

○

△

#-adsh_step_end

○

○

○

△

（凡例）

○：実行します。

△：実行しません。

×：エラーになります。

−：該当しません。

注

空行の個所は何も指定していないことを示します。

(3)　ジョブステップエラーブロック内でエラーが発生した場合

ジョブステップエラーブロック内でエラーが発生した場合の，後続のコマンド・制御文の動作を次の表に示します。

表5‒43　ジョブステップエラーブロック内でエラーが発生した場合の動作

発生したエラーの種類

後続のコマンド・制御文の動作

スクリプト拡張コマンドのエラー

ジョブステップエラーブロック内のすべてのコマンド・制御文を実行しません。

ジョブステップがエラー終了します。後続のコマンド・制御文の動作はジョブステップ外でスクリプト拡張コマンドのエラーが発生したときの動作と同一です。

シェル標準コマンドのエラー（続行できる場合）

ジョブステップエラーブロック内のすべてのコマンド・制御文を実行します。

ジョブステップがエラー終了します。後続のコマンド・制御文の動作はステップ外でスクリプト拡張コマンドのエラーが発生したときの動作と同一です。

シェル標準コマンドのエラー（続行できない場合）

ジョブ定義スクリプトの実行を終了します。

ジョブステップエラーブロック内でエラーが発生した場合の例を，次に示します。

表5‒44　ジョブステップエラーブロック内でエラーが発生した場合の例

ジョブ定義スクリプトのコーディング例

スクリプト拡張コマンドのエラー

シェル標準コマンドのエラー

続行できる場合

続行できない場合

#-adsh_step_start S1 -onError stop

−

−

−

　echo "step normal block"

−

−

−

#-adsh_step_error

−

−

−

　#-adsh_file JOBFILE jobfile

×

−

−

　cmdA

△

×

−

　shift $n

△

○

×

　cmdB

△

○

△

#-adsh_step_end

○

○

△

−

−

−

#-adsh_step_start NO -run normal

△

△

△

　echo "run normal step"

△

△

△

　cmdNormal

△

△

△

#-adsh_step_end

△

△

△

−

−

−

#-adsh_step_start AB -run abnormal

○

○

△

　echo "run abnormal step"

○

○

△

　cmdAbnormal

○

○

△

#-adsh_step_end

○

○

△

−

−

−

#-adsh_step_start AL -run always

○

○

△

　echo "run always step"

○

○

△

　cmdAlways

○

○

△

#-adsh_step_end

○

○

△

（凡例）

○：実行します。

△：実行しません。

×：エラーになります。

−：該当しません。

注

空行の個所は何も指定していないことを示します。

(4)　注意事項

ジョブステップ外で続行できるシェル標準コマンドのエラーが発生した場合，run属性がnormalのジョブステップを除き，後続のコマンド・制御文をすべて実行します。この場合，ジョブの終了コードも後続のコマンド・制御文の終了コードで上書きされます。エラーの要因となった終了コードをジョブの終了コードに反映したい場合（JP1/AJSでジョブをエラーとしたい場合など）は，onError属性にstopを指定したジョブステップ内にコマンド・制御文を記述してください。

5.8.11　コマンド実行結果の出力に関する注意事項

ジョブ実行ログファイルに出力されたコマンドの実行結果を確認するときは，次の点に注意してください。

(1)　別プロセスでコマンドグループ化した場合のコマンド実行結果の出力

「(」，「)」で囲んだコマンドグループ化によって実行したコマンド群は，コマンド群を1つのジョブ定義スクリプトとして別プロセスで動作します。この場合のコマンド実行結果は，1つのジョブ定義スクリプトの実行結果として，次のどれかのメッセージが出力されます。

KNAX6540-I，KNAX6541-E，KNAX6542-E，KNAX6560-I，KNAX6561-E，KNAX6562-E

(2)　バックグラウンド実行時の注意事項

「&」および「|&」を付与してバックグラウンド実行したコマンドの終了メッセージ出力の場合，次の点に注意してください。

バックグラウンド実行のコマンドがすべて完了するのを待ってからジョブ終了するため，終了メッセージを必ず出力します。

ジョブステップ内で起動したコマンドでも，コマンドの終了はジョブステップ終了後の可能性があります。その場合は，コマンドを起動したジョブステップの終了メッセージ出力後に，コマンドの終了メッセージを出力します。なお，「&」および「|&」を付与してバックグラウンド実行したコマンドの終了コードはジョブステップやジョブの終了コードには影響しません。

バックグラウンド実行したコマンドのジョブ実行ログへの出力順序は，実際のプロセス開始順序や終了順序とは関係なく，順不同となります。「|」を使って連結したコマンド群についても同様です。

(3)　builtinコマンド，commandコマンド，evalコマンド，timeコマンド，.（ドット）コマンド，execコマンドの注意事項

それぞれのコマンドを実行したときの，実行結果の出力についての注意事項を次に示します。

組み込みコマンドのbuiltinコマンド，commandコマンド，evalコマンド，timeコマンド，execコマンドの場合

引数として指定したコマンドの実行結果だけを出力します。builtinコマンド，commandコマンド，evalコマンド，timeコマンド，およびexecコマンド自身の実行結果は出力しません。また，ジョブやジョブステップの正常終了またはエラー終了の判定にも使用しません。

commandコマンドに対して，実行中のプラットフォームではサポートしないオプションを指定した場合は，commandコマンドの実行結果を出力してジョブやジョブステップの正常終了またはエラー終了を判定します。

組み込みコマンドの.（ドット）コマンドの場合

指定した外部スクリプト内の各コマンドの実行結果だけを出力します。

.（ドット）コマンド自身は正常終了しますが，その実行結果は出力しません。また，ジョブやジョブステップの正常終了またはエラー終了の判定にも使用しません。

指定した外部スクリプトがなく，.（ドット）コマンドがエラー終了した場合は，.（ドット）コマンドの実行結果を出力してジョブやジョブステップの正常終了またはエラー終了を判定します。

(4)　コマンドの書式によるコマンド実行結果出力の違い

コマンドを次の書式で指定して実行した場合，変換前のコマンド名がコマンドの実行結果に出力されます。

パイプ（|）による別プロセスの実行

コマンド置換（$()，``）による別プロセスの実行

|&によるバックグラウンドプロセスの実行

単一コマンドのグループ化によるサブシェル実行

&によるバックグラウンド実行

例を次に示します。

変数をコマンドとして実行した場合は，変数展開前の文字列がコマンド名として出力されます。

ジョブ定義スクリプトの定義

01: $CMD &

実行結果の出力

KNAX6116-I Command $CMD(line=1) succeeded. rc=0 E-Time=0.000s C-Time=0.000s

環境ファイルのCHILDJOB_PGMパラメーターに定義した規則に一致する文字列をコマンドとして実行した場合は，CHILDJOB_PGMパラメーターによって読み替えられる前の文字列がコマンド名として出力されます。

環境ファイルの定義

#-adsh_conf CHILDJOB_PGM /bin/sh

ジョブ定義スクリプトの定義

01: /bin/sh ./test.ash &

実行結果の出力

KNAX6116-I Command /bin/sh(line=1) succeeded. rc=0 E-Time=0.000s C-Time=0.000s

5.9　ファイルの割り当ておよび後処理をする

スクリプト拡張コマンドまたはadshfileコマンドを使用して，通常ファイル，一時ファイルおよびプログラム出力データファイルに対して，割り当ておよび後処理ができます。

割り当てとは，各コマンド実行時の動作であり，ジョブステップやジョブ終了時の各ファイルの扱いを登録したり，ファイル名称やファイル実体を生成したりすることをいいます。

後処理とは，ジョブステップやジョブ終了時の動作であり，割り当て時の定義に従って各ファイルを削除したり残したりすることをいいます。

スクリプト拡張コマンドについては，「9.5　スクリプト拡張コマンド」を参照してください。adshfileコマンドについては，「adshfileコマンド（通常ファイルの割り当ておよび後処理を指定する）」を参照してください。

5.9.1　通常ファイルの割り当ておよび後処理をする

#-adsh_fileコマンド（スクリプト拡張コマンド）またはadshfileコマンド（シェル運用コマンド）を使用して，次の作業を実施します。

該当するジョブステップまたはジョブの結果によって，割り当てたファイルの後処理をします。

#-adsh_fileコマンドの場合は，ジョブ，ジョブステップ，およびこれらから起動するコマンドで使用する通常ファイルについて，ファイルパスをシェル変数および環境変数に割り当てます。

#-adsh_fileコマンドとadshfileコマンドの機能差異を次の表に示します。#-adsh_fileコマンドについては「#-adsh_fileコマンド（通常ファイルの割り当ておよび後処理を指定する）」を参照してください。adshfileコマンドについては「adshfileコマンド（通常ファイルの割り当ておよび後処理を指定する）」を参照してください。

機能

#-adsh_fileコマンド

adshfileコマンド

環境変数へのファイルパス設定

○

×

ファイルの後処理のタイミング

ステップ外の場合

ジョブ終了時

ステップ内の場合

ステップ終了時

ジョブ終了時またはステップ終了時を指定

.コマンドで記述する外部スクリプトでの記述可否

×

○

繰り返し処理内での記述可否

×

○

関数内での記述可否

×

○

ファイル割り当て処理中にエラーとなった場合の割り当て済み通常ファイルの後処理

keepを仮定し，ファイルを削除しません。

詳細については「5.9.1(2)(a)　#-adsh_fileコマンドの場合」を参照してください。

引数-aの指定に従います。

詳細については「5.9.1(2)(b)　adshfileコマンドの場合」を参照してください。

（凡例）

○：実行できます。

×：実行できません。

注意事項

adshfileコマンドと#-adsh_fileコマンドで割り当てた通常ファイルは別々に管理され，後処理はadshfileコマンド，#-adsh_fileコマンドの順に実行されます。そのため，両方のコマンドで同じファイルを割り当てると，ファイルの後処理が二重に実行されることになり，エラーが発生する場合があるので注意してください。

(1)　通常ファイルの割り当て

#-adsh_fileコマンドでは，指定した通常ファイルのファイルのパスを，ファイル環境変数定義名と同名のシェル変数および環境変数に割り当てます。

#-adsh_fileコマンドおよびadshfileコマンドは，指定した通常ファイルのファイルの実体は作成しません。

割り当て時にファイルが存在するかどうかを確認する場合は，#-adsh_fileコマンドでは-chkに，adshfileコマンドでは-cにexistを指定します。existが指定された場合，割り当て時にファイルが存在しなければエラーとなります。

ファイルが存在するかどうかに関係なく割り当てる場合は，#-adsh_fileコマンドでは-chkに，adshfileコマンドでは-cにnoを指定します。noが指定されたとき，ファイルが存在しなくてもエラーとしないで割り当てます。

#-adsh_fileコマンドで，通常ファイルtest1をFILEに割り当てる場合の使用例を次に示します。

Windowsの場合

#-adsh_file FILE 'C:¥home¥test¥test1' -chk exist -normal keep -abnormal keep

UNIXの場合

#-adsh_file FILE /home/test/test1 -chk exist -normal keep -abnormal keep

UNIXの場合のchk属性の使用例を次に示します。

#-adsh_job FILE_CHK
#-adsh_step_start STEP01
  #-adsh_file FILE01 /home/test/test1 -chk no -normal keep -abnormal keep
  #-adsh_file FILE02 /home/test/test2 -chk exist -normal keep -abnormal keep
  cmdA ${FILE01} ${FILE02}
#-adsh_step_end

FILE01の割り当てでは，割り当て時にファイルが存在するかどうかを確認しません。したがって，/home/test/test1が存在しなくてもファイルを割り当てます。

FILE02の割り当てでは，割り当て時にファイルが存在するかどうかを確認します。したがって，/home/test/test2が存在しない場合，ファイル割り当て処理はエラーとなります。

(2)　通常ファイルの後処理

通常ファイルは，割り当てたジョブステップまたはジョブ終了時に後処理をします。#-adsh_fileコマンドの場合，後処理ではファイルパスを設定したシェル変数および環境変数を設定前の値に戻します。また，ジョブステップやジョブの終了状態と，コマンドの指定値に従って次に示す処理をします。

ジョブステップおよびジョブが正常終了した場合，#-adsh_fileコマンドの-normalまたはadshfileコマンドの-nの指定に従って後処理をします。指定値ごとの通常ファイルの後処理について次に示します。

delを指定した場合，ジョブステップまたはジョブの終了時に通常ファイルを削除します。

keepを指定した場合，ジョブステップまたはジョブの終了時に通常ファイルを削除しません。

ジョブステップまたはジョブがエラー終了した場合，#-adsh_fileコマンドの-abnormalまたはadshfileコマンドの-aの指定に従って後処理をします。指定値ごとの通常ファイルの後処理について次に示します。

delを指定した場合，ジョブステップまたはジョブの終了時に通常ファイルを削除します。

keepを指定した場合，ジョブステップまたはジョブの終了時に通常ファイルを削除しません。

#-adsh_fileコマンドに-abnormal，またはadshfileコマンドに-aオプションを指定した場合の，後処理の扱いを次の表に示します。

ジョブステップやジョブがエラーとなる要因

#-adsh_fileコマンドの割り当て済み通常ファイルの後処理

adshfileコマンドの割り当て済み通常ファイルの後処理

後続の#-adsh_fileコマンドの通常ファイル割り当て処理中にエラー

無条件にkeepが仮定される

各adshfileコマンドの-aオプションに従う※

（keepは仮定されない）

後続のadshfileコマンドの通常ファイル割り当て処理中にエラー

各#-adsh_fileコマンドの-abnormalオプションに従う

各adshfileコマンドの-aオプションに従う

後続の#-adsh_tempコマンドの一時ファイル割り当て処理中にエラー

無条件にkeepが仮定される

各adshfileコマンドの-aオプションに従う※

（keepは仮定されない）

後続の#-adsh_spoolfileコマンドのプログラム出力データファイル割り当て処理中にエラー

無条件にkeepが仮定される

各adshfileコマンドの-aオプションに従う※

（keepは仮定されない）

後続の上記以外のコマンドやプログラムなどのエラー

各#-adsh_fileコマンドの-abnormalオプションに従う

各adshfileコマンドの-aオプションに従う

注※

割り当てエラー発生時に無条件にファイルを保持するよう運用したい場合は，#-adsh_fileコマンドを使用してください。

通常ファイルの割り当てではファイルの実体を作成しないため，後処理をするときに存在しないファイルは存在しない状態のままになります。

(a)　#-adsh_fileコマンドの場合

Windowsでの後処理の実行例を次に示します。

#-adsh_job JOB
#-adsh_file FILE01 'C:¥user¥file01' -chk exist -normal keep -abnormal del

#-adsh_step_start STEP
    #-adsh_file FILE02 'C:¥user¥file02' -chk exist -normal del -abnormal del
    #-adsh_file FILE03 'C:¥user¥file03' -chk exist -normal keep -abnormal del
    uap
#-adsh_step_end

#-adsh_file FILE04 'C:¥user¥file04' -chk exist -normal del -abnormal del

例1

FILE03の割り当てでエラーになった場合

FILE01に割り当てた通常ファイルは，ジョブ終了時に後処理をします。abnormal属性の指定に従って通常ファイルを削除します。

FILE02に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。normal属性およびabnormal属性の指定に関係なくkeepを仮定し，通常ファイルは削除しません。

FILE03に割り当てようとした通常ファイルは，割り当てが完了していないため後処理をしません。

FILE04の割り当て処理は動作しません。

例2

FILE04の割り当てでエラーになった場合

FILE01に割り当てた通常ファイルは，ジョブ終了時に後処理をします。normal属性およびabnormal属性の指定に関係なくkeepを仮定し，通常ファイルは削除しません。

FILE02に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。normal属性の指定に従って通常ファイルを削除します。

FILE03に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。normal属性の指定に従って通常ファイルは削除しません。

FILE04に割り当てようとした通常ファイルは，割り当てが完了していないため後処理をしません。

例3

uapでエラーになった場合

FILE01に割り当てた通常ファイルは，ジョブ終了時に後処理をします。abnormal属性の指定に従って通常ファイルを削除します。

FILE02に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。abnormal属性の指定に従って通常ファイルを削除します。

FILE03に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。abnormal属性の指定に従って通常ファイルを削除します。

FILE04の割り当て処理は動作しません。

例4

正常終了した場合

FILE01に割り当てた通常ファイルは，ジョブ終了時に後処理をします。normal属性の指定に従って通常ファイルは削除しません。

FILE02に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。normal属性の指定に従って通常ファイルを削除します。

FILE03に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。normal属性の指定に従って通常ファイルは削除しません。

FILE04に割り当てた通常ファイルは，ジョブ終了時に後処理をします。normal属性の指定に従って通常ファイルを削除します。

(b)　adshfileコマンドの場合

後処理の実行例を次に示します。この例では通常ファイルのファイル名を「file01_実行日付」〜「file05_実行日付」とし，「実行日付」の部分にジョブの実行時刻を入れます。

#-adsh_job JOB

VAL01=file01_`date +%y%m%d`
VAL02=file02_`date +%y%m%d`
VAL03=file03_`date +%y%m%d`
VAL04=file04_`date +%y%m%d`
VAL05=file05_`date +%y%m%d`

adshfile -s job -n keep -a del ${VAL01}

#-adsh_step_start STEP
    adshfile -s step -n del -a del ${VAL02}
    adshfile -s step -n keep -a keep ${VAL03}
    adshfile -s step -n keep -a del ${VAL04}
    uap
#-adsh_step_end

adshfile -s job -n del -a del ${VAL05}

例1

VAL04の割り当てでエラーになった場合

VAL01に割り当てた通常ファイルは，ジョブ終了時に後処理をします。-aの指定に従って通常ファイルを削除します。

VAL02に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。-aの指定に従って通常ファイルを削除します（#-adsh_fileコマンドと異なり，keepは仮定されないで，-aオプションの指定に従って後処理をします）。

VAL03に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。-aの指定に従って通常ファイルを削除しません。

VAL04はコマンドエラーとなり，割り当てようとした通常ファイルは，割り当てが完了していないため後処理をしません。

VAL05の割り当て処理は動作しません。

例2

VAL05の割り当てでエラーになった場合

VAL01に割り当てた通常ファイルは，ジョブ終了時に後処理をします。-aの指定に従って通常ファイルを削除します（#-adsh_fileコマンドと異なり，keepは仮定されないで，-aオプションの指定に従って後処理をします）。

VAL02に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。-nの指定に従って通常ファイルを削除します。

VAL03に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。-nの指定に従って通常ファイルは削除しません。

VAL04に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。-nの指定に従って通常ファイルは削除しません。

VAL05はコマンドエラーとなり，割り当てようとした通常ファイルは，割り当てが完了していないため後処理をしません。

例3

uapでエラーになった場合

VAL01に割り当てた通常ファイルは，ジョブ終了時に後処理をします。-aの指定に従って通常ファイルを削除します。

VAL02に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。-aの指定に従って通常ファイルを削除します。

VAL03に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。-aの指定に従って通常ファイルを削除しません。

VAL04に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。-aの指定に従って通常ファイルを削除します。

VAL05の割り当て処理は動作しません。

例4

正常終了した場合

VAL01に割り当てた通常ファイルは，ジョブ終了時に後処理をします。-nの指定に従って通常ファイルは削除しません。

VAL02に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。-nの指定に従って通常ファイルを削除します。

VAL03に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。-nの指定に従って通常ファイルは削除しません。

VAL04に割り当てた通常ファイルは，ジョブステップ終了時に後処理をします。-nの指定に従って通常ファイルは削除しません。

VAL05に割り当てた通常ファイルは，ジョブ終了時に後処理をします。-nの指定に従って通常ファイルを削除します。

(3)　adshfileコマンドの指定例（繰り返し処理内に指定した場合）

UNIXでadshfileコマンドを繰り返し処理内に指定する例を次に示します。

[user001@HOST01 ~]$ adshexec Tloop.ash
KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
KNAX0724-I Jobid was assigned. Jobid=015820
---------------------------------------------------------------
 JP1/Advanced Shell 10-10

 [Information]
   Jobid           : 015820
   Spool Directory : /var/opt/jp1as/spool/015820/
   Date            : 2013/03/06
   Config-system   :
   Config-job      :
   HostName        : HOST01
 [JP1 Parameter]
---------------------------------------------------------------
********  JP1/Advanced Shell MESSAGE  ********
09:28:05 015820 KNAX0091-I LOOP Job started.
09:28:05 015820 KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
09:28:05 015820 KNAX7902-I adshexec will run in tty stdin mode.
09:28:05 015820 KNAX6112-I Command echo(line=3) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:05 015820 KNAX6116-I Command /bin/ls(line=4) succeeded. rc=0 E-Time=0.002s C-Time=0.000s
09:28:05 015820 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=8) succeeded. rc=0 E-Time=0.002s C-Time=0.000s
09:28:05 015820 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=9) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:05 015820 KNAX6112-I Command echo(line=10) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:05 015820 KNAX6112-I Command echo(line=11) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:05 015820 KNAX6116-I Command /bin/cat(line=12) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:05 015820 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=8) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:05 015820 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=9) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:05 015820 KNAX6112-I Command echo(line=10) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:05 015820 KNAX6112-I Command echo(line=11) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:05 015820 KNAX6116-I Command /bin/cat(line=12) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:05 015820 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=8) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:05 015820 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=9) succeeded. rc=0 E-Time=0.001s C-Time=0.010s
09:28:05 015820 KNAX6112-I Command echo(line=10) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:05 015820 KNAX6112-I Command echo(line=11) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:05 015820 KNAX6116-I Command /bin/cat(line=12) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:05 015820 KNAX1890-I File is deallocated as "keep". path=/home/user001/test.txt
09:28:05 015820 KNAX1890-I File is deallocated as "del". path=/home/user001/output_test.txt
09:28:05 015820 KNAX1604-I /home/user001/output_test.txt is deleted.
09:28:05 015820 KNAX1890-I File is deallocated as "keep". path=/home/user001/test01.txt
09:28:05 015820 KNAX1890-I File is deallocated as "del". path=/home/user001/output_test01.txt
09:28:05 015820 KNAX1604-I /home/user001/output_test01.txt is deleted.
09:28:05 015820 KNAX1890-I File is deallocated as "keep". path=/home/user001/test02.txt
09:28:05 015820 KNAX1890-I File is deallocated as "del". path=/home/user001/output_test02.txt
09:28:05 015820 KNAX1604-I /home/user001/output_test02.txt is deleted.
09:28:05 015820 KNAX0098-I LOOP Job ended. rc=0 E-Time=0.028s C-Time=0.020s

********   Script IMAGE    ********

***** /home/user001/Tloop.ash *****
0001 : #-adsh_job LOOP
0002 :
0003 :   echo -E "<<< list >>>" >&2
0004 :   ls test* >&2
0005 :
0006 :   for MEMBER in test*
0007 :   do
0008 :     ${ADSH_DIR_BIN}adshfile -s job -n keep -a keep $MEMBER
0009 :     ${ADSH_DIR_BIN}adshfile -s job -n del -a del output_$MEMBER
0010 :     echo -E "MEMBER=$MEMBER" >output_$MEMBER
0011 :     echo -E  "<<< output_$MEMBER >>>" >&2
0012 :     cat output_$MEMBER >&2
0013 :   done
0014 :

***** CONVERSION INFORMATION *****

********   JOB SCOPE STDERR    ********
<<< list >>>
test.txt
test01.txt
test02.txt
<<< output_test.txt >>>
MEMBER=test.txt
<<< output_test01.txt >>>
MEMBER=test01.txt
<<< output_test02.txt >>>
MEMBER=test02.txt
KNAX0098-I LOOP Job ended. rc=0 E-Time=0.028s C-Time=0.020s

******** JOBSTEP OUTPUT ********
KNAX6380-I Job name will be added to spool job directory. spool job directory="/var/opt/jp1as/spool/015820-LOOP/"
KNAX7999-I JP1/Advanced Shell ended. rc=0
[user001@HOST01 ~]$

(4)　adshfileコマンドの指定例（関数内に指定した場合）

UNIXでadshfileコマンドを関数内に指定する例を次に示します。

[user001@HOST01 ~]$ adshexec Tloop.ashls test*./test*adshexec Tloop.ashfunction.ash
KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
KNAX0724-I Jobid was assigned. Jobid=015821
---------------------------------------------------------------
 JP1/Advanced Shell 10-10

 [Information]
   Jobid           : 015821
   Spool Directory : /var/opt/jp1as/spool/015821/
   Date            : 2013/03/06
   Config-system   :
   Config-job      :
   HostName        : HOST01
 [JP1 Parameter]
---------------------------------------------------------------
********  JP1/Advanced Shell MESSAGE  ********
09:28:09 015821 KNAX0091-I FUNCTION Job started.
09:28:09 015821 KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
09:28:09 015821 KNAX7902-I adshexec will run in tty stdin mode.
09:28:09 015821 KNAX0092-I FUNCTION.STEP001 Step started.
09:28:09 015821 KNAX6112-I Command echo(line=15) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=4) succeeded. rc=0 E-Time=0.002s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=5) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /bin/cp(line=6) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:09 015821 KNAX6112-I Command echo(line=7) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /bin/cat(line=8) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:09 015821 KNAX6112-I Command echo(line=15) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=4) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=5) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /bin/cp(line=6) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:09 015821 KNAX6112-I Command echo(line=7) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /bin/cat(line=8) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX6112-I Command echo(line=15) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=4) succeeded. rc=0 E-Time=0.001s C-Time=0.010s
09:28:09 015821 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=5) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /bin/cp(line=6) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:09 015821 KNAX6112-I Command echo(line=7) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /bin/cat(line=8) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX6112-I Command echo(line=15) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=4) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /opt/jp1as/bin/adshfile(line=5) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /bin/cp(line=6) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
09:28:09 015821 KNAX6112-I Command echo(line=7) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX6116-I Command /bin/cat(line=8) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX1890-I File is deallocated as "del". path=/home/user001/infile1
09:28:09 015821 KNAX1604-I /home/user001/infile1 is deleted.
09:28:09 015821 KNAX1890-I File is deallocated as "del". path=/home/user001/outfile1
09:28:09 015821 KNAX1604-I /home/user001/outfile1 is deleted.
09:28:09 015821 KNAX1890-I File is deallocated as "del". path=/home/user001/infile2
09:28:09 015821 KNAX1604-I /home/user001/infile2 is deleted.
09:28:09 015821 KNAX1890-I File is deallocated as "del". path=/home/user001/outfile2
09:28:09 015821 KNAX1604-I /home/user001/outfile2 is deleted.
09:28:09 015821 KNAX1890-I File is deallocated as "del". path=/home/user001/infile3
09:28:09 015821 KNAX1604-I /home/user001/infile3 is deleted.
09:28:09 015821 KNAX1890-I File is deallocated as "del". path=/home/user001/outfile3
09:28:09 015821 KNAX1604-I /home/user001/outfile3 is deleted.
09:28:09 015821 KNAX1890-I File is deallocated as "del". path=/home/user001/infile4
09:28:09 015821 KNAX1604-I /home/user001/infile4 is deleted.
09:28:09 015821 KNAX1890-I File is deallocated as "del". path=/home/user001/outfile4
09:28:09 015821 KNAX1604-I /home/user001/outfile4 is deleted.
09:28:09 015821 KNAX6597-I FUNCTION.STEP001 Step succeeded. rc=0 E-Time=0.037s C-Time=0.020s
09:28:09 015821 KNAX6112-I Command echo(line=21) succeeded. rc=0 E-Time=0.000s C-Time=0.000s
09:28:09 015821 KNAX0098-I FUNCTION Job ended. rc=0 E-Time=0.039s C-Time=0.020s

********   Script IMAGE    ********

***** /home/user001/Tfunction.ash *****
0001 : #-adsh_job FUNCTION
0002 :
0003 : myfunc(){
0004 :    ${ADSH_DIR_BIN}adshfile -s step -n del -a del -c exist $1
0005 :    ${ADSH_DIR_BIN}adshfile -s step -n del -a del $2
0006 :    ${ADSH_DIR_CMD}cp $1 $2
0007 :    echo -E "<<< $2 >>>" >&2
0008 :    ${ADSH_DIR_CMD}cat  $2 >&2
0009 : }
0010 :
0011 : #-adsh_step_start STEP001
0012 :
0013 :     for CNT in 1 2 3 4
0014 :     do
0015 :       echo -E "dddd$CNT" >infile$CNT
0016 :       myfunc infile$CNT outfile$CNT
0017 :     done
0018 :
0019 : #-adsh_step_end
0020 :
0021 : echo -E "JOB_FUNCTION_END" >&2

***** CONVERSION INFORMATION *****

********   JOB SCOPE STDERR    ********
KNAX6597-I FUNCTION.STEP001 Step succeeded. rc=0 E-Time=0.037s C-Time=0.020s
JOB_FUNCTION_END
KNAX0098-I FUNCTION Job ended. rc=0 E-Time=0.039s C-Time=0.020s

******** JOBSTEP OUTPUT ********
KNAX0719-I STEP 0001,STEP001,STDERR
<<< outfile1 >>>
dddd1
<<< outfile2 >>>
dddd2
<<< outfile3 >>>
dddd3
<<< outfile4 >>>
dddd4

KNAX6380-I Job name will be added to spool job directory. spool job directory="/var/opt/jp1as/spool/015821-FUNCTION/"
KNAX7999-I JP1/Advanced Shell ended. rc=0
[user001@HOST01 ~]$

5.9.2　一時ファイルの割り当ておよび後処理をする

#-adsh_file_tempコマンドを使用して，ジョブ定義スクリプト内で一時的に使用するファイルを生成し，ファイルパスをシェル変数および環境変数に割り当てます。割り当てた一時ファイルはジョブ終了時には削除します。

(1)　一時ファイルの割り当て

ジョブ定義スクリプト内で一時的に使用するファイルを作成し，指定されたファイル環境変数定義名と同名のシェル変数および環境変数にファイルパスを割り当てます。

一時ファイルの割り当てには，次の2つの方法があります。

新規に一時ファイルを作成して割り当てる場合

既存の一時ファイルを割り当てる場合

(a)　新規に一時ファイルを作成して割り当てる場合

chk属性にcreateを指定します。作成するファイルは0バイトです。UNIXの場合，作成される一時ファイルのパーミッションは，ファイルの所有者（作成者）の部分だけumask値の指定に従い，グループおよびその他のユーザーのアクセス権限部分は常に0になります。Windowsの場合は権限の指定はありません。

ジョブステップ内で割り当てた一時ファイルを後続ジョブステップでも使用する場合は，一時ファイル識別名を指定しnormal属性にkeepを指定します。

ジョブステップ内で割り当てた一時ファイルを後続ジョブステップで使用しない場合または，ジョブステップ外に指定する場合は，normal属性にdelを指定します。

ジョブステップ外で一時ファイルを割り当てる場合，一時ファイル識別名の指定およびnormal属性にkeepの指定はできません。

(b)　既存の一時ファイルを割り当てる場合

chk属性にexistを指定し，先行ジョブステップで指定した一時ファイル識別名を指定します。

先行ジョブステップで作成していない一時ファイルおよび先行ジョブステップの後処理で削除した一時ファイルの識別名は指定できません。

割り当てた一時ファイルを後続のジョブステップで使用する場合は，normal属性にkeepを指定します。

割り当てた一時ファイルを後続のジョブステップで使用しない場合は，normal属性にdelを指定します。

(2)　一時ファイルの後処理

一時ファイルは，割り当てたジョブステップまたはジョブ終了時に後処理をします。後処理では，ファイルパスを設定したシェル変数および環境変数を設定前の値に戻します。また，ジョブステップまたはジョブの終了状態およびnormal属性の指定値に従って次に示す処理をします。

ジョブステップおよびジョブが正常終了した場合

normal属性にkeepを指定した場合は，ジョブステップ終了時に一時ファイルを削除しません。normal属性にkeepを指定したあと，後続ジョブステップで一時ファイルを使用しない場合は，ジョブ終了時に削除します。

normal属性にdelを指定した場合は，ジョブステップ終了時またはジョブ終了時に一時ファイルを削除します。

ジョブステップおよびジョブがエラー終了した場合

normal属性にkeepを指定した場合は，ジョブステップ終了時に一時ファイルを削除しないで，ジョブ終了時に一時ファイルを削除します。

normal属性にdelを指定した場合は，ジョブステップ終了時またはジョブ終了時に一時ファイルを削除します。

(3)　一時ファイルの名称

一時ファイルの名称は，WindowsとUNIXとで異なります。それぞれで作成するファイル名称を次に示します。

Windowsの場合

システム固定の文字列「ASH」，ディレクトリ内で一意の名称から作成します。

ASH一意の名称.tmp

UNIXの場合

一時ファイルであることを示す文字列「TEMP」，ジョブ名，一時ファイル識別名とディレクトリ内で一意の名称から作成します。

一時ファイル識別名を指定した場合の一時ファイル名

TEMP_ジョブ通し番号_ジョブ名_一時ファイル識別名_一意の名称

一時ファイル識別名を省略した場合の一時ファイル名

TEMP_ジョブ通し番号_ジョブ名_一意の名称

(4)　格納ディレクトリ

一時ファイルを作成するディレクトリは，環境設定パラメーターのTEMP_FILE_DIRパラメーターで指定します。環境設定パラメーターに指定がない場合は，TEMP_FILE_DIRパラメーターの仮定値となります。TEMP_FILE_DIRパラメーターの詳細については，「7.　環境ファイルで設定するパラメーター」の「TEMP_FILE_DIRパラメーター（一時ファイルディレクトリのパス名を定義する）」を参照してください。

(5)　一時ファイルの使用例

一時ファイルを割り当てた場合の使用例を次に示します。

ジョブステップ内で割り当てた一時ファイルを後続ジョブステップで使用しない場合，またはジョブステップ外で一時ファイルを割り当てる場合

#-adsh_file_temp TEMP1 -chk create -normal del
     echo "test" > ${TEMP1}

先行ジョブステップ内で作成した一時ファイルを後続ジョブステップで使用する場合

#-adsh_step_start STEP1
#-adsh_file_temp TEMP1 -id TEST1 -chk create -normal keep    →1.
echo "test1" > ${TEMP1}
#-adsh_step_end

#-adsh_step_start STEP2
#-adsh_file_temp TEMP2 -id TEST1 -chk exist -normal keep     →2.
echo "test2" >> ${TEMP2}
#-adsh_step_end

#-adsh_step_start STEP3
#-adsh_file_temp TEMP3 -id TEST2 -chk create -normal keep    →3.
echo "test3" >> ${TEMP3}
#-adsh_step_end

#-adsh_step_start STEP4
#-adsh_file_temp TEMP4 -id TEST1 -chk exist -normal del      →4.
echo "test4" >> ${TEMP4}
#-adsh_step_end

#-adsh_step_start STEP5
#-adsh_file_temp TEMP5 -id TEST2 -chk exist -normal del      →5.
echo "test5" >> ${TEMP5}
#-adsh_step_end

後続ジョブステップで使用できる一時ファイルを作成し割り当てる。一時ファイル識別名にはTEST1を指定する。

1.で作成した一時ファイル（識別名：TEST1）を割り当てる。割り当てた一時ファイルは，後続ジョブステップで使用可能とする。

後続ジョブステップで使用できる一時ファイルを作成し割り当てる。一時ファイル識別名にはTEST2を指定する。

2.で使用した一時ファイル（識別名：TEST1）を割り当てる。割り当てた一時ファイルは，ジョブステップ（ジョブステップ名：STEP4）終了時に削除する。

3.で作成した一時ファイル（識別名：TEST2）を割り当てる。割り当てた一時ファイルは，ジョブステップ（ジョブステップ名：STEP5）終了時に削除する。

(6)　プログラムの入力ファイルをジョブ定義スクリプトに記述するための一時ファイル利用方法

ユーザープログラムのパラメーターを一時ファイルに記述して標準入力とする場合，パラメーターをジョブ定義スクリプト内に直接記述して，一時ファイルを自動的に作成・削除できます。使用例を次に示します。

#-adsh_step_start
#-adsh_file_temp SYSIN -id parmfile -chk create -normal keep
cat << @@@ > ${SYSIN}
-in /files/indata
-out /files/outdata
-work /tmp
@@@
uap  ${SYSIN}
#-adsh_step_end

一時ファイルを作成し，そこにヒアドキュメントを用いてジョブ定義スクリプトに記述した複数行文字列を書き込みます。ユーザープログラムは一時ファイルを標準入力として実行し，実行完了後に一時ファイルを削除します。

5.9.3　プログラム出力データファイルの割り当てをする

ユーザープログラムの出力結果をシステム実行ログと同様に一元管理するため，JP1/Advanced Shellは実行結果の出力用ファイルを自動的に作成します。このファイルをプログラム出力データファイルといいます。

#-adsh_spoolfileコマンドを使用して，ユーザープログラムが実行結果の出力に使用するプログラム出力データファイルのファイルパスを自動生成し，シェル変数および環境変数に割り当てます。

(1)　プログラム出力データファイルの割り当て

プログラム出力データファイルのファイルパスを自動生成し，指定されたファイル環境変数定義名と同名のシェル変数および環境変数に割り当てます。これらの変数は，ジョブステップまたはジョブ終了時に割り当て前の値に戻します。ファイルの実体は作成しません。

(2)　プログラム出力データファイルの名称

プログラム出力データファイルの名称は，ジョブ名またはジョブステップ名や番号，#-adsh_spoolfileコマンドで指定されたファイル環境変数定義名などから，ジョブ定義スクリプト内のファイル定義ごとに一意の名称とします。

割り当てるプログラム出力データファイルの格納ディレクトリは，環境設定パラメーターのSPOOL_DIRパラメーターに指定されたスプールルートディレクトリ内の，ジョブごとのディレクトリとなります。環境設定パラメーターに指定がない場合は，スプールルートディレクトリはSPOOL_DIRパラメーターの仮定値となります。SPOOL_DIRパラメーターの詳細については，「7.　環境ファイルで設定するパラメーター」を参照してください。

プログラム出力データファイル名の形式を次に示します。Windowsの場合，次のファイル名の後ろに「.sysout」の拡張子が付きます。

ジョブステップ外で割り当てた場合

0000_ジョブ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名

ジョブステップ内で割り当てた場合

ステップ番号_ステップ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名

なお，ルートジョブの環境ファイルのSPOOLJOB_CHILDJOBパラメーターにMERGE（子孫ジョブのスプールジョブをルートジョブのスプールジョブにマージする）を指定して実行された子孫ジョブの場合は，次のファイル名になります。

ジョブステップ外で割り当てた場合

C子孫ジョブ起動順序通し番号_0000_ジョブ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名

ジョブステップ内で割り当てた場合

C子孫ジョブ起動順序通し番号_ステップ番号_ステップ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名

プログラム出力データファイル名の可変部分には次の内容が出力されます。

ステップ番号

すべてのジョブステップの通し番号です。ステップ番号は4桁の10進数で，先頭ジョブステップのステップ番号は1です。

例：　0001，0034，4095

ジョブ名

#-adsh_jobコマンドで指定したジョブ名です。可変長で，最大8バイトです。指定した文字列が8バイトを超える場合は，最初の8バイトをジョブ名とします。

ステップ名

#-adsh_step_startコマンドで指定したジョブステップ名です。可変長で，最大8バイトです。指定した文字列が8バイトを超える場合は，最初の8バイトをジョブステップ名とします。

ファイル環境変数定義名通し番号

ジョブステップ外で割り当てたプログラム出力データファイルの連番，または各ジョブステップ内で割り当てたプログラム出力データファイルの連番です。ファイル環境変数定義名通し番号は3桁の10進数です。ジョブステップ外および各ジョブステップ内で1から255の値になります。

例：　001，034，255

ファイル環境変数定義名

#-adsh_spoolfileコマンドで指定したファイル環境変数定義名です。

子孫ジョブ起動順序通し番号

1個のルートジョブから起動された子孫ジョブの起動順序を示す連番です。7桁の10進数で，0000001から9999999までの値です。

(3)　プログラム出力データファイルの使用例

次のジョブ定義スクリプトを実行した場合を例に，プログラム出力データファイルの作成結果を説明します。

#-adsh_job JOBSAMPLE001

#-adsh_spoolfile SYS001                        →1.
#-adsh_spoolfile SYS002                        →2.
echo "----- job01 --------" 1>&2
echo "SYS001" > $SYS001
echo "SYS002" > $SYS002

#-adsh_step_start STEP01
    #-adsh_spoolfile SYS001                    →3.
    #-adsh_spoolfile SYS002                    →4.
    echo "----- Step001 --------" 1>&2
    echo "SYS001" > $SYS001
    echo "SYS002" > $SYS002
#-adsh_step_end

#-adsh_spoolfile SYS001                         →5.
#-adsh_spoolfile SYS002                         →6.
echo "----- job02 --------" 1>&2
echo "SYS001" > $SYS001
echo "SYS002" > $SYS002

#-adsh_step_start STEP02
    #-adsh_spoolfile SYS001                      →7.
    #-adsh_spoolfile SYS002                      →8.
    echo "----- Step002 --------" 1>&2
    echo "SYS001" > $SYS001
    echo "SYS002" > $SYS002
#-adsh_step_end

#-adsh_spoolfile SYS001                          →9.
#-adsh_spoolfile SYS002                          →10.
echo "----- job03 --------" 1>&2
echo "SYS001" > $SYS001
echo "SYS002" > $SYS002

このジョブ定義スクリプトを実行した場合，右端に付加した番号に応じて，次のファイル名のプログラム出力データファイルが作成されます。

Windowsの場合

1.     0000_JOBSAMPL_001_SYS001.sysout
2.     0000_JOBSAMPL_002_SYS002.sysout
3.     0001_STEP01_001_SYS001.sysout
4.     0001_STEP01_002_SYS002.sysout
5.     0000_JOBSAMPL_003_SYS001.sysout
6.     0000_JOBSAMPL_004_SYS002.sysout
7.     0002_STEP02_001_SYS001.sysout
8.     0002_STEP02_002_SYS002.sysout
9.     0000_JOBSAMPL_005_SYS001.sysout
10.    0000_JOBSAMPL_006_SYS002.sysout

UNIXの場合

1.     0000_JOBSAMPL_001_SYS001
2.     0000_JOBSAMPL_002_SYS002
3.     0001_STEP01_001_SYS001
4.     0001_STEP01_002_SYS002
5.     0000_JOBSAMPL_003_SYS001
6.     0000_JOBSAMPL_004_SYS002
7.     0002_STEP02_001_SYS001
8.     0002_STEP02_002_SYS002
9.     0000_JOBSAMPL_005_SYS001
10.    0000_JOBSAMPL_006_SYS002

5.10　ジョブ定義スクリプトファイルの記述例

ジョブ定義スクリプトファイルの記述例を次に示します。

#!/opt/jp1as/bin/adshexec        # ジョブ全体の制御 # →1.
#-adsh_job SAMPLE_JOB
####################
# ジョブステップの終了コードが8以上の場合，ジョブ打ち切り
#-adsh_job_stop 8:
# ジョブ内で使用する一時ファイル
#-adsh_file_temp JOBTEMP
###################
# ジョブステップ1 #                                   →2.
###################
#-adsh_step_start S1
# 入出力ファイル定義
#-adsh_file INFILE /files/infile -chk exist
#-adsh_file OUTFILE /files/outfile
#-adsh -chk no -normal keep -abnormal del
# パラメーターファイル定義
#-adsh_file_temp PARMFILE -id param
cat<<@@@>${PARMFILE}
-in ${INFILE}
-out ${OUTFILE}
-work /tmp
@@@
# ユーザープログラム実行
s1uap ${PARMFILE}
#-adsh_step_error
# プログラムエラー時の処理
recovery_uap ${JTMP}
#-adsh_step_end
###################
# ジョブステップ2 #                                    →3.
###################
if [[ $ADSH_STEPRC_S1= -eq 0 ]]; then
# 先行ジョブステップが正常の場合だけ実行
#-adsh_step_start S2 -onError cont -stepVar PATH
PATH=/s2bin:$PATH
#-adsh_rc_ignore s2uap
echo "s2uap1"
echo "s2uap2 parm1"
#-adsh_step_end
fi
###################
# ジョブステップ3 #                                    →4.
###################
#-adsh_step_start Java_STEP -run normal
adshjava -grp GROUPA -java javaAP prm1
#-adsh_step_end

例の右側に付加した番号は，次に示す説明の順番と対応しています。

ジョブ全体の制御

ジョブステップに制御を渡したり，ジョブを終了したりする。

ジョブステップ1の処理

入出力ファイル定義

パラメーターファイル定義

ユーザープログラムの実行

エラー時の処理

ジョブステップ2の処理

ジョブステップ1が正常時の場合の処理。

6　ジョブ定義スクリプトのデバッグ

この章では，JP1/Advanced Shellのデバッガ機能について説明します。

6.1　デバッガとは

デバッガとは，プログラムのデバッグを支援するツールです。JP1/Advanced Shellでは，ジョブ定義スクリプトファイルに対するデバッガを利用できます。デバッガは，Windowsの開発環境でのGUIおよびUNIXの実行環境でのCUIで使用できます。GUIではJP1/Advanced Shellエディタのボタン，メニューおよびショートカットキーを使用して，CUIではデバッガのコマンドを使用して，デバッガから応答を得ることで，対話的にジョブ定義スクリプトファイルをデバッグできます。

デバッガを利用すると次のことができます。

デバッガの起動

デバッガの終了

ジョブ定義スクリプトの実行

ジョブ定義スクリプトの終了

ジョブ定義スクリプトの実行停止

ジョブ定義スクリプトの実行再開

ジョブ定義スクリプトの情報表示※

変数の設定・表示

バックトレースの表示※

ソースファイルの表示※

ディレクトリの移動※

ログインシェルの起動※

エラーの注入

ヘルプの表示

注※

CUIでのデバッガの場合に利用できます。

6.1.1　GUIでのデバッグ【Windows限定】

JP1/Advanced ShellエディタからGUI操作でデバッグできます。

デバッグの実行の概要について次の図に示します。

図6‒1　デバッグの実行の概要（GUIの場合）

エディタからジョブ定義スクリプトをデバッグします。

ブレークポイントを設定します。

ジョブ定義スクリプトを実行するとブレークポイントで停止します。

デバッグを中止します。

(1)　出力

デバッグ実行時，ジョブ定義スクリプトを対話的に実行するため，標準出力および標準エラー出力は実行に合わせてコンソールにタイムリーに表示されます。通常実行時のように実行終了後に出力しません。ただし，エラーメッセージはエラーウィンドウにも表示されます。エラーウィンドウについては，「4.7.4　エラーウィンドウ」を参照してください。また，スプールジョブディレクトリには標準出力および標準エラー出力のファイルを作成しません。

通常実行時はジョブ定義スクリプト完了後にジョブ実行ログを標準エラー出力に出力していますが，デバッグ実行時は実行に合わせてジョブ実行ログ相当の情報を標準エラー出力に出力しています。

(2)　情報の初期化

ジョブ定義スクリプトを一度実行したあとに，再びジョブ定義スクリプトを実行すると，前の実行で設定したシェル変数および環境変数の情報が初期化されます。

(3)　スプール

ジョブ定義スクリプトをデバッグ実行するたびにスプールジョブフォルダを作成し，次のファイルを格納します。

スクリプトイメージ：実行したスクリプトの内容

ジョブ実行ログ：JP1/Advanced Shellのメッセージ

出力ファイル：#-adsh_spoolfileコマンドの実行で作成したファイル

sysout管理ファイル（.sysout）

(4)　注意事項

「[[条件式]]」で条件判定を行った場合，実行結果のメッセージに含まれるE-Timeに，デバッガの処理時間が含まれることがあります。

6.1.2　CUIでのデバッグ【UNIX限定】

adshexecコマンドに-dオプションを指定して実行すると，ジョブコントローラをデバッガモードで起動し，CUI操作でデバッグできます。実行環境からコマンドを使用してバッチジョブをデバッグするためには，次のようにadshexecコマンドを使用します。UNIXのシェルからコマンドを入力します。

adshexec -d /script/batchjob2.ash

adshexecコマンドの詳細については，「8.3　シェル運用コマンド」の「adshexecコマンド（バッチジョブを実行する）」を参照してください。

デバッグの実行の概要について次の図に示します。

図6‒2　デバッグの実行の概要（CUIの場合）

adshexecコマンドの-dオプションを入力すると，デバッガを起動します。

breakコマンドを入力すると，ブレークポイントが設定されます。

runコマンドを入力すると，ジョブ定義スクリプトを実行してブレークポイントで停止します。

continueコマンドを入力すると，ブレークポイントから継続実行されます。

killコマンドを入力すると，ジョブ定義スクリプトを終了します。

quitコマンドを入力すると，デバッガを終了します。

(1)　出力

デバッグ実行時，ジョブ定義スクリプトを対話的に実行するため，標準出力および標準エラー出力は実行に合わせてタイムリーに表示されます。通常実行時のように実行終了後に出力しません。また，スプールジョブディレクトリには標準出力および標準エラー出力のファイルを作成しません。

通常実行時はジョブ定義スクリプト完了後にジョブ実行ログを標準エラー出力に出力していますが，デバッグ実行時は実行に合わせてジョブ実行ログ相当の情報を標準エラー出力に出力しています。

(2)　情報の初期化

runコマンドでジョブ定義スクリプトを一度実行したあとに，再びrunコマンドでジョブ定義スクリプトを実行すると，前回実行時の設定情報のうち，次に示す情報が初期化されます。

シェル変数

環境変数

エラー注入モード

また，次に示す情報はデバッガを終了するまで引き継がれます。

ブレークポイントおよびウォッチポイントの情報

デバッガの作業ディレクトリパス

ファイル※

注※

スクリプト拡張コマンドで作成したファイルについては，該当する後処理に従います。

(3)　スプール

CUIデバッグ実行では，デバッガとrunコマンドで実行したジョブ定義スクリプトの2種類のスプールジョブディレクトリを作成します。一度のデバッグ実行でデバッガのスプールジョブディレクトリは1つ，ジョブ定義スクリプトのスプールジョブディレクトリはrunコマンドを実行した回数分作成します。デバッガとジョブ定義スクリプトのスプールジョブディレクトリについて説明します。

(a)　デバッガ

デバッガではジョブ定義スクリプトを実行しません。一度のデバッグで実行したジョブ定義スクリプトの数を管理ファイルに格納したり，デバッガの内部データを記述したファイルを格納したりするために，スプールジョブディレクトリを作成します。

デバッガのスプールジョブディレクトリには，次のファイルを格納します。

スクリプトイメージ：実行したスクリプトの内容

ジョブ実行ログ：JP1/Advanced Shellのメッセージ（生成したプロセスのpidなど）

ブレークポイント情報（.DBG）：デバッガの内部データを記述する

sysout管理ファイル（.sysout）

(b)　ジョブ定義スクリプト

runコマンドを実行するたびにスプールジョブディレクトリを作成し，次のファイルを格納します。

スクリプトイメージ：実行したスクリプトの内容スクリプトイメージ

ジョブ実行ログ：JP1/Advanced Shellのメッセージ

出力ファイル：#-adsh_spoolfileコマンドの実行で作成したファイル

sysout管理ファイル（.sysout）

(4)　注意事項

「[[条件式]]」で条件判定を行った場合，またはコマンド間をパイプで連結した場合は，実行結果のメッセージに含まれるE-Timeに，デバッガの処理時間が含まれることがあります。

6.1.3　GUIデバッガの機能一覧【Windows限定】

GUIデバッガの機能と，このマニュアルでの参照先を次の表に示します。

表6‒1　GUIデバッガの機能

機能

マニュアルの参照先

ジョブ定義スクリプトを実行する

4.4.6

デバッグを中止する

4.4.6(2)

ジョブ定義スクリプトを停止する

4.4.6(2)(d)

ブレークポイントを設定する

4.4.6(1)

ブレークポイントを解除する

4.4.6(1)

逐次実行する

4.4.6(2)(b)，4.4.6(2)(c)

継続実行する

4.4.6(2)(a)

関数を実行する

4.4.6(2)(d)

変数の値を設定または表示する

4.4.6(3)，4.7.6

ステータスを表示する

4.3.1(1)

エラー注入モードを変更する

4.3.1(1)

トラップアクションを実行する

4.4.6(5)

6.1.4　デバッガのコマンド一覧【UNIX限定】

デバッガのコマンドをアルファベット順で次の表に示します。また，各コマンドの短縮形と，このマニュアルでの参照先を示します。

表6‒2　デバッガコマンドの一覧

コマンド名

機能

コマンドの短縮形

マニュアルの参照先

break

ブレークポイントを設定します。

b

6.2.4

cd

ディレクトリを移動します。

cd

6.2.25

continue

継続実行をします。

c

6.2.9

delete

ブレークポイント・ウォッチポイントを削除します。

d

6.2.6

exec

ログインシェルを起動します。

ex

6.2.26

finish

関数を実行します。

f

6.2.10

help

ヘルプを表示します。

h

6.2.27

info breakpoints

ブレークポイントとウォッチポイントの情報を表示します。

i b

6.2.13

info coverage

デバッグ途中のカバレージ情報を表示します。

i c

6.2.14

info functions

関数情報を表示します。

i f

6.2.15

info jobsteps

ジョブステップ情報を表示します。

i j

6.2.16

info signals

シグナル情報を表示します。

i si

6.2.17

info status

ステータスを表示します。

i st

6.2.18

info variables

変数情報を表示します。

i v

6.2.19

joberrmode

エラー注入モードの有効/無効を設定します。

jem

6.2.20

kill

ジョブ定義スクリプトを終了します。

k

6.2.3

list

ソースファイルを表示します。

l

6.2.24

next

関数内で停止しないで逐次実行をします。

n

6.2.8

print

変数の値を表示します。

p

6.2.22

quit

デバッガを終了します。

q

6.2.1

return

関数を終了します。

ret

6.2.11

run

ジョブ定義スクリプトを実行します。

r

6.2.2

set

変数の値を設定します。

set

6.2.21

signal

シグナルを送信します。

si

6.2.12

step

関数内も含んで逐次実行をします。

s

6.2.8

watch

ウォッチポイントを設定します。

wa

6.2.5

where

バックトレースを表示します。

whe

6.2.23

デバッガコマンドを使用する場合，次の点に注意してください。

上の表にないコマンド名またはコマンドの短縮形をコマンドとして入力しないでください。

引数を指定できるコマンドで，引数の個数の上限を超えて指定しないでください。

引数を指定できないコマンドに引数を指定しないでください。

デバッガの標準入力への入力文字数の上限は4,094バイトです。それ以上の文字を入力しないでください。

6.1.5　ジョブ定義スクリプトの構成要素に対する停止可否

ジョブ定義スクリプトの各要素に対して，停止できるかどうかを次の表に示します。次の表で示す要素では，ブレークポイントや逐次実行などによる停止ができます。

表6‒3　ジョブ定義スクリプトの各要素に対しての停止可否

ジョブ定義スクリプトで使用する要素

内容

停止の可否

for文

for文であることを示します。

○

case文

case文であることを示します。

○

if文

if文であることを示します。

○

while文

while文であることを示します。

○

until文

until文であることを示します。

○

elif文

elif文であることを示します。

○

else文

else文であることを示します。

×

caseのパターン文

case文に指定するパターン文であることを示します。パターン文の内部の処理は含みません。

×

条件文の終端

if文，elif文のthen，またはfor文，while文，until文のdoなど，条件文の終端を示します。

×

ブロック終端

for文，while文，until文のdone，case文のesac，if文のfiなど，ブロック終端を示します。

×

関数定義開始

関数定義開始を示します。

×

関数定義終了

関数定義終了を示します。

×

関数実行開始

関数が開始することを示します。

○

関数実行終了

関数が終了することを示します。

×

スクリプト拡張コマンド

#-adshで始まるスクリプト拡張コマンドを示します。

○

シェル標準コマンド

シェルに組み込まれたコマンドを示します。

○

シェル拡張コマンド

シェル拡張コマンドを示します。

○

外部コマンド

実行可能な外部コマンドを示します。

○

代入演算，算術演算

代入演算および算術演算を示します。

○

ジョブ定義スクリプト終端（EOF）

メインのジョブ定義スクリプトが終了することを示します。

○

コメントおよびスペース

コメントおよびスペースを示します。

×

（凡例）

○：停止できます。

×：停止できません。

注意事項

別プロセスで実行されるコマンドでは停止しません。

例

　1: funcA(){
　2:  a=100
　3:  echo $a
　4: }
　5: funcA &
　6: pwd

上記ジョブ定義スクリプトで，5行目の「funcA &」の実行前で停止しているときにstepコマンドを実行すると，6行目の「pwd」の実行前で停止します。&の指定によって，関数funcAの内部のコマンドは別プロセスで実行されるため，停止しません。

シェルコマンドの引数に指定したコマンドでは停止しません。

Windowsの場合，シェルコマンドの引数にコマンド置換を指定すると，引数部分の実行前で1回停止でき，そのあと実際のコマンドの実行前で1回停止できます。また，コマンド置換を引数ではなくコマンドとして実行する場合でも，実行時に2回停止できます。

UNIXの場合，シェルコマンドの引数にコマンド置換を指定すると，コマンド全体の実行前に1回だけ停止できます。例を次に示します。

例

Windowsの場合

　echo `pwd`　←「`pwd`」の実行前と「echo」の実行前で1回ずつ停止できます。
　`echo pwd`　←「`echo pwd`」の実行前で2回停止できます。

UNIXの場合

　echo `pwd`　←「echo `pwd`」の実行前で1回停止できます。
　`echo pwd`　←「`echo pwd`」の実行前で1回停止できます。

スクリプト拡張コマンドを継続行で指定した場合，それぞれの行で停止できます。ただし，実際にスクリプト拡張コマンドが実行されるのは，最後の継続行を実行したときです。

代入演算のあとにスペース区切りでコマンドを指定した場合，デバッガのsetコマンドによる変数の書き換えは，先頭の代入演算での停止時に行ってください。また，各コマンドで停止するとき，それらのコマンド名には変数展開後の文字列が表示されます。

ジョブ定義スクリプト終端（EOF）にブレークポイントを設定できません。ただし，EOFではウォッチポイント，逐次実行および停止シグナルの受信によって停止できます。

シェルのtrapコマンドのactionを実行中の場合，ブレークポイントで停止しません。ただし，UNIXの場合，ウォッチポイント，逐次実行，および停止シグナルの受信によって停止できます。

timeコマンドの引数に関数呼び出しを指定して実行した場合，呼び出された関数内でウォッチポイントまたは停止シグナルの受信によって停止判定を満たすと，timeコマンドを実行したあとに停止できるコマンドの実行前で停止します。

コマンドをグループ化（子プロセスで実行）している場合，「)」が記述されている部分に停止できます。ただし，「)」の位置で停止しているとき，グループ化されたコマンド群は実行していない状態です。また，ブレークポイントも同様に，「)」が記述されている行に設定できます。「)」が記述されている行以外の行にブレークポイントを設定しようとすると，自動的に「)」が記述されている行に設定されます。例を次に示します。

例

　1: (      ←停止できない
　2: pwd    ←停止できない
　3: date   ←停止できない
　4: )      ←停止できる

コマンドを「{}」で括ってグループ化し，「&」などを付加して別プロセスでの実行を指定した場合，ブレークポイントを設定するとき，グループ化を1行で記述してください。複数行にわたって記述すると，設定したブレークポイントで停止できません。例を次に示します。

例

1行で指定する場合

　1: { pwd; date;} &

設定したブレークポイントで停止できない場合

　1: echo "test"
　2: {　　　　　　←設定および停止できない
　3: pwd    　　　←設定できるが，停止できない
　4: date　 　　　←設定できるが，停止できない
　5: } &    　　　←設定できないが，停止できる

上記の例では，3行目および4行目にブレークポイントを設定できますが，停止はできません。実際に停止できるのは5行目です。例えば，グループ化したコマンド群の1個前のコマンド（例では1行目のecho）から逐次実行した場合，5行目で停止できます。また，「}」の位置で停止している場合，グループ化したコマンド群は実行していない状態です。

コマンド置換だけをコマンドとして記述した場合，停止できる位置はコマンド置換の終端記号が記述されている行です。ただし，終端記号の位置で停止している場合，コマンド置換は実行していない状態です。ブレークポイントも同様に，終端記号の記述されている行に設定できます。終端記号の記述されている行以外の行にブレークポイントを設定すると，自動的に終端記号の記述されている行に設定されます。例を次に示します。

例1

　1: $(          ←停止できない
　2: echo pwd　　←停止できない
　3: )　         ←停止できる

例2

　1: `echo pwd`  ←停止できる

コマンド置換だけをコマンドとして記述した場合およびbuiltinコマンド，commandコマンド，timeコマンドの引数にコマンド置換だけを記述した場合，コマンド置換の次のコマンドの実行前で停止したいときは，コマンド置換の結果がNULL，スペースおよびコメントのどれにもならないようにしてください。

パイプで連結したコマンド群の実行中に停止させた場合や，コマンドのバックグラウンド実行後に停止させた場合，プロンプト文字列「(adshdb)」が連続して出力されることがあります。

6.2　CUIのデバッガ【UNIX限定】

UNIXの実行環境の場合，デバッガはコマンドを利用して実行できます。CUIのデバッガのコマンドの記述形式を次に示します。

△₀コマンド名［△₁オプション］…［△₁オプション］［△₁オペランド］

最初にオプションを指定し，次にオペランドを指定します。オペランドとは，オプション名とオプション値のほかにコマンドに指定できる引数のことです。オプションの前にオペランドを指定した場合は，指定内容をすべてオペランドとして処理します。

オプションは「-オプション名［△₁値］」の形式で指定します。オプションを複数指定する場合，指定順序は任意です。

値のないオプションは連続して指定できます（例：「-a -b -c」と「-abc」は同じです）。その場合，最後のオプションには値を指定できます（例：「-abc xyz」の「xyz」は，オプション-cの値となります）。

不当なオプション，または指定できる範囲外の値を指定した場合，エラーとなります。

デバッガを起動する

デバッガは，バッチジョブを実行するコマンド（adshexecコマンド）に-dオプションとジョブ定義スクリプトファイルのパス名を指定することで起動できます。

起動したデバッガはプロンプト文字列”(adshdb)”を出力し，ユーザーからの入力待ち状態となります。ユーザーからのコマンド入力を受け付けたデバッガは，コマンドに対応する処理を実行します。処理が終了したら，プロンプト文字列を出力し，入力待ち状態となります。この動作をデバッガが終了するまで続けます。

入力待ち状態時にシグナルを受信し，再度入力待ちに戻る場合にも，プロンプト文字列「(adshdb)」を出力します。

デバッガを起動する形式を次に示します。バッチジョブを実行するコマンドについては，「8.3　シェル運用コマンド」の「adshexecコマンド（バッチジョブを実行する）」を参照してください。

adshexec -d ジョブ定義スクリプトファイルのパス名

ジョブ定義スクリプトを一時停止する

デバッグ実行中にCtrl＋Cを入力することで，ジョブ定義スクリプトを一時停止できます。ジョブ定義スクリプトが無限ループしている場合などに停止させる手段として有効です。

注意事項

スクリプト拡張コマンド，シェル拡張コマンド，シェル標準コマンドまたはスクリプト予約語コマンドの実行時にCtrl＋Cを入力すると，コマンドの実行完了後に，次に停止可能な命令の前で停止します。

外部コマンドをフォアグラウンドで実行しているときにCtrl＋Cを入力した場合は，外部コマンドの動作に従います。

6.2.1　デバッガを終了する（quitコマンド）

デバッガを終了するコマンドは，quitコマンドです。quitコマンドの短縮形は"q"です。quitコマンドの形式を次に示します。

quit

quitコマンドを実行した場合の動作を次に示します。

quitコマンドの後ろに引数を指定しない場合

ジョブ定義スクリプトが実行されている状態でquitコマンドを実行すると，デバッガを終了するかどうかの確認メッセージが出力されます。デバッガを終了する場合は，yまたはYを入力してください。

ジョブ定義スクリプトが実行されていないときは，そのままデバッガを終了します。

quitコマンドの後ろに引数を指定した場合

コマンドを実行すると，エラーとなります。

注意事項

quitコマンドで終了させたジョブ定義スクリプトは，エラー終了とします。該当するジョブおよびジョブステップの終了コードは128になります。

6.2.2　ジョブ定義スクリプトを実行する（runコマンド）

デバッグ対象のジョブ定義スクリプトを実行するコマンドは，runコマンドです。runコマンドを実行した場合，adshexecコマンド起動時の環境変数を取り込み，ジョブ定義スクリプトの実行を開始します。runコマンドの短縮形は"r"です。runコマンドの形式を次に示します。

run［ 引数］

ジョブ定義スクリプトが実行されている状態でrunコマンドを実行すると，再実行するかどうかの確認メッセージが出力されます。

runコマンドの後ろに引数を指定しない場合

ジョブ定義スクリプトを再実行する場合は，yまたはYを入力してください。

ジョブ定義スクリプトが実行されていないときは，実行を開始するメッセージのあとにジョブ定義スクリプトを実行します。

runコマンドの後ろに引数を指定した場合

指定した引数を実行時パラメーターとして定義してジョブ定義スクリプトを再実行する場合は，yまたはYを入力してください。

ジョブ定義スクリプトが実行されていないときは，実行を開始するメッセージのあとに，指定した引数を実行時パラメーターとして定義してジョブ定義スクリプトを実行します。

注意事項

runコマンドで再実行した場合，それまでに実行していたジョブ定義スクリプトはエラー終了とします。該当するジョブおよびジョブステップの終了コードは128になります。

6.2.3　ジョブ定義スクリプトを終了する（killコマンド）

デバッグ中のジョブ定義スクリプトを終了するコマンドは，killコマンドです。ジョブ定義スクリプトを終了しても，デバッガ自体は終了しません。killコマンドの短縮形は"k"です。killコマンドの形式を次に示します。

kill

ジョブ定義スクリプトが実行されている状態でkillコマンドを実行すると，ジョブ定義スクリプトを終了するかどうかの確認メッセージが出力されます。ジョブ定義スクリプトを終了する場合は，yまたはYを入力してください。

ジョブ定義スクリプトが実行されていない，またはkillコマンドの後ろに引数を指定した場合は，エラーメッセージが出力されます。

注意事項

killコマンドで終了したジョブ定義スクリプトは，エラー終了とします。該当するジョブおよびジョブステップの終了コードは128になります。

6.2.4　ブレークポイントを設定する（breakコマンド）

ブレークポイントを設定するコマンドは，breakコマンドです。breakコマンドの短縮形は"b"です。

設定したブレークポイントには，1から順に番号が割り当てられます。番号の割り当てはウォッチポイントと共通です。実行中のジョブ定義スクリプトがブレークポイントに到達すると実行を停止し，停止位置のブレークポイント情報を表示します。breakコマンドの形式を次に示します。

行番号を指定する場合

break［ ［ジョブ定義スクリプトファイル名:］行番号］

breakコマンドの引数に行番号を指定すると，指定した行にブレークポイントを設定します。

関数名を指定する場合

break 関数名

breakコマンドの引数に関数名を指定すると，指定した関数にブレークポイントを設定します。

ジョブステップ名を指定する場合

break -s ［ジョブ定義スクリプトファイル名:］ジョブステップ名

-sオプションを指定し，ジョブステップ名を指定すると，ジョブステップ名が定義されている行にブレークポイントを設定できます。

引数に”:”を使用すれば，ジョブ定義スクリプトファイル名を指定してブレークポイントを設定できます。ただし，関数名を指定する場合はそのとき有効になっている1個の関数が対象となるため，ファイル名を指定する必要はありません。

breakコマンドを実行した場合の動作を次に示します。

breakコマンドの後ろに引数を指定しない場合

現在停止中の行にブレークポイントを設定します。ただし，ジョブ定義スクリプトが実行されていないときは，1行目以降で最初に停止できる行にブレークポイントを設定します。設定したブレークポイントの情報を表示します。

breakコマンドの後ろに引数を指定した場合

指定した引数によって動作が異なります。詳細を次に示します。

行番号

引数に指定した行にブレークポイントを設定します。設定したブレークポイントの情報を表示します。指定した行がない場合，エラーとなります。

関数名

引数に指定した関数にブレークポイントを設定します。設定したブレークポイントの情報を表示します。ブレークポイントの位置は，関数定義内で最初に停止できる行になります。指定した関数がない場合，エラーとなります。

-s ジョブステップ名

引数に指定したジョブステップにブレークポイントを設定します。設定したブレークポイントの情報を表示します。指定したジョブステップがない場合，エラーとなります。

ジョブ定義スクリプトファイル名

指定するファイル名には，バッチジョブを実行するコマンドに指定したファイルまたはスクリプト拡張コマンドの#-adsh_scriptに指定したファイルを指定してください。指定したファイル名をブレークポイント設定の対象とします。また，ファイル名の指定を省略すると，カレントファイルをブレークポイント設定の対象とします。

注意事項

ジョブ定義スクリプトファイル名の指定は，最後に入力された”:”の前までの文字列をファイル名と見なします。

行番号は0以上の整数を入力してください。先頭に「+」は付けません。

行番号の指定時にint型の範囲を超えた数値を入力した場合，int型の上限値に丸めて扱います。

同じ名称のジョブステップが複数存在する場合，それらすべてにブレークポイントを設定します。

設定できるブレークポイントとウォッチポイントの番号を合わせて上限は999です。合計数が上限の999に達してから新たにブレークポイントまたはウォッチポイントを設定したい場合は，デバッガをいったん終了してください。上限値に達した場合，deleteコマンドでブレークポイントやウォッチポイントを削除しても，設定できません。

停止できるコマンドが1つ以上含まれている行であれば，ブレークポイントを設定できます。1行に複数の停止できるコマンドがある場合，各コマンドの実行前に停止します。

行番号の指定で，停止できないコマンドだけで構成される行を指定した場合，警告メッセージが出力され，次に停止できるコマンドがある行にブレークポイントが設定されます。

次に停止できるコマンドがない場合は，エラーメッセージが出力されます。

関数の内部に停止できるコマンドが1つも定義されていない状態で関数名を指定すると，関数定義の終了以降の行で停止できるコマンドがある行にブレークポイントを設定します。また，関数定義と同じ行に停止できるコマンドがある場合，そのコマンドが関数内のコマンドかどうかに関係なく，関数定義のある行にブレークポイントを設定します。

ジョブステップを定義するスクリプト拡張コマンドを複数行に分けて記述している場合，ジョブステップ指定で設定するブレークポイントの行番号は，先頭のスクリプト拡張コマンドが記述されている行番号になります。

外部スクリプトに対するブレークポイントの設定は，その外部スクリプトを呼び出す側のジョブ定義スクリプト中で，その外部スクリプトをスクリプト拡張コマンド#-adsh_scriptに指定して呼び出したときにだけ可能です。#-adsh_scriptに指定していない外部スクリプト内では停止できません。

同一の行に設定できるブレークポイントの数は1個です。ブレークポイントを設定済みの行には設定できません。

デバッグ実行中のジョブ定義スクリプトが次に示すどちらかの状態の場合は，breakコマンドに引数を指定しないで実行しないでください。

・ジョブ定義スクリプト終端(EOF)で停止している

・trapコマンドのactionを実行中に停止している

使用例

ジョブ定義スクリプトの8行目にブレークポイントを設定してジョブ定義スクリプトを実行すると，8行目の「funcA」の実行前で停止します。

1: funcA(){
2:   echo "funcA"
3:   num=10
4: }
5:
6: val=1
7: num=2
8: funcA
9: echo $num

(adshdb) break 8
KNAX7018-I Breakpoint "1": filename="test.ash" line=8
(adshdb) run
…
KNAX7018-I Breakpoint "1": filename="test.ash" line=8
KNAX7032-I Stop in the script "test.ash".
8: funcA
Current: funcA
(adshdb)

6.2.5　ウォッチポイントを設定する（watchコマンド）

ウォッチポイントを設定するコマンドは，watchコマンドです。watchコマンドの短縮形は"wa"です。

設定したウォッチポイントには，1から順に番号が割り当てられます。番号割り当てはブレークポイントと共通です。watchコマンドの形式を次に示します。

watch 変数名

watchコマンドの引数には変数名を指定します。指定した変数の値が更新された場合，ジョブ定義スクリプトは次に停止可能なコマンドの前で実行を停止し，ウォッチポイント情報を表示します。

watchコマンドを実行した場合の動作を次に示します。

watchコマンドの後ろに引数を指定した場合

指定した変数にウォッチポイントを設定します。また，設定したウォッチポイントの情報を表示します。

watchコマンドの後ろに引数を指定しない場合

エラーメッセージが出力されます。

ウォッチポイントによってジョブ定義スクリプトの実行が停止した場合，ウォッチポイント情報として更新前の値，更新後の値および変数を更新した行の行番号を表示します。表示形式を次に示します。

Old Value = 更新前の値
New Value = 更新後の値
Line = 行番号

更新前の値：更新される前のウォッチ対象の変数の値です。値がない場合，<No value>と表示します。

更新後の値：更新されたあとのウォッチ対象の変数の値です。値がない場合，<No value>と表示します。

行番号：変数を更新した行の行番号です。trapコマンドのactionを実行中の場合は，<Trap action>と表示します。ジョブ定義スクリプト終端の場合，<EOF>と表示します。

注意事項

変数名に配列を指定する場合は，要素ごとに指定します。

例

　通常の変数指定：aaa

　配列指定：aaa[1]

変数とその配列の0番目（例：aaaとaaa[0]）は同じです。ただし，ウォッチポイントはそれぞれに設定できます。

変数名に$を付けると変数名として認識されません。

引数に変数名を指定する段階では，指定した変数が存在するかどうかは判断しません。

変数の命名規則から外れた変数名を指定した場合，エラーメッセージが出力されます。

更新前の変数の値と同じ値が代入された場合でも，ウォッチポイントとして停止します。

シェル標準コマンドのtypesetコマンドを使用して変数の値を文字列型から整数型に変更した場合，または整数型から文字列型に変更した場合，ウォッチポイントとして停止します。

関数名と変数名の命名規則が同じため，引数に関数名を指定するとウォッチポイントとして設定できます。ただし，設定した関数名と同名の変数の値が更新されないかぎり，ジョブ定義スクリプトの実行は停止しません。

1行に複数のコマンドがあり，ウォッチ対象の変数の値が更新された場合，同じ行であっても次に停止できるコマンドの前で停止します。

設定できるブレークポイントとウォッチポイントの番号を合わせて上限は999です。合計数が上限の999に達してから新たにブレークポイントまたはウォッチポイントを設定したい場合は，デバッガをいったん終了してください。上限値に達した場合，deleteコマンドでブレークポイントやウォッチポイントを削除しても，設定できません。

ジョブ定義スクリプトが停止しているときにsetコマンドでウォッチ対象の変数の値を変更し，ジョブ定義スクリプトの実行を再開すると，次に停止できるコマンドの前で実行を停止します。

同一の変数に設定できるウォッチポイントの数は1個です。ウォッチポイントとして設定済みの変数は，ウォッチポイントとして設定できません。

次のコマンドでウォッチ対象の変数の値が更新された場合，ジョブ定義スクリプトの実行は停止しません。

・バックグラウンドで実行したコマンド(&または|&)

・パイプで連結したコマンド

・「(」「)」で囲んでコマンドのグループ化をしたコマンド群

・外部コマンドのように別プロセスで実行されるコマンド

例

　1： a=1 &

　2： b=2

　3： c=3

上記の例で変数aにウォッチポイントを設定し，ジョブ定義スクリプトを実行した場合，代入式「a=1」はバックグラウンドで実行されるため，ジョブ定義スクリプトの実行は停止しません。

使用例

次のジョブ定義スクリプトに対して「watch b」と指定すると，変数bにウォッチポイントを設定できます。

1: echo "start"
2: a=1
3: b=5
4: c=10
5: echo "end"

その後，ジョブ定義スクリプトを実行して代入式「b=5」が実行されると，ウォッチポイント情報を表示し，4行目の「c=10」の実行前で停止します。

KNAX7023-I Watchpoint "1": variable "b"
Old Value = <No value>
New Value = 5
Line = 3
KNAX7032-I Stop in the script "test.ash".
4: c=10
Current: c=10
(adshdb)

6.2.6　ブレークポイント・ウォッチポイントを削除する（deleteコマンド）

ブレークポイントまたはウォッチポイントを削除するコマンドは，deleteコマンドです。deleteコマンドの短縮形は"d"です。deleteコマンドの形式を次に示します。

delete［ ブレークポイント・ウォッチポイント番号［-ブレークポイント・ウォッチポイント番号］］

deleteコマンドの引数に番号を指定すると，対応するブレークポイントまたはウォッチポイントを削除できます。また，”-”を使用して番号の範囲を指定できます。例えば，番号1から番号5までのポイントを削除したい場合は，「1-5」と指定します。引数を省略すると，すべてのブレークポイントとウォッチポイントを削除します。

deleteコマンドを実行した場合の動作を次に示します。

deleteコマンドの後ろに引数を指定しない場合

ブレークポイントまたはウォッチポイントが1つ以上設定されているときは，すべてのブレークポイントとウォッチポイントを削除するかどうかの確認メッセージが出力されます。削除する場合は，yまたはYを入力してください。

ブレークポイントまたはウォッチポイントが1つも設定されていないときは，エラーメッセージが出力されます。

deleteコマンドの後ろに引数を指定した場合

ブレークポイント・ウォッチポイント番号

指定した番号のブレークポイントまたはウォッチポイントを削除します。指定した番号が存在しない場合，エラーメッセージが出力されます。

番号-番号

「-」の前の番号から後ろの番号までの範囲にあるブレークポイントとウォッチポイントを削除します。指定した範囲内に含まれる番号のウォッチポイントおよびブレークポイントがすべて削除されます。指定した範囲内にウォッチポイントおよびブレークポイントがひとつも含まれない場合，エラーメッセージが出力されます。

上記以外

エラーメッセージが出力されます。

注意事項

引数の番号は0以上の整数を入力してください。先頭に「+」は付けません。

番号を範囲指定した場合，前の値と後ろの値が等しいときは，その番号だけを対象とします。

番号を範囲指定した場合，前の値より後ろの値が小さいときは，エラーメッセージが出力されます。

番号の指定時にint型の範囲を超えた数値を入力した場合，int型の上限値に丸めて扱います。

6.2.7　ジョブ定義スクリプトの実行を再開するコマンド

ジョブ定義スクリプトの実行を再開する場合，次の3つの方法があります。

逐次実行

ジョブ定義スクリプトが停止した位置から1つのコマンドを実行します。逐次実行をするコマンドは，stepコマンドおよびnextコマンドです。

継続実行

停止したジョブ定義スクリプトの実行を継続します。継続実行をするコマンドは，continueコマンドです。

関数を実行

関数の中で実行を停止しているときに，関数からリターンするまでジョブ定義スクリプトを実行します。関数を実行するコマンドは，finishコマンドです。

また，関数を終了するコマンドは，returnコマンドです。ジョブ定義スクリプトにシグナルを送信するコマンドは，signalコマンドです。

コマンドを実行したあとにジョブ定義スクリプトの実行が停止すると，メッセージ，次に実行予定の行番号，ソースファイル行を表示します。表示形式を次に示します。

バッチジョブを実行するコマンドに指定したジョブ定義スクリプトファイルおよびスクリプト拡張コマンドの#-adsh_scriptに指定したジョブ定義スクリプトファイルの場合

行番号: ソースファイル行
Current: コマンド文字列

行番号：次に実行するコマンドの行番号です。

ソースファイル行：行番号に対応するソースファイルの行の内容です。

コマンド文字列：次に実行するコマンド文字列です。

スクリプト拡張コマンドの#-adsh_scriptに指定していない外部スクリプトの場合

Line: 行番号
Current: コマンド文字列

行番号：次に実行するコマンドの行番号です。

コマンド文字列：次に実行するコマンド文字列です。

注意事項

別プロセスで実行されるジョブ定義スクリプトの場合，コマンド文字列に<Another process script>と表示されます。

デバッグ中のジョブ定義スクリプトがtrapコマンドのactionを実行中の場合は，次の表示形式になります。

　　Line: <Trap action>
　　Current: コマンド文字列

ジョブ定義スクリプト終端(EOF)の場合は，次の表示形式になります。

　　Current: <EOF>

出力例

次に実行予定の行番号とソースファイル行を表示します。

バッチジョブを実行するコマンドに指定したジョブ定義スクリプトファイルおよびスクリプト拡張コマンドの#-adsh_scriptに指定したジョブ定義スクリプトファイルの場合

100: echo "aaa"   ←次に実行する処理は100行目の「echo "aaa"」
Current: echo     ←その時に実行されるコマンドは「echo」

スクリプト拡張コマンドの#-adsh_scriptに指定していない外部スクリプトの場合

Line: 50          ←次に実行されるのは外部スクリプトの50行目にある処理
Current: num=1    ←その時に実行される処理は「num=1」

6.2.8　逐次実行をする（stepコマンド，nextコマンド）

ジョブ定義スクリプトが停止した位置から1つのコマンドを実行するコマンドは，stepコマンドおよびnextコマンドです。stepコマンドは停止した位置の1つのコマンドで関数が呼ばれている場合，関数内に入ります。nextコマンドは停止した位置の1つのコマンドで関数が呼ばれていても，関数内で停止しないで実行します。stepコマンドの短縮形は"s"，nextコマンドの短縮形は"n"です。

(1)　stepコマンド

stepコマンドの形式を次に示します。

step

stepコマンドを実行した場合の動作を次に示します。

stepコマンドの後ろに引数を指定しない場合

ジョブ定義スクリプトが実行中で停止している状態でstepコマンドを実行すると，ジョブ定義スクリプトが停止した位置から1つのコマンドを実行します。関数が呼ばれている場合は関数内に入ります。

ジョブ定義スクリプトが実行されていないときは，エラーメッセージが出力されます。

stepコマンドの後ろに引数を指定した場合

コマンドを実行すると，エラーとなります。

注意事項

シェル標準コマンドのevalコマンドの引数に関数呼び出しを指定している場合，evalコマンドを逐次実行すると，その関数呼び出しを実行したあとの停止位置は，stepコマンドの動作に従います。

使用例

6行目の「val=1」の実行前で停止しているときにstepコマンドを実行すると，7行目の「num=2」の実行前で停止します。

1: funcA(){
2:   echo "funcA"
3:   num=10
4: }
5:
6: val=1
7: num=2
8: funcA
9: echo $num

6: val=1
Current: val=1
(adshdb) step
…
KNAX7032-I Stop in the script "test.ash".
7: num=2
Current: num=2
(adshdb)

8行目の関数呼び出し「funcA」の実行前で停止しているときにstepコマンドを実行すると，2行目の「echo」の実行前で停止します。

8: funcA
Current: funcA
(adshdb) step
KNAX7032-I Stop in the script "test.ash".
2:   echo "funcA"
Current: echo
(adshdb)

(2)　nextコマンド

nextコマンドの形式を次に示します。

next

nextコマンドを実行した場合の動作を次に示します。

nextコマンドの後ろに引数を指定しない場合

ジョブ定義スクリプトが実行中で停止している状態でnextコマンドを実行すると，ジョブ定義スクリプトが停止した位置から1つのコマンドを実行します。関数が呼ばれていても関数内で停止しません。

ジョブ定義スクリプトが実行されていないときは，エラーメッセージが出力されます。

nextコマンドの後ろに引数を指定した場合

コマンドを実行すると，エラーとなります。

注意事項

nextコマンドを実行した場合，次の1コマンドで関数が呼ばれて，その関数内でブレークポイント，ウォッチポイントおよびシグナルによる停止判定を満たしたとき，ジョブ定義スクリプトの実行を停止します。

シェル標準コマンドのevalコマンドの引数に関数呼び出しを指定している場合，evalコマンドを逐次実行すると，その関数呼び出しを実行したあとの停止位置は，nextコマンドの動作に従います。

使用例

6行目の「val=1」の実行前で停止しているときにnextコマンドを実行すると，7行目の「num=2」の実行前で停止します。

1: funcA(){
2:   echo "funcA"
3:   num=10
4: }
5:
6: val=1
7: num=2
8: funcA
9: echo $num

6: val=1
Current: val=1
(adshdb) next
…
KNAX7032-I Stop in the script "test.ash".
7: num=2
Current: num=2
(adshdb)

8行目の関数呼び出し「funcA」の実行前で停止しているときにnextコマンドを実行すると，9行目の「echo」の実行前で停止します。

8: funcA
Current: funcA
(adshdb) next
…
KNAX7032-I Stop in the script "test.ash".
9: echo $num
Current: echo
(adshdb)

6.2.9　継続実行をする（continueコマンド）

停止したジョブ定義スクリプトの実行を継続するコマンドは，continueコマンドです。continueコマンドは，停止した位置からジョブ定義スクリプトの実行を継続します。continueコマンドの短縮形は"c"です。continueコマンドの形式を次に示します。

continue

continueコマンドを実行した場合の動作を次に示します。

continueコマンドの後ろに引数を指定しない場合

ジョブ定義スクリプトが実行中で停止している状態でcontinueコマンドを実行すると，継続実行を示すメッセージが出力され，ジョブ定義スクリプトの実行を再開します。

ジョブ定義スクリプトが実行されていないときは，エラーメッセージが出力されます。

continueコマンドの後ろに引数を指定した場合

コマンドを実行すると，エラーとなります。

6.2.10　関数を実行する（finishコマンド）

関数からリターンするまでジョブ定義スクリプトを実行するコマンドは，finishコマンドです。finishコマンドの短縮形は"f"です。finishコマンドの形式を次に示します。

finish

finishコマンドを実行した場合の動作を次に示します。

finishコマンドの後ろに引数を指定しない場合

関数内で停止しているときは，現在の関数の終わりまで実行するというメッセージが出力され，関数の終わりまでジョブ定義スクリプトを実行します。ジョブ定義スクリプトの実行が停止すると，停止位置のフレーム情報を表示し，次に実行予定の行番号とそのソースファイル行を表示します。停止位置のフレーム情報の表示形式を次に示します。

停止位置のフレーム情報

Num  Function  File:Line
フレーム番号  関数名  ファイル名:行番号

フレーム番号：フレームの番号です。フレーム番号には常に0を表示します。

関数名：フレーム情報に対応する関数名に，関数を呼び出しているジョブ定義スクリプトファイル名を付けた名称です。関数が呼び出されていない状態の場合，関数名を<main>として表示します。63バイトまで表示できます。

ファイル名：現在停止中のファイル名を示します。

行番号：現在停止中の行番号を示します。

ジョブ定義スクリプト終端で停止している場合は<EOF>と表示します。trapコマンドのactionを実行中に停止している場合は<Trap action>と表示します。

どの関数にも入っていない状態で停止しているときおよびジョブ定義スクリプトが実行されていないときは，エラーメッセージが出力されます。

finishコマンドの後ろに引数を指定した場合

コマンドを実行すると，エラーとなります。

注意事項

関数内の後続の行で，ブレークポイント，ウォッチポイントおよびシグナルによる停止判定を満たした場合，ジョブ定義スクリプトの実行を停止します。

使用例

2行目の「echo」の実行前で停止しているときにfinishコマンドを実行すると，9行目の「echo」の実行前で停止し，フレーム情報を表示します。

1: funcA(){
2:   echo "funcA"
3:   num=10
4: }
5:
6: val=1
7: num=2
8: funcA
9: echo $num

2:   echo "funcA"
Current: echo
(adshdb) finish
KNAX7036-I Run till exit of current function.
…
Num  Function  File:Line
0    <main>    test.ash:9
KNAX7032-I Stop in the script "test.ash".
9: echo $num
Current: echo
(adshdb)

6.2.11　関数を終了する（returnコマンド）

関数を終了するコマンドは，returnコマンドです。returnコマンドを実行した場合，関数内の現在位置以降の行は実行されないで，関数の呼び出し元に戻ります。returnコマンドの短縮形は"ret"です。returnコマンドの形式を次に示します。

return

returnコマンドを実行した場合の動作を次に示します。

returnコマンドの後ろに引数を指定しない場合

関数内で停止しているときは，現在の関数を終了するかどうかの確認メッセージが出力されます。現在の関数を終了し，関数の呼び出し元に戻る場合は，yまたはYを入力してください。呼び出し元のフレーム情報を表示し，次に実行予定の行番号とそのソースファイル行を表示します。呼び出し元のフレーム情報の表示形式を次に示します。

呼び出し元のフレーム情報

Num  Function  File:Line
フレーム番号  関数名  ファイル名:行番号

フレーム番号：フレームの番号です。フレーム番号には常に0を表示します。

関数名：フレーム情報に対応する関数名に，関数を呼び出しているジョブ定義スクリプトファイル名を付けた名称です。関数が呼び出されていない状態の場合，関数名を<main>として表示します。63バイトまで表示できます。

ファイル名：現在停止中のファイル名を示します。

行番号：現在停止中の行番号を示します。

ジョブ定義スクリプト終端で停止している場合は<EOF>と表示します。trapコマンドのactionを実行中に停止している場合は<Trap action>と表示します。

どの関数にも入っていない状態で停止しているときおよびジョブ定義スクリプトが実行されていないときは，エラーメッセージが出力されます。

returnコマンドの後ろに引数を指定した場合

コマンドを実行すると，エラーとなります。

注意事項

関数内の後続の行で，ブレークポイント，ウォッチポイントおよびシグナルによる停止判定を満たしても，ジョブ定義スクリプトの実行を停止しないで関数を終了します。

使用例

2行目の「echo」の実行前で停止しているときにreturnコマンドを実行すると，9行目の「echo」の実行前で停止し，フレーム情報を表示します。3行目の「num=10」はスキップされます。

1: funcA(){
2:   echo "funcA"
3:   num=10
4: }
5:
6: val=1
7: num=2
8: funcA
9: echo $num

2:   echo "funcA"
Current: echo
(adshdb) return
KNAX7037-I Exit the current function? (y or n)
y
KNAX7068-I Commands are skipped until end of function.
…
Num  Function  File:Line
0    <main>    test.ash:9
KNAX7032-I Stop in the script "test.ash".
9: echo $num
Current: echo
(adshdb)

6.2.12　シグナルを送信する（signalコマンド）

ジョブ定義スクリプトにシグナルを送信するコマンドは，signalコマンドです。signalコマンドの短縮形は"si"です。signalコマンドの形式を次に示します。

signal ｛シグナル名|シグナル番号｝

引数にシグナル名またはシグナル番号を指定すると，対応するシグナルを送信し，ジョブ定義スクリプトを継続実行します。引数に指定できるシグナルの情報を表示するには，info signalsコマンドを使用してください。また，シグナル受信時の動作については，「3.11.2　シグナル受信時の動作【UNIX限定】」を参照してください。

signalコマンドを実行した場合の動作を次に示します。

signalコマンドの後ろに引数を指定した場合

ジョブ定義スクリプトが実行されている状態でsignalコマンドを実行すると，次のようになります。

シグナル番号およびシグナル名

指定したシグナルを送信するというメッセージが出力されます。そのあと，指定したシグナルをジョブ定義スクリプトに送信し，ジョブ定義スクリプトを継続実行します。

存在しないシグナルのときおよびジョブ定義スクリプトが実行されていないときは，エラーメッセージが出力されます。

signalコマンドの後ろに引数を指定しない場合

ジョブ定義スクリプトが実行中で停止している状態でsignalコマンドを実行すると，エラーメッセージが出力されます。

ジョブ定義スクリプトが実行されていないときも，エラーメッセージが出力されます。

注意事項

引数の番号は0以上の整数を入力してください。先頭に「+」は付けません。

番号の指定時にint型の範囲を超えた数値を入力した場合，int型の上限値に丸めて扱います。

AIXの場合に次のシグナルを送信したいときは，シグナル番号，または同一シグナル番号であるほかのシグナル名を指定してください。

SIGLOSTまたはSIGIOTを送信したいとき：シグナル番号6，またはSIGABRTを指定します。

SIGPOLLを送信したいとき：シグナル番号23，またはSIGIOを指定します。

HP-UXの場合に次のシグナルを送信したいときは，シグナル番号，または同一シグナル番号であるほかのシグナル名を指定してください。

SIGIOTを送信したいとき：シグナル番号6，またはSIGABRTを指定します。

SIGPOLLを送信したいとき：シグナル番号22，またはSIGIOを指定します。

Solarisの場合に次のシグナルを送信したいときは，シグナル番号，または同一シグナル番号であるほかのシグナル名を指定してください。

SIGIOTを送信したいとき：シグナル番号6，またはSIGABRTを指定します。

SIGPOLLを送信したいとき：シグナル番号22，またはSIGIOを指定します。

6.2.13　ブレークポイント・ウォッチポイントの情報を表示する（info breakpointsコマンド）

設定されているブレークポイントとウォッチポイントの情報を表示するコマンドは，info breakpointsコマンドです。info breakpointsコマンドの短縮形は"i b"です。info breakpointsコマンドの形式を次に示します。

info breakpoints［ ブレークポイント・ウォッチポイント番号］

引数にブレークポイントまたはウォッチポイントの番号を指定すると，対応するブレークポイントまたはウォッチポイントの情報を表示します。引数を省略すると，すべてのブレークポイントとウォッチポイントの情報を表示します。表示形式を次に示します。

Num  Type        What
番号  breakpoint/watchpoint  ファイル名:行番号/変数名
…

番号：ブレークポイント・ウォッチポイント番号です。左詰めで3桁まで表示できます。

ファイル名：ジョブ定義スクリプトファイル名です。

行番号：ブレークポイントが設定されている行番号です。

変数名：watchコマンドで指定した変数名です。

info breakpointsコマンドを実行した場合の動作を次に示します。

info breakpointsコマンドの後ろに引数を指定しない場合

ブレークポイントまたはウォッチポイントが1つ以上設定されているときは，すべてのブレークポイントとウォッチポイントを表示します。

ブレークポイントまたはウォッチポイントが1つも設定されていないときは，メッセージが出力されます。

info breakpointsコマンドの後ろに引数を指定した場合

ブレークポイント・ウォッチポイント番号

番号が存在するときは，指定した番号のブレークポイントまたはウォッチポイントの情報を表示します。

番号が存在しないときは，エラーメッセージが出力されます。

上記以外

エラーメッセージが出力されます。

注意事項

引数の番号は0以上の整数を入力してください。先頭に「+」は付けません。

番号の指定時にint型の範囲を超えた数値を入力した場合，int型の上限値に丸めて扱います。

出力例

ブレークポイントとウォッチポイントを表示します。

Num  Type        What
1    breakpoint  sample.ash:100
2    watchpoint  rc

6.2.14　カバレージ情報を表示する（info coverageコマンド）

デバッグ途中のカバレージ情報を表示するコマンドは，info coverageコマンドです。info coverageコマンドの短縮形は"i c"です。info coverageコマンドの形式を次に示します。

info coverage［ n1［-［n2］］
             ［,n3［-［n4］］］...］

n1，n2，n3，n4などの引数には行番号を指定します。引数に指定した範囲の行のカバレージ情報を表示します。引数を指定しない場合，すべてのカバレージ情報を表示します。

使用例

1行目〜10行目と15行目と21行目以降のカバレージ情報を表示します。

info coverage 1-10,15,21-

カバレージ情報の表示の詳細については，「3.10　カバレージ情報を取得する」を参照してください。

6.2.15　関数情報を表示する（info functionsコマンド）

関数情報を表示するコマンドは，info functionsコマンドです。info functionsコマンドの短縮形は"i f"です。info functionsコマンドの形式を次に示します。

info functions［ 関数名］

引数に関数名を指定すると，その関数名とそれに対応するファイル名および行番号を表示します。引数を省略すると，すべての関数名とそれに対応するファイル名および行番号を表示します。表示形式を次に示します。

Function  File:Line
関数名  ファイル名:行番号
…

関数名：定義されている関数名です。関数名ごとにASCIIコード順で表示します。31バイトまで表示できます。32バイト目以降は表示されません。関数名の長さに合わせて調節し，カラムを合わせます。

ファイル名：関数が定義されているジョブ定義スクリプトファイル名です。

行番号：関数が定義されている行番号です。

info functionsコマンドを実行した場合の動作を次に示します。

info functionsコマンドの後ろに引数を指定しない場合

すべての関数名とそれに対応するファイル名および行番号を表示します。

info functionsコマンドの後ろに引数を指定した場合

存在する関数名

指定した関数名とそれに対応するファイル名および行番号を表示します。

上記以外

エラーメッセージが出力されます。

注意事項

ジョブ定義スクリプトと，スクリプト拡張コマンドの#-adsh_scriptに指定した外部スクリプトの関数情報は，adshexecコマンドの起動時に自動的に取り込まれるため，ジョブ定義スクリプトを実行する前でも参照できます。ただし，スクリプト拡張コマンドの#-adsh_scriptに指定していない外部スクリプト中に記述している関数は，runコマンドによるジョブ定義スクリプト実行中，かつその関数を定義している処理を完了するまでは，関数情報は表示されません。

出力例

関数名とそれに対応するファイル名および行番号を表示します。

Function  File:Line
funcA     script1.ash:100
funcB     script2.ash:10
funcXXX   script1.ash:50

6.2.16　ジョブステップ情報を表示する（info jobstepsコマンド）

ジョブステップ情報を表示するコマンドは，info jobstepsコマンドです。info jobstepsコマンドの短縮形は"i j"です。info jobstepsコマンドの形式を次に示します。

info jobsteps［ ジョブステップ名］

引数にジョブステップ名を指定すると，そのジョブステップ名とそれに対応するファイル名および行番号を表示します。引数を省略すると，すべてのジョブステップ名とそれに対応するファイル名および行番号を表示します。表示形式を次に示します。

Jobstep  File:Line
ジョブステップ名  ファイル名:行番号
…

ジョブステップ名：定義されているジョブステップ名です。ジョブステップ名をASCIIコード順に並べて表示します。31バイトまで表示できます。ジョブステップ名の長さに合わせて調節し，カラムを合わせます。ジョブステップ名が省略されている場合，ジョブステップ名を<No name>と表示します。

ファイル名：ジョブステップが定義されているジョブ定義スクリプトファイル名です。

行番号：ジョブステップが定義されている行番号です。

info jobstepsコマンドを実行した場合の動作を次に示します。

info jobstepsコマンドの後ろに引数を指定しない場合

すべてのジョブステップ名とそれに対応するファイル名および行番号を表示します。

info jobstepsコマンドの後ろに引数を指定した場合

ジョブステップ名が存在するときは，指定したジョブステップ名とそれに対応するファイル名および行番号を表示します。

ジョブステップ名が存在しないときは，エラーメッセージが出力されます。

注意事項

ジョブステップ情報はadshexecコマンド起動時に取り込んでいるため，runの実行前後に関係なく表示できます。

出力例

ジョブステップ名とそれに対応するファイル名および行番号を表示します。

Jobstep  File:Line
step1    script1.ash:10
step2    script1.ash:30
step3    script2.ash:10

6.2.17　シグナル情報を表示する（info signalsコマンド）

シグナルの情報を表示するコマンドは，info signalsコマンドです。info signalsコマンドの短縮形は"i si"です。info signalsコマンドの形式を次に示します。

info signals［ シグナル名| シグナル番号］

引数にシグナル名またはシグナル番号を指定すると，対応するシグナルの情報を表示します。引数を省略すると，すべてのシグナルの情報を表示します。表示形式を次に示します。

Num  Signal       Stop  Print
シグナル番号   シグナル名  Yes/No   Yes/No
…

シグナル番号：シグナル番号です。シグナル番号を昇順に並べて表示します。左詰めで2桁まで表示できます。

シグナル名：シグナル名です。左詰めで11バイトまで表示できます。

info signalsコマンドを実行した場合の動作を次に示します。

info signalsコマンドの後ろに引数を指定しない場合

すべてのシグナルの情報を表示します。

info signalsコマンドの後ろに引数を指定した場合

シグナル番号

シグナル番号が存在するときは，指定した番号のシグナルの情報を表示します。

シグナル番号が存在しないときは，エラーメッセージが出力されます。

シグナル名

シグナル名が存在するときは，指定したシグナルの情報を表示します。

シグナル名が存在しないときは，エラーメッセージが出力されます。

Stop

Yes：Signalで示すシグナルを受信した場合に，実行中のジョブ定義スクリプトを停止します。

No：Signalで示すシグナルを受信しても，実行中のジョブ定義スクリプトを停止しません。

シグナル受信時の動作については，「3.11.2　シグナル受信時の動作【UNIX限定】」を参照してください。

Print

Yes：Signalで示すシグナルを受信した場合に，シグナル受信のメッセージを表示します。

No：Signalで示すシグナルを受信しても，シグナル受信のメッセージを表示しません。

注意事項

番号の指定は0以上の整数に限定します。先頭に「+」は付けません。それ以外を入力した場合，エラーメッセージが出力されます。

番号としてint型の範囲を超えた数値を指定した場合，int型の上限値に丸めて扱います。

出力例

シグナルの情報を表示します。

Num  Signal       Stop  Print
1    SIGHUP       No    No
2    SIGINT       Yes   Yes

6.2.18　ステータスを表示する（info statusコマンド）

デバッグ中のジョブ定義スクリプトのステータスを表示するコマンドは，info statusコマンドです。info statusコマンドの短縮形は"i st"です。info statusコマンドの形式を次に示します。

info status［ joberrmode］

引数にjoberrmodeを指定するか，または引数を省略すると，ジョブ定義スクリプトのエラー注入モードの状態を表示します。joberrmodeの短縮形は"jem"です。

出力例

ジョブ定義スクリプトのステータス（エラー注入モードが有効の場合）を表示します。

joberrmode:on

ジョブ定義スクリプトのステータス（エラー注入モードが無効の場合）を表示します。

joberrmode:off

6.2.19　シェル変数情報を表示する（info variablesコマンド）

すべてのシェル変数情報を表示するコマンドは，info variablesコマンドです。info variablesコマンドの短縮形は"i v"です。info variablesコマンドの形式を次に示します。

info variables［ 変数名］

引数に変数名を指定すると，指定したシェル変数情報を表示します。引数を省略すると，すべてのシェル変数情報を表示します。表示形式を次に示します。

変数名 = 変数値 ［(Step local)］
…

変数名：シェル変数名です。変数名をASCIIコード順に並べて表示します。

変数値：シェル変数の値です。ジョブステップ内でだけ有効なシェル変数の場合，補足情報（Step local）を付けて表示します。ジョブステップ内でだけ有効なシェル変数とは，スクリプト拡張コマンドの#-adsh_step_startコマンドのstepVar属性に指定したシェル変数です。

値を持っていない変数の場合，「=」と変数値を表示しません。表示形式を次に示します。

変数名［(Step local)］

info variablesコマンドを実行した場合の動作を次に示します。

info variablesコマンドの後ろに引数を指定しない場合

すべてのシェル変数情報を表示します。

info variablesコマンドの後ろに引数を指定した場合

表示する変数名が存在するときは，指定したシェル変数情報を表示します。

表示する変数名が存在しないときは，エラーメッセージが出力されます。

注意事項

runコマンドによるジョブ定義スクリプト実行中以外では変数が定義されていないため，変数を表示できません。

変数名に配列を指定する場合は，要素ごとに指定します。

変数とその配列の0番目（例：aaaとaaa[0]）は同一のものであるため，ジョブ定義スクリプト内で配列となっているときは添え字を付けて表示し，配列となっていないときは添え字を付けないで表示します。

シェルは配列を作成すると配列の0番目が自動的に作成されるため，すべてのシェル変数を表示する場合，それらを含めて表示されます。

出力例

すべてのシェル変数情報を表示します。

SHELL = /bin/sh
TEMPFILE = /tmp/file01
num = 1 (Step local)
val = 100

6.2.20　エラー注入モードの有効/無効を設定する（joberrmodeコマンド）

デバッグ中のジョブ定義スクリプトのエラー注入モードを有効または無効にするには，joberrmodeコマンドを実行します。joberrmodeコマンドの短縮形は"jem"です。joberrmodeコマンドの形式を次に示します。

joberrmode ｛on|off｝

onを選択した場合

エラー注入モードを有効にします。これによって，ジョブ内でエラーが発生した場合のケースをテストできます。すべての実行パスを実行してもC1実行比率が100%とならない場合に，エラーをシミュレートするために使用します。C1実行比率が100%とならないケースについては，「3.10.4(5)　C1実行比率100%とならないケース」を参照してください。

エラー注入モードが有効な場合は次のように動作します。このとき，終了コードは変更しません。

run属性にabnormalまたはalwaysが指定されている場合，ジョブステップを実行する。

run属性が省略されているまたはnormalが指定されている場合，ジョブステップを実行しない。

ジョブステップ外のコマンドは実行しない。

ステップ正常ブロック内でエラー注入した場合，そのステップのステップエラーブロック内のコマンドは実行する。onError属性にcontが指定されていても，そのステップ内の後続のコマンドは実行しないで，ステップエラーブロックを実行する。

エラー注入モードがonの場合にrunコマンドを実行すると，エラー注入モードはoffに戻ります。

offを選択した場合

エラー注入モードを無効にします。

実行例1

次に示すジョブ定義スクリプトを実行した場合について説明します。左側の行番号は，実行結果に出力される行番号との対応づけのため記載しています。

001  #!/bin/sh
002
003  #-adsh_step_start STEP001                 ←STEP001開始
004
005  ./cmd1                                    ←ステップ正常ブロック部
006
007  #-adsh_step_error                         ←ステップエラーブロック部
008
009  ./cmd2
010
011  #-adsh_step_end
012
013  ./cmd3
014
015  #-adsh_step_start STEP002 -run abnormal   ←STEP002開始　異常時に実行
016
017  ./cmd4                                    ←ステップ正常ブロック部
018
019  #-adsh_step_error                         ←ステップエラーブロック部
020
021  ./cmd5
022
023  #-adsh_step_end
024
025  ./cmd6
026
027  echo JOB01-ended

実行結果1

ステップ外で停止し，joberrmodeコマンドでエラー注入モードを有効にした場合の例を示します。行の右側に付加した番号に対する説明は，実行結果の下を参照してください。

[jobuser1@HOST01 joberrmode]$ adshexec -d joberrmode.ash       ←1.
KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
KNAX0724-I Jobid was assigned. Jobid=000240
(adshdb) b 2                                                   ←2.
KNAX7015-W Breakpoint cannot be set at line "2". Setting breakpoint at next available line.
KNAX7018-I Breakpoint "1": filename="joberrmode.ash" line=3
(adshdb) b 17                                                  ←3.
KNAX7018-I Breakpoint "2": filename="joberrmode.ash" line=17
(adshdb) run                                                   ←4.
KNAX7007-I Starting the script: /home/jobuser1/joberrmode/joberrmode.ash

KNAX0724-I Jobid was assigned. Jobid=000241
KNAX0091-I ADSH000241 Job started.
KNAX7902-I adshexec will run in tty stdin mode.

KNAX7018-I Breakpoint "1": filename="joberrmode.ash" line=3    ←5.
KNAX7032-I Stop in the script "joberrmode.ash".
3: #-adsh_step_start STEP001
Current: #-adsh_step_start STEP001
(adshdb) info status                                           ←6.
joberrmode:off                                                 ←7.
(adshdb) joberrmode on                                         ←8.
KNAX7126-I Error insertion mode is set to "on".
(adshdb) info status                                           ←9.
joberrmode:on                                                 ←10.
(adshdb) c                                                    ←11.
KNAX7034-I Continuing the script.
KNAX6508-I ADSH000241.STEP001 Step was skipped because previous step or command ended abnormally.
KNAX0092-I ADSH000241.STEP002 Step started.

KNAX7018-I Breakpoint "2": filename="joberrmode.ash" line=17  ←12.
KNAX7032-I Stop in the script "joberrmode.ash".
17: ./cmd4
Current: ./cmd4
(adshdb) joberrmode off
KNAX7127-E Error insertion mode could not be modified.        ←13.
(adshdb) c                                                    ←14.
KNAX7034-I Continuing the script.
cmd4 start
cmd4 end
KNAX6116-I Command ./cmd4(line=17) succeeded. rc=0 E-Time=0.071s C-Time=0.000s
KNAX6597-I ADSH000241.STEP002 Step succeeded. rc=0 E-Time=14.872s C-Time=0.000s
KNAX0101-E ADSH000241 An error occurred during execution of job.
KNAX0098-I ADSH000241 Job ended. rc=0 E-Time=46.512s C-Time=0.000s
KNAX6380-I Job name will be added to spool job directory. spool job directory="/home/jobuser1/test6/spool/000241-ADSH000241/"

(adshdb) quit
KNAX6380-I Job name will be added to spool job directory. spool job directory="/home/jobuser1/test6/spool/000240-ADSH000240/"
KNAX7999-I JP1/Advanced Shell ended. rc=0

実行結果の右側に付加した番号に従って解説します。

デバッグを開始する。

スクリプトの途中で停止させる。

エラー時に実行するステップ内で停止させる。

スクリプトを実行する。

最初のブレークポイントで停止する。

ステータスを表示する。

エラー注入モードは無効。

エラー注入モードを有効にする。

ステータスを表示する。

エラー注入モードは有効。

デバッグを再開する。

エラー時に実行するステップ内で停止する。

エラー注入モードの切り替えはできない。

デバッグを再開する。

実行結果2

ステップ内で停止し，joberrmodeコマンドでエラー注入モードを有効にした場合の例を示します。行の右側に付加した番号に対する説明は，実行結果の下を参照してください。

 [jobuser1@HOST01 joberrmode]$ adshexec -d joberrmode.ash       ←1.
KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
KNAX0724-I Jobid was assigned. Jobid=000242
(adshdb) b 5                                                    ←2.
KNAX7018-I Breakpoint "1": filename="joberrmode.ash" line=5
(adshdb) b 17                                                   ←3.
KNAX7018-I Breakpoint "2": filename="joberrmode.ash" line=17
(adshdb) run                                                    ←4.
KNAX7007-I Starting the script: /home/jobuser1/joberrmode/joberrmode.ash

KNAX0724-I Jobid was assigned. Jobid=000243
KNAX0091-I ADSH000243 Job started.
KNAX7902-I adshexec will run in tty stdin mode.
KNAX0092-I ADSH000243.STEP001 Step started.

KNAX7018-I Breakpoint "1": filename="joberrmode.ash" line=5   ←5.
KNAX7032-I Stop in the script "joberrmode.ash".
5: ./cmd1
Current: ./cmd1
(adshdb) info status                                            ←6.
joberrmode:off                                                  ←7.
(adshdb) joberrmode on                                          ←8.
KNAX7126-I Error insertion mode is set to "on".
(adshdb) info status                                            ←9.
joberrmode:on                                                  ←10.
(adshdb) c                                                     ←11.
KNAX7034-I Continuing the script.
cmd2 start
cmd2 end
KNAX6116-I Command ./cmd2(line=9) succeeded. rc=0 E-Time=0.090s C-Time=0.000s
KNAX6596-E ADSH000243.STEP001 Step failed. rc=0 E-Time=24.355s C-Time=0.000s
KNAX0092-I ADSH000243.STEP002 Step started.

KNAX7018-I Breakpoint "2": filename="joberrmode.ash" line=17  ←12.
KNAX7032-I Stop in the script "joberrmode.ash".
17: ./cmd4
Current: ./cmd4
(adshdb) joberrmode off
KNAX7127-E Error insertion mode could not be modified.        ←13.
(adshdb) c                                                    ←14.
KNAX7034-I Continuing the script.
cmd4 start
cmd4 end
KNAX6116-I Command ./cmd4(line=17) succeeded. rc=0 E-Time=0.001s C-Time=0.000s
KNAX6597-I ADSH000243.STEP002 Step succeeded. rc=0 E-Time=18.751s C-Time=0.000s
KNAX0101-E ADSH000243 An error occurred during execution of job.
KNAX0098-I ADSH000243 Job ended. rc=0 E-Time=43.107s C-Time=0.000s
KNAX6380-I Job name will be added to spool job directory. spool job directory="/home/jobuser1/test6/spool/000243-ADSH000243/"

実行結果の右側に付加した番号に従って解説します。

デバッグを開始する。

ステップ内のスクリプトの途中で止める。

エラー時に実行するステップ内で止める。

スクリプトを実行する。

最初のブレークポイントで停止する。

ステータスを表示する。

エラー注入モードは無効。

エラー注入モードを有効にする。

ステータスを表示する。

エラー注入モードは有効。

デバッグを再開する。

エラー時に実行するステップ内で停止する。

エラー注入モードの切り替えはできない。

デバッグを再開する。

実行例2

次に示すジョブ定義スクリプトを実行した場合について説明します。左側の行番号は，実行結果に出力される行番号との対応づけのため記載しています。

001  #-adsh_job JOB001
002  #-adsh_step_start STEP001 -onError cont  ←STEP001開始 -onError cont指定
003   ./cmd1                                  ←ステップ正常ブロック部
004   ./cmd2
005   ./cmd3
006  #-adsh_step_error
007   ./cmd4                                  ←ステップエラーブロック部
008   ./cmd5
009  #-adsh_step_end
010   ./cmd6                                  ←ステップ外のコマンド

実行結果

ステップ内（4行目）で停止し，joberrmodeコマンドを投入して実行した場合の例を示します。行の右側に付加した番号に対する説明は，実行結果の下を参照してください。

[jobuser1@HOST01 joberrmode]$ adshexec -d test_cont.ash       ←1.
KNAX7901-I adshexec waits for all asynchronous processes at the end of the job.
KNAX0724-I Jobid was assigned. Jobid=000264
(adshdb) b 4                                                  ←2.
KNAX7018-I Breakpoint "1": filename="test_cont.ash" line=4
(adshdb) r                                                    ←3.
KNAX7007-I Starting the script: /home/jobuser1/joberrmode/test_cont.ash

KNAX0724-I Jobid was assigned. Jobid=000265
KNAX0091-I JOB001 Job started.
KNAX7902-I adshexec will run in tty stdin mode.
KNAX0092-I JOB001.STEP001 Step started.
cmd1 start
cmd1 end
KNAX6116-I Command ./cmd1(line=3) succeeded. rc=0 E-Time=0.004s C-Time=0.000s

KNAX7018-I Breakpoint "1": filename="test_cont.ash" line=4    ←4.
KNAX7032-I Stop in the script "test_cont.ash".
4:  ./cmd2
Current: ./cmd2
(adshdb) info status                                          ←5.
joberrmode:off                                                ←6.
(adshdb) jem on                                               ←7.
KNAX7126-I Error insertion mode is set to "on".
(adshdb) info status                                          ←8.
joberrmode:on                                                 ←9.
(adshdb) c                                                   ←10.
KNAX7034-I Continuing the script.
cmd4 start                                                   ←11.
cmd4 end
KNAX6116-I Command ./cmd4(line=7) succeeded. rc=0 E-Time=0.003s C-Time=0.000s
cmd5 start
cmd5 end
KNAX6116-I Command ./cmd5(line=8) succeeded. rc=0 E-Time=0.003s C-Time=0.000s
KNAX6596-E JOB001.STEP001 Step failed. rc=0 E-Time=24.951s C-Time=0.000s
KNAX0101-E JOB001 An error occurred during execution of job.
KNAX0098-I JOB001 Job ended. rc=0 E-Time=24.953s C-Time=0.000s
KNAX6380-I Job name will be added to spool job directory. spool job directory="/home/jobuser1/test6/spool/000265-JOB001/"

実行結果の右側に付加した番号に従って解説します。

デバッグを開始する。

ステップ内のスクリプトの途中で止める。

スクリプトを実行する。

最初のブレークポイントで停止する。

ステータスを表示する。

エラー注入モードは無効。

エラー注入モードを有効にする。

ステータスを表示する。

エラー注入モードは有効。

デバッグを再開する。

ステップエラーブロック部のコマンドを実行する。

6.2.21　変数の値を設定する（setコマンド）

シェル変数の値を設定するコマンドは，setコマンドです。引数に代入式を指定することで，その式を評価して変数の値を設定できます。setコマンドの短縮形はありません。setコマンドの形式を次に示します。

set 代入式

代入式の形式を次に示します。

変数名=｛変数名|数値|"文字列"｝

変数名（左辺）：シェル変数名です。指定した変数に右辺の値が代入されます。

変数名（右辺）：シェル変数名です。指定した変数の値が左辺の変数に代入されます。

数値：整数値です。指定した整数値が左辺の変数に代入されます。

文字列：文字列です。指定した文字列が左辺の変数に代入されます。

setコマンドを実行した場合の動作を次に示します。

setコマンドの後ろに引数を指定した場合

代入式

指定した代入式に応じて変数の値を設定します。

作成されていない変数名が含まれる代入式

エラーメッセージが出力されます。

代入式以外

エラーメッセージが出力されます。

setコマンドの後ろに引数を指定しない場合

エラーメッセージが出力されます。

注意事項

runコマンドによるジョブ定義スクリプト実行中以外では，変数情報が設定されていないため，エラーとなります。

文字列を指定する場合は，ダブルクォーテーションで囲んでください。文字列の中にダブルクォーテーションを使用するときは，¥を付けて¥"と指定します。また，¥"は¥¥¥"と指定します。

代入式の中で最初に出現する等号（=）以降の引数を，変数名および数値または文字列として処理します。

変数名に配列を指定する場合は，要素ごとに指定します。

変数名の指定に$を付けないでください。

数値の指定時にsigned long型の範囲を超えた数値を入力した場合，signed long型の上限値または下限値に丸めて扱います。

代入式の右辺に指定した変数に格納されている数値については，値を丸めることなくそのまま左辺に代入します。

スクリプト制御文のfor文の実行前で停止している場合，for文のwordlistsに指定した変数の値は固定です。for文の実行によって代入される変数の値を書き換えたいときは，for文のdo以降で最初に停止した位置で，setコマンドを使用して変数の値を書き換える，またはfor文に到達する前に，setコマンドを使用してwordlistsの変数の値を書き換えてください。例を次に示します。

例1

1: a=1
2: b=2
3: date
4: for num in $a $b
5: do
6:  echo $num  ←numの値を書き換えたい場合，6行目の実行前に行う
7:  pwd
8: done

例2

1: a=1
2: b=2
3: date        ←$aおよび$bの値をfor文で代入される変数に
                 反映する場合，3行目の実行前に行う
4: for num in $a $b
5: do
6:  echo $num
7:  pwd
8: done

使用例

数値を代入する場合，変数に対してtypesetコマンドの-iを指定し，整数型として宣言しておく必要があります。

変数「a」に数値「10」を代入する場合

(adshdb) set a=10

変数「b」に文字列「test」を代入する場合

(adshdb) set b="test"

変数「c」に変数「a」の値を代入する場合

(adshdb) set c=a

変数「d[5]」（配列）に数値「1」を代入する場合

(adshdb) set d[5]=1

6.2.22　変数の値を表示する（printコマンド）

ジョブ定義スクリプト内の変数の値を表示するコマンドは，printコマンドです。引数に変数名を指定することで，その変数の値を表示できます。printコマンドの短縮形は"p"です。printコマンドの形式を次に示します。

print 変数名

printコマンドを実行した場合の動作を次に示します。

printコマンドの後ろに引数を指定した場合

変数が定義されているときは，指定した変数の値を表示します。表示形式を次に示します。

変数値

変数値：指定した変数の値です。値がない場合，<No value>と表示します。

変数が定義されていないときは，エラーメッセージが出力されます。

printコマンドの後ろに引数を指定しない場合

エラーメッセージが出力されます。

注意事項

runコマンドによるジョブ定義スクリプト実行中以外では，変数情報が設定されていないため，エラーとなります。

変数名に配列を指定する場合は，要素ごとに指定します。

変数名の指定に$を付けないでください。

使用例

変数「a」の値を表示する場合

(adshdb) print a

変数「b[1]」（配列）の値を表示する場合

(adshdb) print b[1]

6.2.23　バックトレースを表示する（whereコマンド）

バックトレースとは，実行中のジョブ定義スクリプトが現在停止している位置にどのようにして到達したかを示す情報です。バックトレースは，各フレームによって表現されます。フレームとは，ある関数に対する1回の呼び出しに関連するデータのことです。関数を呼び出すとフレームは1個追加され，関数を終了するとフレームは1個削除されます。各フレームに，最も内側のフレームから順に番号を0から割り当てます。最も内側のフレームとは，現在実行中の関数のことです。バックトレースを表示するコマンドは，whereコマンドです。whereコマンドの短縮形は"whe"です。whereコマンドの形式を次に示します。

where［ フレーム番号］

引数にフレームの番号を指定すると，最も内側のフレームから指定した番号までの間で存在するフレームの情報を表示します。引数を省略すると，すべてのフレーム情報を内側のフレームから表示します。表示形式を次に示します。

Num  Function  File:Line
フレーム番号  関数名  ファイル名:行番号
…

フレーム番号：フレームの番号です。フレーム番号を0番から昇順に表示します。左詰めで3桁まで表示できます。

関数名：フレームに対応する関数名に，関数を呼び出したジョブ定義スクリプトファイル名を付けた名称です。関数が呼び出されていない状態の場合，関数名を<main>として表示します。63バイトまで表示できます。

ファイル名：フレームに対応するジョブ定義スクリプトファイル名です。フレーム番号が0の場合は，現在停止中のファイル名を示します。フレーム番号が1以上の場合は，新しい関数を呼び出すときのファイル名を示します。

行番号：フレームに対応する行番号です。フレーム番号が0の場合は，現在停止中の行番号を示します。フレーム番号が1以上の場合は，新しい関数を呼び出すときの行番号を示します。

ジョブ定義スクリプト終端で停止している場合は<EOF>と表示します。trapコマンドのactionを実行中に停止している場合は<Trap action>と表示します。

whereコマンドを実行した場合の動作を次に示します。

whereコマンドの後ろに引数を指定しない場合

ジョブ定義スクリプトが実行中で停止している状態でwhereコマンドを実行すると，すべてのフレーム情報を内側のフレームから順に表示します。

ジョブ定義スクリプトが実行されていないときは，エラーメッセージが出力されます。

whereコマンドの後ろに引数を指定した場合

ジョブ定義スクリプトが実行されている状態でwhereコマンドを実行すると，正しいフレーム番号を指定したときは，内側のフレームから指定したフレーム番号までのフレーム情報を表示します。

番号以外を指定したときおよびジョブ定義スクリプトが実行されていないときは，エラーメッセージが出力されます。

注意事項

フレーム番号は0以上の整数を入力してください。先頭に「+」は付けません。

フレーム番号にint型の範囲を超えた数値を入力した場合，int型の上限値に丸めて扱います。

表示できるフレーム数の上限は255個です。引数に255以上の番号を入力してもそれ以上の番号のフレームは表示されません。256個以上フレームが存在する場合は，フレーム情報の下にメッセージが表示されます。

使用例

sample.ashの12行目でfuncAを呼び出し，そのあと9行目でfuncBを呼び出してtest.ashの12行目で停止しているときに，whereコマンドを実行します。

sample.ash

5: #-adsh_script test.ash
6:
7: funcA(){
8:   num=10
9:   funcB
10: }
11:
12: funcA

test.ash

10: funcB(){
11:   val=5
12:   num=20
13: }

Num  Function               File:Line
0    funcB (in sample.ash)  test.ash:12
1    funcA (in sample.ash)  sample.ash:9
2    <main>                 sample.ash:12

6.2.24　ソースファイルを表示する（listコマンド）

ソースファイルを表示するコマンドは，listコマンドです。listコマンドの短縮形は"l"です。listコマンドの形式を次に示します。

ファイル名を指定しない場合

list［ 行番号］

引数を省略すると，現在の行に停止して最初にlistコマンドを実行した場合は，現在停止中の行の5行前から行番号付きで11行表示します。停止してから2回目以降の入力の場合は，前回表示した最終行の次の行から11行表示します。

ファイル名を指定する場合

list ジョブ定義スクリプトファイル名:行番号

引数に":"を使用すると，ジョブ定義スクリプトファイル名を指定して表示できます。

行番号を指定すると，その行の5行前から行番号付きで11行表示します。表示形式を次に示します。

行番号: ソースファイル行
…

行番号：ソースファイルの行番号です。

ソースファイル行：ソースファイルの行の内容です。

listコマンドを実行した場合の動作を次に示します。

listコマンドの後ろに引数を指定しない場合

現在の行に停止して最初にlistコマンドを実行した場合は，現在停止中の行の5行前からソースファイルを行番号付きで11行表示します。

2回目以降にlistコマンドを実行した場合は，前回表示したファイルの最終行の次の行から11行表示します。

listコマンドの後ろに引数を指定した場合

存在する行番号を指定したときは，指定した行の5行前からソースファイルを行番号付きで11行表示します。

存在しない行番号を指定したときおよび上記以外のときは，エラーメッセージが出力されます。

注意事項

ファイル名を指定する場合には，バッチジョブを実行するコマンドに指定したファイルまたはスクリプト拡張コマンドの#-adsh_scriptに指定したファイルを指定してください。

ファイル名の指定は，最後に入力された「:」の前までの文字列をファイル名と見なします。

引数の有無に関係なく，ソースファイルの表示範囲に1より小さい行が含まれる場合，1行目から11行表示します。

引数の有無に関係なく，ソースファイルの表示範囲に最終行より大きい行が含まれる場合，最終行の10行前から最終行までの11行を表示します。

行番号は0以上の整数を入力してください。先頭に「+」は付けません。

行番号の指定時にint型の範囲を超えた数値を入力した場合，int型の上限値に丸めて扱います。

デバッグ実行中のジョブ定義スクリプトが次に示すどちらかの状態の場合は，listコマンドを引数を指定しないで実行するとエラーとなります。ただし，引数を指定して実行したあとは，続きを表示できます。

・ジョブ定義スクリプト終端(EOF)で停止している

・trapコマンドのactionを実行中に停止している

出力例

20行目で停止しているときに引数を省略してlistコマンドを実行します。

15: echo "start"
16:
17: a=1
18: while [[ $a -ne 10 ]]
19: do
20:   echo $a
21:   let a+=1
22: done
23:
24: pwd
25: echo "end"

6.2.25　ディレクトリを移動する（cdコマンド）

デバッガの作業ディレクトリを移動するコマンドは，cdコマンドです。cdコマンドの短縮形はありません。cdコマンドの形式を次に示します。

cd ディレクトリパス名

引数にディレクトリパス名を指定すると，作業ディレクトリを移動できます。

cdコマンドを実行した場合の動作を次に示します。

cdコマンドの後ろに引数を指定した場合

指定したディレクトリにデバッガの作業ディレクトリを移動します。移動先のディレクトリの絶対パスを表示します。

ただし，ジョブ定義スクリプトが実行されている場合は，デバッガの作業ディレクトリだけを移動し，実行中のジョブ定義スクリプトのカレントディレクトリは変更しません。

なお，実行権限のないディレクトリパス名を指定した場合および存在しないディレクトリパス名を指定した場合など，デバッガの作業ディレクトリを移動できなかったときは，エラーメッセージが出力されます。

cdコマンドの後ろに引数を指定しない場合

エラーメッセージが出力されます。

使用例

cdコマンドで作業ディレクトリを移動します。そのあとに，execコマンドを使用して外部コマンドを実行し，移動先のディレクトリに存在するファイルの内容を出力します。

(adshdb) cd work
KNAX7048-I Working directory: /home/xxx/work/
(adshdb) exec cat test.txt
aaa bbb ccc
(adshdb)

6.2.26　ログインシェルを起動する（execコマンド）

デバッグ中にログインシェルを起動するコマンドは，execコマンドです。ログインシェルとは，シェル変数SHELLに設定されているシェルを示します。execコマンドの短縮形は"ex"です。execコマンドの形式を次に示します。

exec［ ログインシェルに渡す引数］…

ログインシェルに渡す引数を指定すると，指定した引数をログインシェルに渡して実行します。引数を省略すると，ログインシェルを起動します。

注意事項

引数に&が含まれている場合，エラーメッセージが出力されます。

バックグラウンド実行以外の目的で引数に&を使用する場合，代わりに¥&で指定します。

引数の個数に上限はありません。

使用例

execコマンドでシェルのlsコマンドを実行します。

(adshdb) exec ls
aaa.txt  bbb.log  bin

6.2.27　ヘルプを表示する（helpコマンド）

デバッガコマンドのヘルプを表示するコマンドは，helpコマンドです。helpコマンドの短縮形は"h"です。helpコマンドの形式を次に示します。

help［ コマンド名］

引数にコマンド名を指定すると，そのコマンドの説明を表示します。引数を省略すると，すべてのコマンド名を表示します。また，引数に指定するコマンド名は短縮形で指定できます。

helpコマンドを実行した場合の動作を次に示します。

helpコマンドの後ろに引数を指定しない場合

すべてのコマンド名を表示します。表示形式を次に示します。

Available commands:
break      cd         continue   delete     exec
finish     help       info       joberrmode kill
list       next       print      quit       return
run        set        signal     step       watch
where

helpコマンドの後ろに引数を指定した場合

コマンド名を指定したときは，指定したコマンドの使用方法を表示します。

存在しないコマンドを指定したときは，エラーメッセージが出力されます。

第4編　リファレンス編

7　環境ファイルで設定するパラメーター

環境ファイルにパラメーターを設定すると，終了コード，カバレージ，システム実行ログ，ディレクトリのパス，環境変数などについて定義できます。

この章では，パラメーターの記述形式と詳細について説明します。

7.1　環境ファイルの記述形式

環境ファイルで設定するパラメーターの記述形式について説明します。

パラメーターには次の種類があります。

パラメーターの種類

定義内容

環境設定パラメーター

終了コード，カバレージ，システム実行ログ，ディレクトリのパスなどを定義します。

exportパラメーター

環境変数を定義します。

条件パラメーター

物理ホストまたは特定の論理ホストだけで有効とする環境設定パラメーターおよびexportパラメーターを指定します。

環境ファイルの1行の長さは，コメントや区切り文字も含めて4,092バイト以内としてください。4,092バイトを超えると解析エラーとなります。また，環境ファイルには，コメント内も含めて&（アンパーサンド）を記載しないでください。

環境ファイルで設定するパラメーターは，次の点に注意してください。

行の途中にNULL（"0x00"またはC言語での"¥0"）が混入している場合，ジョブコントローラはその行でNULLが現れる部分までを1行と見なします。その行でNULLのあとにほかの文字列があっても無視されます。不正な実行結果や実行時エラーの要因となるため，NULLを記述しないようにしてください。

環境ファイルのエンコーディングと，ジョブ定義スクリプトを実行する環境のLANG環境変数の値は一致させてください。

#の後ろが"-adsh_conf△₁"でない場合は，コメントになります。

7.1.1　パラメーターの記述形式

(1)　環境設定パラメーターの記述形式

環境設定パラメーターの記述形式を次に示します。

△₀#-adsh_conf△₁パラメーター△₁値

#-adsh_confに続いてパラメーターを1行で記述します。

パラメーターの値の後ろには何も記述しないでください。

スペースを含む値をパラメーターに指定する場合は，その値を"（ダブルクォーテーション）で囲んでください。そのほかのエスケープ文字は使用できません。

(2)　exportパラメーターの記述形式

exportパラメーターの記述形式を次に示します。

△₀export△₁環境変数名=環境変数値

exportパラメーターには，1行で1個の環境変数を記述します。

環境変数PATH以外の環境変数を参照することはできません。

例えば，次のように指定しても，環境変数HOMEの内容は展開されないで，「${HOME}」という文字列がそのまま環境変数NEWHOMEに設定されます。

export NEWHOME=${HOME}

スペースを含む値を指定する場合は"（ダブルクォーテーション）または'（シングルクォーテーション）で囲んでください。

¥はエスケープ文字として動作します（'（シングルクォーテーション）で囲まれた範囲は通常の文字として扱われます）。

(3)　条件パラメーターの記述形式

条件パラメーターの記述形式を次に示します。

△₀#-adsh_conf△₁ [phost_start | lhost_start△₁ ホスト名]
環境設定パラメーターまたはexportパラメーター
     ：
△₀#-adsh_conf△₁ [phost_end | lhost_end]

環境設定パラメーターとexportパラメーターは複数記述できます。

物理ホストまたは論理ホストだけで有効とする環境設定パラメーターおよびexportパラメーターを設定する場合，前後の行を条件パラメーターで囲んで設定します。

パラメーターの値の後ろには何も記述しないでください。

条件パラメーターは複数指定できます。ただし，ネストした指定はできません（例2を参照のこと）。

例1：複数指定する場合

#-adsh_conf phost_start
export HOME=/home/phost
#-adsh_conf phost_end

#-adsh_conf phost_start
export TEMP=/tmp
#-adsh_conf phost_end

例2：ネストした指定の場合（エラーになる）

#-adsh_conf phost_start
export HOME=/home/phost
#-adsh_conf phost_start
export TEMP=/tmp
#-adsh_conf phost_end
#-adsh_conf phost_end

7.1.2　コメントの記述形式

コメントの記述形式を次に示します。

△₀#<「-adsh_conf」で開始しない任意文字列>

#に続いて「-adsh_conf△₁」でない文字列を記述すると，#以降から行末までをコメントとして扱います。

7.2　パラメーターの一覧

7.2.1　環境設定パラメーターの一覧

(1)　環境設定パラメーターの定義

環境設定パラメーターはシステム環境ファイルおよびジョブ環境ファイルに定義します。これらのファイルについての説明は「2.6.1　環境ファイルを設定する」を参照してください。

システム環境ファイルとジョブ環境ファイルに指定できるパラメーターは同じです。システム環境ファイルとジョブ環境ファイルの指定の有無によって，適用される指定値は次のようになります。

システム環境ファイル

ジョブ環境ファイル

指定なし

指定あり

指定なし

各パラメーターの省略値

ジョブ環境ファイルの指定値

指定あり

システム環境ファイルの指定値

パラメーターの仕様に従う※

注※　同じパラメーターを指定した場合の扱いは次のようになります。

指定個数の上限値が1の環境設定パラメーター

ジョブ環境ファイルの指定が優先されます。

指定個数の上限値が1以外の環境設定パラメーター

ジョブ環境ファイルの指定を先頭にして両方の指定をマージします。

例

＜システム環境ファイルの指定＞

#-adsh_conf PATH_CONV /jp1as/abc c:¥¥jp1as¥¥abc

#-adsh_conf PATH_CONV /jp1as/def c:¥¥jp1as¥¥def

＜ジョブ環境ファイルの指定＞

#-adsh_conf PATH_CONV /jp1as/abc c:¥¥jp1as¥¥ghi

#-adsh_conf PATH_CONV /jp1as/def c:¥¥jp1as¥¥def

#-adsh_conf PATH_CONV /jp1as/kkk c:¥¥jp1as¥¥kkk

＜解析結果は次の内容と同等となる＞

#-adsh_conf PATH_CONV /jp1as/abc c:¥¥jp1as¥¥ghi …1.

#-adsh_conf PATH_CONV /jp1as/def c:¥¥jp1as¥¥def …1.

#-adsh_conf PATH_CONV /jp1as/kkk c:¥¥jp1as¥¥kkk …1.

#-adsh_conf PATH_CONV /jp1as/abc c:¥¥jp1as¥¥abc …2.

#-adsh_conf PATH_CONV /jp1as/def c:¥¥jp1as¥¥def …2.

注

1.：ジョブ環境ファイルの指定

2.：システム環境ファイルの指定

(2)　環境設定パラメーターの種類

JP1/Advanced Shellの環境ファイルに設定する環境設定パラメーターを次の表に示します。これらのパラメーターの指定は任意です。

表7‒1　JP1/Advanced Shellの環境ファイルに設定する環境設定パラメーター

パラメーター名

定義内容

指定個数の上限値※1

子孫ジョブ起動時の変更可否

ADSHCMD_RC_ERROR

スクリプト拡張コマンドが失敗したときの終了コードを定義します。

1

○

ADSHCMD_RC_SUCCESS

スクリプト拡張コマンドが成功したときの終了コードを定義します。

1

○

ASC_FILE

カバレージ採取の一括有効化機能で使用する蓄積ファイル名の生成規則を定義します。

1

−

BATCH_CVR

カバレージ採取の一括有効化機能を有効にします。

1

−

CHILDJOB_EXT

子孫ジョブとして実行するジョブ定義スクリプトファイルの拡張子を定義します。

255

○

CHILDJOB_PGM

子孫ジョブとして実行するように読み替えるプログラムパスを定義します。

255

○

CHILDJOB_SHEBANG

子孫ジョブとして実行するジョブ定義スクリプトファイルの実行プログラムパスを定義します。

255

○

CMDRC_THRESHOLD_DEFINE

コマンドの終了コードのしきい値を定義します。シェルスクリプトや子孫ジョブの終了コードに対しても定義できます。

無制限※3

○

CMDRC_THRESHOLD_USE_PRESET

UNIX互換コマンドの終了コードのしきい値を定義します。

1

○

COMMAND_CONV_ARG

コマンド実行時にジョブ定義スクリプト中の引数を変換する規則を定義します。

255

○

ESCAPE_SEQ_ECHO_DEFAULT

エスケープ文字関連のオプション省略時のechoコマンドの動作を定義します。

1

○

ESCAPE_SEQ_ECHO_HEX

16進数表記のASCIIコード文字をエスケープ文字として解釈するか定義します。

1

○

EVENT_COLLECT

ジョブ定義スクリプト稼働実績情報取得機能を有効とするかどうかを定義します。

1

○

HOSTNAME_JP1IM_MANAGER※2

ユーザー応答機能で，JP1イベントの送信先であるJP1/IM - Managerが稼働している運用管理サーバを指定します。

1

×

JOBEXECLOG_PRINT

ジョブ終了時に標準エラー出力へ出力するジョブ実行ログの内容を定義します。

1

−

JOBLOG_SUPPRESS_MSG

ジョブ実行ログへの出力を抑止するメッセージを定義します。

無制限※3

○

KSH_ENV_READ

シェル変数ENVを読み込むかどうかを定義します。

1

○

LOG_DIR※4

システム実行ログを出力するディレクトリのパス名を定義します。

1

○

LOG_FILE_CNT※5

システム実行ログをバックアップする面数を定義します。

1

○

LOG_FILE_SIZE※5

システム実行ログを出力するファイルサイズを定義します。

1

○

OUTPUT_MODE_CHILD

子孫ジョブの終了時に，ジョブ実行ログを標準エラー出力へ出力するかどうかを定義します。

1

○

OUTPUT_MODE_ROOT

ルートジョブの終了時に，ジョブ実行ログを標準エラー出力へ出力するかどうかを定義します。

1

−

OUTPUT_STDOUT

ルートジョブの標準出力の出力先を定義します。

1

−

PATH_CONV

変換前・変換後のパス名を定義します。

255

○

PATH_CONV_ACCESS

変換前・変換後のパス名を定義します。この変換はファイルの入出力時に実行されます。

255

○

PATH_CONV_ENABLE

パス変換機能を有効にします。

1

○

PATH_CONV_RULE

【Windows限定】

パス変換ルールを定義します。

1

○

PERMISSION_SPOOLJOB_DIR

【UNIX限定】

スプールジョブディレクトリのパーミッションを定義します。

1

−

PERMISSION_SPOOLJOB_FILE

【UNIX限定】

スプールジョブディレクトリ下のファイルのパーミッションを定義します。

1

−

PIPE_CMD_LAST

【UNIX限定】

パイプの最終コマンドの実行プロセスを定義します。

1

○

SPOOL_DIR※2，※4，※6

スプールルートディレクトリのパス名を定義します。

1

×

SPOOLJOB_CHILDJOB

子孫ジョブの終了時に，スプールジョブを削除するか，ルートジョブのスプールジョブへマージするかを定義します。

1

△

SPOOLJOB_CREATE

ジョブ定義スクリプトの実行時にスプールジョブを作成するかどうかを定義します。

1

△

TEMP_FILE_DIR※4

一時ファイルを格納するディレクトリのパス名を定義します。

1

○

TRACE_DIR※4

トレースを出力するディレクトリのパス名を定義します。

1

○

TRACE_FILE_CNT※7

トレースを出力する面数を定義します。

1

○

TRACE_FILE_SIZE※7

トレースを出力するファイルサイズを定義します。

1

○

TRACE_LEVEL

トレースを出力するレベルを定義します。

1

○

TRAP_ACTION_SIGTERM

ジョブコントローラが強制終了要求を受けたときの動作を定義します。

1

○

UNSUPPORT_TEST

【Windows限定】

サポートしていない条件式を実行した場合の動作を定義します。

条件ごとに1

○

USERREPLY_DEBUG_DESTINATION

ユーザー応答機能で，デバッグ実行時の事象通知メッセージと応答要求メッセージの入出力先を定義します。

1

×

USERREPLY_JP1EVENT_INTERVAL※2

ユーザー応答機能で，adshechoコマンドやadshreadコマンドによるJP1イベントの最小発行間隔を定義します。

1

×

USERREPLY_WAIT_MAXCOUNT※2

ユーザー応答機能で，物理ホストまたは論理ホストごとに，応答要求メッセージの最大同時出力数を定義します。

1

×

VAR_ENV_NAME_LOWERCASE

【Windows限定】

小文字が含まれる環境変数名を有効にするかどうかを定義します。

1

○

VAR_SHELL_FUNCINFO

シェル関数の情報を管理する配列を定義します。

1

○

VAR_SHELL_GETLENGTH

変数値の長さを参照する場合の長さの単位を定義します。

1

○

（凡例）

○：ルートジョブ起動時の設定値は子孫ジョブ起動時に変更しても動作しますが，推奨しません。

△：ルートジョブ起動時の設定値は子孫ジョブ起動時に変更しても有効になりません。

×：ルートジョブ起動時の設定値は子孫ジョブ起動時に変更しないでください。正しく動作しないおそれがあります。

−：子孫ジョブには該当しません。

注※1

システム環境ファイルとジョブ環境ファイルの両方の指定を有効とするパラメーターの場合，両方のファイルの指定数の合計がこの上限値を超えないよう指定してください。

各パラメーターでシステム環境ファイルとジョブ環境ファイルの両方が指定できるかどうかは，各パラメーターの説明を参照してください。

注※2

ユーザー応答機能を利用する場合，これらのパラメーターはシステム環境ファイルに指定する必要があります。また，システム環境ファイルを変更した場合，ユーザー応答機能管理デーモン・サービスを再起動してください。

それに加えて，パラメーターの指定に関しては次の点に注意してください。

これらのパラメーターはジョブ環境ファイルに指定しないでください。次の問題が発生するおそれがあります。

HOSTNAME_JP1IM_MANAGER：adshchmsgコマンドから応答を入力した場合や応答をキャンセルした場合，ユーザー応答機能管理デーモン・サービスの停止時に，応答待ちイベントがJP1/IM - Viewの滞留から解除されません。

USERREPLY_WAIT_MAXCOUNT：ジョブ環境ファイルの指定は無視されます。

USERREPLY_JP1EVENT_INTERVAL：JP1/IM - Viewに負荷が掛かります。

次のパラメーターをシステム環境ファイルとジョブ環境ファイルで異なる値を指定した場合は，次の問題が発生するおそれがあります。ユーザー応答機能を使用するときには，次のパラメーターはジョブ環境ファイルに指定しないでください。

SPOOL_DIR：応答要求メッセージの出力に失敗します。

注※3

使用できるメモリ量で制限されます。

注※4

該当するパラメーターで指定するディレクトリを別々に分けることで，同一ホスト内で複数環境を使い分けられます。

注※5

複数のユーザーが同じファイルにシステム実行ログを出力している場合には，LOG_FILE_CNTとLOG_FILE_SIZEは，最後にシステム実行ログの出力を開始したユーザーの設定値が有効になります。

注※6

クラスタ運用で待機系のホストに情報を引き継ぎたい場合は，引き継ぐディレクトリをホスト間で共用します。その場合は，少なくともこのパラメーターのディレクトリをホスト間で共用します。

注※7

複数のユーザーが同じファイルにトレースログを出力している場合には，TRACE_FILE_CNTとTRACE_FILE_SIZEは，それぞれ，より大きい値を指定したユーザーの指定が有効になります。

また，環境ファイルでTRACE_FILE_CNTとTRACE_FILE_SIZEを変更した場合は，既存のトレースファイルの面数およびファイルサイズの設定値と比較して，それぞれ，より大きい値を指定したユーザーの指定が有効になります。

トレースファイルの面数およびファイルサイズを小さくする場合は，トレースフォルダにあるファイルをすべて削除してください。トレースフォルダにあるファイルをすべて削除するときは，同じトレースファイルにトレースを出力しているジョブがないことを確認してから行ってください。

7.2.2　exportパラメーター

(1)　exportパラメーターの定義

exportパラメーターはシステム環境ファイルおよびジョブ環境ファイルに定義します。これらのファイルについての説明は「2.6.1　環境ファイルを設定する」を参照してください。

システム環境ファイルとジョブ環境ファイルの両方に指定した場合の扱いは次のようになります。

子孫ジョブの起動時にも環境ファイルを解析処理します。これによって，子孫ジョブ起動時にexportパラメーターで指定した値が環境変数に再度設定されます。

システム環境ファイルとジョブ環境ファイルの両方が有効であり，システム環境ファイル，ジョブ環境ファイルの順番で実行します。

例

＜システム環境ファイル＞

export A=s1
export B=s2
export A=s3

＜ジョブ環境ファイル＞

export C=j1
export B=j2

＜次の順に実行します＞

export A=s1
export B=s2
export A=s3
export C=j1
export B=j2

PATH環境変数に任意のパスを追加する場合の例を示します。

export   PATH='d:¥user¥prg;${PATH}'
export   PATH='/user/prg:${PATH}'

PATH環境変数にパスを追加する場合，ルートジョブ開始時にパスが追加され，子孫ジョブ開始時にさらに追加されるため，PATH環境変数の値が長くなり，PATH環境変数の上限サイズを超えることがあります。このため，子孫ジョブ機能と併用する場合は上限を超えないように注意が必要です。

上限を超えてしまう場合には，ルートジョブの環境ファイルと子孫ジョブの環境ファイルを分けて，ルートジョブの環境ファイルだけにPATH環境変数にパスを追加してください。

(2)　exportパラメーターの一覧

exportパラメーターの定義条件を次に示します。このパラメーターの指定は任意です。このパラメーターはジョブコントローラだけが使用します。

パラメーター名

定義内容

指定個数の上限値

export

環境ファイルを使用するジョブコントローラ起動時に有効としたい環境変数を定義します。

無制限

7.2.3　条件パラメーターの一覧

(1)　条件パラメーターの定義

論理ホスト専用，または物理ホスト専用の環境設定パラメーターおよびexportパラメーターを定義する場合は，条件パラメーターで囲んで定義します。

条件パラメーター外に記述してあるパラメーターは，すべてのホストで有効になります。条件パラメーターによって有効になったパラメーターと，条件パラメーター外で有効となった同一のパラメーターは，重複指定と見なされ，指定可能数の上限を超えていた場合はエラーになります。

条件パラメーターを次のように定義した場合について説明します。

(パラメーター群A)
#-adsh_conf lhost_start HOST01
(パラメーター群B)
#-adsh_conf lhost_end
#-adsh_conf lhost_start HOST02
(パラメーター群C)
#-adsh_conf lhost_end
#-adsh_conf phost_start
(パラメーター群D)
#-adsh_conf phost_end
#-adsh_conf lhost_start HOST01
(パラメーター群E)
#-adsh_conf lhost_end
#-adsh_conf lhost_start HOST02
(パラメーター群F)
#-adsh_conf lhost_end
#-adsh_conf phost_start
(パラメーター群G)
#-adsh_conf phost_end
(パラメーター群H)

この定義の場合，各ホストで実行されるパラメーター群は次のとおりです。

論理ホストHOST01で実行されるパラメーター群

(パラメーター群A)
(パラメーター群B)
(パラメーター群E)
(パラメーター群H)

論理ホストHOST02で実行されるパラメーター群

(パラメーター群A)
(パラメーター群C)
(パラメーター群F)
(パラメーター群H)

物理ホストで実行されるパラメーター群

(パラメーター群A)
(パラメーター群D)
(パラメーター群G)
(パラメーター群H)

条件パラメーターはシステム環境ファイルおよびジョブ環境ファイルに定義します。これらのファイルについての説明は「2.6.1　環境ファイルを設定する」を参照してください。

システム環境ファイルとジョブ環境ファイルに指定できるパラメーターは同じですが，同じパラメーターを指定した場合の扱いは次のようになります。

システム環境ファイルとジョブ環境ファイルの両方が有効になります。

条件が一致して有効になったパラメーターはそれそれのパラメーターの規則が適用されます。

例

＜システム環境ファイル＞

#-adsh_conf lhost_start host01
#-adsh_conf TEMP_FILE_DIR /jp1as/temp
#-adsh_conf PATH_CONV /jp1as/abc c:¥¥jp1as¥¥sys1
#-adsh_conf PATH_CONV /jp1as/def c:¥¥jp1as¥¥sys2
#-adsh_conf lhost_end

＜ジョブ環境ファイル＞

#-adsh_conf lhost_start host01
#-adsh_conf TEMP_FILE_DIR /home/temp
#-adsh_conf PATH_CONV /jp1as/abc c:¥¥jp1as¥¥job1
#-adsh_conf PATH_CONV /jp1as/def c:¥¥jp1as¥¥job2
#-adsh_conf PATH_CONV /jp1as/kkk c:¥¥jp1as¥¥job3
#-adsh_conf lhost_end

＜論理ホストhost01でジョブを実行した場合の結果は次の内容と同等です＞

#-adsh_conf TEMP_FILE_DIR /home/temp
#-adsh_conf PATH_CONV /jp1as/abc c:¥¥jp1as¥¥job1
#-adsh_conf PATH_CONV /jp1as/def c:¥¥jp1as¥¥job2
#-adsh_conf PATH_CONV /jp1as/kkk c:¥¥jp1as¥¥job3
#-adsh_conf PATH_CONV /jp1as/abc c:¥¥jp1as¥¥sys1
#-adsh_conf PATH_CONV /jp1as/def c:¥¥jp1as¥¥sys2

(2)　条件パラメーターの一覧

条件パラメーターを次の表に示します。これらのパラメーターの指定は任意です。

表7‒2　JP1/Advanced Shellの環境ファイルに設定する条件パラメーター

パラメーター名

定義内容

指定個数の上限値

lhost_start

特定の論理ホストだけに有効とする環境設定パラメーターおよびexportパラメーターを開始します。

対象となる論理ホスト名もあわせて定義します。

無制限

lhost_end

lhost_startによって開始された，論理ホスト用の環境設定パラメーターとexportパラメーターを終了します。このパラメーターは，lhost_startパラメーターと必ず対になるように定義します。

phost_start

物理ホストだけに有効とする環境設定パラメーターおよびexportパラメーターを開始します。

phost_end

phost_startによって開始された，物理ホスト用の環境設定パラメーターとexportパラメーターを終了します。このパラメーターは，phost_startパラメーターと必ず対になるように定義します。

(3)　条件パラメーターの定義例

環境ファイルで設定するパラメーターの定義例を示します。

(a)　システム環境ファイルとジョブ環境ファイルの定義例

システム環境ファイルとジョブ環境ファイルの関係を定義例で説明します。

単一ホストで運用する場合

システムのデフォルトとしてシステム環境ファイルを定義します。ここでは次の内容を定義します。

JP1イベントの発行先としてホスト名「HostJp1IM」を定義する。

KNAX6110-I，KNAX6111-Iメッセージの出力を抑止する。

この場合のシステム環境ファイルの定義例は次のとおりです。

#-adsh_conf  JOBLOG_SUPPRESS_MSG  KNAX6110-I
#-adsh_conf  JOBLOG_SUPPRESS_MSG  KNAX6111-I
#-adsh_conf  HOSTNAME_JP1IM_MANAGER  HostJp1IM

ジョブごとの設定変更をジョブ環境ファイルで定義します。特定のジョブでジョブ定義スクリプト中の引数を変換することや，スクリプト拡張コマンド失敗時の終了コードを定義することができます。

ジョブ環境ファイルの定義例は次のとおりです。

#-adsh_conf  ADSHCMD_RC_ERROR  8
#-adsh_conf  COMMAND_CONV_ARG  /var/tmp  /home/user01/tmp

論理ホストHOST01，HOST02を同時に運用する場合

システムのデフォルトとしてシステム環境ファイルを定義します。ここでは次の内容を定義します。

KNAX6110-I，KNAX6111-Iメッセージの出力を抑止する。

SPOOL_DIR，LOG_DIR，TRACE_DIR，TEMP_FILE_DIR，HOSTNAME_JP1IM_MANAGERパラメーターを論理ホストごとに別々の定義にして実行環境を分ける。

環境変数ABCの値を論理ホストごとに分ける。

この場合のシステム環境ファイルの定義例は次のとおりです。

#-adsh_conf  JOBLOG_SUPPRESS_MSG  KNAX6110-I
#-adsh_conf  JOBLOG_SUPPRESS_MSG  KNAX6111-I
#-adsh_conf  lhost_start HOST01
#-adsh_conf  SPOOL_DIR  /jp1as/host01/spool
#-adsh_conf  LOG_DIR    /jp1as/host01/log
#-adsh_conf  TRACE_DIR  /jp1as/host01/trace
#-adsh_conf  TEMP_FILE_DIR /jp1as/host01/temp
#-adsh_conf  HOSTNAME_JP1IM_MANAGER  HostJp1IM01
#-adsh_conf  lhost_end
#-adsh_conf  lhost_start HOST02
#-adsh_conf  SPOOL_DIR  /jp1as/host02/spool
#-adsh_conf  LOG_DIR    /jp1as/host02/log
#-adsh_conf  TRACE_DIR  /jp1as/host02/trace
#-adsh_conf  TEMP_FILE_DIR /jp1as/host02/temp
#-adsh_conf  HOSTNAME_JP1IM_MANAGER  HostJp1IM02
#-adsh_conf  lhost_end
#-adsh_conf  lhost_start HOST01
export  ABC=/jp1as/host01/abc
#-adsh_conf  lhost_end
#-adsh_conf  lhost_start HOST02
export  ABC=/jp1as/host02/abc
#-adsh_conf  lhost_end

ジョブごとの設定変更をジョブ環境ファイルで定義します。特定のジョブでジョブ定義スクリプト中の引数を論理ホストごとに異なる値に変換することや，スクリプト拡張コマンド失敗時の終了コードを定義することができます。

ジョブ環境ファイルの定義例は次のとおりです。

#-adsh_conf ADSHCMD_RC_ERROR  8
#-adsh_conf lhost_start HOST01
#-adsh_conf COMMAND_CONV_ARG  /var/tmp  /home/user01/tmp01
#-adsh_conf lhost_end
#-adsh_conf lhost_start HOST02
#-adsh_conf COMMAND_CONV_ARG  /var/tmp  /home/user01/tmp02
#-adsh_conf lhost_end

通常は論理ホストHOST01で運用し，一時的に物理ホストで運用する場合

システムのデフォルトとしてシステム環境ファイルを定義します。ここでは次の内容を定義します。

KNAX6110-I，KNAX6111-Iメッセージの出力を抑止する。

SPOOL_DIR，LOG_DIR，TRACE_DIR，TEMP_FILE_DIR，HOSTNAME_JP1IM_MANAGERパラメーターを論理ホストと物理ホストで別々の定義にして実行環境を分ける。

物理ホストのSPOOL_DIR，LOG_DIR，TRACE_DIR，TEMP_FILE_DIRパラメーターはデフォルトのディレクトリを使用する。

環境変数ABCの値を論理ホストと物理ホストで分ける。

この場合のシステム環境ファイルの定義例は次のとおりです。

#-adsh_conf  JOBLOG_SUPPRESS_MSG  KNAX6110-I
#-adsh_conf  JOBLOG_SUPPRESS_MSG  KNAX6111-I
#-adsh_conf  lhost_start HOST01
#-adsh_conf  SPOOL_DIR  /jp1as/host01/spool
#-adsh_conf  LOG_DIR    /jp1as/host01/log
#-adsh_conf  TRACE_DIR  /jp1as/host01/trace
#-adsh_conf  TEMP_FILE_DIR /jp1as/host01/temp
#-adsh_conf  HOSTNAME_JP1IM_MANAGER  HostJp1IM01
#-adsh_conf  lhost_end
#-adsh_conf  phost_start
#-adsh_conf  HOSTNAME_JP1IM_MANAGER  HostJp1IM01
#-adsh_conf  phost_end
#-adsh_conf  lhost_start HOST01
export  ABC=/jp1as/host01/abc
#-adsh_conf  lhost_end
#-adsh_conf  phost_start
export  ABC=/jp1as/abc
#-adsh_conf  phost_end

ジョブごとの設定変更をジョブ環境ファイルで定義します。特定のジョブでジョブ定義スクリプト中の引数を論理ホストと物理ホストで異なる値に変換することや，スクリプト拡張コマンド失敗時の終了コードを定義することができます。

ジョブ環境ファイルの定義例は次のとおりです。

#-adsh_conf ADSHCMD_RC_ERROR  8
#-adsh_conf lhost_start HOST01
#-adsh_conf COMMAND_CONV_ARG  /var/tmp  /home/user01/tmp01
#-adsh_conf lhost_end
#-adsh_conf phost_start
#-adsh_conf COMMAND_CONV_ARG  /var/tmp  /home/user01/tmp00
#-adsh_conf phost_end

(b)　条件パラメーターの定義例

条件パラメーターの定義内容と，各ホストに適用されるパラメーターについて定義例で説明します。

例えば，条件パラメーターを次のように定義した場合について説明します。

(パラメーター群A)
#-adsh_conf lhost_start HOST01
(パラメーター群B)
#-adsh_conf lhost_end
#-adsh_conf lhost_start HOST02
(パラメーター群C)
#-adsh_conf lhost_end
#-adsh_conf phost_start
(パラメーター群D)
#-adsh_conf phost_end
#-adsh_conf lhost_start HOST01
(パラメーター群E)
#-adsh_conf lhost_end
#-adsh_conf lhost_start HOST02
(パラメーター群F)
#-adsh_conf lhost_end
#-adsh_conf phost_start
(パラメーター群G)
#-adsh_conf phost_end
(パラメーター群H)

この定義の場合，各ホストで実行されるパラメーター群は次のとおりです。

論理ホストHOST01で実行されるパラメーター群

(パラメーター群A)
(パラメーター群B)
(パラメーター群E)
(パラメーター群H)

論理ホストHOST02で実行されるパラメーター群

(パラメーター群A)
(パラメーター群C)
(パラメーター群F)
(パラメーター群H)

物理ホストで実行されるパラメーター群

(パラメーター群A)
(パラメーター群D)
(パラメーター群G)
(パラメーター群H)

7.3　環境設定パラメーター

JP1/Advanced Shellの環境ファイルに設定するパラメーターについて説明します。

ADSHCMD_RC_ERRORパラメーター（スクリプト拡張コマンド失敗時の終了コードを定義する）

形式

#-adsh_conf ADSHCMD_RC_ERROR 終了コード

機能

スクリプト拡張コマンドが失敗したときの終了コードを定義します。

オペランド

終了コード　〜＜符号なし整数＞((0〜255))《1》

スクリプト拡張コマンドが失敗したときの終了コードを指定します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

ADSHCMD_RC_SUCCESSパラメーター（スクリプト拡張コマンド成功時の終了コードを定義する）

形式

#-adsh_conf ADSHCMD_RC_SUCCESS 終了コード

機能

スクリプト拡張コマンドが成功したときの終了コードを定義します。

オペランド

終了コード　〜＜符号なし整数＞((0〜255))《0》

スクリプト拡張コマンドが成功したときの終了コードを指定します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

ASC_FILEパラメーター（蓄積ファイル名の生成規則を定義する）

形式

#-adsh_conf ASC_FILE ファイル名規則

機能

カバレージ採取の一括有効化機能で使用する蓄積ファイル名の生成規則を定義します。

オペランド

ファイル名規則

Windowsの場合　〜＜任意文字列＞((1〜247バイト))

UNIXの場合　〜＜任意文字列＞((1〜1,023バイト))

置換位置を指定したパス名を指定します。

置換位置は*で指定し，*はジョブ定義スクリプト名で置換します。この場合，ジョブ定義スクリプトのファイル拡張子を除きます。置換位置の先頭から最初に検索した*を置換の対象とします。それ以降に指定しても置換の対象とはなりません。

置換位置の指定がない場合は，置換しないでそのままファイル名になります。

置換の有無に関係なく，結果の値がパス名として正しくない場合はエラーとなります。また，このパラメーターを省略した場合は，adshexecコマンドで-oオプションを指定しなかったときと同様の規則でファイル名が決定します。

変換後のファイル名が，adshexecコマンドで規定されたascファイルのパス名の長さの上限を超えないように，ファイル名規則を設定してください。上限を超えると，adshexecコマンド実行時にエラーとなります。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

BATCH_CVRパラメーターのオペランドにYESの指定がない場合は無効となります。

ファイル名に.（ドット）で始まる名称を使用しないでください。

ファイル名に予約デバイス名（CONやAUX，NULなど）は使用しないでください。【Windows限定】

ファイル名にNTFSのストリームは使用しないでください。【Windows限定】

使用例

カバレージ採取の一括有効化機能を有効にし，蓄積ファイル名の生成規則を定義します。

#-adsh_conf BATCH_CVR YES
#-adsh_conf ASC_FILE ./cvrg/ver001-*

この場合，「adshexec sample.ash」の実行は，「adshexec -t -o ./cvrg/ver001-sample sample.ash」の実行と同じとなります。

BATCH_CVRパラメーター（カバレージ採取の一括有効化機能を有効にする）

形式

#-adsh_conf BATCH_CVR YES

機能

カバレージ採取の一括有効化機能を有効にします。

オペランド

YES

カバレージ採取の一括有効化機能を有効にします。この機能を有効にした場合，adshexecコマンドで-tオプションを指定した場合と同じ効果があります。

adshexecコマンドの-fオプションを指定しない場合と同様に，ジョブ定義スクリプトファイルとバックアップ情報に差分があったときは，カバレージを採取しません。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

次の場合に実行するとカバレージ採取の一括有効化機能は無効となります。

adshexecコマンドに-vオプションまたは-cオプションの指定がある場合

JP1/Advanced Shell - Developerで実行する場合

ASC_FILEパラメーターの指定を有効にする場合，このパラメーターの指定が必要です。

adshexecコマンドに-tの指定がある場合は，エラーメッセージを出力して，コマンドはRC=1で終了します。

すでにカバレージ情報ファイルがある状態で，ジョブ定義スクリプトファイルを変更すると，カバレージ情報を採取できません。この場合，次のどちらかを実施してください。

ジョブ定義スクリプトを変更したascファイルを削除します。

環境ファイルで，ascファイルの作成ディレクトリを変更します。

CHILDJOB_EXTパラメーター（子孫ジョブとして実行するジョブ定義スクリプトファイルの拡張子を定義する）

形式

#-adsh_conf CHILDJOB_EXT 拡張子

機能

子孫ジョブとして実行するジョブ定義スクリプトファイルの拡張子を定義します。

ジョブ定義スクリプト中に，このパラメーターで定義した拡張子を持つほかのジョブ定義スクリプトファイルをコマンド名として指定した場合，KNAX6832-Iメッセージをジョブ実行ログに出力し，JP1/Advanced Shellのジョブ定義スクリプトと解釈して子孫ジョブとして実行します。なお，KNAX6832-Iメッセージは，JOBLOG_SUPPRESS_MSGパラメーターでジョブ実行ログへの出力を抑止できます。

オペランド

拡張子　〜＜パス名＞((1〜245バイト))

子孫ジョブとして実行するジョブ定義スクリプトファイルの拡張子を指定します。"（ダブルクォーテーション）で囲んだ値に空文字だけを指定することはできません。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，両方の定義が有効になります。ただし，システム環境ファイルとジョブ環境ファイルの定義の合計が255個を超えた場合，エラーになります。

オペランドに指定する拡張子には.（ドット）を含まない値を指定します。

オペランドに指定する拡張子に/（スラッシュ）だけを指定した場合，パラメーター解析時にエラー終了します。

オペランドに指定する拡張子に，Windowsが定める実行可能拡張子であるexe，bat，cmd，またはcomを指定しないでください。指定した場合はほかの拡張子と同様に，該当するファイルを子孫ジョブとして実行します。【Windows限定】

ジョブ実行ログに出力されるコマンド名は，子孫ジョブとして実行したスクリプトファイルのパスとなります。

このパラメーターによって実行可能なファイルに対して，ファイル属性を評価する演算子"-x"を使用して評価すると，判定は真となります。【Windows限定】

同じ拡張子を重複して指定してもエラーにはなりません。

シェル標準コマンドのexecコマンド，commandコマンド，evalコマンド，およびスクリプト予約語コマンドのtimeコマンドの引数にファイルを指定した場合も，このパラメーターによる実行の対象となります。

Windows版の場合，英大文字と英小文字を区別しません。UNIX版の場合，英大文字と英小文字を区別します。

拡張子がないファイルを子孫ジョブとして実行する場合は，CHILDJOB_PGMパラメーターまたはCHILDJOB_SHEBANGパラメーターを使用してください。

このパラメーターは，変数置換やエイリアスの解決後のコマンド名に対して適用されます。

使用例

拡張子がash，shのファイルをコマンド名として指定した場合に，子孫ジョブとして実行したいときの例を次に示します。

#-adsh_conf CHILDJOB_EXT ash
#-adsh_conf CHILDJOB_EXT sh

CHILDJOB_PGMパラメーター（子孫ジョブとして実行する指定を定義する）

形式

#-adsh_conf CHILDJOB_PGM プログラムパス名 ［実行プログラムの引数］

機能

ジョブ定義スクリプト中に「プログラムパス名 ［実行プログラムの引数］ファイル」という指定が現れた場合，KNAX6830-Iメッセージをジョブ実行ログに出力し，ファイルをジョブ定義スクリプトと解釈し，子孫ジョブとして実行します。なお，KNAX6830-Iメッセージは，JOBLOG_SUPPRESS_MSGパラメーターでジョブ実行ログへの出力を抑止できます。

例を次に示します。

パラメーターの指定例

#-adsh_conf CHILDJOB_PGM sh -x

ジョブ定義スクリプトの内容

sh -x $HOME/script/test.ash

この例の場合，「$HOME/script/test.ash」をジョブ定義スクリプトと解釈し，子孫ジョブとして実行します。

指定できるオペランドの数は，プログラムパス名と実行プログラムの引数の合計で，64個までです。65個以上指定した場合，パラメーター解析時にエラー終了します。

Windows版では，環境ファイルにCHILDJOB_PGMパラメーターを定義しなくても，プログラムパスに「adshscripttool -exec」が指定されたCHILDJOB_PGMパラメーターが定義されています。adshscripttoolコマンドについては，「adshscripttoolコマンド（ジョブ定義スクリプトの作成を支援する）【Windows限定】」を参照してください。

オペランド

プログラムパス名　〜＜パス名＞((1〜1,023バイト))

子孫ジョブとして実行するための起動プログラムに読み替える前のプログラムパスを定義します。"（ダブルクォーテーション）で囲んだ値に空文字だけを指定することはできません。また，「¥」はエスケープ文字として扱いません。

実行プログラムの引数　〜＜任意文字列＞((1〜1,023バイト))

子孫ジョブとして実行するための起動プログラムに読み替える前のプログラムパスの引数を定義します。スペースおよびタブ文字で区切ることで，複数指定できます。また，「¥」はエスケープ文字として扱いません。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，両方の定義が有効になります。ただし，システム環境ファイルとジョブ環境ファイルの定義の合計が255個を超えた場合，エラーになります。

このパラメーターとPATH_CONVパラメーターで，同じオペランドを定義した場合，PATH_CONVパラメーターによる変換が先に実施されます。例を次に示します。

環境ファイルの内容

#-adsh_conf PATH_CONV_ENABLE / :　　　　　　　　←1.
#-adsh_conf PATH_CONV /usr/bin C:¥¥usr¥¥bin　　 ←2.
#-adsh_conf CHILDJOB_PGM /usr/bin/ksh　　　　　 ←3.

ジョブ定義スクリプトの内容

"/usr/bin/ksh" C:¥¥script¥¥test.ash

この例では，1.および2.が先に実施され，「/usr/bin/ksh」が「C:¥¥usr¥¥bin¥¥ksh」に変換されます。その後，3.によって「/usr/bin/ksh」が子孫ジョブとして実行するように読み替えるプログラムパスと解釈されます。しかし，パス変換済みのジョブ定義スクリプトの中には一致する文字列が存在しないため，「C:¥¥script¥¥test.ash」は子孫ジョブとして実行されません。

このパラメーターとCOMMAND_CONV_ARGパラメーターで，同じオペランドを定義した場合，COMMAND_CONV_ARGパラメーターによる変換が先に実施されます。

このパラメーターは，変数置換やエイリアスの解決後の文字列に対して適用されます。変数置換の例を次に示します。

環境ファイルの内容

#-adsh_conf CHILDJOB_PGM /usr/bin/ksh

ジョブ定義スクリプトの内容（ここでは変数SHELLの値を"/usr/bin/ksh"と仮定）

$SHELL /home/usr/test.ash

この例では，「$SHELL」が「/usr/bin/ksh」として解決されたあとに，パラメーターの定義に従って読み替えられるため，「/home/usr/test.ash」は子孫ジョブとして実行されます。

このパラメーターを使用して子孫ジョブを実行した場合，ジョブ実行ログに出力されるコマンド名は，JP1/Advanced Shellのコマンド（adshexecコマンドまたはadshexecsubコマンド）となります。

ただし，コマンドを次の書式で実行した場合，ジョブ実行ログに出力されるコマンド名は，このパラメーターが適用される前のプログラムパス名となります。

パイプ（|）による別プロセスの実行

コマンド置換（$()，``）による別プロセスの実行

|&によるバックグラウンドプロセスの実行

単一コマンドのグループ化によるサブシェルの実行

&によるバックグラウンドの実行

シェル標準コマンドのexecコマンド，commandコマンド，evalコマンド，およびスクリプト予約語コマンドのtimeコマンドの引数に指定したプログラムパスも，このパラメーターが適用される対象となります。

このパラメーターは，ジョブ定義スクリプト中のシェル標準コマンド，シェル拡張コマンド，関数，外部コマンドに対して適用されます。

パス名，および実行プログラムの引数は，環境ファイルの1行の長さの上限の範囲で指定してください。

使用例

ジョブ定義スクリプトに指定された「$HOME/script/test.ash」を子孫ジョブとして実行させる場合を例に，ジョブ定義スクリプトと環境ファイルの指定内容を次に示します。CHILDJOB_PGMパラメーターで指定した内容を下線で示します。

例1

環境ファイルの内容

#-adsh_conf CHILDJOB_PGM /bin/sh

ジョブ定義スクリプトの内容

/bin/sh $HOME/script/test.ash

例2

環境ファイルの内容

#-adsh_conf CHILDJOB_PGM /opt/jp1as/bin/adshexec

ジョブ定義スクリプトの内容

/opt/jp1as/bin/adshexec $HOME/script/test.ash

例3

環境ファイルの内容

#-adsh_conf CHILDJOB_PGM sh -x

ジョブ定義スクリプトの内容

sh -x $HOME/script/test.ash

例4

環境ファイルの内容

#-adsh_conf CHILDJOB_PGM /usr/bin/env ksh

ジョブ定義スクリプトの内容

/usr/bin/env ksh $HOME/script/test.ash

CHILDJOB_SHEBANGパラメーター（子孫ジョブとして実行するジョブ定義スクリプトファイルの実行プログラムパスを定義する）

形式

#-adsh_conf CHILDJOB_SHEBANG パス名

機能

子孫ジョブとして実行するジョブ定義スクリプトファイルに指定された，「#!」に続く実行プログラムパスを定義します。「#!」の直後から行末までをパス名の比較対象とします。

ジョブ定義スクリプト中にほかのジョブ定義スクリプトファイルをコマンド名として指定した場合，このパラメーターで指定したパス名がジョブ定義スクリプトのファイルの1行目に「#!＋パス名」と記述されていれば，KNAX6831-Iメッセージをジョブ実行ログに出力し，ジョブ定義スクリプトファイルを子孫ジョブとして実行します。KNAX6831-Iメッセージは，JOBLOG_SUPPRESS_MSGパラメーターでジョブ実行ログへの出力を抑止できます。

なお，CHILDJOB_SHEBANGパラメーターには，次の2つがデフォルトで定義されています。

デフォルト定義

子孫ジョブ起動時の出力モード

/opt/jp1as/bin/adshexec

OUTPUT_MODE_CHILDパラメーターの指定に従って動作します。

/opt/jp1as/bin/adshexec -mMINIMUM

最小出力モードで動作します。

CHILDJOB_SHEBANGパラメーターのデフォルト定義については，「3.2.3(1)(b)　パラメーターのデフォルト定義で子孫ジョブを実行する方法」を参照してください。

オペランド

パス名　〜＜任意文字列＞((1〜1,023バイト))

子孫ジョブとして実行するジョブ定義スクリプトファイルに指定した「#!」で開始する実行プログラムパスを定義します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，両方の定義が有効になります。ただし，システム環境ファイルとジョブ環境ファイルの定義の合計が255個を超えた場合，エラーになります。

オペランドに指定するパス名には，先頭の「#!」を含まない値を指定します。

オペランドに指定するパス名に「/」（スラッシュ）だけ指定した場合，パラメーター解析時にエラー終了します。

ジョブ実行ログに出力されるコマンド名は，直接指定したスクリプトファイルのパスとなります。

このパラメーターによって実行可能なファイルに対して，ファイル属性を評価する演算子"-x"を使用して評価すると，判定は真となります。【Windows限定】

同じ実行プログラムパスを重複して指定してもエラーにはなりません。

シェル標準コマンドのexecコマンド，commandコマンド，evalコマンド，およびスクリプト予約語コマンドのtimeコマンドの引数にファイルを指定した場合も，このパラメーターによる実行の対象となります。

使用例

先頭に特定の記述があるジョブ定義スクリプトファイルを子孫ジョブとして実行する例を次に示します。

先頭に「#!/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"

CMDRC_THRESHOLD_DEFINEパラメーター（コマンドの終了コードのしきい値を定義する）

形式

#-adsh_conf CMDRC_THRESHOLD_DEFINE コマンド名 しきい値

機能

ジョブ定義スクリプトから実行されるコマンドの終了コードが0でなくても正常終了と見なしたい場合，対象となるコマンド名と，しきい値となる値を定義します。これによって，コマンドの終了コードがしきい値以下の場合が正常終了となります。

ただし，コマンドがシグナルを受信して終了した場合は，指定に関係なくコマンドがエラー終了します。

CMDRC_THRESHOLD_USE_PRESETパラメーターのENABLEの指定によってしきい値が定義されたUNIX互換コマンドに対しても，CMDRC_THRESHOLD_DEFINEパラメーターでしきい値を変更できます。

オペランド

コマンド名　〜＜コマンド名＞((1〜255バイト))

終了コードのしきい値を定義するコマンドの名称を指定します。Windowsの場合は拡張子付きの指定もできます。コマンドパスは指定できません。

指定できるコマンドの種類を次に示します。これ以外のコマンドも，別プロセスで実行（パイプ，コマンド置換，|&，&を使用）した場合は対象になります。

外部コマンド

UNIX互換コマンド

シェル運用コマンド

シェルスクリプト

子孫ジョブ

Windowsでコマンド名の拡張子の指定を省略すると，指定した名称と同じ名称のコマンドやバッチファイルが，拡張子に関係なくしきい値の管理対象となります。

Windowsでスペースを含むコマンド名を指定する場合は，"（ダブルクォーテーション）で囲んでください。

しきい値　〜＜整数＞((-1〜255))

終了コードで正常終了と見なすしきい値を定義します。ここで指定したしきい値より終了コードが大きい場合，エラー終了と見なします。

-1を指定した場合，実行結果は常にエラー終了します。

255を指定した場合，実行結果は常に正常終了します。

注意事項

このパラメーターは，変数置換やエイリアスの解決後のコマンド名に対して適用されます。

このパラメーターによって設定されたコマンドのしきい値，および実行したコマンドの終了コードとの判定によって決定したコマンドの動作は，ジョブ定義スクリプトの#-adsh_rc_ignoreコマンドや，#-adsh_step_startコマンドのsuccessRC属性の設定値が優先します。

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義された場合，両方の定義が有効になります。ただし，同じコマンドに対して異なるしきい値が定義されていた場合は，ジョブ環境ファイルに最後に定義された方が有効になります。

パラメーターの指定数に上限はありませんが，多数指定するとジョブ定義スクリプトの実行性能に影響が及ぶため，必要のないコマンドの定義はしないでください。

子孫ジョブとして実行するジョブ定義スクリプトの終了コードのしきい値を定義したい場合，子孫ジョブの定義にはCHILDJOB_EXTパラメーターまたはCHILDJOB_SHEBANGパラメーターを使用してください。

CHILDJOB_PGMパラメーターで子孫ジョブを定義した場合，終了コードのしきい値の対象として見なされません。

Windowsの場合，コマンド名には拡張子を含めた指定および拡張子を省略した指定ができます。

ただし，同じコマンド名に対して拡張子を含めた指定と拡張子を省略した指定をしても，同じコマンド名の指定とは見なされません。

このパラメーターで同じコマンド名に対して，拡張子を含めた指定と拡張子を省略した指定をした場合，先に指定された方が有効です。

CMDRC_THRESHOLD_USE_PRESETパラメーターでENABLEを指定して仮定されるコマンド名は拡張子を含めた名称となるため，このパラメーターをしきい値の変更の目的で指定する場合，拡張子を含めた指定としなければなりません。拡張子を省略して指定した場合は，別コマンドとして登録されます。

CMDRC_THRESHOLD_USE_PRESETパラメーターとCMDRC_THRESHOLD_DEFINEパラメーターは，指定の順番に関係なくCMDRC_THRESHOLD_USE_PRESETパラメーターが先に処理されます。

使用例

子孫ジョブCHILD_EXEC1.shに対し，終了コードのしきい値を10（終了コードが10以下で正常終了）と定義します。

#-adsh_conf  CHILDJOB_EXT sh
#-adsh_conf  CMDRC_THRESHOLD_DEFINE CHILD_EXEC1.sh 10

UNIX互換コマンドの終了コードのしきい値として1を一括定義します。また，それ以外のUNIX互換コマンドであるacmd，bcmd，ccmdコマンドのしきい値として20を定義します。

#-adsh_conf CMDRC_THRESHOLD_USE_PRESET ENABLE
#-adsh_conf CMDRC_THRESHOLD_DEFINE acmd 20
#-adsh_conf CMDRC_THRESHOLD_DEFINE bcmd 20
#-adsh_conf CMDRC_THRESHOLD_DEFINE ccmd 20

【Windows限定】コマンド名「acmd.exe」の終了コードのしきい値として10を定義し，総称名「acmd」のしきい値として20を定義します。

#-adsh_conf  CMDRC_THRESHOLD_DEFINE acmd.exe 10
#-adsh_conf  CMDRC_THRESHOLD_DEFINE acmd 20

この定義順の場合，コマンド「acmd.exe」のしきい値として10が適用され，拡張子が「.exe」以外のコマンド（acmd.batなど）のしきい値として20が適用されます。

【Windows限定】コマンドの総称名「acmd」のしきい値として20を定義し，コマンド名「acmd.exe」の終了コードのしきい値として10を定義します。

名称「acmd」のコマンド（acmd.exeやacmd.batなど）の終了コードのしきい値として20が適用されます。

#-adsh_conf  CMDRC_THRESHOLD_DEFINE acmd 20
#-adsh_conf  CMDRC_THRESHOLD_DEFINE acmd.exe 10

この定義順の場合，最初に記述されているコマンドの総称名「acmd」に対する定義がコマンド「acmd.exe」に対しても優先的に適用されるため，コマンド「acmd.exe」のしきい値も20になります。

同じパラメーターにコマンド名「acmd.exe」を2つ指定します。しきい値はそれぞれ30と20を定義します。

#-adsh_conf  CMDRC_THRESHOLD_DEFINE acmd.exe 30
#-adsh_conf  CMDRC_THRESHOLD_DEFINE acmd.exe 20

この場合，最後に指定したパラメーターのしきい値の20が適用されます。

コマンド名「acmd.exe」をシステム環境ファイルにはしきい値10で指定し，ジョブ環境ファイルにはしきい値20でそれぞれ指定します。

＜システム環境ファイルの指定＞

#-adsh_conf CMDRC_THRESHOLD_DEFINE acmd.exe 10

＜ジョブ環境ファイルの指定＞

#-adsh_conf CMDRC_THRESHOLD_DEFINE acmd.exe 20

この場合，ジョブ環境ファイルに指定したしきい値の20が適用されます。

【Windows限定】UNIX互換コマンドの終了コードのしきい値として1を一括定義したのち，cmp.exeコマンドだけしきい値を2に変更します。

#-adsh_conf CMDRC_THRESHOLD_USE_PRESET ENABLE
#-adsh_conf CMDRC_THRESHOLD_DEFINE cmp.exe 2

【Windows限定】次のように，CMDRC_THRESHOLD_USE_PRESETパラメーターでしきい値として1が仮定されたコマンド「cmp.exe」に対して，CMDRC_THRESHOLD_DEFINEパラメーターで「cmp 2」と指定しても，しきい値を1から2に変更することはできません。

#-adsh_conf CMDRC_THRESHOLD_USE_PRESET ENABLE
#-adsh_conf CMDRC_THRESHOLD_DEFINE cmp 2

この場合，「cmp.exe」と「cmp」は別々のコマンドとして管理され，それぞれのしきい値が有効となります。

CMDRC_THRESHOLD_USE_PRESETパラメーターとCMDRC_THRESHOLD_DEFINEパラメーターを次のように異なる環境ファイルで指定した場合，コマンド「cmp.exe」のしきい値は，CMDRC_THRESHOLD_DEFINEパラメーターに指定したしきい値である2が適用されます。

＜システム環境ファイルの指定＞

#-adsh_conf CMDRC_THRESHOLD_DEFINE cmp.exe 2

＜ジョブ環境ファイルの指定＞

#-adsh_conf CMDRC_THRESHOLD_USE_PRESET ENABLE

CMDRC_THRESHOLD_USE_PRESETパラメーター（UNIX互換コマンドの終了コードのしきい値を定義する）

形式

#-adsh_conf CMDRC_THRESHOLD_USE_PRESET ｛ENABLE|DISABLE｝

機能

次に示すすべてのUNIX互換コマンドに対し，正常終了と見なす終了コードのしきい値を一括で定義します。定義できるしきい値は0または1です。

cmpコマンド

diffコマンド

egrepコマンド

exprコマンド

grepコマンド

sortコマンド

コマンドごとに異なるしきい値を設定したい場合は，CMDRC_THRESHOLD_DEFINEパラメーターでしきい値を定義してください。

なお，このパラメーターで定義されたコマンド名は，Windowsでは拡張子付きで登録されます。例えば，cmpコマンドはOSによって次のように登録されます。

Windows版の場合：cmp.exe

UNIX版の場合：cmp

そのため，CMDRC_THRESHOLD_DEFINEパラメーターでしきい値を変更する場合は，拡張子付きでコマンド名を定義してください。

オペランド

ENABLE

終了コードのしきい値として1を定義します。これによって，終了コードが1のコマンドも正常終了と見なされます。

また，対象となるUNIX互換コマンドと同じ名称を持つコマンドも，しきい値として1が定義されます。

DISABLE

終了コードのしきい値として0を定義します。

注意事項

このパラメーターは，変数置換やエイリアスの解決後のコマンド名に対して適用されます。

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

ENABLEを指定して設定されたコマンドのしきい値，および実行したコマンドの終了コードとの判定によって決定したコマンドの動作は，ジョブ定義スクリプトの#-adsh_rc_ignoreコマンドや，#-adsh_step_startコマンドのsuccessRC属性の設定値が優先します。

CMDRC_THRESHOLD_USE_PRESETパラメーターとCMDRC_THRESHOLD_DEFINEパラメーターは，指定の順番に関係なくCMDRC_THRESHOLD_USE_PRESETパラメーターが先に処理されます。

使用例

対象となるUNIX互換コマンドの終了コードが1でも，正常終了として扱いたいときの例を次に示します。

#-adsh_conf  CMDRC_THRESHOLD_USE_PRESET ENABLE

COMMAND_CONV_ARGパラメーター（コマンド実行時にジョブ定義スクリプト中の引数を変換する規則を定義する）

形式

#-adsh_conf COMMAND_CONV_ARG コマンド引数1 コマンド引数2

機能

ジョブ定義スクリプト中のシェル標準コマンド，シェル拡張コマンド，関数，スクリプト拡張コマンド，スクリプト予約語コマンド，外部コマンド，およびユーザープログラムの引数を変換する規則を定義します。

ジョブ定義スクリプトの実行時にコマンドの引数がコマンド引数1と完全一致する場合，コマンド引数2に変換します。コマンド引数1およびコマンド引数2は必ず指定します。

同じコマンド引数に異なる規則を定義した場合は，先に定義した規則が有効になります。

.（ドット）コマンド，および#-adsh_scriptコマンドに指定した外部スクリプトも，実行時に定義に合致していた場合，引数が変換されます。

変換結果は，KNAX6804-Iメッセージ，またはKNAX6806-Iメッセージでジョブ実行ログに出力します。

オペランド

コマンド引数1　〜＜任意文字列＞((1〜247バイト))

変換前のコマンド引数を指定します。スペースを含むコマンド引数を指定する場合は，"（ダブルクォーテーション）で囲む必要があります。ただし，"で囲んだ値にスペース，タブ文字または空文字だけを指定できません。なお，次の文字は使用できません。

*　?　<　>　|　`（バッククォーテーション）　$

コマンド引数1を指定しなかった場合，またはコマンド引数1に不当な値を指定した場合は，パラメーター解析時にエラー終了します。

コマンド引数2　〜＜任意文字列＞((1〜247バイト))

変換後のコマンド引数を指定します。スペースを含むコマンド引数を指定する場合は，"（ダブルクォーテーション）で囲む必要があります。ただし，"で囲んだ値にスペース，タブ文字または空文字だけを指定できません。なお，次の文字は使用できません。

*　?　<　>　|　`（バッククォーテーション）　$

コマンド引数2を指定しなかった場合，またはコマンド引数2に不当な値を指定した場合は，パラメーター解析時にエラー終了します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，両方の定義が有効になります。ただし，システム環境ファイルとジョブ環境ファイルの定義の合計が255個を超えた場合，エラーになります。

次の例のように，変換後のコマンド引数と後続のパラメーターの変換前のコマンド引数が同じ場合，規則に合致する引数を持つevalコマンドを実行すると，evalコマンド実行時とその引数のコマンドの実行時とで，2回の変換が実行されます。

（例）

環境ファイルの内容

#-adsh_conf COMMAND_CONV_ARG /tmp /var/tmp　　　　←1.
#-adsh_conf COMMAND_CONV_ARG /var/tmp /jp1as/tmp　←2.

ジョブ定義スクリプトの内容

eval cd /tmp

この場合，環境ファイルのそれぞれの行で次のように変換されます。

evalコマンドが実行され，「/tmp」が「/var/tmp」に変換される。

cdコマンドが実行され，「/var/tmp」が「/jp1as/tmp」に変換される。

このパラメーターの変換後の引数に，文字列区切りであるIFSシェル変数と一致する文字が含まれた場合でも，変換後の引数は1つの文字列の引数として解釈されます。そのため，パラメーターの変換結果の文字列にメタキャラクタが含まれていて，実行するコマンドがevalコマンド以外の場合，その文字はメタキャラクタではなく一般的な文字として扱われます。

環境ファイルの内容（IFSシェル変数はスペースとする）

#-adsh_conf COMMAND_CONV_ARG "D:¥JP1AS" "C:¥¥Documents and Settings" ←引数の変換規則1
#-adsh_conf COMMAND_CONV_ARG "A=1" "A=1 &"                           ←引数の変換規則2

ジョブ定義スクリプトの内容

cd "D:¥JP1AS"       ←1.
readonly A=1        ←2.
eval cd "D:¥JP1AS"  ←3.
eval readonly A=1   ←4.

変換規則1に従って次のように変換され，実行される。

　cd "C:¥¥Documents and Settings"

変換規則2に従って変換するが，次のように文字列が区切られる。

　readonly　　A=1 &

evalコマンドの実行時に，変換規則1に従って次のように変換される。

　eval cd "C:¥¥Documents and Settings"

しかし，cdコマンド実行時に次のように引数が区切られ解釈される。

　cd　　C:¥Documents　　and　　Settings

evalコマンドの実行時に変換規則2に従って次のように変換される。

　eval readonly A=1 &

しかし，readonlyコマンドの実行時に次のように引数が区切られ解釈される。

　readonly　　A=1　　&

このパラメーターによる変換は，変数置換およびファイル名置換が解決した内容で実施されます。このため，ワイルドカードを含んだ文字列を引数に指定した場合，ワイルドカードによる置き換えが解決した内容をコマンドの引数として認識します。

このパラメーターをtestコマンドに適用した場合，形式の違いによってコマンド実行時の引数の文字列の解釈が異なります。[[ ]]の形式では，配列の要素に変数の置き換えを指定した場合，このパラメーターによる変換の対象外となります。このため，testコマンドを使用して，このパラメーターによるコマンドの引数を変換する場合は，testまたは[ ]による形式の使用を推奨します。

（例）

環境ファイルの内容

#-adsh_conf PATH_CONV_ENABLE ¥¥ :
#-adsh_conf COMMAND_CONV_ARG "/tmp2" "/tmp"   ←引数の変換規則1
#-adsh_conf COMMAND_CONV_ARG "ARY[1]" "/tmp"  ←引数の変換規則2

ジョブ定義スクリプトの内容

ARY[0]="/var"         ←配列ARYに"/var"，"/tmp2"，"/home"を格納
ARY[1]="/tmp2"
ARY[2]="/home"
id1=1
[[ -d ${ARY[$id1]} ]] ←${ARY[$id1]}を"/tmp2"まで置換。
                        このため，引数の変換規則1で"/tmp"に変換
[[ -d   ARY[$id1] ]]  ←置換しないで"ARY[$id1]"が引数となる。
                        "$"は指定できないため，変換対象外
[ -d ${ARY[$id1]} ]   ←${ARY[$id1]}を"/tmp2"まで置換。
                        置換した結果を引数の変換規則1で"/tmp"に変換
[ -d   ARY[$id1] ]    ←${ARY[$id1]}を"ARY[1]"まで置換。
                        このため，引数の変換規則1で"/tmp"に変換

次に示すコマンドを実行した場合，引数に指定されたコマンドが実際には動作しますが，このパラメーターは引数に指定されたコマンドに対しても比較・変換を実行します。

builtinコマンド

commandコマンド

evalコマンド

execコマンド

time予約語コマンド

次の例では，builtinコマンドの引数に指定されたpwdが実際には動作しますが，環境ファイルの内容に従ってreadonlyコマンドが実行されます。

環境ファイルの内容

#-adsh_conf COMMAND_CONV_ARG pwd readonly

ジョブ定義スクリプトの内容

builtin pwd

変換する規則を定義した順に検索し，最初に変換条件に合致したものだけが適用されます。

このパラメーターとPATH_CONVパラメーターで同じパス名に対して変換を定義した場合，PATH_CONVパラメーターによる変換が先に実施されます。PATH_CONVパラメーターで変換されたパス名をCOMMAND_CONV_ARGパラメーターでさらに変換する場合は，PATH_CONVパラメーターで変換されたパス名を指定してください。

このパラメーターではコマンドを実行するたびに，すべての引数に対して走査します。そのため，大量に設定するとジョブ定義スクリプトの実行時間に影響を及ぼす場合があります。注意してください。

コマンド引数2に，メタキャラクタではなく文字列「¥」そのものを含む文字列を指定する場合，「¥」を「¥¥」と記述してください。

使用例

Windows用に作成したジョブ定義スクリプトをUNIXで実行するため，"C:¥temp"を"/tmp"に変換します。

#-adsh_conf PATH_CONV_ENABLE ¥¥ ;
#-adsh_conf COMMAND_CONV_ARG "C:¥temp" /tmp

UNIX用に作成したジョブ定義スクリプトをWindowsで実行するため，"/tmp"を"C:¥temp"に変換します。

#-adsh_conf PATH_CONV_ENABLE / :
#-adsh_conf COMMAND_CONV_ARG /tmp "C:¥¥temp"

ESCAPE_SEQ_ECHO_DEFAULTパラメーター（エスケープ文字関連のオプション省略時のechoコマンドの動作を定義する）

形式

#-adsh_conf ESCAPE_SEQ_ECHO_DEFAULT ｛YES|NO｝

機能

エスケープ文字関連のオプション（-Eまたは-e）が省略された場合のechoコマンドのエスケープ文字に対する動作を定義します。

このパラメーターにYESを指定すると，echoコマンドで-eオプションを指定しなくてもエスケープ文字が解釈されます。NOを指定すると，エスケープ文字の解釈はechoコマンドでの指定に従います。

echoコマンドに-Eオプションまたは-eオプションが指定された場合，このパラメーターの指定は無視されます。

オペランド

YES

-Eオプションまたは-eオプションが省略された場合，echoコマンドはエスケープ文字を解釈します。

NO

-Eオプションまたは-eオプションが省略された場合，echoコマンドはエスケープ文字を解釈しません。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

このパラメーターを同一の環境ファイルで同一のホストに対して複数定義した場合，パラメーターエラーとなります。

1〜2桁の16進数で表されたASCIIコードの文字をエスケープ文字として解釈したい場合，ESCAPE_SEQ_ECHO_HEXパラメーターにもYESを指定してください。

使用例

echoコマンドで-eオプションを指定しなくてもエスケープ文字を解釈します。

#-adsh_conf ESCAPE_SEQ_ECHO_DEFAULT YES

ESCAPE_SEQ_ECHO_HEXパラメーター（16進数表記のASCIIコード文字をエスケープ文字として解釈するかを定義する）

形式

#-adsh_conf ESCAPE_SEQ_ECHO_HEX ｛YES|NO｝

機能

echoコマンドで，16進数表記のASCIIコード文字をエスケープ文字として解釈するかどうかを定義します。このパラメーターは次のどちらかの条件を満たした場合に有効になります。

echoコマンドに-eオプションが指定されている。

ESCAPE_SEQ_ECHO_DEFAULTパラメーターにYESが指定されていて，かつechoコマンドに-eオプションまたは-Eオプションが指定されていない。

オペランド

YES

1〜2桁の16進数で表されたASCIIコードの文字をエスケープ文字として解釈します。

NO

1〜2桁の16進数で表されたASCIIコードの文字をエスケープ文字として解釈しません。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

このパラメーターを同一の環境ファイルで同一のホストに対して複数定義した場合，パラメーターエラーとなります。

ASCIIコードの範囲外の値をechoコマンドの引数に指定した場合，出力される内容は端末に指定された文字コードに従います。そのため，印字可能文字でない場合は，正しく出力されないことがあります。

使用例

echoコマンドで1〜2桁の16進数で表されたASCIIコードの文字をエスケープ文字として解釈したい場合の例を次に示します。

環境ファイルの内容

#-adsh_conf ESCAPE_SEQ_ECHO_HEX YES

ジョブ定義スクリプトの内容

STR="¥x48¥x49¥x54¥x41¥x43¥x48¥x49"
echo -e $STR

標準出力に出力される内容

HITACHI

echoコマンドで1〜2桁の16進数で表されたASCIIコードの文字をエスケープ文字として解釈しない場合の例を次に示します。

環境ファイルの内容

#-adsh_conf ESCAPE_SEQ_ECHO_DEFAULT YES
#-adsh_conf ESCAPE_SEQ_ECHO_HEX NO

ジョブ定義スクリプトの内容

STR="¥t¥x48¥x49¥x54¥x41¥x43¥x48¥x49"
echo $STR

標準出力に出力される内容

<タブ文字>¥x48¥x49¥x54¥x41¥x43¥x48¥x49

EVENT_COLLECTパラメーター（ジョブ定義スクリプト稼働実績情報取得機能の有効／無効を指定する）

形式

#-adsh_conf EVENT_COLLECT ｛YES|NO｝

機能

ジョブ定義スクリプト稼働実績情報取得機能を有効とするか，無効とするかを指定します。ジョブ定義スクリプト稼働実績情報取得機能を無効とした場合，スプールディレクトリにイベントファイルは作成されません。

JP1/Advanced Shell - Developerでは，このパラメーターの指定は無視され，イベントファイルは作成されません。

CUIのデバッガを使用している場合も，このパラメーターの指定は無視され，イベントファイルは作成されません。

オペランド

YES

ジョブ定義スクリプト稼働実績情報取得機能を有効とします。

ジョブ定義スクリプト稼働実績情報を収集し，イベントファイルに出力します。

NO

ジョブ定義スクリプト稼働実績情報取得機能を無効とします。

イベントファイルを作成しません。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

このパラメーターを同一の環境ファイルで同一のホストに対して複数定義した場合，パラメーターエラーとなります。

使用例

ジョブ定義スクリプト稼働実績情報取得機能を無効とします。

#-adsh_conf EVENT_COLLECT NO

exportパラメーター（環境変数を定義する）

形式

export 環境変数名=環境変数値

機能

ジョブ定義スクリプトの実行時に有効としたい環境変数を定義します。

引数

環境変数名　〜＜環境変数名＞((1〜255バイト))

設定する環境変数名を指定します。

環境変数値　〜＜任意文字列＞((0〜1,023バイト))

環境変数に設定する値を指定します。

環境変数値にスペースを含む場合などは，ダブルクォーテーション（"），シングルクォーテーション（'）で囲むか，またはエスケープ文字（¥）を使用してスペースをエスケープすることで指定できます。ダブルクォーテーション（"）で囲まれた文字列に「¥」を指定すると，その後ろに指定された文字に関係なく，すべてエスケープ文字として扱われます。そのため，ダブルクォーテーション（"）で囲まれた文字列に「¥」を指定する場合は，「¥¥」と指定してください。

任意文字列中に${PATH}を記述することで，その時点のPATH環境変数値を挿入できます。挿入したい個所に次の形式で指定します。

export 環境変数名=[任意文字列]${PATH}[任意文字列]

${PATH}によるPATH環境変数値は，ダブルクォーテーション（"），シングルクォーテーション（'），またはエスケープ文字（¥）の指定に関係なく，そのまま挿入されます。PATH環境変数値が挿入された結果の文字列全体に対してダブルクォーテーション（"），シングルクォーテーション（'），またはエスケープ文字（¥）の指定が有効になり，最終的に環境変数に値が設定されます。

WindowsのPATH環境変数を定義する場合などは，PATH環境変数値が挿入された結果の空白や¥が正しく解釈されるよう，シングルクォーテーション（'）で囲んでください。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，次の順で環境変数が設定されます。

システム環境ファイルでの設定

ジョブ環境ファイルでの設定

exportパラメーターでLANG環境変数の値を設定しても，この環境設定パラメーターを読み込んだadshexecコマンド自身のプロセスのロケールは変更されません。【UNIX限定】

使用例

環境変数AAAに環境変数の値BBBを設定します。

export AAA=BBB

環境変数AAAに環境変数の値BBBを設定するときの誤りの例です。

AAA=BBB
export AAA

既存のPATH環境変数に/opt/jp1as/binを追加します。

export PATH=/opt/jp1as/bin:${PATH}

パス区切り文字には「:」（コロン）を使用します。

既存のPATH環境変数にC:¥Program Files¥HITACHI¥JP1AS¥JP1ASE¥binを追加します。

export PATH='C:¥Program Files¥HITACHI¥JP1AS¥JP1ASE¥bin;${PATH}'

パス区切り文字には「;」（セミコロン）を使用します。

HOSTNAME_JP1IM_MANAGERパラメーター（JP1イベントの送信先であるJP1/IM - Managerが稼働している運用管理サーバを指定する）

形式

#-adsh_conf HOSTNAME_JP1IM_MANAGER JP1/IM - Managerが稼働している運用管理サーバのホスト名

機能

ユーザー応答機能を使用する場合に，JP1イベントの送信先として，JP1/IM - Managerが稼働している運用管理サーバのホスト名を指定します。

オペランド

JP1/IM - Managerが稼働する運用管理サーバのホスト名　〜＜記号名称＞((1〜255文字))《JP1/Advanced Shellが稼働するバッチ業務サーバの物理ホスト名》

JP1/IM - Managerが稼働する運用管理サーバのホスト名を指定します。指定されたホストでは，ユーザー応答機能に関する次の作業ができるようになります。

JP1/IM - Managerに接続したJP1/IM - Viewから，JP1イベントを確認できます。

応答待ちイベントに対して応答できます。

ホスト名の指定では次の点に注意してください。

JP1/IM - Managerが稼働していないホストを指定した場合，JP1/Advanced Shellが出力するJP1イベントはJP1/IM - Viewに表示されません。そのため，adshreadコマンドは応答待ち状態のままとなります。その場合，このパラメーターで指定したホスト上でJP1/IM - Managerを起動するか，adshchmsgコマンドを実行して手動で応答してください。

JP1/IM - Managerが稼働する運用管理サーバは，ホスト名で指定してください。IPアドレスで指定した場合，JP1/IMに対してJP1イベントは発行されますが，応答待ちイベントとして扱われません。また，指定したホスト名は名前解決されているか確認してください。

このパラメーターを省略した場合は，JP1/Advanced Shellが稼働するバッチ業務サーバでhostnameコマンドを実行したときに表示されるホスト名が仮定されます。

注意事項

このパラメーターはジョブ環境ファイルに指定しないでください。

このパラメーターを指定する場合は，物理ホストまたは論理ホストごとに応答要求メッセージの最大同時出力数を決定し，USERREPLY_WAIT_MAXCOUNTパラメーターに指定してください。

このパラメーターで指定した運用管理サーバ上で，JP1/Advanced Shellが動作するバッチ業務サーバのホスト名が名前解決できることを確認してください。

ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行した場合，このパラメーターの指定は無視されます。

JOBEXECLOG_PRINTパラメーター（ジョブ終了時に標準エラー出力へ出力するジョブ実行ログの内容を定義する）

形式

#-adsh_conf JOBEXECLOG_PRINT ｛JOBLOG SCRIPT STDERR|STDERR｝

機能

ジョブ終了時に標準エラー出力へ出力するジョブ実行ログの内容を定義します。このパラメーターで定義した内容が，adshexecコマンドを実行した端末画面や，JP1/AJS - Viewの［実行結果詳細］ダイアログボックスなどに表示されます。

JP1/Advanced Shell - Developerまたはadshexec -dコマンドによるデバッグ実行では，このパラメーターの指定に関係なく，ジョブ終了時にはジョブ実行ログの内容は標準エラー出力へ出力されません。

オペランド

JOBLOG SCRIPT STDERR

ジョブ終了時に次の内容を標準エラー出力へ出力します。

JOBLOGの内容（コマンドの実行結果やファイルの割り当て結果など，ジョブの動作状況を示すメッセージ）

ルートジョブの標準エラー出力へ出力される，子孫ジョブのJOBLOGの内容も含まれます。

ジョブ定義スクリプト

ジョブ実行中の標準エラー出力の内容

STDERR

ジョブ終了時に標準エラー出力へ出力する内容は，ジョブ実行中の標準エラー出力だけとします。

標準エラー出力には，もともと出力されている情報メッセージに加えて，メッセージ種別がIのメッセージ（通常はJOBLOGファイルに出力される情報メッセージ）以外のメッセージも出力されます。

ルートジョブの標準エラー出力へ出力される子孫ジョブのJOBLOGの内容は出力されません。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

このパラメーターに対して，同一環境ファイル内で次のどれかの指定をした場合，JP1/Advanced Shellのジョブコントローラはジョブを実行しないで，エラー終了します。

このパラメーターを2つ以上指定した場合

オペランドを1つも指定しなかった場合

オペランドの数が3つよりも多い場合

「JOBLOG SCRIPT STDERR」または「STDERR」以外のオペランドを指定した場合

「JOBLOG SCRIPT STDERR」オペランドの指定順序が誤っている場合

ジョブが簡潔出力モードまたは最小出力モードで動作する場合は，このパラメーターの指定に関係なく，ジョブ終了時にジョブ実行ログを標準エラー出力へ出力しません。

使用例

ジョブ実行中の標準エラー出力の内容だけを標準エラー出力に出力します。

#-adsh_conf JOBEXECLOG_PRINT STDERR

JOBLOG_SUPPRESS_MSGパラメーター（ジョブ実行ログへ出力させないメッセージを定義する）

形式

#-adsh_conf JOBLOG_SUPPRESS_MSG メッセージID

機能

ジョブ実行ログへ出力させないメッセージのメッセージIDを指定します。

メッセージIDを複数指定する場合は，メッセージIDの数だけこのパラメーターを指定してください。パラメーターの指定順序は任意です。

同じメッセージIDを複数回指定しても，エラーにはなりません。1回指定したものと見なされます。

このパラメーターの指定とメッセージの出力の関係を次の表に示します。

項番

メッセージの出力先

抑止するメッセージIDの指定

指定あり

指定なし

1

スプールのジョブ実行ログのファイル

×

○

2

デバッガのコンソール

×

○

3

エディタのコンソール

×

○

4

システム実行ログ

×

○

5

上記以外の出力先（標準出力など）

×

×

（凡例）

○：メッセージを出力します。

×：指定したメッセージは出力しません。

オペランド

メッセージID　〜((10バイト))

ジョブ実行ログへの出力を抑止するメッセージのメッセージIDを指定します。指定できるメッセージIDは次のとおりです。

抑止できるメッセージの内容

指定できるメッセージID

組み込みコマンド

シェル変数更新

KNAX6110-I

KNAX6111-I

KNAX6120-I

KNAX6121-I

シェル標準コマンド

KNAX6112-I

KNAX6113-I

KNAX6122-I

KNAX6123-I

外部コマンド

実行形式ファイル

KNAX6116-I

KNAX6117-I

KNAX6126-I

KNAX6127-I

スクリプトファイル

シェル拡張コマンド

KNAX6114-I

KNAX6115-I

KNAX6124-I

KNAX6125-I

子孫ジョブの実行に関するパラメーター

CHILDJOB_PGMパラメーター

KNAX6830-I

CHILDJOB_SHEBANGパラメーター

KNAX6831-I

CHILDJOB_EXTパラメーター

KNAX6832-I

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，両方の定義が有効になります。

使用例

メッセージKNAX6110-I，KNAX6111-Iをジョブ実行ログに出力しないようにします。

#-adsh_conf JOBLOG_SUPPRESS_MSG KNAX6110-I
#-adsh_conf JOBLOG_SUPPRESS_MSG KNAX6111-I

KSH_ENV_READパラメーター（シェル変数ENVを読み込むかどうかを定義する）

形式

Windows，Linuxの場合

#-adsh_conf KSH_ENV_READ ｛YES|NO｝

AIX，HP-UX，Solarisの場合

#-adsh_conf KSH_ENV_READ ｛YES|NO｝

機能

ジョブコントローラ起動時にシェル変数ENVを読み込み，変数の値が示すスクリプトファイルを実行するかどうかを指定します。

オペランド

YES

ジョブコントローラ起動時にシェル変数ENVを読み込みます。

NO

ジョブコントローラ起動時にシェル変数ENVを読み込みません。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

LOG_DIRパラメーター（システム実行ログ出力ディレクトリのパス名を定義する）

形式

#-adsh_conf LOG_DIR パス名

機能

多重実行するジョブのメッセージをシステム実行ログとして1つのファイルに集めます。このシステム実行ログを出力するディレクトリのパス名を定義します。

オペランド

パス名

Windowsの実行環境の場合　〜＜パス名＞((1〜128バイト))《共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASE¥log》

Windowsの開発環境の場合　〜＜パス名＞((1〜128バイト))《共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASD¥log》

UNIXの場合　〜＜パス名＞((1〜512バイト))《/opt/jp1as/log》

システム実行ログを出力するディレクトリのパス名を指定します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

このパラメーターに，JP1/Advanced Shellでサポートしないファイルシステム上のディレクトリを指定しないでください。JP1/Advanced Shellでサポートしないファイルシステムの詳細については，「2.6.19(2)　ファイルシステム」を参照してください。

パス名に&，(，)，[，]，{，}，^，=，;，!，'，+，,，`，~，#，%の記号を含まないでください。これらの記号を含む場合，正常に動作しません。

補足

該当するパラメーターで指定するディレクトリを別々に分けることで，同一ホスト内で複数環境を使い分けられます。

LOG_FILE_CNTパラメーター（システム実行ログをバックアップする面数を定義する）

形式

#-adsh_conf LOG_FILE_CNT 面数

機能

システム実行ログをバックアップする面数を定義します。

オペランド

面数　〜＜符号なし整数＞((1〜64))《4》

システム実行ログをバックアップする面数を指定します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。ただし，LOG_DIRパラメーターの定義がシステム環境ファイルの指定と同一の場合，システム環境ファイルと異なる値を指定するとエラーになります（システム環境ファイルの指定がデフォルト値の場合でも，相違があればエラーになります）。

補足

複数のユーザーが同じファイルにシステム実行ログを出力している場合には，LOG_FILE_CNTとLOG_FILE_SIZEは，最後にシステム実行ログの出力を開始したユーザーの設定値が有効になります。同じファイルにシステム実行ログを出力するユーザー同士は，同じ設定値にすることを推奨します。

LOG_FILE_SIZEパラメーター（システム実行ログを出力するファイルサイズを定義する）

形式

#-adsh_conf LOG_FILE_SIZE ファイルサイズ

機能

システム実行ログを出力するファイルサイズを定義します。

オペランド

ファイルサイズ　〜＜符号なし整数＞((1〜16))《2》

システム実行ログを出力するファイルサイズをMBで指定します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。ただし，LOG_DIRパラメーターの定義がシステム環境ファイルの指定と同一の場合，システム環境ファイルと異なる値を指定するとエラーになります（システム環境ファイルの指定がデフォルト値の場合でも，相違があればエラーになります）。

補足

複数のユーザーが同じファイルにシステム実行ログを出力している場合には，LOG_FILE_CNTとLOG_FILE_SIZEは，最後にシステム実行ログの出力を開始したユーザーの設定値が有効になります。同じファイルにシステム実行ログを出力するユーザー同士は，同じ設定値にすることを推奨します。

OUTPUT_MODE_CHILDパラメーター（子孫ジョブの実行結果の出力情報に関する出力方式を定義する）

形式

#-adsh_conf OUTPUT_MODE_CHILD ｛EXTENDED|SIMPLE|MINIMUM｝

機能

子孫ジョブの実行結果を次のどの方式で出力するか選択します。

拡張出力モード（デフォルト）

簡潔出力モード

最小出力モード

簡潔出力モードを選択すると情報メッセージなどの出力を抑止でき，コマンドの実行結果だけが出力されるため，ジョブの実行結果をほかのプログラムで利用しやすくなります。最小出力モードを選択すると，簡潔出力モードよりさらに多くのメッセージの出力を抑止できます。

なお，標準出力と標準エラー出力の出力先は，子孫ジョブ起動時の出力先を引き継ぎます。

子孫ジョブを起動するadshexecコマンドに-mオプションを指定してジョブを実行した場合，このパラメーターの指定よりも-mオプションの指定が優先されます。

オペランド

EXTENDED

拡張出力モードを選択します。子孫ジョブの実行後に出力される情報は次のようになります。

子孫ジョブ終了時にジョブ実行ログは標準エラー出力に出力されます。

JP1/Advanced Shellの標準エラー出力と標準出力への出力メッセージはすべて出力されます。

SIMPLE

簡潔出力モードを選択します。子孫ジョブの実行後に出力される情報は次のようになります。

子孫ジョブ終了時にジョブ実行ログは標準エラー出力に出力されません。

JP1/Advanced Shellの標準エラー出力と標準出力へ出力されるメッセージは，エラーメッセージだけとなります。また，JOBLOGに出力されるエラーメッセージは標準エラー出力に出力されます。

MINIMUM

最小出力モードを選択します。子孫ジョブの実行後に出力される情報は次のようになります。

子孫ジョブ終了時にジョブ実行ログは標準エラー出力に出力されません。

JP1/Advanced Shellの標準エラー出力と標準出力へ出力されるメッセージは，コマンド，ジョブステップ，ジョブの終了コードの通知を除くエラーメッセージだけとなります。このほかに，シグナル，イベント受信を通知するメッセージも抑止されます。簡潔出力モードと異なり，抑止されるメッセージはスプールジョブディレクトリ下のJOBLOGにも出力されません。

また，JOBLOGに出力されるエラーメッセージは標準エラー出力に出力されます。

環境設定パラメーターの解析が終了するまでは，親プロセスの出力モードを引き継いで動作します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

OUTPUT_MODE_ROOTパラメーター（ルートジョブの実行結果の出力情報に関する出力方式を定義する）

形式

#-adsh_conf OUTPUT_MODE_ROOT ｛EXTENDED|SIMPLE|MINIMUM｝

機能

ルートジョブの実行結果を次のどの方式で出力するか選択します。

拡張出力モード（デフォルト）

簡潔出力モード

最小出力モード

簡潔出力モードを選択すると情報メッセージなどの出力を抑止でき，コマンドの実行結果だけが出力されるため，ジョブの実行結果をほかのプログラムで利用しやすくなります。最小出力モードを選択すると，簡潔出力モードよりさらに多くのメッセージの出力を抑止できます。

ルートジョブを起動するadshexecコマンドに-mオプションを指定してジョブを実行した場合，このパラメーターの指定よりも-mオプションの指定が優先されます。

オペランド

EXTENDED

拡張出力モードを選択します。ルートジョブの実行後に出力される情報は次のようになります。

標準出力と標準エラー出力はスプールのファイルにリダイレクトされます。

ジョブ終了時にジョブ実行ログは標準エラー出力に出力されます。

JP1/Advanced Shellの標準エラー出力と標準出力への出力メッセージはすべて出力されます。

デバッグ実行時は，JOBLOGが標準エラー出力にタイムリーに出力されます。

SIMPLE

簡潔出力モードを選択します。ルートジョブの実行後に出力される情報は次のようになります。

ジョブ終了時にジョブ実行ログは標準エラー出力に出力されません。

標準出力と標準エラー出力の出力先は，起動時の出力先を引き継ぎます。

JP1/Advanced Shellの標準エラー出力と標準出力へ出力されるメッセージは，エラーメッセージだけとなります。また，JOBLOGに出力されるエラーメッセージは標準エラー出力に出力されます。

デバッグ実行時は，エラーメッセージを除いてJOBLOGを標準エラー出力に出力しません。JP1/Advanced Shellの標準エラー出力と標準出力へのメッセージを出力します。デバッグ終了時のエラーメッセージ以外のメッセージは出力しません。

MINIMUM

最小出力モードを選択します。ルートジョブの実行後に出力される情報は次のようになります。

ジョブ終了時にジョブ実行ログは標準エラー出力に出力されません。

標準出力と標準エラー出力の出力先は，起動時の出力先を引き継ぎます。

JP1/Advanced Shellの標準エラー出力と標準出力へ出力されるメッセージは，コマンド，ジョブステップ，ジョブの終了コードの通知を除くエラーメッセージだけとなります。このほかに，シグナル，イベント受信を通知するメッセージも抑止されます。簡潔出力モードと異なり，抑止されるメッセージはスプールジョブディレクトリ下のJOBLOGにも出力されません。

また，JOBLOGに出力されるエラーメッセージは標準エラー出力に出力されます。

デバッグ実行時は，エラーメッセージを除いてJOBLOGを標準エラー出力に出力しません。JP1/Advanced Shellの標準エラー出力と標準出力へのメッセージを出力します。デバッグ終了時のエラーメッセージ以外のメッセージは出力しません。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

SIMPLEまたはMINIMUMを指定した場合は，OUTPUT_STDOUTパラメーターでSPOOLを指定するか，adshexec -s SPOOLと指定してコマンドを実行しても，標準出力はスプールのファイルにリダイレクトされません。

OUTPUT_STDOUTパラメーター（ルートジョブの出力先を定義する）

形式

#-adsh_conf OUTPUT_STDOUT {SPOOL|PARENT}

機能

ルートジョブの標準出力の出力先を定義します。子孫ジョブは，このオプションにPARENTが指定されたものとして動作します。このオプションを省略した場合，ルートジョブはSPOOLが指定されたものとして動作します。

adshexecコマンドに-sオプションを指定してジョブを実行した場合，このパラメーターの指定よりも-sオプションの指定が優先されます。

ルートジョブが簡潔出力モードまたは最小出力モードで動作（OUTPUT_MODE_ROOTパラメーターまたはadshexecコマンドの-mオプションで指定）する場合は，OUTPUT_STDOUTパラメーターまたはadshexecコマンドの-sオプションの指定に関係なく，プロセス起動時の標準出力を継承します。

オペランド

｛SPOOL|PARENT｝

ルートジョブの標準出力の出力先として，次のどちらかを指定します。

SPOOL

ルートジョブの標準出力をスプール内のファイルに出力します。

PARENT

ルートジョブの標準出力を，プロセス起動時に親プロセスから継承した出力先に出力します。親プロセスで出力先をリダイレクトしていない場合は，親プロセスと同じ出力先に出力します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

PATH_CONVパラメーター（パス変換内容を定義する）

形式

#-adsh_conf PATH_CONV パス名1 パス名2

機能

ジョブ定義スクリプト中の変換前・変換後のパス名を定義します。

ジョブ定義スクリプトの実行時に，パス区切り文字（PATH_CONV_ENABLEパラメーターで定義）で区切られた文字列の中でパス名1と前方一致する文字列をパス名2に置換します。また，PATH_CONV_ENABLEパラメーターで定義したパス区切り文字およびディレクトリ区切り文字も変換対象になります。

なお，WindowsではPATH_CONV_RULEパラメーターで選択するパス変換ルールによって変換結果が異なります。詳細については，「PATH_CONV_RULEパラメーター（パス変換ルールを定義する）【Windows限定】」を参照してください。

PATH_CONV_ENABLEパラメーターが定義されていない場合，このパラメーターは無効となります。また，このパラメーターを複数定義した場合，環境ファイルの先頭から調べて，最初に変換条件に合致した定義が適用されます。

オペランド

パス名1　〜＜パス名＞((1〜247バイト))

変換前のパスを指定します。スペースを含む値を指定する場合は，"（ダブルクォーテーション）で囲んでください。

パス名1には，Windowsの場合はUNIXのパス，UNIXの場合はWindowsのパスを指定できます。JP1/Advanced Shellでは「¥」をエスケープ文字として扱うため，「¥」を指定する場合は，「¥¥」と指定してください。なお，次の文字は使用できません。

*　?　<　>　|　`（バッククォーテーション）　$

パス名にはディレクトリ区切り文字が含まれている必要があります。ディレクトリ区切り文字は次の文字を指定してください。

Windowsの場合は「/」を指定します。

UNIXの場合は「¥¥」を使用します。

パス名2　〜＜パス名＞((1〜247バイト))

変換後のパスを指定します。スペースを含む値を指定する場合は，"（ダブルクォーテーション）で囲んでください。JP1/Advanced Shellでは「¥」をエスケープ文字として扱うため，「¥」を指定する場合は，「¥¥」と指定してください。なお，次の文字は使用できません。

*　?　<　>　|　`（バッククォーテーション）　$

パス名にはディレクトリ区切り文字が含まれている必要があります。ディレクトリ区切り文字は次の文字を指定してください。

Windowsで実行する場合は，「¥¥」を指定します。

UNIXで実行する場合は，「/」を使用します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，両方の定義が有効になります。ただし，システム環境ファイルとジョブ環境ファイルの定義の合計が255個を超えた場合，エラーになります。

このパラメーターによる変換は行ごとに実施されます。このため，ジョブ定義スクリプト中のパス名の該当する個所に改行が含まれている場合，正しく変換されません。

コメント内の文字列も変換されます。

変換する規則を定義した順に検索し，最初に変換条件に合致したものだけが適用されます。

SPOOLJOB_CHILDJOBパラメーターにDELETEを指定した場合，子孫ジョブとして実行するジョブ定義スクリプトにはスクリプトイメージが出力されません。そのため，子孫ジョブで実行したジョブ定義スクリプトに対して，このパラメーターで定義した変換規則に基づいて変換した場合，変換結果は出力されないので注意してください。

パス変換ルール2の場合でも，「"（ダブルクォーテーション）」で囲んだ範囲内に「'（シングルクォーテーション）」を入れ子として指定することはできません。指定するとパス変換の対象となるので注意してください。

使用例

UNIX用に作成したジョブ定義スクリプトファイルをWindowsで実行する場合に指定します。

#-adsh_conf PATH_CONV /home/hitachi "C:¥¥hitachi"
#-adsh_conf PATH_CONV_ENABLE / :
#-adsh_conf PATH_CONV /tmp/jp1as "D:¥¥jp1as_tmp"
#-adsh_conf PATH_CONV /tmp "C:¥¥temp"

Windows用に作成したジョブ定義スクリプトファイルをUNIXで実行する場合に指定します。

#-adsh_conf PATH_CONV "C:¥¥hitachi" /home/hitachi
#-adsh_conf PATH_CONV_ENABLE ¥¥ ;
#-adsh_conf PATH_CONV "D:¥¥jp1as_tmp" /tmp/jp1as
#-adsh_conf PATH_CONV "C:¥¥temp" /tmp

PATH_CONV_ACCESSパラメーター（ファイル入出力時のパス変換内容を定義する）

形式

#-adsh_conf PATH_CONV_ACCESS パス名1 パス名2

機能

ファイルの入出力時にジョブ定義スクリプト中のファイルパス名を変換するため，変換前・変換後のパス名を定義します。

ジョブ定義スクリプトを実行して入出力が発生した場合に，入出力を行うファイルのファイルパス名がパス名1と完全一致するときは，パス名2に変換します。パス名1およびパス名2は必ず指定します。

同じファイルパス名に異なる規則を定義した場合は，先に定義した規則が有効になります。

.（ドット）コマンド，および#-adsh_scriptコマンドに指定した外部スクリプトについては，COMMAND_CONV_ARGパラメーターの変換対象となります。COMMAND_CONV_ARGパラメーターの詳細については，「COMMAND_CONV_ARGパラメーター（コマンド実行時にジョブ定義スクリプト中の引数を変換する規則を定義する）」を参照してください。

変換結果は，KNAX6803-Iメッセージ，またはKNAX6805-Iメッセージでジョブ実行ログに出力します。

環境ファイルにPATH_CONV_ENABLEパラメーターが定義されていない場合は，PATH_CONV_ACCESSパラメーターは有効になりません。

オペランド

パス名1　〜＜パス名＞((1〜247バイト))

変換前のファイルパスを指定します。スペースを含むファイルパスを指定する場合は，"（ダブルクォーテーション）で囲む必要があります。ただし，"で囲んだ値にスペース，タブ文字または空文字だけを指定できません。なお，次の文字は使用できません。

*　?　<　>　|　`（バッククォーテーション）　$

パス名1を指定しなかった場合，またはパス名1に不当な値を指定した場合は，パラメーター解析時にエラー終了します。

パス名2　〜＜パス名＞((1〜247バイト))

変換後のファイルパスを指定します。スペースを含むファイルパスを指定する場合は，"（ダブルクォーテーション）で囲む必要があります。ただし，"で囲んだ値にスペース，タブ文字または空文字だけを指定できません。なお，次の文字は使用できません。

*　?　<　>　|　`（バッククォーテーション）　$

パス名2を指定しなかった場合，またはパス名2に不当な値を指定した場合は，パラメーター解析時にエラー終了します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，両方の定義が有効になります。ただし，システム環境ファイルとジョブ環境ファイルの定義の合計が255個を超えた場合，エラーになります。

このパラメーターによる変換は，変数置換およびファイル名置換が解決した内容で実施されます。

変換する規則を定義した順に検索し，最初に変換条件に合致したものだけが適用されます。

このパラメーターとPATH_CONVパラメーターで同じパス名に対して変換を定義した場合，PATH_CONVパラメーターによる変換が先に実施されます。PATH_CONVパラメーターで変換されたパス名をPATH_CONV_ACCESSパラメーターでさらに変換する場合は，PATH_CONVパラメーターで変換されたパス名を指定してください。

パス名2に，メタキャラクタではなく文字列「¥」そのものを含む文字列を指定する場合，「¥」を「¥¥」と記述してください。

使用例

UNIX用に作成したジョブ定義スクリプトをWindowsで実行するため，"/dev/null"を"nul"に変換します。

#-adsh_conf PATH_CONV_ENABLE / :
#-adsh_conf PATH_CONV_ACCESS /dev/null nul

Windows用に作成したジョブ定義スクリプトをUNIXで実行するため，"nul"を"/dev/null"に変換します。

#-adsh_conf PATH_CONV_ENABLE ¥¥ ;
#-adsh_conf PATH_CONV_ACCESS nul /dev/null

PATH_CONV_ENABLEパラメーター（パス変換機能を有効にする）

形式

#-adsh_conf PATH_CONV_ENABLE ディレクトリ区切り文字 パス区切り文字

機能

パス変換機能を有効にします。すでに有効になっていた場合，メッセージを出力し，処理を終了します。

オペランド

ディレクトリ区切り文字　〜((1または2バイト))

パス変換機能で変換する前のパス名のディレクトリ区切り文字を指定します。「/」または「¥¥」を指定できます。

パス区切り文字　〜((1バイト))

パス変換機能で変換する前のパス名のパス区切り文字を指定します。「:」（コロン），または「;」（セミコロン）を指定できます。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

使用例

Windowsで実行する場合に指定します。

#-adsh_conf PATH_CONV_ENABLE / :
#-adsh_conf PATH_CONV /tmp "C:¥¥temp"

UNIXで実行する場合に指定します。

#-adsh_conf PATH_CONV_ENABLE ¥¥ ;
#-adsh_conf PATH_CONV "C:¥¥temp" /tmp

PATH_CONV_RULEパラメーター（パス変換ルールを定義する）【Windows限定】

形式

#-adsh_conf PATH_CONV_RULE ｛1|2｝

機能

パス変換ルールを選択します。PATH_CONVパラメーターまたは#-adsh_path_varコマンドでパス変換が定義されている場合に有効です。指定を省略した場合はパス変換ルール1が設定されます。

また，PATH_CONV_ENABLEパラメーターでパス区切り文字が定義されている場合，区切られた範囲が変換対象となります。PATH_CONV_ENABLEパラメーターで定義された区切り文字は，ジョブ定義スクリプトを実行したOSで使用される区切り文字へ変換されます。

オペランド

1

パス変換ルール1を選択します。

「"（ダブルクォーテーション）」で囲まれた範囲だけが変換対象となります。

2

パス変換ルール2を選択します。

項目「パス変換ルール2で使用する区切り文字」に示す区切り文字で区切られた文字列が変換対象となります。ここで区切られた文字列は，パス区切り文字（PATH_CONV_ENABLEパラメーターで定義）でさらに区切られてから変換されます。ただし，' '内と${ }内の文字は変換されません。

変換個所が「"（ダブルクォーテーション）」で囲まれていない場合，変換結果が「"（ダブルクォーテーション）」で囲まれます。それに加えて次に示す範囲も「"（ダブルクォーテーション）」で囲まれます。

パス区切り文字

「";"」に変換されます。

「$シェル変数名」

#-adsh_path_varコマンドで指定していないシェル変数も含みます。

「$」の後ろから，英数字（先頭文字の場合は英字）と「_（アンダースコア）」のどちらでもない文字が現れるまでの範囲をシェル変数名と見なします。シェル変数名がない場合は「$」だけを「"（ダブルクォーテーション）」で囲むことはしません。

「${」から「}」までの範囲

#-adsh_path_varコマンドで指定していないシェル変数も含みます。

パス変換ルール2で使用する区切り文字

パス変換ルール2で使用する区切り文字と，区切り文字が有効/無効となる位置を次に示します。

区切り文字

区切り文字の位置

' '内

" "内※1

` `内※1

¥直後の1文字

$( )内※1

${ }内※1

その他

|

×

×

○

×

○

※2

○

&

×

×

○

×

○

※2

○

;

×

×

○

×

○

※2

○

<

×

×

○

×

○

※2

○

>

×

×

○

×

○

※2

○

(

×

※3

○

×

○

※2

○

)

×

×

○

×

○

※2

○

`

×

○

○

×

○

※2

○

'

○

×

○

×

○

※2

○

"

×

○

○

×

○

※2

○

#

×

×

○

×

○

※2

○

=

×

×

○

×

○

※2

○

スペース（タブ記号を含む）

×

×

○

×

○

※2

○

改行コード

×

×

○

×

○

※2

○

（凡例）

○：区切り文字が有効となります。

×：区切り文字が無効となります。

注※1

囲んだ範囲内に別の範囲を入れ子にできます。入れ子にできる組み合わせを次に示します。

範囲

入れ子とする範囲

' '

" "

` `

¥直後の1文字

$( )

${ }

" "内

×

×

○

○

○

○

` `内

○

○

×

○

○

○

$( )内

○

○

○

○

○

○

${ }内

○

○

○

○

○

○

（凡例）

○：入れ子にできます。

×：入れ子にできません。

範囲の終わりを示す文字が入れ子とする範囲にある場合は，範囲の終わりとは見なしません。例えば，「"¥""」と指定した場合，2つ目の「"」は「¥直後」の範囲に含まれるため，1つ目の「"」から始まる「"内」の範囲の終わりとは見なしません。

また，行末までに範囲の終わりを示す文字がない場合は，行末までを範囲内と見なします。

注※2

「${ }」を入れ子にしている範囲と同じです。

例えば，「` `内」なら「|」は有効となり，「" "内」なら無効となります。

注※3

「$(」の「(」だけ有効です。それ以外の「(」は無効となります。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

パス変換ルール2を選択すると，パス変換ルール1よりも変換範囲が広いため，期待どおりの変換結果が得られない場合があります。ジョブ定義スクリプトを実行する前に構文チェック機能を使用し，生成されたスクリプトイメージでパスの変換結果を確認してください。変換結果が適切でない場合は，パス変換ルールを変更するか，ジョブ定義スクリプトを変更して再実行してください。

パス変換ルール2を選択すると，変数置換の変数やパターンは変換対象となりません。例を次に示します。

環境設定パラメーター

#-adsh_conf  PATH_CONV_ENABLE  / :
#-adsh_conf  PATH_CONV_RULE  2
#-adsh_conf  PATH_CONV  /tmp  d:¥¥temp

変換前のジョブ定義スクリプト

#-adsh_path_var  DIR
AA=${DIR:-/tmp}

変換後のジョブ定義スクリプト

#-adsh_path_var  DIR
AA="${DIR:-/tmp}"

この例では#-adsh_path_varコマンドで変数が定義されているため，${変数名}の部分が「"（ダブルクォーテーション）」で囲まれていますが，/tmpは変換されていません。これを回避するには次のように/tmpを変数として指定するなど，ジョブ定義スクリプトを変更してください。

#-adsh_path_var  DIR
BB=/tmp
AA=${DIR:-$BB}

パス変換ルール2では文字列置換として変換されます。そのため，同じパスを指していても指定文字列が異なれば同じ変換結果にならないことがあります。

パス変換ルール2ではヒアドキュメントのドキュメント部分も変換されるため，プログラムが処理できないデータへ変換されないよう注意してください。対応方法を次に示します。

変換規則を工夫する

変数置換を利用して変換されないようにする

これらの方法で対応できない場合は，パス変換ルール1へ変更するか，ヒアドキュメントの外部ファイル化を検討してください。

ヒアドキュメントの変換例を次に示します。

環境設定パラメーター

#-adsh_conf  PATH_CONV_ENABLE / :
#-adsh_conf  PATH_CONV_RULE  2
#-adsh_conf  PATH_CONV  /home/user001  d:¥¥home¥¥user001

変換前のジョブ定義スクリプト

uap << EOF
IN=/home/user001/infile
FTP=/home/user001/ftp/outfile
EOF

変換後のジョブ定義スクリプト

uap << EOF
IN="d:¥¥home¥¥user001"¥¥infile
FTP="d:¥¥home¥¥user001"¥¥ftp¥¥outfile
EOF

これによって，ヒアドキュメント内のデータは次のように変換されます。

IN="d:¥¥home¥¥user001"¥¥infile
FTP="d:¥¥home¥¥user001"¥¥ftp¥¥outfile

変換後のパスにはダブルクォーテーションが付加されているため，ユーザープログラムがダブルクォーテーションを適切に処理できなければ，ユーザープログラムは正しく動作しません。また，ftpコマンドでリモートサイトのパスを指定する場合など，パス名を変換したくないことがあります。この場合，パス名部分を変数に置き換えてヒアドキュメント外に出すなどの変更をしてください。

例えば，IN=/home/user001/infileのパスは変換したいが，FTP=/home/user001/ftp/outfileのパスを変換したくない場合は，次のように変更することで対応できます。

VARIN=/home/user001/infile
VARFTP='/home/user001/ftp/outfile'
uap << EOF
IN=$VARIN
FTP=$VARFTP
EOF

次の文字はパス変換ルールに合致すると変換されるため，注意してください。

演算子

/で始まるコマンドのオプション文字

コマンドの引数に指定された，パス名でないディレクトリ区切り文字を含んだデータ

三項演算子

三項演算子が変換された例を次に示します。

環境設定パラメーター

#-adsh_conf  PATH_CONV_ENABLE  /  :
#-adsh_conf  PATH_CONV_RULE  2
#-adsh_conf  PATH_CONV  A2/A1  A2¥¥A1

変換前のジョブ定義スクリプト

#-adsh_job JOB001
A1=10
A2=5
((BB=A1>A2?A1/A2:A2/A1))

変換後のジョブ定義スクリプト

#-adsh_job JOB001
A1=10
A2=5
((BB=A1>A2?A1¥¥A2";""A2¥¥A1"))

この例では，((BB=A1>A2?A1/A2:A2/A1))の最後のA2/A1が変換ルールに一致して変換されています。これを防ぐには，次のどちらかの方法でジョブ定義スクリプトを変更してください。

・変数を「$シェル変数名」の形式で指定する。

　((BB=$A1>$A2?$A1/$A2:$A2/$A1))

・if文で記述し直す。

　if((A1>A2)) then
　((BB=$A1/$A2))
　else
　((BB=$A2/$A1))
　fi

パス変換ルール2では，変換規則に一致した文字列に${配列名[*]}形式の配列名が含まれる場合，ダブルクォーテーションで囲まれます。また，変換結果である"${配列名[*]}"は，各要素がIFSシェル変数の値で区切られるため，変換前と結果が異なる場合があるので注意してください。

パス変換ルール2では，「cd work」のようにディレクトリ区切り文字が含まれないパスは変換できません。この場合は，ジョブ定義スクリプトの記述を変更するか，ディレクトリ名を変更する変換は指定しないでください。

パス変換ルール2では，「コマンド -p パス名」など，オプションの値としてパス名を指定するような場合，オプション文字とパス名の間はスペースで区切ってください。

パス変換ルール2では，逆引用符形式のコマンド置換でコマンドに含まれるパスを変換しても，期待どおりの動作となりません。例を次に示します。

環境設定パラメーター

#-adsh_conf  PATH_CONV_ENABLE / :
#-adsh_conf  PATH_CONV_RULE  2
#-adsh_conf  PATH_CONV  /home/user001  d:¥¥home¥¥user001

変換前のジョブ定義スクリプト

cat file | grep `cat /home/user001/text`

変換後のジョブ定義スクリプト

cat file | grep `cat "d:¥¥home¥¥user001"¥¥text`

この例では，コマンド置換のコマンドで使用する¥はメタキャラクタとして処理されるため，最終的には¥¥が消去され，期待どおりの動作となりません。

この場合，次のように$()形式のコマンド置換に変更してください。

cat file | grep $(cat /home/user001/text)

パス変換ルール2で，/dev/nullをWindowsのNULデバイスに変更したい場合は，COMMAND_CONV_ARGパラメーターとPATH_CONV_ACCESSパラメーターを使用してください。

パス変換ルール2で，パスを次のように記述した場合，正しく変換できません。

環境設定パラメーター

#-adsh_conf  PATH_CONV_ENABLE  / :
#-adsh_conf  PATH_CONV_RULE  2

変換前のスクリプト例

#-adsh_path_var  homedir

INPUT1=${homedir}"/test/data"
INPUT2="${homedir}"/test/data

パス変換は区切り文字で区切られた文字列単位に実施されるため，${homedir}/test/dataがパス名であったとしても，ダブルクォーテーションによって${homedir}と/test/dataの2つの文字列として別々に変換処理されます。そのため，次のような変換結果を期待しても期待どおりの変換とはなりません。

期待する変換結果

#-adsh_path_var  homedir

INPUT1="${homedir}""¥¥test¥¥data"
INPUT2="${homedir}"¥¥test¥¥data

実際の変換結果

#-adsh_path_var  homedir

INPUT1="${homedir}""/test/data"
INPUT2="${homedir}"/test/data

この場合は次のように記述を変更してください。

#-adsh_path_var  homedir

INPUT1="${homedir}/test/data"
INPUT2="${homedir}/test/data"

使用例

パラメーターの設定例を次に示します。ジョブ定義スクリプトの変換例は，「2.6.2　パス名を変換する」を参照してください。

パス変換ルール1でパスを変換します。

#-adsh_conf  PATH_CONV_ENABLE  / :
#-adsh_conf  PATH_CONV_RULE  1
#-adsh_conf  PATH_CONV  /home/user001  d:¥¥home¥¥user001

パス変換ルール2でパスを変換します。

#-adsh_conf  PATH_CONV_ENABLE  / :
#-adsh_conf  PATH_CONV_RULE  2
#-adsh_conf  PATH_CONV /home/user01  d:¥¥home¥¥user01
#-adsh_conf  PATH_CONV BB/AA BB¥¥AA

PERMISSION_SPOOLJOB_DIRパラメーター（スプールジョブディレクトリのパーミッションを定義する）【UNIX限定】

形式

#-adsh_conf PERMISSION_SPOOLJOB_DIR パーミッション

機能

スプールジョブディレクトリのパーミッションを，ジョブ終了時に変更する場合，変更後のパーミッションを定義します。

このパラメーターを指定しない場合，スプールジョブディレクトリのパーミッションは0700になります。

オペランド

パーミッション　〜＜4桁の8進数＞((0000〜1777))

パーミッションを指定します。ジョブ終了時に，このオペランドで指定したスプールジョブディレクトリのパーミッションが設定されます。

注意事項

1つの環境ファイルの中でこのパラメーターに対して次の指定をした場合，ジョブは実行されないでエラー終了します。

パラメーターを2つ以上指定した場合

オペランドを1つも指定しなかった場合

オペランドの数が2つよりも多い場合

8進数以外の数値，またはパーミッションで指定できる値を超える値を指定した場合

4桁以外の値を指定した場合

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

使用例

スプールジョブディレクトリのパーミッションを0750にします。

#-adsh_conf PERMISSION_SPOOLJOB_DIR 0750

PERMISSION_SPOOLJOB_FILEパラメーター（スプールジョブディレクトリ下のファイルのパーミッションを定義する）【UNIX限定】

形式

#-adsh_conf PERMISSION_SPOOLJOB_FILE パーミッション

機能

ジョブ終了時にスプールジョブディレクトリ下のファイルのパーミッションを変更する場合，変更後のパーミッションを定義します。

このパラメーターを指定すると，スプールジョブディレクトリ下のディレクトリのパーミッションも変更されます。ただし，スプールジョブディレクトリ下のディレクトリの下にあるファイルやディレクトリのパーミッションは変更されません。

このパラメーターを指定しない場合，スプールジョブディレクトリ下に作成されるファイルのパーミッションは次のようになります。

.DBGファイル：パーミッションは666になります。

#adsh_spoolfileコマンドで割り当てるファイル：パーミッションは，ファイルを作成するコマンドやプログラムの指定に従います。

上記以外のファイル：パーミッションは600になります。

オペランド

パーミッション　〜＜3桁の8進数＞((000〜777))

パーミッションを指定します。スプールジョブディレクトリ下のファイルのパーミッションは，ジョブ終了時に，このオペランドで指定した値に設定されます。

注意事項

1つの環境ファイルの中でこのパラメーターに対して次の指定をした場合，ジョブは実行されないでエラー終了します。

パラメーターを2つ以上指定した場合

オペランドを1つも指定しなかった場合

オペランドの数が2つよりも多い場合

8進数以外の数値，またはパーミッションで指定できる値を超える値を指定した場合

3桁以外の値を指定した場合

adshhkコマンドとadshevtoutコマンドでは，スプールジョブディレクトリおよびスプールジョブディレクトリ下のファイルを操作します。パーミッションを変更する際は，これらのコマンドを実行するユーザーの権限を考慮してください。

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

このパラメーターを指定すると，スプールジョブディレクトリ下のファイルのsetuidビット，およびsetgidビットは削除されます。

使用例

スプールジョブディレクトリ下のファイルのパーミッションを744にします。

#-adsh_conf PERMISSION_SPOOLJOB_FILE 744

PIPE_CMD_LASTパラメーター（パイプの最終コマンドの実行プロセスを定義する）【UNIX限定】

形式

#-adsh_conf PIPE_CMD_LAST ｛CURRENT|OTHER｝

機能

パイプラインの最終コマンドをカレントプロセスで実行するかどうかを定義します。

次のようにパイプラインの最終コマンドで変数の内容を更新し，パイプライン以降のコマンドで更新した内容を使用する場合は，CURRENTを指定してください。

ジョブ定義スクリプトの内容

typeset -i CNT=0
cat INFILE | while read STR
do
  echo "$STR"
  let CNT=CNT+1
done
echo "Line count is $CNT."

この結果，while文終了後のシェル変数CNTには，readコマンドで読み込まれた行数（INFILEの行数）が格納されます。

一方，次のようにパイプラインの最終コマンドで変数の内容を更新するが，パイプライン実行前の変数の内容で，パイプライン終了後に再度利用したい場合はOTHERを指定してください（CBL_SYSUT1，CBL_SYSUT2はCBLUAPxの共通インターフェース用変数と仮定します）。

ジョブ定義スクリプトの内容

CBL_SYSUT1=/file1
CBL_SYSUT2=/file2
CBLUAP1
cat INFILE | while read DIR
do
CBL_SYSUT1=`cmd1 y`
CBL_SYSUT2=`cmd2 y`
CBLUAP2
done
CBLUAP3

この場合，while文終了後のシェル変数CBL_SYSUT1には"/file1"，CBL_SYSUT2には"/file2"が格納されています。

このパラメーターは同一の環境ファイル内で複数回指定することはできません。複数回指定した場合は，エラーメッセージが出力されてジョブは終了します。

オペランド

CURRENT

パイプラインの最終コマンドが次に示すコマンドの場合，カレントプロセスで動作します。

シェル標準コマンド

代入式

スクリプト制御文

次の機能で一時ファイルを使用します。一時ファイルは環境設定パラメーターTEMP_FILE_DIRで指定されたディレクトリに作成します。

対象機能

パイプ

コマンド置換（パイプ（|）でつながれた1つのコマンド群だけをコマンド置換に指定した場合だけ）

OTHER

パイプラインの最終コマンドは別プロセスで動作します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

使用例

次に示す入力ファイルとジョブ定義スクリプトを使って，PIPE_CMD_LASTパラメーターを指定した場合の実行結果の違いを示します。

例1

ジョブ定義スクリプトの内容

STR="abcdefg"
echo "ABCDEFG" | read STR
echo $STR

標準出力への出力結果（PIPE_CMD_LASTパラメーターにCURRENTを指定した場合）

ABCDEFG

標準出力への出力結果（PIPE_CMD_LASTパラメーターにOTHERを指定した場合）

abcdefg

例2

ジョブ定義スクリプトの内容

A=1
echo "Hello World" | A=10
echo $A

標準出力への出力結果（PIPE_CMD_LASTパラメーターにCURRENTを指定した場合）

10

標準出力への出力結果（PIPE_CMD_LASTパラメーターにOTHERを指定した場合）

1

例3

入力ファイル「INFILE」の内容

user1,500,Tomato
user2,1000,Tomato
user3,300,Lettuce
user1,450,Cabbage
user1,250,Orange

ジョブ定義スクリプトの内容

typeset -i cnt=1
cat INFILE | grep user1 | while read NAME
do
  if [ $cnt -ge 3 ]; then
    break
  fi
  echo "$cnt = $NAME"
  let cnt=cnt+1
done
echo $cnt

whileからdoneまではパイプの最終コマンドとして扱われます。

標準出力への出力結果（PIPE_CMD_LASTパラメーターにCURRENTを指定した場合）

1 = user1,500,Tomato
2 = user1,450,Cabbage
3

標準出力への出力結果（PIPE_CMD_LASTパラメーターにOTHERを指定した場合）

1 = user1,500,Tomato
2 = user1,450,Cabbage
1

SPOOL_DIRパラメーター（スプールルートディレクトリのパス名を定義する）

形式

#-adsh_conf SPOOL_DIR パス名

機能

バッチジョブの実行結果（ジョブ実行ログおよびジョブステップのプログラムが出力したデータファイル）をジョブごとにディレクトリを作成して出力するスプールルートディレクトリのパス名を定義します。

オペランド

パス名

Windowsの実行環境の場合　〜＜パス名＞((1〜128バイト))《共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASE¥spool》

Windowsの開発環境の場合　〜＜パス名＞((1〜128バイト))《共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASD¥spool》

UNIXの場合　〜＜パス名＞((1〜128バイト))《/var/opt/jp1as/spool》

スプールルートディレクトリのパス名を指定します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

ユーザー応答機能を使用する場合，次の指定をすると正しく動作しません。

ジョブ環境ファイルにこのパラメーターを指定した場合

パス名にマルチバイト文字を指定した場合

このパラメーターに，JP1/Advanced Shellでサポートしないファイルシステム上のディレクトリを指定しないでください。JP1/Advanced Shellでサポートしないファイルシステムの詳細については，「2.6.19(2)　ファイルシステム」を参照してください。

パス名に&，(，)，[，]，{，}，^，=，;，!，'，+，,，`，~，#，%の記号を含まないでください。これらの記号を含む場合，正常に動作しません。

補足

該当するパラメーターで指定するディレクトリを別々に分けることで，同一ホスト内で複数環境を使い分けられます。

クラスタ運用で待機系のホストに情報を引き継ぎたい場合は，引き継ぐディレクトリをホスト間で共用します。その場合は，少なくともこのパラメーターのディレクトリをホスト間で共用します。

SPOOLJOB_CHILDJOBパラメーター（子孫ジョブのスプールジョブの扱いを定義する）

形式

#-adsh_conf SPOOLJOB_CHILDJOB ｛DELETE|MERGE｝

機能

子孫ジョブの終了時に，子孫ジョブのスプールジョブを削除するか，ルートジョブのスプールジョブにマージするかを選択します。

オペランド

DELETE

子孫ジョブの終了時に，子孫ジョブのスプールジョブを削除します。

子孫ジョブのジョブ実行ログのうち，JOBLOGの内容だけを標準エラー出力へ出力します。

DELETEを指定した場合のジョブ実行ログの出力例については，「3.5.2　ジョブ実行ログの出力例」を参照してください。

MERGE

子孫ジョブの終了時に，子孫ジョブのスプールジョブをルートジョブのスプールジョブにマージします。これによって次のように動作します。

子孫ジョブのジョブ実行ログがルートジョブのジョブ実行ログにマージされ，子孫ジョブが終了した順に出力されます。

ルートジョブのJOBLOGとSCRIPTは，それぞれ子孫ジョブのJOBLOGとSCRIPTをマージした内容で作成されます。

ルートジョブと子孫ジョブの出力内容が判別できる形式で次の個所へ出力されます。

通常実行の場合：標準エラー出力（STDERR，ステップ番号_ステップ名_STDERR）

デバッグ実行の場合：端末画面上の標準出力と標準エラー出力

子孫ジョブ実行時に#-adsh_spoolfileコマンドで割り当てるプログラム出力データファイルは，ルートジョブのスプールジョブディレクトリに次のファイル名で作成されます。

#-adsh_spoolfileコマンドの実行個所

割り当てるファイル名（Windowsでは末尾に拡張子「.sysout」が付与される）

子孫ジョブのジョブステップ外の場合

C子孫ジョブ起動順序通し番号_0000_ジョブ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名

子孫ジョブのジョブステップ内の場合

C子孫ジョブ起動順序通し番号_ステップ番号_ステップ名_ファイル環境変数定義名通し番号_ファイル環境変数定義名

同じジョブ定義スクリプトを子孫ジョブとして複数回実行した場合，実行した数だけSCRIPTを出力します。

スプールジョブディレクトリの作成方法については「3.4.2　ジョブの実行結果をスプールに出力する」を参照してください。ジョブ実行ログの出力形式については，「3.5.1(3)　子孫ジョブのスプールジョブをルートジョブのスプールジョブへマージした場合」を参照してください。

MERGEを指定した場合，1個のルートジョブから起動できる子孫ジョブは，子孫ジョブから起動する子孫ジョブを含め，9,999,999個までとなります。それを超えると子孫ジョブはエラー終了します。ただし，これより先にOSが定めるプロセス数やファイル数などの上限値に達した場合には，OSのエラー処理に従います。

MERGEを指定した場合のジョブ実行ログの出力例については，「3.5.3　ジョブ実行ログの出力例（子孫ジョブのスプールジョブをルートジョブのスプールジョブへマージした場合）」を参照してください。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

MERGEを指定した場合，子孫ジョブを非同期実行すると，JOBLOGのマージ順序とSCRIPTのマージ順序とが一致しないことがあります。

例えば，ルートジョブで子孫ジョブAと子孫ジョブBを非同期実行した場合に，JOBLOGは「子孫ジョブB→子孫ジョブA」の順序でマージされ，SCRIPTは「子孫ジョブA→子孫ジョブB」の順序でマージされることがあります。

MERGEを指定した場合，ジョブ定義スクリプト内のコマンドを非同期実行すると，子孫ジョブの標準出力と標準エラー出力を示すジョブ実行ログの範囲に，非同期実行したコマンドの標準出力や標準エラー出力が混在することがあります。

MERGEを指定した場合，起動した子孫ジョブで，ジョブ定義スクリプトを解析する前の初期設定処理でエラーが発生すると，マージ処理は実行されません。

子孫ジョブでは，ルートジョブの起動時に読み込んだ環境ファイルのSPOOLJOB_CHILDJOBパラメーターの値が指定されたものとして動作します。ルートジョブのジョブ環境ファイルと，子孫ジョブのジョブ環境ファイルとでSPOOLJOB_CHILDJOBパラメーターの値が異なっていても，無視して動作します。

文法チェックモードでジョブを実行した場合，マージ処理は実行されません。

使用例

子孫ジョブの終了時に，子孫ジョブのスプールジョブをルートジョブのスプールジョブにマージします。

#-adsh_conf SPOOLJOB_CHILDJOB MERGE
#-adsh_conf CHILDJOB_SHEBANG /bin/sh

SPOOLJOB_CREATEパラメーター（スプールジョブの作成要否を選択する）

形式

SPOOLJOB_CREATE ｛YES|NO｝

機能

ジョブ定義スクリプトの実行時にスプールジョブを作成するかどうかを選択します。

子孫ジョブに対してはこのパラメーターの指定は無効となり，ルートジョブの指定が引き継がれます。

オペランド

YES

スプールジョブディレクトリを作成します。

NO

スプールジョブディレクトリを作成しません。この場合の動作については，｢2.6.8(1)(a)　スプールジョブ作成抑止機能の使用有無を決定する｣を参照してください。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

adshexec -rコマンドまたはadshscripttool -rコマンドの実行時は，このパラメーターの指定に関係なく，ジョブ定義スクリプトファイルの一時ファイルは作成されません。この場合，メッセージなどのジョブ定義スクリプトファイルの出力部分には「-r CMDLINE」と出力されます。

CUIデバッガの使用時は，DBGファイル「一時ファイルディレクトリ/ADSH_DBG_プロセスID_ジョブ識別子」が一時的に作成され，デバッグ終了時に削除されます。

TEMP_FILE_DIRパラメーター（一時ファイルディレクトリのパス名を定義する）

形式

#-adsh_conf TEMP_FILE_DIR パス名

機能

一時ファイルを格納するディレクトリのパス名を定義します。

一時ファイルとはバッチジョブ中で作成され，バッチジョブ終了時にはすべて消去する暫定的に利用するファイルのことです。

オペランド

パス名

Windowsの実行環境の場合　〜＜パス名＞((1〜128バイト))《共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASE¥temp》

Windowsの開発環境の場合　〜＜パス名＞((1〜128バイト))《共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASD¥temp》

UNIXの場合　〜＜パス名＞((1〜512バイト))《/var/opt/jp1as/temp》

一時ファイルを格納するディレクトリのパス名を指定します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

このパラメーターに，JP1/Advanced Shellでサポートしないファイルシステム上のディレクトリを指定しないでください。JP1/Advanced Shellでサポートしないファイルシステムの詳細については，「2.6.19(2)　ファイルシステム」を参照してください。

補足

該当するパラメーターで指定するディレクトリを別々に分けることで，同一ホスト内で複数環境を使い分けられます。

TRACE_DIRパラメーター（トレースを出力するディレクトリのパス名を定義する）

形式

#-adsh_conf TRACE_DIR パス名

機能

トレースを出力するディレクトリのパス名を定義します。

オペランド

パス名

Windowsの実行環境の場合　〜＜パス名＞((1〜128バイト))《共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASE¥trace》

Windowsの開発環境の場合　〜＜パス名＞((1〜128バイト))《共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASD¥trace》

UNIXの場合　〜＜パス名＞((1〜512バイト))《/opt/jp1as/trace》

トレースを出力するディレクトリのパス名を指定します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

このパラメーターに，JP1/Advanced Shellでサポートしないファイルシステム上のディレクトリを指定しないでください。JP1/Advanced Shellでサポートしないファイルシステムの詳細については，「2.6.19(2)　ファイルシステム」を参照してください。

パス名に&，(，)，[，]，{，}，^，=，;，!，'，+，,，`，~，#，%の記号を含まないでください。これらの記号を含む場合，正常に動作しません。

補足

該当するパラメーターで指定するディレクトリを別々に分けることで，同一ホスト内で複数環境を使い分けられます。

TRACE_FILE_CNTパラメーター（トレース面数を定義する）

形式

#-adsh_conf TRACE_FILE_CNT 面数

機能

トレースを出力する面数を定義します。

オペランド

面数　〜＜符号なし整数＞((1〜64))《4》

トレースを出力する面数を指定します。通常は4を指定してください。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。ただし，TRACE_DIRパラメーターの定義がシステム環境ファイルの指定と同一の場合，システム環境ファイルと異なる値を指定するとエラーになります（システム環境ファイルの指定がデフォルト値の場合でも，相違があればエラーになります）。

補足

複数のユーザーが同じファイルにトレースログを出力している場合には，TRACE_FILE_CNTは，より大きい値を指定したユーザーの指定が有効になります。

また，環境ファイルでTRACE_FILE_CNTを変更した場合は，既存のトレースファイルの面数の設定値と比較して，より大きい値を指定したユーザーの指定が有効になります。

トレースファイルの面数を小さくする場合は，トレースフォルダにあるファイルをすべて削除してください。トレースフォルダにあるファイルをすべて削除するときは，同じトレースファイルにトレースを出力しているジョブがないことを確認してから行ってください。

同じファイルにトレースを出力するユーザー同士は，同じ設定値にすることを推奨します。

TRACE_FILE_SIZEパラメーター（トレースファイルサイズを定義する）

形式

#-adsh_conf TRACE_FILE_SIZE ファイルサイズ

機能

トレースを出力するファイルサイズを定義します。

オペランド

ファイルサイズ　〜＜符号なし整数＞((1〜16))《2》

トレースを出力するファイルサイズをMBで指定します。通常は2を指定してください。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。ただし，TRACE_DIRパラメーターの定義がシステム環境ファイルの指定と同一の場合，システム環境ファイルと異なる値を指定するとエラーになります（システム環境ファイルの指定がデフォルト値の場合でも，相違があればエラーになります）。

補足

複数のユーザーが同じファイルにトレースを出力している場合には，TRACE_FILE_SIZEは，より大きい値を指定したユーザーの指定が有効になります。

また，環境ファイルでTRACE_FILE_SIZEを変更した場合は，既存のファイルサイズの設定値と比較して，より大きい値を指定したユーザーの指定が有効になります。

ファイルサイズを小さくする場合は，トレースフォルダにあるファイルをすべて削除してください。トレースフォルダにあるファイルをすべて削除するときは，同じトレースファイルにトレースを出力しているジョブがないことを確認してから行ってください。

同じファイルにトレースを出力するユーザー同士は，同じ設定値にすることを推奨します。

TRACE_LEVELパラメーター（トレース出力レベルを定義する）

形式

#-adsh_conf TRACE_LEVEL トレースレベル

機能

トレースを出力するレベルを定義します。

オペランド

トレースレベル　〜＜符号なし整数＞((0，10，20，30))《0》

トレースを出力するレベルを指定します。数値が大きいほど詳細なトレースを出力します。通常は0を指定してください。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

TRAP_ACTION_SIGTERMパラメーター（ジョブコントローラが強制終了要求を受けたときの動作を定義する）

形式

UNIX版

#-adsh_conf TRAP_ACTION_SIGTERM {DISABLE|TERM|CONT|AUTO}

Windows版

#-adsh_conf TRAP_ACTION_SIGTERM {DISABLE|TERM}

機能

ジョブコントローラが強制終了要求を受けたときに実行する動作を，trapコマンドによって定義できるかどうかを指定します。また，trapコマンドで定義した動作を実行した後のジョブコントローラの動作を指定します。ここでの強制終了要求とは，JP1/AJS - Viewからの強制終了操作，UNIXのkillコマンドによるSIGTERMシグナル送信，Windowsのtaskkillコマンドによる強制終了（TerminateProcessなどによるプロセス即時終了）などを示します。

ジョブ定義スクリプト実行中に強制終了要求を受けた場合，ジョブコントローラはオペランドの指定に従って動作します。

このパラメーターの指定を省略すると，ジョブコントローラはDISABLEが指定されたと解釈して動作します。

trapコマンドについては，「9.3 シェル標準コマンド」の「trapコマンド（シグナルや強制終了要求を受けたときの動作を設定する）」を参照してください。

オペランド

DISABLE

強制終了要求を受けたときに実行する動作をtrapコマンドで定義できません。ジョブコントローラは強制終了要求を受けた場合，後続のコマンドを実行しないでエラー終了します。

TERM

強制終了要求を受けたときに実行する動作をtrapコマンドで定義できます。

ジョブコントローラは強制終了要求を受けた場合，trapコマンドで定義した動作を実行した後，後続のコマンドを実行しないでエラー終了します。

ただし，UNIX版では2回目の強制終了要求を受けた場合，ジョブコントローラの後処理を実行しないでジョブが即時終了します。

CONT【UNIX限定】

強制終了要求を受けたときに実行する動作をtrapコマンドで定義できます。

ジョブコントローラは強制終了要求を受けた場合，trapコマンドで定義した動作に従います。また，強制終了要求を複数回受けても処理を継続します。

ただし，このオペランドはJP1/AJSから起動したジョブには指定できません。指定した場合，ジョブコントローラは環境ファイルの解析時にKNAX0474-Eメッセージを出力してエラー終了します。

AUTO【UNIX限定】

ジョブコントローラは，ジョブの起動方法に応じてTERMまたはCONTが指定されたと解釈します。ジョブの起動方法に関わらず同じ環境ファイルを共通的に使用したい場合は，このオペランドを指定してください。

対象のジョブ

動作

JP1/AJSから起動したジョブ

TERMが指定されたと解釈して動作します。

JP1/AJS以外から起動したジョブ

CONTが指定されたと解釈して動作します。

なお，次のどれかの条件を満たした場合に，JP1/AJSから起動したジョブとみなします。

JP1/Advanced Shellのカスタムジョブから起動したジョブ

環境変数AJS_BJEX_STOPにTERMを設定した状態で起動したジョブ

1.および2.から起動した子孫ジョブ

オペランドごとの強制終了要求を受けたときの動作の詳細については「3.11 ジョブを強制終了する」を参照してください。

注意事項

【UNIX，Windows共通】

trapコマンドで強制終了要求を受けたときの動作を定義したジョブが強制終了要求を受けると，強制終了要求を受けたときの動作が完了するまでジョブは終了しません。そのため，長時間実行するコマンドや終了しない動作を定義するときはその点について十分に注意してください。

ジョブ定義スクリプト内でtrapコマンドによる動作定義をしても，ジョブ正常終了時の通常の後処理中は有効になりません。この間に強制終了要求を受けた場合，ジョブコントローラはtrapコマンドによる動作定義がないものと見なして動作します。

trapコマンドで定義した動作がエラー終了したり，exitコマンドでジョブを打ち切ると，ジョブはtrapコマンドで定義した動作内で最後に実行したコマンドの終了コードで終了します。しかし，このパラメーターにTERMを指定した場合，trapコマンドで定義した動作の終了コードはジョブ，およびジョブステップの終了コードには反映されないで，強制終了要求を受けたときの終了コードで終了します。

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

【UNIX限定】

次のどれかの条件を満たす場合，強制終了要求を受け，子孫プロセスの終了，trapコマンドで定義した動作の実行，一時ファイルの削除などの処理中に2回目の強制終了要求を受けると，作成した一時ファイルが削除されないで残るなど，後処理が完了しないことがあります。この場合は手動で一時ファイルを削除するなどの対処をしてください。

・オペランドにDISABLEを指定している。

・オペランドにTERMを指定している。

・オペランドにCONTを指定し，かつtrapコマンドによる動作定義がない。

UNSUPPORT_TESTパラメーター（サポートしていない条件式の実行時の動作を定義する）【Windows限定】

形式

#-adsh_conf UNSUPPORT_TEST ｛h|G|L|O|ef｝ ｛ERR|TRUE|FALSE｝

機能

Windows環境のJP1/Advanced Shellでサポートしていない条件式を判定した場合の動作を指定します。

演算子「-h」を使った条件式

演算子「-G」を使った条件式

演算子「-L」を使った条件式

演算子「-O」を使った条件式

演算子「-ef」を使った条件式

なお，JP1/Advanced Shellでサポートしていない条件式を判定する場合にこのパラメーターで動作を指定していないときは，ERRを指定したときと同じ動作となります。

条件式については，「5.2.2　条件式」を参照してください。

オペランド

｛h|G|L|O|ef｝

Windows環境のJP1/Advanced Shellでサポートしていない条件式を指定します。

h

演算子「-h」を使った条件式を示します。

G

演算子「-G」を使った条件式を示します。

L

演算子「-L」を使った条件式を示します。

O

演算子「-O」を使った条件式を示します。

ef

演算子「-ef」を使った条件式を示します。

｛ERR|TRUE|FALSE｝

Windows環境のJP1/Advanced Shellでサポートしていない条件式を判定した場合の動作を指定します。

ERR

エラーメッセージを出力し，ジョブを終了します。

TRUE

インフォメーションメッセージを出力し，常に正しいものと判定します。

FALSE

インフォメーションメッセージを出力し，常に誤りと判定します。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，指定した条件単位で，ジョブ環境ファイルでの定義が有効になります。

USERREPLY_DEBUG_DESTINATIONパラメーター（デバッグ実行時の事象通知メッセージと応答要求メッセージの入出力先を指定する）

形式

#-adsh_conf USERREPLY_DEBUG_DESTINATION ［JP1EVENT|CONSOLE］

機能

ユーザー応答機能で，adshechoコマンドまたはadshreadコマンドを使用したジョブ定義スクリプトをデバッグする場合に，事象通知メッセージおよび応答要求メッセージの入出力先を指定します。

オペランド

JP1EVENT

事象通知メッセージおよび応答要求メッセージをJP1イベントとして発行します。

CONSOLE

事象通知メッセージおよび応答要求メッセージの入出力先を標準入出力にします。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

デバッグ実行時以外にこのパラメーターにCONSOLEを指定して実行すると，指定は無視されます。この場合，事象通知メッセージおよび応答要求メッセージはJP1イベントとして発行されます。

USERREPLY_JP1EVENT_INTERVALパラメーター（JP1イベントの最小発行間隔を指定する）

形式

#-adsh_conf USERREPLY_JP1EVENT_INTERVAL 最小発行間隔

機能

ユーザー応答機能で発行するJP1イベントの最小発行間隔を設定します。

前回のJP1イベントが発行された時刻から，ここで定義した時間が経過するまで，次のJP1イベントの発行を待つことで，流量制御を行います。

オペランド

最小発行間隔　〜＜符号なし整数＞((100〜100000))《500》

前回のJP1イベントの発行時刻からの待ち時間をミリ秒単位で指定します。ただし，JP1/IM - Managerに過大な負荷が掛かることを避けるため，通常は500以上の値を指定してください。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行した場合，このパラメーターの指定は無視されます。

USERREPLY_WAIT_MAXCOUNTパラメーター（物理ホストまたは論理ホストごとに応答要求メッセージの最大同時出力数を指定する）

形式

#-adsh_conf USERREPLY_WAIT_MAXCOUNT 応答要求メッセージの最大同時出力数

機能

ユーザー応答機能を使用する場合，物理ホストまたは論理ホストごとに，応答要求メッセージの同時出力数の上限を指定します。

オペランド

応答要求メッセージの最大同時出力数　〜＜符号なし整数＞((1〜100))《5》

物理ホストまたは論理ホストごとの応答要求メッセージの同時出力数の上限を指定します。これによって，物理ホストまたは論理ホストごとに同時に存在できる応答要求メッセージの数を制限します。

JP1/IM - Viewに滞留できる応答待ちイベントは2,000件までです。そのため，応答待ちイベントを送信するホストでは，次の計算式を満たす値を指定してください。

JP1イベントの送信先（HOSTNAME_JP1IM_MANAGERパラメーターの指定）が同一である，応答待ちイベントを送信する全ホストの応答要求メッセージの最大同時出力数の合計値
＋他製品の応答待ちイベント滞留数の合計値
 ＜ 2000

注意事項

このパラメーターはジョブ環境ファイルに指定しないでください。このパラメーターをシステム環境ファイルとジョブ環境ファイルの両方に指定した場合，ジョブ環境ファイルの指定は無視されます。

指定値を超える数の応答待ちイベントを出力しようとすると，共有メモリに空きが生じるまで待ち状態になります。共有メモリの空きは3分ごとに3回まで確認され，それでも空きがなかった場合はエラーとなります。そのため，複数のジョブから同時に応答要求メッセージが出力される場合は，指定値を超えないように値を設定してください。

ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行した場合，このパラメーターの指定は無視されます。

VAR_ENV_NAME_LOWERCASEパラメーター（環境変数名の小文字の使用可否を指定する）【Windows限定】

形式

VAR_ENV_NAME_LOWERCASE ｛ENABLE|DISABLE｝

機能

小文字を含む環境変数名を有効にするかどうかを指定します。

オペランド

ENABLE

小文字を含む環境変数名を有効とします。

なお，同じスペルで大文字・小文字だけが異なる環境変数名は，Windowsの環境変数としては区別されませんが，シェル変数としては別々の値と認識されます。これによる混乱を避けるため，同じスペルのシェル変数は大文字・小文字を一致させることを推奨します。

DISABLE

小文字を含む環境変数名を無効とします。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

使用例

シェル変数名「SAMPLE01」「sample01」を定義したジョブ定義スクリプトと，バッチファイルを次のように定義した場合について，実行例を示します。

ジョブ定義スクリプト「envsample.ash」の内容

export SAMPLE01=large
export sample01=small
.¥¥envsample.bat | "${ADSH_DIR_CMD}grep" -i "SAMPLE01" 1>&2
echo "*** Shell variables ***" >&2
echo "SAMPLE01=$SAMPLE01" >&2
echo "sample01=$sample01" >&2

バッチファイル「envsample.bat」の内容

set

VAR_ENV_NAME_LOWERCASEパラメーターにDISABLE（小文字の環境変数名を有効とする）を指定した場合

環境ファイルの内容

#-adsh_conf VAR_ENV_NAME_LOWERCASE DISABLE
#-adsh_conf OUTPUT_MODE_ROOT  SIMPLE
#-adsh_conf OUTPUT_MODE_CHILD SIMPLE

実行結果

D:¥home>"C:¥Program Files¥HITACHI¥JP1AS¥JP1ASE¥bin¥adshexec" envsample.ash
KNAX6712-E Specified variable "sample01" cannot be exported because the name is not in all capital letters on the current platform. filename="D:¥home¥envsample.ash" line=2
KNAX6521-E Command export(line=2) failed. rc=1 E-Time=0.005s C-Time=0.000s
KNAX0101-E ADSH001002 An error occurred during execution of job.

D:¥home>

この例では，「SAMPLE01」のあとに実行した「sample01」のエクスポートに失敗しています。

VAR_ENV_NAME_LOWERCASEパラメーターにENABLE（小文字の環境変数名を無効とする）を指定した場合

環境ファイルの内容

#-adsh_conf VAR_ENV_NAME_LOWERCASE ENABLE
#-adsh_conf OUTPUT_MODE_ROOT  SIMPLE
#-adsh_conf OUTPUT_MODE_CHILD SIMPLE

実行結果

D:¥home>"C:¥Program Files¥HITACHI¥JP1AS¥JP1ASE¥bin¥adshexec" envsample.ash
sample01=small
*** Shell variables ***
SAMPLE01=large
sample01=small

D:¥home>

この例では，小文字のシェル変数をエクスポートできるようになり，最後にエクスポートしたシェル変数「sample01」が環境変数にエクスポートされます。また，シェル変数「SAMPLE01」「sample01」は別々の値を持ちます。

VAR_SHELL_FUNCINFOパラメーター（関数情報配列の使用有無を選択する）

形式

#-adsh_conf VAR_SHELL_FUNCINFO ｛TYPE_A|TYPE_B|NONE｝

機能

関数情報配列を使用するかどうかを定義します。関数情報配列は，adshexecコマンドが実行している関数の情報を格納する一次元配列です。

関数情報配列には次の3種類があります。関数情報配列については，「5.5.3　関数情報配列」を参照してください。

呼び出し関数名称配列

関数呼び出し行番号配列

関数定義スクリプトファイル名配列

オペランド

TYPE_A

関数情報配列を次に示す「ADSH_」で始まる名称で作成します。

配列の種類

配列名

呼び出し関数名称配列

ADSH_FUNCNAME

関数呼び出し行番号配列

ADSH_LINENO

関数定義スクリプトファイル名配列

ADSH_SOURCE

TYPE_B

関数情報配列を次に示すbashと同じ配列名で作成します。

配列の種類

配列名

呼び出し関数名称配列

FUNCNAME

関数呼び出し行番号配列

BASH_LINENO

関数定義スクリプトファイル名配列

BASH_SOURCE

NONE

関数情報配列を作成しません。

そのため，TYPE_AやTYPE_Bの指定時に作成される配列を通常の配列として使用できます。

注意事項

システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合，ジョブ環境ファイルでの定義が有効になります。

このパラメーターを同一の環境ファイルで同一のホストに対して複数定義した場合，エラーとなります。

関数情報配列は読み込み専用です。読み込み専用の解除，値の更新，unsetによる無効化はできません。

関数情報配列は関数内ローカル変数として定義することはできません。関数内での属性の変更や，関数内ローカル変数の定義はしないでください。

関数情報配列は#-adsh_step_startコマンドのstepVar属性に指定することはできません。

ルートジョブと子孫ジョブでパラメーターの指定値が異なる場合，作成される配列はジョブ起動時のパラメーターの指定値に従います。

使用例

VAR_SHELL_FUNCINFOパラメーターにTYPE_Aを指定した環境で次のジョブ定義スクリプトを実行した場合を例に説明します。

/home/user/script/adsh_func.ash

0001 : func1(){               # 関数func1の定義
0002 :  function func1_2 {    # 関数func1_2の定義
0003 :    echo "in func1_2"
0004 :    func2               # 関数func1_2から関数func2を呼び出す
0005 :  }
0006 :  echo "in func1"
0007 :  . ./func2.ash    # 関数func2を定義した外部スクリプトを.(ドット)で読み込む
0008 :  func1_2           # 関数func1から関数func1_2を呼び出す
0009 : }
0010 :
0011 : echo "main_script start"
0012 : export FPATH=`pwd`    # シェル変数FPATHにカレントの作業ディレクトリを格納
0013 : #-adsh_script ./func3.ash # 関数func3を定義した外部スクリプトを#-adsh_scriptで読み込む
0014 : autoload func4        # 関数func4のオートロード機能を有効にする
0015 :
0016 : func1                 # 関数func1を呼び出す
0017 : echo "main_script end"

/home/user/script/func2.ash

0001 : func2(){
0002 :   echo "in func2"
0003 :   func3
0004 : }

/home/user/script/func3.ash

0001 : func3(){
0002 :   echo "in func3"
0003 :   func4
0004 : }

/home/user/script/func4

0001 : func4(){
0002 :   echo "in func4"
0003 :   cnt=0
0004 :   for cnt in 0 1 2 3 4 5
0005 :   do
0006 :     echo "ADSH_FUNCNAME[$cnt] = ${ADSH_FUNCNAME[$cnt]}"
0007 :     echo "ADSH_LINENO[$cnt]   = ${ADSH_LINENO[$cnt]}"
0008 :     echo "ADSH_SOURCE[$cnt]   = ${ADSH_SOURCE[$cnt]}"
0009 :   done
0010 : }

echoコマンドの行で各関数のスタック情報が出力されます。

関数func4()実行時点の関数情報配列の値を次に示します。

要素番号

配列名

ADSH_FUNCNAME

ADSH_LINENO

ADSH_SOURCE

0

func4

3

/home/user/script/func4

1

func3

3

/home/user/script/func3.ash

2

func2

4

/home/user/script/func2.ash

3

func1_2

8

/home/user/script/adsh_func.ash

4

func1

16

/home/user/script/adsh_func.ash

5

main

0

/home/user/script/adsh_func.ash

なお，VAR_SHELL_FUNCINFOパラメーターにTYPE_Bを指定した環境で実行する場合は，ジョブ定義スクリプト「/home/user/script/func4」の内容を次のように変更してください。

0001 : func4(){
0002 :   echo "in func4"
0003 :   cnt=0
0004 :   for cnt in 0 1 2 3 4 5
0005 :   do
0006 :     echo "FUNCNAME[$cnt]      = ${FUNCNAME[$cnt]}"
0007 :     echo "BASH_LINENO[$cnt]   = ${BASH_LINENO[$cnt]}"
0008 :     echo "BASH_SOURCE[$cnt]   = ${BASH_SOURCE[$cnt]}"
0009 :   done
0010 : }

VAR_SHELL_GETLENGTHパラメーター（${#variable}書式で置換される変数値の長さの単位を定義する）

形式

VAR_SHELL_GETLENGTH ｛BYTE|CHARACTER｝

機能

${#variable}書式で置換される変数値の長さの単位を定義します。

オペランド

BYTE

${#variable}書式のvariableに格納されている値の長さをバイト数で置換します。

CHARACTER

${#variable}書式のvariableに格納されている値の長さを文字数で置換します。

使用例

文字列「abcdef英字」が設定されている変数CVALの値の長さを求めるため，「echo ${#CVAL}」を実行した例を次に示します。

VAR_SHELL_GETLENGTHパラメーターにBYTE（バイト数で置換）を設定するか，VAR_SHELL_GETLENGTHパラメーターの指定を省略した場合

マルチバイト文字は実行環境によって長さが異なります。LinuxのUTF-8環境で実行した場合の例を次に示します。

CVAL=abcdef英字
echo ${#CVAL}

「abcdef英字」を12バイトと解釈し，「12」が標準出力に出力されます。

VAR_SHELL_GETLENGTHパラメーターにCHARACTER（文字数で置換）を設定した場合

CVAL=abcdef英字
echo ${#CVAL}

「abcdef英字」は8文字のため，「8」が標準出力に出力されます。

7.4　条件パラメーター

論理ホストまたは物理ホストだけで有効となる環境設定パラメーターおよびexportパラメーターを設定するには，前後の行を条件パラメーターで囲んで設定します。条件パラメーターについて説明します。

lhost_startパラメーター，lhost_endパラメーター（論理ホストだけで有効なパラメーターを定義する）

形式

#-adsh_conf lhost_start 論理ホスト名
指定した論理ホストだけで有効とする環境設定パラメーターまたはexportパラメーター
                      ：
#-adsh_conf lhost_end

機能

特定の論理ホストだけで有効とする環境設定パラメーターまたはexportパラメーターがある場合，lhost_startパラメーターとlhost_endパラメーターで囲んで定義します。lhost_startパラメーターとlhost_endパラメーターは対になるよう定義してください。

lhost_startパラメーター

指定した論理ホストだけで有効とする環境設定パラメーターまたはexportパラメーターの指定を開始します。対象となる論理ホスト名もあわせて定義します。

lhost_endパラメーター

指定した論理ホストだけで有効とする環境設定パラメーターまたはexportパラメーターの指定を終了します。

同じ論理ホストに対して条件パラメーターを複数定義してもエラーにはなりません。それぞれに指定したパラメーター群が有効になります。

オペランド

論理ホスト名　〜＜任意文字列＞((1〜255バイト))

論理ホスト名を定義します。同一論理ホストに対する定義が複数回あってもエラーにはなりません。それぞれに指定したパラメーター群が有効になります。

Windowsの場合，196バイトを超える論理ホスト名は指定できません。また，論理ホスト名が63バイトを超えると動作しない場合があるため，63バイト以下で指定することをお勧めします。

phost_startパラメーター，phost_endパラメーター（物理ホストだけで有効なパラメーターを定義する）

形式

#-adsh_conf phost_start
物理ホストだけで有効とする環境設定パラメーターまたはexportパラメーター
                 ：
#-adsh_conf phost_end

機能

物理ホストだけで有効とする環境設定パラメーターまたはexportパラメーターがある場合，phost_startパラメーターとphost_endパラメーターで囲んで定義します。phost_startパラメーターとphost_endパラメーターは対になるよう定義してください。

phost_startパラメーター

物理ホストだけで有効とする環境設定パラメーターまたはexportパラメーターの指定を開始する行の前の行に定義します。

phost_endパラメーター

物理ホストだけで有効とする環境設定パラメーターまたはexportパラメーターの指定を終了する行の後ろの行に定義します。

物理ホストの定義が複数回あってもエラーにはなりません。それぞれに指定したパラメーター群が有効になります。

8　運用時に使用するコマンド

この章では，JP1/Advanced Shellのシェル運用コマンドおよびUNIX互換コマンドについて説明します。

8.1　コマンドの記述形式

シェル運用コマンドとUNIX互換コマンドの記述形式を次に示します。

△₀コマンド名［△₁オプション］…［△₁オプション］［△₁オペランド］

コマンド名の後ろは，最初にオプションを指定し，次にオペランドを指定します。オペランドとは，オプション名とオプション値のほかにコマンドに指定できる引数のことです。オプションの前にオペランドを指定した場合は，指定内容をすべてオペランドとして処理します。

オプションを複数指定する場合，指定順序は任意です。

不当なオプション，または指定できる範囲外のオプション値を指定した場合，エラーとなります。

オプション名にマルチバイト文字は使用できません。

コマンドでのファイルのパス名の指定については，「8.1.3　ファイルのパス名」を参照してください。

端末から標準入力へキーボード入力をするコマンドを実行する場合，入力を完了するには次の操作をしてください。

EOFまで入力する場合

WindowsではEnterを入力後にCtrl+Zを入力して，さらにEnterを入力します。

UNIXではCtrl+Dを入力します。

1行入力する場合

Enterを入力します。

8.1.1　シェル運用コマンドとUNIX互換コマンド（スクリプト形式）【Windows限定】のコマンドの記述規則

シェル運用コマンドとUNIX互換コマンド（スクリプト形式）【Windows限定】の指定規則を次に示します。

オプション値のないオプションは連続して指定できます（例：「-a -b -c」と「-abc」は同じです）。その場合，最後のオプションにはオプション値を指定できます（例：「-abc xyz」の「xyz」は，オプション-cの値となります）。

8.1.2　UNIX互換コマンドの記述規則

スクリプト形式を除くUNIX互換コマンドには，次の記述規則があります。

オプションは，ショートオプションとロングオプションに分類されます。

連続する2個のハイフン（-）だけを指定すると，オプションの指定の終わりを示します。連続する2個のハイフン（-）以降に指定した文字列（オプションの指定も含む）は，すべてオペランドとして処理されます。

ショートオプション，ロングオプション，およびコマンドごとの記述規則を次に説明します。

(1)　ショートオプションの指定形式

ショートオプションは，1個のハイフン（-）の後ろに規定の文字が1つ続くオプションです。

ショートオプションの指定形式を次に示します。オプション値を省略できるかどうかは，オプションによって異なります。

-ショートオプション名［△₀オプション値］

ショートオプションを指定する場合の規則を次に示します。

オプション値のないオプション名は連続して指定できます（例：「-a -b -c」と「-abc」は同じです）。その場合，最後のオプションにはオプション値を指定できます（例：「-abc xyz」の「xyz」は，オプション-cの値となります）。

オプションによっては，オプション値の前にスペースを指定できません。このオプションでスペースを指定すると，オプション値の部分がオペランドと見なされます。

この章のコマンド説明の「形式」で，オプション値の前にスペースがないオプションは，スペースを指定できないことを示します。

(2)　ロングオプションの指定形式

ロングオプションは，連続する2個のハイフン（-）の後ろに規定の文字列が続くオプションです。

ロングオプションの指定形式を次に示します。オプション値を省略できるかどうかはオプションによって異なります。

--ロングオプション名［=オプション値］

オプション値のあるオプションは次の形式でも指定できます。ただし，オプション値を省略できるオプションの場合は，ロングオプション名とオプション値の区切りは=（イコール）でなければなりません。=（イコール）でなくスペースを指定すると，オプション値の部分がオペランドと見なされます。

--ロングオプション名△₁オプション値

ロングオプション名とオプション値は短縮して指定できません。例えば，cutコマンドの--charactersオプションを「--char リスト」と指定したり，lsコマンドの--formatオプションで表示形式longを「--format=l」と指定したりすると，エラーになります。

注意事項

ショートオプションに付随するロングオプションがある場合，このマニュアルではコマンド説明の「引数」の説明個所以外はショートオプションだけを記載しています。なお，付随するショートオプションがない場合はロングオプションを記述しています。コマンド説明の「形式」でのロングオプション名の記述位置は，他オプションとの関連がない場合は，すべてのショートオプション名の後ろに記述しています。

例えば，diffコマンドの-yオプションに付随するロングオプション「--side-by-side」は，コマンド説明の「形式」には記述していません。一方，ロングオプション「--suppress-common-lines」にはショートオプションが存在しないため，「形式」に記述しています。

(3)　各コマンドの注意事項

cut，date，diff，ls，expand，statコマンドは，オプションとオペランドの指定順序は任意です。オペランドの後ろにオプションを指定しても，そのオプションはオプションとして処理されます。

次のどちらかの環境変数を設定した場合，オペランドはコマンドラインにすべてのオプションを指定したあとに指定する必要があります。オペランドの後ろにオプションを指定しても，オペランドと見なされます。これらの環境変数については，「2.5　環境変数を設定する」を参照してください。

環境変数POSIXLY_CORRECT

環境変数ADSH_CMD_ARGORDER=seq

なお，環境変数POSIXLY_CORRECTはJP1/Advanced Shellのジョブ定義スクリプト内には定義できません。

awk，find，getoptコマンドでオプションとオペランドを指定する場合，すべてのオプションを指定したあとにオペランドを指定する必要があります。

次のコマンドでオプションとオペランドを指定する場合，Linuxではオプションとオペランドの指定順序は任意ですが，AIX，HP-UX，Solaris，Windowsでは，オプションを指定したあとにオペランドを指定する必要があります。

cat，cmp，cp，egrep，grep，head，mkdir，mv，paste，rm，sed，sort，split，tail，touch，uniq，wc，which

なお，Linuxで環境変数POSIXLY_CORRECTを設定することで，AIX，HP-UX，Solaris，Windowsと同じ動作にすることができます。

なお，環境変数POSIXLY_CORRECTはJP1/Advanced Shellのジョブ定義スクリプト内には定義できません。環境変数POSIXLY_CORRECTについては，「2.5　環境変数を設定する」を参照してください。

8.1.3　ファイルのパス名

ファイルは，絶対パス名と相対パス名で指定できます。

コマンドによっては，相対パス名を絶対パス名に変換して処理しています。このため，コマンドで指定するファイルのパス名の長さを，絶対パス名の長さで認識している場合があります。

コマンドで指定したファイルのパス名に対する絶対パス名の例を次に示します。

(1)　ファイル名の指定が絶対パス名の場合

指定されたファイル名が絶対パス名です。

例

/dir1/test1.asc

(2)　ファイル名の指定が相対パス名の場合

コマンドを実行したときのカレントディレクトリと，指定されたファイルのパス名の連結が絶対パス名となります。

例

コマンドを実行したときのカレントディレクトリ：/home/user1
ファイルのパス名：dir2/test2.asc
ファイルの絶対パス名：/home/user1/dir2/test2.asc

8.2　コマンドの一覧

8.2.1　シェル運用コマンドの一覧

シェル運用コマンドは，シェルまたはコマンドプロンプトから実行できるコマンドです。シェル運用コマンドには，adshexecコマンド（バッチジョブを実行するコマンド）などがあります。

JP1/Advanced Shellのシェル運用コマンドを次の表に示します。

表8‒1　シェル運用コマンド

コマンド名

機能

コマンドの格納場所

adshchmsg

障害発生時に，応答要求メッセージに対して手動で応答する場合に使用するコマンドです。

【Windowsの実行環境の場合】

インストール先フォルダ¥JP1ASE¥bin

【Windowsの開発環境の場合】

インストール先フォルダ¥JP1ASD¥bin

【UNIXの場合】

/opt/jp1as/sbin

adshcvmerg

マージする2つのascファイルを入力としてカバレージ情報をマージし，指定したパスのファイルに出力します。

【Windowsの実行環境の場合】

インストール先フォルダ¥JP1ASE¥bin

【Windowsの開発環境の場合】

インストール先フォルダ¥JP1ASD¥bin

【UNIXの場合】

/opt/jp1as/bin

adshcvshow

カバレージ情報ファイルを入力として読み込み，カバレージ情報を表示します。

adshevtout※

ジョブ定義スクリプトの稼働実績情報を出力します。

adshexec※

ジョブ定義スクリプトファイルを入力として読み込み，ジョブ定義スクリプトの内容に従ってバッチジョブを実行する，ジョブコントローラと呼ばれるプロセスを起動します。

adshfile

ジョブステップ終了時またはジョブ終了時に，後処理をするファイルを割り当てます。

adshhk

スプールルートディレクトリ名と日数を指定して，スプールジョブを削除します。

adshjava【Windows，Linux，AIX，HP-UX限定】

Javaアプリケーションクラス名で指定されたJavaのバッチアプリケーションをuCosminexus Application Serverで実行します。

adshlsmsg

障害発生時に，応答要求メッセージの一覧を表示するコマンドです。

【Windowsの実行環境の場合】

インストール先フォルダ¥JP1ASE¥bin

【Windowsの開発環境の場合】

インストール先フォルダ¥JP1ASD¥bin

【UNIXの場合】

/opt/jp1as/sbin

adshmdctl【UNIX限定】

ユーザー応答機能のための共有メモリを管理するデーモンを起動および停止するコマンドです。

/opt/jp1as/sbin

adshmsvcd【Windows開発環境限定】

ユーザー応答機能のための共有メモリを管理するサービスプログラムです。開発環境で使用できます。

インストール先フォルダ¥JP1ASD¥bin

adshmsvce【Windows実行環境限定】

ユーザー応答機能のための共有メモリを管理するサービスプログラムです。実行環境で使用できます。

インストール先フォルダ¥JP1ASE¥bin

注※

Windowsの実行環境およびUNIXでだけ使用できます。

8.2.2　UNIX互換コマンドの一覧

UNIX互換コマンドには，実行ファイル形式で提供するコマンドとスクリプト形式で提供するコマンドがあります。

実行ファイル形式で提供するコマンド

WindowsおよびUNIXで共通のJP1/Advanced Shellのコマンドが使用できます。

コマンドの指定方法については「8.4　UNIX互換コマンド」を参照してください。

スクリプト形式で提供するコマンド【Windows限定】

UNIXの機能に依存するコマンドをWindowsで実現するため，Windows提供の機能を使用してUNIXのOS標準のコマンドの一部機能を実現したスクリプト形式のコマンドを使用できます。

コマンドの指定方法については「8.5　UNIX互換コマンド（スクリプト形式）【Windows限定】」を参照してください。

(1)　実行ファイル形式で提供するコマンド

UNIX互換コマンドのうち，実行ファイル形式で提供するコマンドは，ジョブ定義スクリプト中で実行できます。また，WindowsのコマンドプロンプトおよびUNIXのシェルからも実行できます。

UNIX互換コマンドのうち，実行ファイル形式で提供するコマンドの格納場所は次のとおりです。

Windowsの実行環境の場合

インストール先フォルダ¥JP1ASE¥cmd

Windowsの開発環境の場合

インストール先フォルダ¥JP1ASD¥cmd

UNIXの場合

/opt/jp1as/cmd

UNIX互換コマンドのうち，実行ファイル形式で提供するコマンドには，ファイルシステムなどOS差異の大きい制御に関して制限事項があります。また，Windows限定でオーナーやグループ，アクセス権限およびシンボリックリンクなどに制限事項があります。

使用できる実行ファイル形式のUNIX互換コマンドと制限事項を次の表に示します。

表8‒2　UNIX互換コマンド（実行ファイル形式）

コマンド名

機能概要

制限事項※

awk

テキストの加工やパターン処理をします。

Windowsの場合，system関数で実行するコマンドの引数にワイルドカードを含むファイル名やディレクトリ名を指定しても，ワイルドカードは展開されません。

Windowsの場合，getline関数，print関数およびprintf関数でパイプによって接続するコマンドの引数にワイルドカードを含むファイル名やディレクトリ名を指定しても，ワイルドカードは展開されません。

basename

パス名からファイル名部分の文字列を取り出し標準出力に出力します。

制限事項はありません。

cat

ファイルの内容を標準出力に出力します。

制限事項はありません。

cmp

バイナリファイルの内容を比較します。

制限事項はありません。

cp

ファイルまたはディレクトリをコピーします。

Windowsの場合，-Hオプション，-Lオプションまたは-Pオプションを指定して，引数にシンボリックリンクを設定したり，ディレクトリ中にシンボリックリンクがあったりしても，シンボリックリンクをサポートしていないため，リンク先を表示できません。また，-rと-Rオプションは同じ動作になります。

Windowsの場合，-pオプションで保持されるのはコピー元ファイルの更新日時およびファイルアクセス日時だけとなります。ディレクトリの情報は保持しません。

cut

各行の選択範囲を標準出力に表示します。

制限事項はありません。

date

システムの日付と時刻を表示します。設定はできません。

-aオプション（時刻設定）は使用できません。

diff

2つのファイルを比較します。

制限事項はありません。

dirname

ファイルパス名規則に従った文字列からファイル名を取り除いた残りのディレクトリパス名を取り出し，標準出力に出力します。

制限事項はありません。

egrep

ファイル内の文字を検索します。指定されたパターンは拡張された正規表現として扱われます。

grepコマンドに-Eオプションを指定した場合と同じ動作です。

Windowsの場合，シンボリックリンクのリンク先を表示できません。

expand

タブストップでそろえられている行をタブ文字からスペース文字に置き換えて，標準出力に出力します。

制限事項はありません。

expr

式を評価します。

制限事項はありません。

find

ディレクトリ内のファイルを検索します。

制限事項はありません。

getopt

シェルスクリプトで容易に構文解析できるよう，コマンドラインのオプションを分解します。

制限事項はありません。

grep

ファイル内の文字を検索します。

Windowsの場合，シンボリックリンクのリンク先を表示できません。

head

ファイルの最初の部分を表示します。

制限事項はありません。

hostname

ホスト名を表示します。設定はできません。

制限事項はありません。

ls

ファイルまたはディレクトリの内容を表示します。

Windowsの場合，シンボリックリンクのリンク先を表示できません。

Windowsの場合，-lオプションでグループ，リンク数またはファイルのオーナー以外のアクセス権を表示できません。

Windowsの場合，TZ環境変数は表示に影響しません。コントロールパネルの［日付と時刻のプロパティ］ダイアログボックスで設定したタイムゾーンが使用されます。

mkdir

ディレクトリを作成します。

Windowsの場合，-mオプションは無視されるため，モード設定はできません。

mv

ファイルまたはディレクトリを移動します。ファイル名またはディレクトリ名も変更できます。

Windowsの場合，オーバーライド時にオーナーのアクセス権以外は表示できません。

Windowsの場合，シンボリックリンクのリンク先を表示できません。

Windowsの場合，cpコマンド相当の処理をするケースで，オーナーの変更をサポートしません。オーナー/グループ/suid/モードは保持されません。

paste

複数のファイルを行単位に連結して標準出力に出力します。

制限事項はありません。

rm

ファイルまたはディレクトリを削除します。

Windowsの場合，シンボリックリンクのリンク先を表示できません。

Windowsの場合，オーバーライド時にオーナーのアクセス権以外は表示できません。

rmdir

空のディレクトリを削除します。

制限事項はありません。

sed

テキスト中の文字列を置換します。

制限事項はありません。

sleep

指定された時間だけ停止します。

制限事項はありません。

sort

テキストファイルをソートします。

制限事項はありません。

split

ファイルを分割します。

制限事項はありません。

stat

ファイルまたはディレクトリの状態を標準出力に出力します。

Windowsの場合，シンボリックリンクファイルのリンク先の状態を表示できません。

Windowsの場合，ファイルの所有者以外のパーミッションを表示できません。

Windowsの場合，ファイルのブロック数，ブロックサイズの情報は常に0を表示します。

Windowsの場合，デバイス番号はドライブ番号を表示します。

Windowsの場合，所有者のユーザーIDとグループIDは常に0を表示します。

Windowsの場合，所有者のグループ名は常に「．．．」を表示します。

Windowsの場合，ハードリンクの数は常に0を表示します。

Windowsの場合，iノード番号は常に0を表示します。

Windowsの場合，シンボリックリンクファイルのリンク先を表示できません。

Windowsの場合，ディレクトリの合計サイズは常に0を表示します。

Windowsの場合，メジャーデバイス番号とマイナーデバイス番号は常に0を表示します。

Windowsの場合，ファイルの最終アクセス日時とファイル情報の最終変更日時はファイルの最終修正日時と同じ日時を表示します。

Windowsの場合，通常ファイルとディレクトリ以外のファイル種別を表示できません。

tail

ファイルの最後の部分を表示します。

制限事項はありません。

touch

ファイルの最終アクセス日時と最終修正日時を変更します。

Windowsの場合，最終アクセス日時は変更できません。

Windowsの場合，ディレクトリの最終修正日時は変更できません。

Windowsの場合，環境変数TZに設定したタイムゾーンと［日付と時刻のプロパティ］に設定したタイムゾーンを同じ値にする必要があります。

Windowsの場合，実際にファイルに設定される修正時刻の精度はファイルシステムの仕様に依存します。

uname

OSまたはハードウェアの情報を表示します。

制限事項はありません。

uniq

ソートされたファイルから重複した行を削除します。

制限事項はありません。

wc

ファイルのバイト，行，文字および単語をカウントします。

制限事項はありません。

which

実行する外部コマンドのコマンドパスを環境変数PATHに設定されているコマンド検索パスから求めます。

Windowsの場合，whichコマンドの説明個所に記載されているパス検索規則に該当する外部コマンドだけがコマンドパスの出力対象となります。

注※

UNIX互換コマンドのうち，実行ファイル形式で提供するすべてのコマンドに共通する制限事項を次に示します。

Windowsの場合，UNIX互換コマンドをコマンドプロンプトから実行するとき，ワイルドカードは展開されません。ジョブ定義スクリプトファイルに記述した場合は展開されます。

出力されるメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。

Windowsの場合，コマンドプロンプトからコマンドを実行するときは，ダブルクォーテーションを使用する必要があります。

使用可能なファイルには制限があります。詳細は「2.2.3　JP1/Advanced Shellで使用するファイル」を参照してください。

コマンドで生成するパス名およびジョブ定義スクリプトファイルに記述したファイルには，パス変換機能は無効です。

プログラムを実行する機能（awkコマンドのsystem関数およびfindコマンドの-execプライマリ，-okプライマリなど）でGUIを操作するアプリケーションを実行した場合，バッチジョブ実行時に処理が停止することがあります。また，adshexecコマンドを実行すると，新たにジョブが生成されます。

(2)　スクリプト形式で提供するコマンド【Windows限定】

UNIX互換コマンドのうち，スクリプト形式で提供するコマンドは，ジョブ定義スクリプト中だけで実行できます。

UNIX互換コマンドのうち，スクリプト形式で提供するコマンドのサンプルスクリプトファイルの格納場所は次のとおりです。

Windowsの実行環境の場合

インストール先フォルダ¥JP1ASE¥sample

Windowsの開発環境の場合

インストール先フォルダ¥JP1ASD¥sample

UNIX互換コマンドのうち，スクリプト形式で提供するコマンドは，JP1/Advanced Shellが提供するサンプルスクリプトファイルを「2.6.6(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows 限定】」に示す事前準備をしてから使用してください。

使用できるスクリプト形式のUNIX互換コマンドを次の表に示します。なお，提供するサンプルスクリプトファイルはWindows限定です。UNIXでこれらのコマンドを使用する場合，OS提供のコマンドを使用してください。

表8‒3　UNIX互換コマンド（スクリプト形式）

コマンド名

機能概要

chmod

ファイルまたはフォルダのアクセス権を変更します。

su

suコマンドに指定されたプログラムを実行します。

who

現在ログインしているユーザーの情報を表示します。

8.3　シェル運用コマンド

adshchmsgコマンド（障害発生時に，応答要求メッセージに対して手動で応答する）

形式

adshchmsg ［-h 論理ホスト名］-n 応答要求メッセージ番号｛-r 応答|-d｝

機能

障害発生時に共有メモリ上にある応答要求メッセージに対して応答を入力します。または，応答要求メッセージの応答待ち状態をキャンセルします。

応答要求メッセージの応答要求メッセージ番号を-nオプションに指定し，それに対する応答を-rオプションで指定します。応答要求メッセージの応答待ち状態をキャンセルする場合は，応答要求メッセージの応答要求メッセージ番号を-nオプションに指定し，それに対するキャンセル要求として-dオプションを指定します。

実行環境の場合，このコマンドは，JP1/Advanced Shellがインストールされているマシンの管理者権限を持つrootまたはAdministratorsが実行できます。開発環境の場合，このコマンドは一般ユーザーでも実行できます。

引数

-h 論理ホスト名　〜＜論理ホスト名＞((1〜255バイト))

論理ホスト環境で運用している場合，このコマンドを実行する論理ホストのホスト名を指定します。

Windowsの場合，196バイトを超える論理ホスト名は指定できません。また，論理ホスト名の長さは63バイト以下を推奨します。63バイトを超える名称を指定すると，動作しないことがあります。

-n 応答要求メッセージ番号　〜＜符号なし整数＞((1〜2147483647))

応答を入力したい応答要求メッセージまたは応答待ち状態をキャンセルしたい応答要求メッセージの応答要求メッセージ番号を指定します。応答要求メッセージ番号には，adshlsmsgコマンドで表示される応答要求メッセージの番号を指定します。

-rオプションまたは-dオプションの指定がない場合はエラーになります。

応答要求メッセージ番号の指定をしなかった場合，その次に指定されたオプションが引数として扱われエラーになります。

-r 応答　〜＜ASCII文字列＞((0〜512バイト))

応答待ちイベントの発行元に入力する応答を指定します。スペースを含む応答を入力する場合は"（ダブルクォーテーション）で囲みます。

-nオプションの指定がない場合はエラーになります。

512バイトを超える文字列を指定した場合は，512バイトまでを応答として扱います。また，改行を含む文字列が指定された場合，改行以降の文字列は無視されます。

-d

-nオプションで指定した応答要求メッセージの応答待ち状態をキャンセルします。-nオプションの指定がない場合はエラーになります。

終了コード

終了コード

意味

0

正常終了

0以外

エラー終了

注意事項

次の場合，最後に指定したものが有効になります。

-rオプションと-dオプションを同時に指定した場合

-rオプションを複数指定した場合

-nオプションを複数指定した場合

adshcvmergコマンド（カバレージ情報をマージする）

形式

adshcvmerg -o 出力するascファイルのパス名 ベースとなるascファイルのパス名 マージするascファイルのパス名

機能

ベースとなるascファイルとマージするascファイルのカバレージ情報をマージして，出力するascファイルに出力します。

マージする入力ファイルが同一ファイルである場合，コマンドエラーになります。入力ファイルが同一であるかどうかは，絶対パスを含めて同一ファイル名であるかどうかで判定します。入力ファイルの内容が同一であるかどうかでは判定しません。

引数

Windowsの場合，英大文字，英小文字の相違を区別しません。UNIXの場合，英大文字，英小文字の相違を区別します。

-o 出力するascファイルのパス名

Windowsの場合　〜＜パス名＞((1〜229バイト))

UNIXの場合　〜＜パス名＞((1〜1,005バイト))

マージした結果を出力するファイルのパス名を指定します。

ベースとなるascファイルのパス名

Windowsの場合　〜＜パス名＞((1〜229バイト))

UNIXの場合　〜＜パス名＞((1〜1,005バイト))

ベースとなるファイルのパス名を指定します。

マージするascファイルのパス名

Windowsの場合　〜＜パス名＞((1〜229バイト))

UNIXの場合　〜＜パス名＞((1〜1,005バイト))

マージするファイルのパス名を指定します。

終了コード

終了コード

意味

0

正常終了

1

ascファイルの読み込みの途中で，ファイルの終了を検出しました。ascファイルが異常です。

2

ファイルのロック解除でエラーが発生しました。

3

コマンドラインの指定に誤りがあります。

4

環境変数の設定に誤りがあります。

環境変数LANGに設定している文字エンコーディングに対応していません。

5

次に示す2つのジョブ定義スクリプトが異なります。

ベースascファイルのカバレージ情報を蓄積したときのジョブ定義スクリプト

マージascファイルのカバレージ情報を蓄積したときのジョブ定義スクリプト

6

ファイルのオープン処理でエラーが発生しました。

ファイルの種類が適切でない場合も，このエラーとなります。

7

ファイルのロックでエラーが発生しました。

8

ファイル名の変更処理でエラーが発生しました。

9

ファイルの入出力でエラーが発生しました。

10

メモリ不足が発生しました。

11

メッセージ出力処理でエラーが発生しました。

12

標準エラー出力への出力処理でエラーが発生しました。

13

内部処理矛盾を検出しました。

14

ascファイルのデータ形式の誤りを検出しました。ascファイルが不当です。

15

日時の取得でエラーが発生しました。

16

ジョブ定義スクリプトファイルの情報取得でエラーが発生しました。

17

コマンドでascファイルを処理できません。

ascファイルは，異なるバージョンで作成されたものです。

19

コマンドの処理中に，OSとのやり取りでエラーが発生しました。

注意事項

ベースascファイル，およびマージascファイルのカバレージ情報を採取したときのジョブ定義スクリプトが同一の場合にだけ，マージできます。ジョブ定義スクリプトが異なる場合は，コマンドエラーとなります。

出力ascファイルに，ベースascファイルまたはマージascファイルと同一のファイルを指定すると，コマンドエラーとなります。出力ascファイルは，ベースascファイルおよびマージascファイルとは異なるファイルを指定してください。

ベースascファイルおよびマージascファイルに同一のファイルを指定すると，コマンドエラーとなります。

ベースascファイルおよびマージascファイルに指定したファイルが，同一であるかどうかは，指定したファイルの絶対パス名で判断します。絶対パス名が同一である場合，同一のファイルと判断します。

使用例

JOB_user1.ascとJOB_user2.ascのカバレージ情報をマージしてJOB_user3.ascに出力します。

adshcvmerg -o JOB_user3.asc JOB_user1.asc JOB_user2.asc

adshcvshowコマンド（カバレージ情報を表示する）

形式

adshcvshow｛［ -l n1［-［n2］］［,n3［-［n4］］］］...］|-s｝ascファイルのパス名

機能

引数に指定したascファイルのカバレージ情報を表示します。

引数

-l n1［-［n2］］［,n3［-［n4］］］...

カバレージ情報を表示する範囲のジョブ定義スクリプトの行番号を指定します。

n1［-［n2］］の形式で範囲を指定します。n1-は，行番号n1の行から最終行までの範囲を意味します。範囲は，「,」で区切ると複数指定できます。

n1：表示する範囲の開始行の行番号です。

n2：表示する範囲の終了行の行番号です。

このオプションを指定しない場合，ジョブ定義スクリプトの全行を表示範囲とします。

行の指定の形式は「,」で複数指定し，「-」で範囲を指定します。「-」の後ろに数字を指定しない場合は，前の値から最終行までが範囲になります。

-s

バックアップしているジョブ定義スクリプトファイルの内容を表示します。

このオプションは，ascファイルがどのジョブ定義スクリプトファイルと対応しているかを調べる場合や差分を調べる場合に使用します。

ascファイルのパス名

Windowsの場合　〜＜パス名＞((1〜229バイト))

UNIXの場合　〜＜パス名＞((1〜1,005バイト))

表示するカバレージ情報が格納されたascファイルのパス名を指定します。

終了コード

終了コード

意味

0

正常終了

1

ascファイルの読み込みの途中で，ファイルの終了を検出しました。ascファイルが異常です。

2

ファイルのロック解除でエラーが発生しました。

3

コマンドラインの指定に誤りがあります。

4

環境変数の設定に誤りがあります。

環境変数LANGに設定している文字エンコーディングに対応していません。

6

ファイルのオープン処理でエラーが発生しました。

ファイルの種類が適切でない場合も，このエラーとなります。

7

ファイルのロックでエラーが発生しました。

8

ファイル名の変更処理でエラーが発生しました。

9

ファイルの入出力でエラーが発生しました。

10

メモリ不足が発生しました。

11

メッセージ出力処理でエラーが発生しました。

12

標準エラー出力への出力処理でエラーが発生しました。

13

内部処理矛盾を検出しました。

14

ascファイルのデータ形式の誤りを検出しました。ascファイルが不当です。

15

日時の取得でエラーが発生しました。

16

ジョブ定義スクリプトファイルの情報取得でエラーが発生しました。

17

コマンドでascファイルを処理できません。

ascファイルは，異なるバージョンで作成されたものです。

19

コマンドの処理中に，OSとのやり取りでエラーが発生しました。

注意事項

-sオプションと-lオプションは同時に指定した場合，エラーになります。

行の範囲指定で，終了行の行番号が開始行の行番号より小さい場合，エラーとなります。

開始行の行番号と終了行の行番号が等しい場合は，その行だけが範囲となります。

開始行の行番号がジョブ定義スクリプトファイルの行数より大きい場合は，無視されます。

終了行の行番号がジョブ定義スクリプトファイルの行数より大きい場合，終了行を最終行とします。

範囲が重複している場合，範囲の和と解釈します。例えば，-l 1-10,5-20 の場合，-l 1-20と同じになります。

範囲の形式が誤っている場合，エラーになります（例：1-10-20）。

行指定で0行目を指定した場合，エラーになります。

-lオプションを指定している場合，Total information以降の行は出力しません。

使用例

1行目〜10行目，15行目および21行目〜最終行目のカバレージ情報を表示します。

adshcvshow -l 1-10,15,21-  JOB_user1.asc

2行目〜8行目のカバレージ情報を表示します。

adshcvshow -l 2-6,4-8 JOB_user1.asc

ジョブ定義スクリプトファイルが9行である場合，何も表示されません。

adshcvshow -l 10-15 JOB_user1.asc

ジョブ定義スクリプトファイルが9行である場合，2行目〜4行目のカバレージ情報を表示します。

adshcvshow -l 10-15,2-4 JOB_user1.asc

adshevtoutコマンド（ジョブ定義スクリプトの稼働実績情報を出力する）

形式

adshevtout ［-s ジョブの実行開始日時の下限］
           ［-e ジョブの実行開始日時の上限］
           ［-c JP1/AJSのスケジューラーサービス名］
           ［-r JP1/AJSのルートジョブネット名］
           ［-k JP1/AJSのジョブ実行ID］
           ［-n JP1/AJSのジョブ番号］
           ［-g JP1/AJSのジョブ名］
           ［-u JP1/Advanced Shellの実行ユーザー名］
           ［-p ジョブ定義スクリプトファイルのパス名］
           ［-i JP1/Advanced Shellのジョブ識別子］
           ［-j JP1/Advanced Shellのジョブ名］
           ［-t］
           ［-d］
           ［-m］
           ［-z］
           ［-h 論理ホスト名］

機能

指定された条件に該当するジョブのジョブ定義スクリプト稼働実績情報をイベントファイルから検索し，CSV形式で出力します。出力先は標準出力（stdout）です。

このコマンドは，JP1/Advanced Shell - Developerでは使用できません。

出力条件の指定

次に示す引数で，ジョブ定義スクリプト稼働実績情報を出力するジョブを指定します。

［-s ジョブの実行開始日時の下限］
［-e ジョブの実行開始日時の上限］
［-c JP1/AJSのスケジューラーサービス名］
［-r JP1/AJSのルートジョブネット名］
［-k JP1/AJSのジョブ実行ID］
［-n JP1/AJSのジョブ番号］
［-g JP1/AJSのジョブ名］
［-u JP1/Advanced Shellの実行ユーザー名］
［-p ジョブ定義スクリプトファイルのパス名］
［-i JP1/Advanced Shellのジョブ識別子］
［-j JP1/Advanced Shellのジョブ名］

出力条件を複数指定した場合は，すべての条件を満たすジョブのジョブ定義スクリプト稼働実績情報を出力します。

出力条件を指定しない場合，物理ホストまたは指定された論理ホストのすべてのジョブのジョブ定義スクリプト稼働実績情報を出力します。

出力条件としてジョブの属性（起動日時，ジョブ識別子，ジョブ名など）を指定した場合，ルートジョブの属性値で判定します。

すべての出力条件を満たすジョブに属するルートジョブ，すべての子孫ジョブのジョブ定義スクリプト稼働実績情報を出力します。ルートジョブまたは特定の子孫ジョブに限定してジョブ定義スクリプト稼働実績情報を出力することはできません。

ジョブ定義スクリプト稼働実績情報の出力内容

ジョブ定義スクリプト稼働実績情報は，標準の場合，1行目にはヘッダ情報，2行目以降に稼働実績情報やメッセージが出力されます。

adshevtoutコマンドの次に示す引数指定で出力情報を選択できます。

［-t］
［-d］
［-m］
［-z］

稼働実績情報の出力例は，「3.7.9　ジョブ定義スクリプトの稼働実績情報の出力内容」を参照してください。

次の引数を指定した場合，論理ホストで実行したジョブの稼働実績情報を出力します。

［-h 論理ホスト名］

この引数を指定しない場合，物理ホストで実行したジョブの稼働実績情報を出力します。

引数

-s ジョブの実行開始日時の下限

ジョブ定義スクリプト稼働実績情報を出力するジョブの条件として，ジョブの実行開始日時の下限を指定します。

日時の指定形式については，項目「ジョブの実行開始日時」を参照してください。

指定を省略した場合，出力するジョブの実行開始日時の下限は制限されません。

-e ジョブの実行開始日時の上限

ジョブ定義スクリプト稼働実績情報を出力するジョブの条件として，ジョブの実行開始日時の上限を指定します。

日時の指定形式については，項目「ジョブの実行開始日時」を参照してください。

指定を省略した場合，出力するジョブの実行開始日時の上限は制限されません。

-c JP1/AJSのスケジューラーサービス名

ジョブ定義スクリプト稼働実績情報を出力するジョブの条件として，JP1/AJSのスケジューラーサービス名を指定します。

次の2つが文字列として一致するジョブが出力できます。

この引数で指定したスケジューラーサービス名

ジョブを起動したJP1/AJSのスケジューラーサービス名（JP1/AJSがジョブを起動したときに設定した環境変数AJS_AJSCONFの値）

-r JP1/AJSのルートジョブネット名

ジョブ定義スクリプト稼働実績情報を出力するジョブの条件として，JP1/AJSのルートジョブネット名を指定します。

次の2つが文字列として一致するジョブが出力できます。

この引数で指定したルートジョブネット名

ジョブを起動したときのJP1/AJSのルートジョブネット名（JP1/AJSがジョブを起動するときに設定した環境変数AJSNETNAMEの値）

-k JP1/AJSのジョブ実行ID

ジョブ定義スクリプト稼働実績情報を出力するジョブの条件として，JP1/AJSのジョブ実行IDを指定します。

次の2つが文字列として一致するジョブが出力できます。

この引数で指定したジョブ実行ID

ジョブを起動したときのJP1/AJSのジョブ実行ID（JP1/AJSがジョブを起動したときに設定した環境変数AJSEXECIDの値）

-n JP1/AJSのジョブ番号

ジョブ定義スクリプト稼働実績情報を出力するジョブの条件として，JP1/AJSのジョブ番号を指定します。

次の2つが文字列として一致するジョブが出力できます。

この引数で指定したジョブ番号

ジョブを起動したときのJP1/AJSのジョブ番号（JP1/AJSがジョブを起動するときに設定する環境変数JP1JobIDの値）

例えば，ジョブ番号「0000012345」のジョブを指定する場合，「-n 0000012345」と指定する必要があります。「-n 12345」と指定すると，ジョブ番号は一致しないと判定します。

ジョブ番号の形式はプラットフォーム間で異なる場合があります。

ジョブ番号の詳細は，JP1/AJSのマニュアルを参照してください。

-g JP1/AJSのジョブ名

ジョブ定義スクリプト稼働実績情報を出力するジョブの条件として，JP1/AJSのジョブ名を指定します。

次の2つが文字列として一致するジョブが出力できます。

この引数で指定したジョブ名

ジョブを起動したときのJP1/AJSのジョブ名（JP1/AJSがジョブを起動するときに設定する環境変数AJSJOBNAMEの値）

-u JP1/Advanced Shellの実行ユーザー名

ジョブ定義スクリプト稼働実績情報を出力するジョブの条件として，ジョブを実行したadshexecコマンドを実行したプロセスの実行ユーザー名を指定します。

次の2つが文字列として一致するジョブが出力できます。

この引数で指定したユーザー名

ジョブを実行したadshexecコマンドのプロセスのユーザー名

-p ジョブ定義スクリプトファイルのパス名

ジョブ定義スクリプト稼働実績情報を出力するジョブの条件として，ジョブを実行するときにadshexecコマンドに指定したジョブ定義スクリプトファイルのパス名を指定します。

次の2つが文字列として一致するジョブが出力できます。

この引数で指定したパス名

adshexecコマンドに指定されたジョブ定義スクリプトファイルのパス名

同一のジョブ定義スクリプトファイルのパスとして解釈できるパス名であっても，文字列として一致しない場合，出力するジョブではないと判断します。

パス名が一致しないと判断する例を次に示します。

adshexecコマンドの実行時のカレントディレクトリが/home/user1である場合

adshexecコマンドに指定したパス名：./test1.ash

adshevtoutコマンドに指定したパス名：/home/user1/test1.ash

-i JP1/Advanced Shellのジョブ識別子

ジョブ定義スクリプト稼働実績情報を出力するジョブの条件として，JP1/Advanced Shellのジョブ識別子を指定します。

次の2つが文字列として一致するジョブが出力できます。

この引数で指定したジョブ識別子

ジョブのJP1/Advanced Shellのジョブ識別子（環境変数ADSH_JOBIDの値）

例えば，ジョブ識別子「000001」のジョブを指定する場合は，「-i 000001」と指定する必要があります。先頭の0は省略できません。

-j JP1/Advanced Shellのジョブ名

ジョブ定義スクリプト稼働実績情報を出力するジョブの条件として，ジョブのJP1/Advanced Shellのジョブ名を指定します。

次の2つが文字列として一致するジョブが出力できます。

この引数で指定したジョブ名

ジョブのJP1/Advanced Shellのジョブ名（環境変数ADSH_JOB_NAMEの値）

-t

ジョブ定義スクリプト稼働実績情報を出力する際，先頭にヘッダ情報を出力しないことを指定します。

-d

ジョブ定義スクリプト稼働実績情報を出力しないことを指定します。

ヘッダ情報だけを出力したい場合に使用します。

-m

ジョブ定義スクリプト稼働実績情報として，メッセージだけ出力することを指定します。

-z

環境変数の情報をジョブ定義スクリプト稼働実績情報へ出力しないことを指定します。

-h 論理ホスト名

ジョブ定義スクリプト稼働実績情報を出力するジョブを実行した論理ホスト名を指定します。

adshevtoutコマンドは，指定された論理ホストに対応するスプールにあるイベントファイルからジョブ定義スクリプト稼働実績情報を出力します。

Windowsの場合，196バイトを超える論理ホスト名は指定できません。また，論理ホスト名の長さは63バイト以下を推奨します。63バイトを超える名称を指定すると，動作しないことがあります。

この引数は実行環境を指定する引数です。ジョブ定義スクリプト稼働実績情報の出力するジョブの条件を指定する引数ではありません。

この引数に指定した論理ホスト名が環境ファイルに定義されていない場合，-hの指定を無視します。

終了コード

終了コード

意味

0

正常終了

1

コマンドラインの指定に誤りがあります。

2

環境変数の設定に誤りがあります。

3

環境変数LANGに設定している文字エンコーディングに対応していません。

4

処理をスキップしたイベントファイルがあります。

原因については，コマンドが出力したメッセージを確認してください。

5

スプールの参照で入出力エラーが発生し，参照できませんでした。

6

ほかのコマンドがアクセスしているため，スプールを参照できませんでした。

7

メッセージ出力処理でエラーが発生しました。

8

標準出力への出力処理でエラーが発生しました。

10

日時の取得でエラーが発生しました。

11

メモリ不足が発生しました。

12

内部処理矛盾を検出しました。

13

初期化処理でエラーが発生しました。

終了コードは基本的に，コマンド実行中に発生した事象に対する終了コードの中の最大値となります。ただし，終了コード4は，それ以外の事象が発生しなかった場合だけ出力されます。

同一引数の複数指定

同一の引数を複数回指定した場合，最後の指定を有効とします。

（例）

次の場合，-s 19900401が指定されていると解釈します。

adshevtout -s 20120411  -s 19900401

異なる引数の組み合わせ

出力情報を選択する引数が組み合わせて指定された場合，引数は次の表の優先順位に従って解釈されます。

引数の優先順位※

引数

機能

1

-d

稼働実績情報を出力しない

2

-m

メッセージだけを出力する

3

-z

環境変数の情報を出力しない

注※

数値が小さいほど優先順位が高くなります。

優先順位の高い引数が指定されている場合，優先順位の低い引数は無視されます。

指定されている引数の形式が正しくない場合は，引数の優先順位に関係なく，コマンドエラーとなります。

ジョブの実行開始日時

ジョブの実行開始日時の下限，上限の日時は次の3とおりの形式で指定できます。

YYYYに指定できる西暦年の範囲は1970〜2038です。

表8‒4　ジョブの実行開始日時の下限，上限の指定と解釈

日時の指定形式

指定の解釈

YYYYMMDD,hhmmss

年月日と時分秒を指定する形式です。

上限の場合，指定された時分秒＋1秒と解釈します。時分秒を「235959」と指定した場合，指定された年月日の翌日の00:00:00と解釈します。

YYYYMMDD

年月日だけを指定する形式です。

時分秒は次のように解釈します。

下限の場合

指定された年月日の00:00:00と解釈します。

上限の場合

指定された年月日の翌日の00:00:00と解釈します。

,hhmmss

時分秒だけを指定する形式です。

年月日はコマンドの実行日と解釈します。

上限の場合，指定された時分秒＋1秒と解釈します。時分秒を「235959」と指定した場合，コマンドの実行日の翌日の00:00:00と解釈します。

日時の解釈の例を次の表に示します。表の項番5〜7は，adshevtoutコマンドを2012年10月23日に実行した場合の例です。

項番

コマンドでの指定

コマンドによって解釈される日時

実行開始日時の下限の場合

実行開始日時の上限の場合

1

20120501,000000

2012年05月01日 00時00分00秒

2012年05月01日 00時00分01秒

2

20120501,100000

2012年05月01日 10時00分00秒

2012年05月01日 10時00分01秒

3

20120501,235959

2012年05月01日 23時59分59秒

2012年05月02日 00時00分00秒

4

20120501

2012年05月01日 00時00分00秒

2012年05月02日 00時00分00秒

5

,000000

2012年10月23日 00時00分00秒

2012年10月23日 00時00分01秒

6

,100000

2012年10月23日 10時00分00秒

2012年10月23日 10時00分01秒

7

,235959

2012年10月23日 23時59分59秒

2012年10月24日 00時00分00秒

コマンドに指定された日時は，コマンド実行時の環境変数TZに設定されたタイムゾーンに応じて解釈します。

コマンドで，文字列として同じ日時を指定しても，環境変数TZのタイムゾーンが異なると，コマンドが解釈した日時は異なります。注意してください。

指定できる日時は次のとおりです。

協定世界時（UTC）で表現した場合

1970年1月1日 00:00:00〜2038年1月19日 03:14:07

日本標準時（UTC+9）で表現した場合

1970年1月1日 09:00:00〜2038年1月19日 12:14:07

タイムゾーンが上記以外の場合，指定できる日時の範囲の表現は，使用しているタイムゾーンに応じて変わります。

また，各OSが提供する時刻関連の関数の実装の相違で，上記の範囲の日時であってもエラーとなる場合があります。次の場合はエラーとなります。

不当な日時が指定された場合

実行開始日時の下限が，実行開始日時の上限よりあとの場合

環境変数TZ

環境変数TZに設定されたタイムゾーンは，コマンド実行時に次に示す日時の解釈，日時の表現で参照します。

コマンドの引数に指定された日時の解釈

ジョブ定義スクリプト稼働実績情報内の日時の表現

タイムゾーンと日時の表現の関係は，「3.7.3　稼働実績情報の日時とタイムゾーンの関係」を参照してください。

環境変数TZは次に示すPOSIX形式で，符号に注意して指定してください。

（例）

export TZ=JST-9

環境変数TZは，次のようなTime Zone Database形式では設定しないでください。

（使用できない例）

export TZ=Asia/Tokyo
export TZ=Japan

環境変数TZに，サマータイムの情報を設定して，adshevtoutコマンドを実行しないでください。adshevtoutコマンドはサマータイムには対応していません。

環境変数TZの設定の詳細については，使用しているOSの仕様を参照してください。

ジョブの実行開始日時の下限

-sでジョブの実行開始日時の下限が指定された場合，ジョブ定義スクリプト稼働実績情報を出力するジョブは，次に示す条件が成立する必要があります。

ts≦tj

tj：ジョブの実行開始日時

ts：adshevtoutコマンドが解釈したジョブの実行開始日時の下限

ジョブの実行開始日時の上限

-eでジョブの実行開始日時の上限が指定された場合，ジョブ定義スクリプト稼働実績情報を出力するジョブは，次に示す条件が成立する必要があります。

tj＜te

tj：ジョブの実行開始日時

te：adshevtoutコマンドが解釈したジョブの実行開始日時の上限

出力できるジョブ定義スクリプト稼働実績情報

出力できるジョブ定義スクリプト稼働実績情報は，コマンドを実行したユーザーがアクセスできるイベントファイルに格納されているものです。コマンドを実行したユーザーがアクセスできない場合，メッセージを出力し，アクセスできないイベントファイルにあるジョブ定義スクリプト稼働実績情報を出力しません。

実行中のジョブ，adshexecコマンドがエラー終了したジョブのジョブ定義スクリプト稼働実績情報は出力しません。具体的には，スプールジョブのディレクトリ名が次の形式であるジョブのジョブ定義スクリプト稼働実績情報は出力しません。

「ジョブ識別子」

「ジョブ識別子-」

削除中のジョブのジョブ定義スクリプト稼働実績情報は出力しません。

スプールジョブのディレクトリの直下に次に示すスプールジョブ管理ファイルが存在しない場合，ジョブは削除中と判断します。

UNIXの場合：.sysout

Windowsの場合：sysout.ini

adshhkコマンドとの同時実行

adshevtoutコマンドとadshhkコマンド（スプールジョブの削除）は，スプールディレクトリを排他制御します。

同一のスプールディレクトリに対して，adshevtoutコマンドとadshhkコマンドは同時に実行できません。

同一のスプールディレクトリに対して，複数のadshevtoutコマンドは同時に実行できます。

スプールディレクトリが排他制御されているためにadshevtoutコマンドが実行できない場合，エラーメッセージを出力して処理を終了します。

注意事項

出力されるジョブ定義スクリプト稼働実績情報のサイズが大きい場合，コマンドの出力条件を日時単位などで分けて実行し，出力される稼働実績情報を分割してください。

使用例

JP1/Advanced Shellのジョブ識別子000100のジョブ定義スクリプト稼働実績情報をファイルout.csvに出力します。

adshevtout -i 000100  >  out.csv

adshexecコマンド（バッチジョブを実行する）

形式

通常実行する場合

adshexec［-v］［-c］［-m｛EXTENDED|SIMPLE|MINIMUM｝］
        ［-t［-f］［-o ascファイルのパス名］］［-h 論理ホスト名］
        ［-s｛SPOOL|PARENT｝］［-x］
        ｛-r コマンドライン|ジョブ定義スクリプトファイルのパス名｝
        ［実行時パラメーター］

デバッガモードで起動する場合【UNIX限定】

adshexec -d［-v］［-c］［-m｛EXTENDED|SIMPLE|MINIMUM｝］
        ［-t［-f］［-o ascファイルのパス名］］［-h 論理ホスト名］
        ［-x］ ジョブ定義スクリプトファイルのパス名

機能

ジョブコントローラを起動して，引数に指定したジョブ定義スクリプトファイルのバッチジョブを実行します。ジョブ定義スクリプトファイルに記述するコマンドを-rオプションに直接指定して実行することもできます。

このコマンドの引数は位置パラメーターよりも前に指定してください。

引数

-d【UNIX限定】

ジョブコントローラをデバッガモードで起動します。UNIX環境で使用できます。

デバッガモードではメモリ上にカバレージ情報を蓄積します。runコマンドを実行するごとに，継続蓄積になります。メモリ上に蓄積したカバレージ情報は，info coverageコマンドで表示できます。

-tオプションの指定がない場合，quitコマンドでデバッガを終了すると，メモリ上に蓄積したカバレージ情報を破棄します。

このオプションを指定した場合，ジョブ定義スクリプト稼働実績情報を採取しません。

-v

バージョン情報を表示します。バッチジョブは実行しません。

-c

ジョブ定義スクリプトファイルの文法チェックをします。実施するのは文法チェックだけで，バッチジョブは実行しません。

-m｛EXTENDED|SIMPLE|MINIMUM｝

起動するジョブの標準出力および標準出力エラーの出力方式を指定します。出力モードについては，「3.4.4　ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止する」を参照してください。

EXTENDED

拡張出力モードで動作します。

SIMPLE

簡潔出力モードで動作します。

MINIMUM

最小出力モードで動作します。

このオプションを省略した場合，OUTPUT_MODE_ROOTパラメーターとOUTPUT_MODE_CHILDパラメーターの指定に従います。

この指定はadshexecコマンドで起動するジョブだけに有効で，そのジョブからさらに起動されるジョブには継承されません。別途起動するジョブに対しては，その際実行されるadshexecコマンドに-mオプションを再度指定する必要があります。

ルートジョブが簡潔出力モードまたは最小出力モードで動作する場合，-sオプションを指定するか，OUTPUT_STDOUT環境設定パラメーターでSPOOLを指定しても，標準出力はスプールのファイルにリダイレクトしません。

-rオプションを使用する場合に，ジョブ実行ログが出力結果に混在しないようにするには，-m SIMPLEまたは-m MINIMUMを同時に指定してください。

-t

カバレージ情報を蓄積してバッチジョブを実行します。蓄積したカバレージ情報は，コマンド終了時にascファイルに出力します。

UNIXでデバッガモードで起動する場合，-tオプションを指定しないときは，メモリ上だけでカバレージ情報を採取します。カバレージ情報は，デバッガのinfo coverageコマンドで表示できます。quitコマンドでデバッガを終了すると，採取したカバレージ情報を破棄します。

-f

すでに採取しているカバレージ情報がある場合，実行するジョブ定義スクリプトファイルとバックアップ情報に差分があったときに，ascファイルを上書きするオプションを指定します。-fオプションを指定するには，-tオプションの指定が必要です。

-fオプションを指定した場合

バックアップ情報を破棄して，新規にカバレージ情報を採取します。

採取しているカバレージ情報がない場合，新規に採取したカバレージ情報をascファイルに出力します。

-fオプションを指定しない場合

ジョブ定義スクリプトファイルを実行しないで，コマンドエラーとなります。ascファイルは更新しません。

-o ascファイルのパス名

Windowsの場合　〜＜パス名＞((1〜229バイト))

UNIXの場合　〜＜パス名＞((1〜1,005バイト))

カバレージ情報の蓄積時に，ascファイルのパス名を任意に変更できます。-oオプションを指定するには，-tオプションの指定が必要です。

このオプションを省略すると，adshexecコマンドを実行したときのカレントディレクトリのascファイルを指定したと解釈されます。ascファイルのファイル名を次に示します。

拡張子を除いたジョブ定義スクリプト名＋_（アンダースコア）＋ユーザー名＋「.asc」

例えば，次の条件でadshexecコマンドを実行したとします。

adshexecコマンドを実行したときのカレントディレクトリ：/home/user1/test

ユーザー名：user1

ジョブ定義スクリプト名：script1.ash

このとき，-oオプションを指定しない場合のascファイル名は次のようになります。

/home/user1/test/script1_user1.asc

-h 論理ホスト名　〜＜論理ホスト名＞((1〜255バイト))

論理ホストで実行する場合の論理ホスト名を指定します。Windowsの場合，196バイトを超える論理ホスト名は指定できません。また，論理ホスト名の長さは63バイト以下を推奨します。63バイトを超える名称を指定すると，動作しないことがあります。

論理ホスト名の部分に空文字列を指定すると，JP1_HOSTNAME環境変数の設定値が使用されます。JP1_HOSTNAME環境変数が設定されていない場合は，KNAX0220-Eメッセージを出力して終了します。JP1_HOSTNAME環境変数については，マニュアル「JP1/Base 運用ガイド」を参照してください。

物理ホストで実行する場合は，このオプションを指定しないでください。

-s｛SPOOL|PARENT｝

ルートジョブの標準出力の出力先を指定します。子孫ジョブは，このオプションにPARENTが指定されたものとして動作します。

このオプションを省略した場合，ルートジョブはパラメーターOUTPUT_STDOUTの指定に従って動作します。ルートジョブが簡潔出力モードまたは最小出力モードで動作する場合は，このオプションの指定に関係なく，標準出力はスプールのファイルにリダイレクトしません。

SPOOL

ルートジョブの標準出力をスプール内のファイルに出力します。

PARENT

ルートジョブの標準出力を，プロセス起動時に親プロセスから継承した出力先に出力します。親プロセスで出力先をリダイレクトしていない場合は，親プロセスと同じ出力先に出力します。

-x

シェルオプションxtraceを有効にします。

なお，ジョブ定義スクリプト中で「set +x」や「set +o xtrace」を実行することで，シェルオプションxtraceを無効にできます。

-r コマンドライン

ジョブで実行する内容をコマンドラインに指定します。コマンドラインにはシェル標準コマンドやUNIX互換コマンドなど，ジョブ定義スクリプトファイルに記述できるコマンドを指定できます。コマンドラインは，ジョブ定義スクリプトの1行の長さが上限（8,191バイト）を超えない長さで指定してください。

-vオプションと同時に指定した場合，-vオプションが有効となります。

【UNIXの場合】

-c，-d，または-tオプションと同時には指定できません。同時に指定した場合はエラーとなります。

【WINDOWSの場合】

-cおよび-tオプションと同時には指定できません。同時に指定するとエラーとなります。

詳細については，「3.2.4　ジョブで実行する内容をコマンドラインに指定する」を参照してください。

ジョブ定義スクリプトファイルのパス名

Windowsの場合　〜＜パス名＞((1〜247バイト))

UNIXの場合　〜＜パス名＞((1〜1,023バイト))

ジョブ定義スクリプトファイルのパス名を指定します。

実行時パラメーター　〜＜任意文字列＞((1〜1,022バイト))

ジョブ定義スクリプトの位置パラメーターに格納する値を指定します。スペースを実行時パラメーターとして指定する場合は，その文字列を"（ダブルクォーテーション）で囲んでください。

終了コード

契機

終了コード

-cオプションがない場合

-cオプションがある場合

通常実行でexitコマンドまたは関数外のreturnコマンドを実行した

コマンドに指定した終了コード

−

通常実行でexecコマンドの引数に外部コマンドを指定して実行した

引数に指定した外部コマンドの終了コード

−

通常実行でジョブ定義スクリプトファイルの末尾までジョブ定義スクリプトを実行した

最後に実行した，シェル標準コマンドまたはスクリプト拡張コマンドの終了コード

−

デバッガモードでジョブコントローラにエラーがない

0

−

ジョブ定義スクリプトファイルに文法エラーがない

ジョブ定義スクリプトを実行し，次の終了コードになる

コマンドに指定した終了コード

最後に実行した，シェル標準コマンドまたはスクリプト拡張コマンドの終了コード

0

ジョブ定義スクリプトファイルに文法エラーがある

1，または環境変数ADSH_JOBRC_FATALに設定した値

1，または環境変数ADSH_JOBRC_FATALに設定した値

環境ファイル読み込みエラーなど，ジョブ定義スクリプト実行中のエラーを除くジョブコントローラのエラーが発生した

1，または環境変数ADSH_JOBRC_FATALに設定した値

1，または環境変数ADSH_JOBRC_FATALに設定した値

ジョブコントローラプロセスがシグナルを受信して終了した【UNIX限定】

128＋シグナル番号

128＋シグナル番号

ジョブコントローラプロセスが，JP1/AJSやWindowsのタスクマネージャーなど外部から強制終了された【Windows限定】

ジョブコントローラを強制終了したプログラムが指定した終了コード

ジョブコントローラを強制終了したプログラムが指定した終了コード

OSに起因する要因でジョブコントローラの起動が失敗した【Windows限定】

1〜3

1〜3

環境変数ADSH_JOBRC_FATALの解析エラーが発生した

255

255

（凡例）

−：ジョブ定義スクリプトを実行しないため該当しません。

注意事項

同じオプションを複数指定した場合，最後の指定が有効になります。

オプション指定が-vや-cと同時指定の場合，優先度が高い順に有効になります。優先順位は，-v，-c，その他のオプションの順になります。優先度が低いものは無視されます。

例

　-dオプションは無視され，-vだけが有効になります。

$ adshexec -v -d MyShell.ash

次の場合に，-oオプションを指定しないでカバレージ情報を蓄積したときは，ascファイルのファイル名が重複します。ascファイル名が重複しないようにジョブ定義スクリプトのファイル名またはascファイルのファイル名を変更してください。

拡張子だけ異なるファイル名の，複数のジョブ定義スクリプトのカバレージ情報を蓄積した場合

例：sc.1およびsc.2

別ディレクトリにある同じファイル名のジョブ定義スクリプトのカバレージ情報を蓄積した場合

例：/dir1/sc1および/dir2/sc1

ファイル名として.（ドット）から始まるファイル名を指定しないでください。

ファイル名に予約デバイス名（CONやAUX，NULなど）は使用しないでください。【Windows限定】

ファイル名にNTFSのストリームは使用しないでください。【Windows限定】

-dオプションを指定した場合，実行時パラメーターは指定できません。実行時パラメーターは，runコマンドの引数に指定してください。

ascファイルのアクセス権限は次のとおりに設定されます。

ファイルの所有者（作成者）には，umaskの指定に関係なく，r（読み込み）またはw（書き込み）のアクセス権限が与えられます。グループ，一般のアクセス権限は，コマンドが起動されたときのumaskの指定に従って設定されます。【UNIX限定】

ascファイルには，実行ユーザー自身に対して原則，フルコントロールのアクセス許可を与えられます。しかし，実際のファイルのアクセス許可は，Windowsのアクセス許可の継承（上位ディレクトリでのアクセス許可の継承）の影響を受けます。また，そのほかのユーザーに対するアクセス許可は，Windowsのアクセス許可の継承（上位ディレクトリでのアクセス許可の継承）に従います。【Windows限定】

子プロセスとして生成したadshexecコマンドにファイルディスクリプタが引き継がれないで，クローズされた状態になります。例えば，子プロセスのジョブ定義スクリプト内で，親プロセスがオープンしていたファイルディスクリプタに対して再度オープンしないで入出力を行おうとするとエラーになります。標準出力と標準エラー出力は再度オープンされた状態になります。【Windows限定】

使用例

文法チェックモードでジョブコントローラを起動します。

adshexec -c /home/user/shell/JOB.ash

デバッガモードでジョブコントローラを起動します。

adshexec -d /home/user/shell/JOB.ash

バッチジョブは実行しないで，ジョブコントローラのバージョン情報を表示します。

adshexec -v

ジョブ定義スクリプトの位置パラメーターに渡す実行時パラメーターを指定してジョブコントローラを起動します。

adshexec /home/user/shell/JOB.ash parm1 parm2

カバレージ情報を採取します。

adshexec -t /home/user/shell/JOB.ash

ジョブ定義スクリプトファイルの内容が異なる場合，これまでに採取したカバレージ情報を破棄し，新規にカバレージ情報を採取します。

adshexec -t -f /home/user/shell/JOB.ash

採取したカバレージ情報を格納するascファイルを/home/user/JOB.ascとします。

adshexec -t -o /home/user/JOB.asc /home/user/shell/JOB.ash

シェルオプションxtraceを有効にしてジョブコントローラを起動します。

adshexec -x /home/user/shell/JOB.ash

-rオプションのコマンドラインにジョブで実行するコマンドを指定してジョブコントローラを起動します。

adshexec -r "ls *"

-rオプションのコマンドラインで参照する位置パラメーターを実行時パラメーターに指定してジョブコントローラを起動します。

ジョブ定義スクリプトファイルに記述する場合の例を次に示します。コマンドラインに位置パラメーターを指定するため，シングルクォーテーションで囲む必要があります。

adshexec -r 'cat $1 | grep $2' file.txt abc

ファイルパスを扱うコマンドを-rオプションのコマンドラインに指定してジョブコントローラを起動します。

ジョブ定義スクリプトファイルに記述する場合の例を次に示します。

adshexec -r 'cat "C:¥¥Documents and Settings¥¥user001¥¥file.txt"'

adshfileコマンド（通常ファイルの割り当ておよび後処理を指定する）

形式

adshfile  ［-s｛step|job｝］ ［-n｛del|keep｝］ ［-a｛del|keep｝］
          ［-c｛exist|no｝］ ファイルパス名

機能

このシェル運用コマンドでは，通常ファイルの割り当て，通常ファイルの存在有無の確認および後処理を指定します。JP1/Advanced Shellのジョブコントローラで実行したジョブ定義スクリプト内に記述した場合に有効です。通常ファイルの割り当ては，64個まで指定できます。通常ファイルの割り当て，後処理，#-adsh_fileコマンドとの差異については，「5.9.1　通常ファイルの割り当ておよび後処理をする」を参照してください。

このコマンドで割り当てた通常ファイルは，#-adsh_fileコマンドで割り当てた通常ファイルとは別に管理され，後処理はadshfileコマンド，#-adsh_fileコマンドの順に実行されます。そのため，両方のコマンドで同じファイルを割り当てると，ファイルの後処理が二重に実行されることになり，エラーが発生する場合があるので注意してください。

このコマンドは次の点に注意して実行してください。

コマンドの非同期実行はしないでください。

UNIXではこのコマンドは別プロセスで実行しないでください。

スプールジョブ作成抑止機能を使用した場合，このコマンドは実行できません。

同じオプションを重複して指定した場合，最後の指定が有効になります。

引数

-s｛step|job｝

ファイルの後処理の契機を指定します。

step

ファイルの後処理をジョブステップ終了時に実行します。

job

ファイルの後処理をジョブ終了時に実行します。

コマンドの発行はこのオプションの指定に関係なく，ジョブとジョブステップ内のどちらでもできますが，登録したファイルの後処理は次のジョブステップの終了時またはジョブ終了時に実行されます。また，stepを指定してファイルを登録したあとに，ジョブステップ終了のタイミングがなかった場合は，後処理はジョブ終了時に実行されます。

子孫ジョブでこのオプションを指定した場合，その子孫ジョブ内でこれらの動作が実行されます。

-n｛del|keep｝

該当するジョブステップまたはジョブが正常終了した場合の後処理を指定します。

del

該当するジョブステップまたはジョブ終了後，割り当てた通常ファイルを削除します。

keep

該当するジョブステップまたはジョブ終了後，割り当てた通常ファイルを削除しません。

-a｛del|keep｝

該当するジョブステップまたはジョブがエラー終了した場合の後処理を指定します。

del

該当するジョブステップまたはジョブ終了後，割り当てた通常ファイルを削除します。

keep

該当するジョブステップまたはジョブ終了後，割り当てた通常ファイルを削除しません。

adshfileコマンドのファイル割り当て処理中にエラーとなった場合，次の動作となります。

該当するadshfileコマンドで指定した通常ファイルに対する後処理は実行されない

事前にadshfileコマンドで割り当てた通常ファイルに対しては，それぞれのadshfileコマンドの-aオプションに従った後処理が実行される

-c｛exist|no｝

ファイルパスの存在をチェックするかどうかを指定します。

exist

ファイルパスが存在するかチェックします。

ファイルパスが存在する場合だけ後処理を登録します。

ファイルパスが存在しない場合，コマンドはエラー終了します。

no

ファイルパスの存在はチェックしません。

ファイルパス

Windowsの場合　〜＜パス名＞((1〜247バイト))

UNIXの場合　〜＜パス名＞((1〜1,023バイト))

割り当てる通常ファイルのパスを指定します。

相対パスと絶対パスのどちらでも指定できますが，相対パスは絶対パスへ変換されたあとのファイルパス名が上限長を超えるとエラーになります。

終了コード

終了コード

意味

0

正常終了

99

エラー終了

注意事項

#-adsh_fileコマンドとは異なり，ジョブ実行ログに割り当て結果を示すメッセージは出力されません。adshfileコマンド実行後に，障害調査などの目的でadshfileコマンドの引数に指定したファイルパス名を確認する手順は次のとおりです。

環境ファイルのEVENT_COLLECTパラメーターにYESを設定し，稼働実績情報の取得を設定します。

ジョブ定義スクリプトでadshfileコマンドを実行します。

稼働実績情報が採取されます。

adshevtoutコマンドを実行し，稼働実績情報を出力します。

稼働実績情報の1列目の"EvtName"（稼働実績情報レコードの種類を示す）部分が"command"（コマンド情報を示す）の行を参照します。

なお，ジョブ定義スクリプトの稼働実績情報の採取は，実行環境の通常モードだけで実行できます。実行環境のデバッガモードおよび開発環境では採取できません。

adshhkコマンド（スプールジョブを削除する）

形式

adshhk 対象リストファイル名 レポートファイル名 ログファイル名［日数］

機能

対象リストファイル名に指定した対象リストファイルに従って，スプールジョブを削除します。実行結果はレポートファイル名に指定したファイルにcsv形式で出力します。また，エラーメッセージなど実行時に出力するメッセージは，ログファイル名に指定したファイルに出力します。

このコマンドはadshevtoutコマンドと，スプールディレクトリ単位で排他制御を実施します。adshhkコマンドがスプールディレクトリのロックを確保できない場合は，KNAX4425-Eメッセージを出力して，該当するスプールディレクトリの処理をスキップします。

引数

対象リストファイル名

削除対象を指定した対象リストファイルのファイル名を指定します。

対象リストファイルには，削除対象のスプールディレクトリのスプールルートディレクトリ名と日数を指定しておきます。指定した日数（adshhkコマンド実行日の前日を基点にしてカウントした日数）以前に実行したスプールジョブが，指定したスプールルートディレクトリから削除されます。

対象リストファイルはテキストファイル形式で，複数行記述できます。各行は先頭から記述し，1行には改行コードを含み，4,095バイト以内で記述してください。また，指定値は"（ダブルクォーテーション）で囲んでください。

対象リストファイルの形式を次に示します。

"スプールルートディレクトリ名"［,"日数"］

各項目の指定内容を次に示します。

スプールルートディレクトリ名　〜＜パス名＞((1〜128バイト))

スプールジョブを削除するスプールルートディレクトリ名を記述します。フルパスで記述することを推奨します。

日数　〜＜符号なし整数＞((1〜999))

指定した日数（adshhkコマンド実行日の前日を基点にしてカウントした日数）以前に実行したバッチジョブのスプールジョブディレクトリを削除します。省略した場合は，adshhkコマンドで指定した日数になります。両方に日数の指定がない場合は，その行の指定はエラーとなり，後続行の処理をします。

「""」と指定したときは，日数を省略したと解釈します。

レポートファイル名

実行結果を出力するファイル名を指定します。レポートファイルはcsv形式で出力します。指定したファイルが存在しない場合は新規に作成し，すでに存在する場合はそのファイルの内容を上書きします。

レポートファイルのアクセス権限は次のように設定されます。

Windowsの場合：出力先フォルダの設定に従います。

UNIXの場合：600

レポートファイルの出力例は，「3.9　スプールジョブを削除する」を参照してください。

ログファイル名

エラーメッセージなどを出力するファイル名を指定します。指定したファイルが存在しない場合は新規に作成し，すでに存在する場合はそのファイルの内容を上書きします。

ログファイルのアクセス権限は次のように設定されます。

Windowsの場合：出力先フォルダの設定に従います。

UNIXの場合：600

日数　〜＜符号なし整数＞((1〜999))

指定した日数（adshhkコマンド実行日の前日を基点にしてカウントした日数）以前に実行したバッチジョブのスプールジョブディレクトリを削除します。この引数は，対象リストファイル名に指定した日数よりも優先します。省略した場合は対象リストファイル名に指定した日数になります。

この引数の指定を省略した場合は，必ず対象リストファイルに日数を指定してください。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

2

スプールディレクトリがほかのプログラムで処理中のため削除に失敗

（ただし，ほかのエラーが発生していると2以外になる）

253

標準エラー出力でエラー発生

注意事項

コマンドを実行したユーザーに削除権限があるスプールジョブだけが削除の対象となります。削除権限がないスプールジョブは削除の失敗をレポートします。全ユーザーのスプールジョブを削除対象にしたい場合は，すべてのスプールジョブに削除権限があるユーザーで実行してください。

スプールジョブディレクトリの下に作成したファイルは，そのバッチジョブが作成したファイルかどうかに関係なく，削除権限があれば削除します。

スプールジョブディレクトリの下にサブディレクトリが作成されている場合，削除に失敗することがあります。

ジョブ実行開始の日付がわからない場合は削除しません（エラー扱いとします）。

スプールジョブディレクトリが「ジョブ識別子-ジョブ名」または「ジョブ識別子-」の形式のスプールジョブだけ削除します。ジョブ識別子の後ろに「-」が付いていないスプールジョブディレクトリは，バッチジョブが実行中である場合や，「3.11.1　ジョブの強制終了の方法」に示す方法以外の手段で不当に終了させられた場合などの状態を示しているため，実際の状態に関係なく削除しません。

削除処理中にエラーが発生した場合，そのスプールジョブの削除処理は途中まで進んでいる可能性があります。

レポートファイルに出力された結果はジョブ番号の順で出力されません。必要に応じてソートプログラムなどでソートしてください。

adshevtoutコマンド（ジョブ定義スクリプトの稼働実績情報の出力）で処理中のスプールディレクトリを指定した場合，スプールジョブは削除されません。

削除するスプールジョブはスプールジョブ管理ファイルから削除するため，削除処理中に処理を中断すると，adshhkコマンドを再実行しても削除されません。その場合，削除に失敗したスプールジョブは手作業で削除してください。

削除に失敗したスプールジョブを手作業で削除する場合には，削除したいスプールジョブディレクトリ，およびその下位に存在するすべてのファイルをrm -rコマンドなどで削除してください。なお，削除するときには，スプールジョブディレクトリやその下位のファイルの作成日付などを参考に，ジョブが終了していることを確認して削除してください。そのため，運用停止後に削除することを推奨します。

使用例

次のバッチジョブを削除します。

　/home/user001/jp1as/spoolディレクトリの7日以上前に実行したバッチジョブ

　/home/user999/jp1as/spoolディレクトリの30日以上前に実行したバッチジョブ

事前に対象リストファイル「/home/kanrisya/hk/target」に次の内容を記述します。

"/home/user001/jp1as/spool","7"
"/home/user999/jp1as/spool","30"

この場合，次のコマンドを実行します。レポートは/home/kanrisya/hk/result.csvファイルに保管します。

adshhk /home/kanrisya/hk/target  /home/kanrisya/hk/result.csv　/home/kanrisya/hk/result.log

作成されたレポートの例には，「3.9　スプールジョブを削除する」を参照してください。

adshjavaコマンド（Javaのバッチアプリケーションを実行する）【Windows，Linux，AIX，HP-UX限定】

形式

uCosminexus Application Serverのスケジューリング機能を使用する場合

adshjava ［-grp スケジュールグループ名］
           -java ［［Javaオプション］...］ Javaアプリケーションクラス名
           ［［mainメソッドに渡す引数］...］

uCosminexus Application Serverのスケジューリング機能を使用しない場合

adshjava -srv バッチサーバ名
         -java ［［Javaオプション］...］ Javaアプリケーションクラス名
           ［［mainメソッドに渡す引数］...］

機能

adshjavaコマンドの指定に従って，uCosminexus Application Serverと連携してJavaのバッチアプリケーションを実行します。このコマンドの指定内容は，uCosminexus Application Serverのcjexecjobコマンドの引数に指定されてcjexecjobコマンドが実行されます。ジョブの強制終了を検知したときには，adshjavaコマンドがcjkilljobコマンドを実行してJavaのバッチアプリケーションを自動的に停止します。

JP1/Advanced Shellのジョブが強制終了すると，Javaのバッチアプリケーションも強制終了されます。

強制終了時にJavaのバッチアプリケーションを自動的に強制停止できる条件を次に示します。

表8‒5　強制終了時にJavaのバッチアプリケーションを自動的に強制停止できる条件

強制停止できる条件（2回目以降を除く）

Windows

Linux，AIX，HP-UX

JP1/AJSからの強制終了

○

○

Ctrl+C

○

○

Ctrl+break

×

○

コンソールを閉じる

×

○

adshexecコマンドプロセスへの終了シグナル※1送信

−

○

adshjavaコマンドプロセスへのSIGTERM送信

−

○

adshjavaコマンドプロセスへのSIGINT送信

−

○

adshexecのデバッガのquitコマンドで中断

−※2

○

（凡例）

○：強制停止できます。

×：強制停止できません。

−：該当しない

注※1

終了シグナルとは，adshexecコマンドが終了対象とするシグナルのことです。終了対象とするシグナルについては，「3.11.2　シグナル受信時の動作【UNIX限定】」を参照してください。

注※2

Windowsではバックグラウンド実行ができないため，adshjavaコマンド実行中のquitコマンドによる中断はできません。

Javaのバッチアプリケーションの実行方法として，uCosminexus Application Serverのスケジューリング機能の使用有無を選択できます。

スケジューリング機能を使用しない場合

Javaのバッチアプリケーションは，指定したバッチサーバで実行されます。

スケジューリング機能を使用する場合

Javaのバッチアプリケーションは，Component Transaction Monitorによって振り分けられたバッチサーバで実行されます。この場合，JavaのバッチアプリケーションのジョブIDは次の形式で生成します。

ADSH時刻プロセスID

時刻

1970年1月1日午前0時からの経過秒数とナノ秒数を16進数で示した16文字の英数字。英字は大文字。

プロセスID

16進数で示した8桁のプロセスID（コマンドのプロセスID）。英字は大文字。

このコマンドを実行できるユーザーは次のとおりです。詳細については，マニュアル「Cosminexus V9 アプリケーションサーバ リファレンス コマンド編」のcjexecjobコマンドまたはcjkilljobコマンドの記述を参照してください。権限がない場合，cjexecjobコマンドまたはcjkilljobコマンドがエラー終了します。

Windowsの場合

Administrators権限または管理者特権を持つユーザー

Linux，AIX，HP-UXの場合

バッチサーバを起動したComponent Container管理者，またはスーパーユーザー

引数

-grp スケジュールグループ名

uCosminexus Application ServerのComponent Transaction Monitorが，Javaのバッチアプリケーションの実行をスケジューリングするときに割り当てるバッチサーバのグループ名を指定します。バッチサーバのグループ名は63バイト以内で指定します。

このオプションは，-javaオプションよりも前に指定してください。

スケジュールグループ名の長さはチェックされますが，それ以外のチェックはされないで，cjexecjobコマンド，cjkilljobコマンドの引数に指定されます。

-srv バッチサーバ名

Javaのバッチアプリケーションを実行する，uCosminexus Application Serverのバッチサーバ名を255バイト以内で指定します。

このオプションは，-javaオプションよりも前に指定してください。

バッチサーバ名の長さはチェックされますが，それ以外のチェックはされないで，cjexecjobコマンド，cjkilljobコマンドの引数に指定されます。

-java

このオプション以降の指定内容が，そのままuCosminexus Application Serverのcjexecjobコマンドに渡されます。

このオプション以降に指定した内容は，一つも指定がない場合を除いてadshjavaコマンドではエラーチェックされません。cjexecjobコマンドでのチェック処理に任せます。

Javaオプション

JavaVMの起動オプションを指定します。指定方法については，マニュアル「Cosminexus V9 アプリケーションサーバ リファレンス コマンド編」を参照してください。

#-adsh_fileコマンド，#-adsh_file_tempコマンド，または#-adsh_spoolfileコマンドで割り当てたファイルは，このオプションで「-Dシステムプロパティ名=${ファイル定義名}」を記述することで，システムプロパティ経由でファイル名をJavaのバッチアプリケーションに渡せます。

Javaアプリケーションクラス名

パッケージ名を含めたJavaアプリケーションのクラス名を指定します。Javaアプリケーションクラス名については，マニュアル「Cosminexus V9 アプリケーションサーバ リファレンス コマンド編」のcjexecjobコマンドの記述個所を参照してください。

mainメソッドに渡す引数

Javaアプリケーションのmainメソッドに渡す引数を指定します。mainメソッドに渡す引数については，マニュアル「Cosminexus V9 アプリケーションサーバ リファレンス コマンド編」のcjexecjobコマンドの記述個所を参照してください。

終了コード

終了コード

発生条件

意味

0※1

public static int main(String[])メソッドから返された値が0

public static int main(String[])メソッドを使用した場合に返されます。

System.exit()，Runtime.halt()，Runtime.exit()の引数に指定した値が0

System.exit()，Runtime.halt()，Runtime.exit()を使用した場合に返されます。

cjexecjobコマンドの戻り値が0

public static void main(String[])メソッドを使用して正常終了しました。

1※2

adshjavaコマンドの処理の要因で終了

adshjavaコマンドが強制終了しました。

2※2

adshjavaコマンドの処理の要因で終了

adshjavaコマンドの処理でエラーが発生しました。

強制終了処理でcjkilljobコマンドの起動に失敗すると1になることがあります。

public static int main(String[])メソッドからreturnした値+15※1※3

public static int main(String[])メソッドから返された値が1以上

public static int main(String[])メソッドを使用した場合に返されます。

System.exit()，Runtime.halt()，Runtime.exit()の引数に指定した値+15※1※3

System.exit()，Runtime.halt()，Runtime.exit()の引数に指定した値が1以上

System.exit()，Runtime.halt()，Runtime.exit()を使用した場合に返されます。

cjexecjobコマンドの戻り値＋15※1※3

cjexecjobコマンドの戻り値が1

Javaのバッチアプリケーションの実行に失敗しました。または，Javaのバッチアプリケーションを強制終了しました。

public static int main(String[])メソッドからreturnした値※1※4

public static int main(String[])メソッドから返された値が負数（Windows限定。UNIXは下8ビットがRCとして採用される）

public static int main(String[])メソッドを使用した場合に返されます。

System.exit()，Runtime.halt()，またはRuntime.exit()の引数に指定した値※1※4

System.exit()，Runtime.halt()，またはRuntime.exit()の引数に指定した値が負数（Windows限定。UNIXは下8ビットがRCとして採用される）

System.exit()，Runtime.halt()，またはRuntime.exit()を使用した場合に返されます。

17

cjexecjobコマンドの起動に失敗

cjexecjobコマンドの起動が失敗した場合に返されます。

注※1

uCosminexus Application Serverのcjexecjobコマンドの戻り値です。

注※2

adshjavaコマンドの終了コードです。

注※3

終了コードが255を超える場合は，255に変換されます。

注※4

戻り値が負の値の場合は，JP1/Advanced Shellによって255に変換されます。

注意事項

コマンドを実行する前に，スケジューリング機能の使用有無に応じたバッチサーバを起動しておく必要があります。

このコマンドはuCosminexus Application Serverのcjexecjobコマンド，cjkilljobコマンドを使用します。そのため，cjexecjobコマンド，cjkilljobコマンドが実行できる環境で実行する必要があります。

このコマンドをバックグラウンドで実行しても，adshexecコマンドはこのコマンドの終了を待って終了します。

cjexecjobコマンドおよびcjkilljobコマンドに渡す引数は，スケジュールグループ名とバッチサーバ名の長さだけをチェックして，そのままcjexecjobコマンドまたはcjkilljobコマンドに渡されます。そのため，不当な値を指定すると，cjexecjobコマンドまたはcjkilljobコマンドがエラーになります。

Windowsでは，ユーザーが事前にcjexecjobコマンドおよびcjkilljobコマンドのパスをPATH環境変数に設定しておく必要があります。

このコマンドは，adshexecコマンドのジョブ定義スクリプトから実行してください。adshexecコマンドのジョブ定義スクリプトから実行しないと，UNIXではジョブの強制終了時にJavaのバッチアプリケーションの停止処理ができません。また，Windowsでは実行できません。

-grpオプションと-srvオプションを同時に指定した場合，コマンドの解析エラーになります。

Javaのバッチアプリケーションはバッチサーバで非同期に実行します。このため，Javaのバッチアプリケーションの実行結果（標準出力，標準エラー出力）は，adshjavaコマンドの実行結果として参照できません。

Javaのバッチアプリケーションの作成時の注意事項については，マニュアル「Cosminexus V9 アプリケーションサーバ 機能解説 拡張編」を参照してください。

TRAP_ACTION_SIGTERMパラメーターでTERMを指定した場合，またはUNIX版でAUTOを指定してJP1/AJSからジョブを起動した場合は，trapコマンドによる動作定義にadshjavaコマンドを指定しないでください。

使用例

スケジューリング機能を使用する場合

#-adsh_file INPUT "/files/file01"
#-adsh_file_temp TMP001
#-adsh_spoolfile SYSLIST

adshjava -grp JOBGROUP -java -DINPUT=${INPUT} -DTMP001=${TMP001} -DSYSLIST=${SYSLIST} com.hitachi.mypackage.MyBatchApp

この例では，#-adsh_file，#-adsh_file_temp，および#-adsh_spoolfileで割り当てたファイル名をシステムプロパティでJavaのバッチアプリケーションに渡しています。#-adsh_file，#-adsh_file_temp，および#-adsh_spoolfileで割り当てるファイル名は，ファイル環境変数定義名に指定した環境変数に設定されます。

このadshjavaコマンドを実行すると，次のcjexecjobコマンドが実行されます。

cjexecjob JOBGROUP -jobID ジョブID -DINPUT=${INPUT} -DTMP001=${TMP001} -DSYSLIST=${SYSLIST} com.hitachi.mypackage.MyBatchApp

ジョブIDはadshjavaコマンドが生成したジョブIDです。

${環境変数名}はそれぞれファイル名を示します。

スケジューリング機能を使用しない場合

#-adsh_file INPUT "/files/file01"
#-adsh_file_temp TMP001
#-adsh_spoolfile SYSLIST

adshjava -srv MyBatchServer -java -DINPUT=${INPUT} -DTMP001=${TMP001} -DSYSLIST=${SYSLIST} com.hitachi.mypackage.MyBatchApp

#-adsh_file，#-adsh_file_temp，および#-adsh_spoolfileで割り当てたファイル名をシステムプロパティでJavaのバッチアプリケーションに渡しています。#-adsh_file，#-adsh_file_temp，および#-adsh_spoolfileで割り当てるファイル名は，ファイル環境変数定義名に指定した環境変数に設定されます。

このadshjavaコマンドを実行すると，次のcjexecjobコマンドが実行されます。

cjexecjob MyBatchServer -DINPUT=${INPUT} -DTMP001=${TMP001} -DSYSLIST=${SYSLIST} com.hitachi.mypackage.MyBatchApp

${環境変数名}はそれぞれファイル名を示します。

adshlsmsgコマンド（障害発生時に，応答要求メッセージの一覧を表示する）

形式

adshlsmsg ［-h 論理ホスト名］［-n 応答要求メッセージ番号］

機能

共有メモリ上にある応答待ち状態の応答要求メッセージ，および受信待ち状態の応答要求メッセージとそれに対する応答の一覧を表示します。

実行環境の場合，このコマンドは，JP1/Advanced Shellがインストールされているマシンの管理者権限を持つrootまたはAdministratorsが実行します。開発環境の場合，このコマンドは一般ユーザーでも実行できます。

引数

-h 論理ホスト名　〜＜論理ホスト名＞((1〜255バイト))

論理ホスト環境で運用している場合，このコマンドを実行する論理ホスト名を指定します。

Windowsの場合，196バイトを超える論理ホスト名は指定できません。また，論理ホスト名の長さは63バイト以下を推奨します。63バイトを超える名称を指定すると，動作しないことがあります。

-n 応答要求メッセージ番号　〜＜符号なし整数＞((1〜2147483647))

応答待ち状態の応答要求メッセージ，および受信待ち状態の応答要求メッセージとそれに対する応答を表示したい応答要求メッセージ番号を指定します。

-nだけ指定して応答要求メッセージ番号の指定を省略すると，その次に指定されたオプションが引数として扱われます。

指定を省略した場合は，共有メモリ上にある応答待ち状態の応答要求メッセージ，および受信待ち状態の応答要求メッセージとそれに対する応答がすべて表示されます。

-nオプションを複数指定した場合は，最後に指定した内容が有効になります。

出力項目

コマンド実行結果に出力されるヘッダと，各項目に出力される内容は次のとおりです。

MESSAGE-NO

10桁の10進数値の応答要求メッセージ番号です。このコマンドの-nオプション，またはadshchmsgコマンドの-nオプションで指定する値です。

STATUS

応答要求メッセージの状態として次の内容が出力されます。

Wait：応答待ち状態の応答要求メッセージ

Set：受信待ち状態の応答要求メッセージ

JOBID

adshreadコマンドを発行したジョブ定義スクリプトのジョブ識別子を示す，6桁の整数値です。

LINENO

adshreadコマンドを実行したジョブ定義スクリプトの行番号です。

DATE/TIME

応答要求メッセージを出力した時刻です（ローカルタイム）。

MESSAGE or RESPONSE

次の内容が出力されます。

msg=：応答要求メッセージ本体

res=：応答内容（受信待ち状態の場合だけ表示される）

終了コード

終了コード

意味

0

正常終了

0以外

エラー終了

使用例

応答待ち状態の応答要求メッセージ，および受信待ち状態の応答要求メッセージとその一覧を表示する場合の出力例を次に示します。

$ adshlsmsg
 MESSAGE-NO  STATUS JOBID      LINENO DATE/TIME         MESSAGE or RESPONSE
[0000017622] [Wait] 000228         20 12/05/24 18:28:00 msg=STOP
[0000017626] [Set ] 000229        136 12/05/24 18:28:10 msg=処理を続行しますか(Y/N)
[0000017626] [Set ] 000229        136 12/05/24 18:28:10 res=Y

adshmdctlコマンド（ユーザー応答機能管理デーモンを起動および停止する）【UNIX限定】

形式

adshmdctl ［-h 論理ホスト名］
          ｛start ［reuse］|stop|status|conftest ［環境ファイル名］|help｝

機能

ユーザー応答機能管理デーモンを起動または停止します。ユーザー応答機能管理デーモンは，ユーザー応答機能のための共有メモリを管理します。

ユーザー応答機能の応答要求メッセージの情報は共有メモリに格納され，通常はユーザー応答機能管理デーモン停止時に解放されます。ユーザー応答機能管理デーモンが障害によって共有メモリを解放しないまま終了した場合は，このコマンドを次の手順で実行して共有メモリを解放してください。

このコマンドにstart reuseオプションを指定して実行する

このコマンドにstopオプションを指定して実行し，ユーザー応答機能管理デーモンを停止する

引数

-h 論理ホスト名　〜＜論理ホスト名＞((1〜255バイト))

論理ホスト環境で運用している場合に，このコマンドを実行させる論理ホスト名を指定します。

論理ホスト名の長さは63バイト以下を推奨します。63バイトを超える名称を指定すると，動作しないことがあります。

論理ホスト名の指定を省略すると，その次に指定されたオプションが引数として扱われます。

start ［reuse］

ユーザー応答機能管理デーモンを起動します。

reuseを指定すると，ユーザー応答機能の応答要求メッセージの情報をそのまま使用します。

ユーザー応答機能の応答要求メッセージの情報は共有メモリに格納され，通常はユーザー応答機能管理デーモンの停止時に解放されます。ユーザー応答機能管理デーモンが何らかの障害で共有メモリを解放しないで終了した場合，reuseオプションを指定して起動したあと，adshmdctlコマンドにstopオプションを指定して終了することで，共有メモリを解放します。

stop

ユーザー応答機能管理デーモンを停止します。

未応答の応答要求メッセージがある場合，応答はキャンセルされます。

status

ユーザー応答機能管理デーモンの動作状態を次の終了コードで返します。

ユーザー応答機能管理デーモンが動作している場合：0

ユーザー応答機能管理デーモンが動作していない場合：1

conftest ［環境ファイル名］

指定した環境ファイルのパラメーターをチェックします。結果は標準出力に出力します。

環境ファイル名の指定を省略すると，システム環境ファイルが参照されます。

help

adshmdctlコマンドのヘルプを表示します。

終了コード

終了コード

意味

0

正常終了

0以外

エラー終了

注意事項

ユーザー応答機能管理デーモンは，rootで起動してください。

ユーザー応答機能管理デーモンの動作中は，システム環境ファイルを変更しないでください。

adshmdctlコマンドは，環境変数LANGにCを指定してユーザー応答機能管理デーモンを起動します。そのため，そのあと出力されるメッセージやJP1イベントは英語で出力されます。

adshmsvcdコマンド（開発環境でユーザー応答機能管理サービスを登録する）【Windows限定】

形式

adshmsvcd ［-install ［-lhostname 論理ホスト名］］

機能

ユーザー応答機能管理サービス（adshmsvcd）を登録します。ユーザー応答機能管理サービスは，ユーザー応答機能のための共有メモリを管理します。このコマンドは，Windowsの開発環境だけで実行できます。

引数

-install

ユーザー応答機能管理サービスを登録します。

ユーザー応答機能管理サービスは，JP1/Advanced Shellのセットアップ時に自動的に登録されます。ただし，登録したレジストリ情報を消去してしまった場合は，このオプションを使って手動で再登録する必要があります。

-lhostname 論理ホスト名　〜＜論理ホスト名＞((1〜196バイト))

論理ホスト環境で運用している場合に，このコマンドを実行する論理ホスト名を指定します。

論理ホスト名の長さは63バイト以下を推奨します。63バイトを超える名称を指定すると，動作しないことがあります。

終了コード

終了コード

意味

0

正常終了

0以外

エラー終了

注意事項

オプションを指定しなかったり，指定できるオプション以外を指定して実行したりした場合でも，コマンドはエラーにならないで終了します。この場合，レジストリ情報は更新されません。

adshmsvceコマンド（実行環境でユーザー応答機能管理サービスを登録する）【Windows限定】

形式

adshmsvce ［-install ［-lhostname 論理ホスト名］］

機能

ユーザー応答機能管理サービス（adshmsvce）を登録します。ユーザー応答機能管理サービスは，ユーザー応答機能のための共有メモリを管理します。このコマンドは，Windowsの実行環境だけで実行できます。

引数

-install

ユーザー応答機能管理サービスを登録します。

ユーザー応答機能管理サービスは，JP1/Advanced Shellをセットアップしたときに自動的に登録されます。ただし，登録したレジストリ情報を消去してしまった場合は，このオプションを使って手動で再登録する必要があります。

-lhostname 論理ホスト名　〜＜論理ホスト名＞((1〜196バイト))

論理ホスト環境で運用している場合に，このコマンドを実行する論理ホスト名を指定します。

論理ホスト名の長さは63バイト以下を推奨します。63バイトを超える名称を指定すると，動作しないことがあります。

終了コード

終了コード

意味

0

正常終了

0以外

エラー終了

注意事項

オプションを指定しなかったり，指定できるオプション以外を指定して実行したりした場合でも，コマンドはエラーにならないで終了します。この場合，レジストリ情報は更新されません。

8.4　UNIX互換コマンド

この節では各UNIX互換コマンドの指定方法を説明しています。全般的な注意事項を次に示します。

UNIX互換コマンドで使用できる正規表現

基本の正規表現および拡張された正規表現の2つを使用できます。基本の正規表現が使用できるコマンドを次に示します。

exprコマンド

grepコマンド（-Gオプションを指定した場合）

sedコマンド（-Eオプションを指定しない場合）

拡張された正規表現が使用できるコマンドを次に示します。

awkコマンド

egrepコマンド

grepコマンド（-Eオプションを指定した場合）

sedコマンド（-Eオプションを指定した場合）

また，正規表現にはメタキャラクタを使用できます。使用できるメタキャラクタを次の表に示します。

表8‒6　正規表現で使用できるメタキャラクタの違い

メタキャラクタ

意味

基本の正規表現

拡張された正規表現

*

0回以上の繰り返し

○

○

¥+

1回以上の繰り返し

○

×

+

1回以上の繰り返し

×

○

.

1文字

○

○

¥?

直前にある正規表現

○

×

?

直前にある正規表現

×

○

^

行頭

○

○

$

末尾

○

○

¥|

選択

○

×

|

選択

×

○

[char-list]

範囲指定

○

○

¥(regexp¥)

一まとめ

○

×

(regexp)

一まとめ

×

○

¥{n,m¥}

n回以上m回以下の繰り返し

○

×

{n,m}

n回以上m回以下の繰り返し

×

○

¥{n¥}

n回

○

×

{n}

n回

×

○

¥{n,¥}

n回以上

○

×

{n,}

n回以上

×

○

（凡例）

○：使用できます。

×：使用できません。

コマンドの使用例について

各UNIX互換コマンドの使用例は，一部を除いてWindowsで実行した場合の例を示しています。

コマンドがインストールされているディレクトリへのパスが，環境変数ADSH_OSCMD_DIRに格納されていると仮定しています。

awkコマンド（テキストの加工やパターン処理をする）

形式

awk［-F 入力フィールドセパレータ］［-v 変数名=変数値］...
   ［-f スクリプトファイルのパス名|スクリプト］
   ［［対象パス名...］|［組み込み変数名=変数値...］］...

機能

テキストファイル内の各行（以降，レコードと呼びます）に対して特定のパターンに一致する行を検索し，一致した行に対して指定した処理をします。

引数

-F 入力フィールドセパレータ

入力フィールドセパレータの値を指定します。この指定値がawkコマンドの組み込み変数FSの値となります。

-v 変数名=変数値

変数名とその値を指定します。変数名とその値は，-fオプションに指定したスクリプトファイルまたは引数に指定したスクリプトに渡されます。複数個指定できます。同じ変数名を複数回指定した場合，最後に指定した値が設定されます。

-f スクリプトファイルのパス名

入力ファイルを検索するパターンおよびパターンと一致したレコードに対しての処理命令を記述したファイル（スクリプトファイル）のパス名を指定します。

パス名に「-」を指定した場合は，標準入力から入力します。

-fオプションは19個まで指定できます。

スクリプト

入力ファイルを検索するパターンおよびパターンと一致したレコードに対しての処理命令を，引数として指定します。

対象パス名

処理対象とするファイルのパス名を指定します。複数指定できます。

パス名を指定しない，またはパス名に「-」を指定した場合は，標準入力から入力します。なお，BEGINパターンだけの実行の場合は，指定したファイルまたは標準入力からレコードは入力しません。

組み込み変数名=変数値

組み込み変数名およびその値を指定します。変数名とその値は，-fオプションに指定したスクリプトファイルまたは引数に指定したスクリプトに渡されます。

組み込み変数の説明に記述されていない名称を指定した場合は，-vオプションと同じになります。

すべての対象パス名の前に指定した場合は，BEGINパターン処理を除くすべてのファイル処理とENDパターン処理で有効となります。

すべての対象パス名のあとに指定した場合は，ENDパターン処理だけで有効となります。

対象パス名の間に指定した場合は，この指定以降のパス名の処理とENDパターン処理で有効となります。

スクリプト（パターンおよびアクション）

awkコマンドで実行するスクリプトの記述形式を次に示します。

［パターン］［{［アクション］}］

パターンには，入力ファイルを検索するパターンを記述します。パターンに記述できる内容については，「パターンの種類」を参照してください。アクションには，パターンと一致したレコードに対しての処理命令を記述します。

入力ファイルから1レコードを入力するたびにパターンと比較し，パターンに一致した場合にアクションが実行されます。パターンを省略した場合は，すべてのレコードがアクション実行の対象となります。

アクションは，パターンと一致したレコードに対する制御文や関数を使用した処理を記述します。アクションには，制御文，組み込み関数，ユーザー定義関数，変数，または演算子を指定して動作を記述できます。処理は複数の文を記述でき，各文は改行またはセミコロンで区切ります。アクションを省略した場合，レコードの内容を標準出力に出力します。なお，{ }で囲んだ部分のアクションだけを省略した場合は，パターンと一致したレコードに対する処理は行われません。

コメントを記述する場合は，コメントの前に「#」を記述します。「#」以降から行末までをコメントとして扱います。

レコードとフィールド

レコードとは，入力レコードセパレータで分割した単位のことです。入力レコードセパレータの値は改行文字です。Windowsの場合，［CR］+［LF］または［LF］が改行文字と見なされます。UNIXの場合，［LF］が改行文字と見なされます。なお，UNIXの場合，入力ファイルの各レコードが［CR］+［LF］で区切られているときは，分割されたレコードには［CR］が含まれます。

入力レコードセパレータは，組み込み変数RSにレコードの区切りを示す1バイトの文字を設定することによって変更できます。文字列を指定した場合は，先頭の1文字を設定します。

レコードはフィールドセパレータによって，フィールドと呼ばれる単位に分割されます。フィールドセパレータのデフォルト値はスペースです。フィールドセパレータは-fオプションまたは組み込み変数FSにフィールドの区切りを示す文字列を設定することで変更できます。

アクションには，入力情報として入力ファイルから現在読み込んでいるレコードの内容およびレコードの各フィールドの値が渡されます。レコードの内容はフィールド変数の$0に格納されます。各フィールドの値は，レコードの最初のフィールドがフィールド変数$1，2番目のフィールドがフィールド変数$2というように順に格納されます。

パターンの種類

入力ファイルを検索するパターンには次の指定ができます。

文字列

フィールドまたはレコードから検索したい文字列をスラッシュ(/)で囲みます。指定する文字列には正規表現を使用できます。スラッシュ(/)自体を検索したい場合は，エスケープ文字(¥)を使用します。「/¥//」と指定します。

検索したい文字列に「hitachi」を指定する場合の例を次に示します。

/hitachi/{
(アクション)
}

関係式

関係演算子（>，>=，<，<=，==，!=）を使用し，特定のフィールドに対して比較をします。指定例を次に示します。

レコードの2番目のフィールドの内容が「hitachi」の場合にアクションを実行します。

$2 == "hitachi"{
(アクション)
}

パターンの組み合わせ

複数のパターンを組み合わせてアクション実行条件を記述します。使用できる組み合わせを次の表に示します。

書式

説明

パターン1 && パターン2

論理積の演算子で，パターン1およびパターン2に一致するレコードをアクションの実行対象とします。

パターン1 || パターン2

論理和の演算子で，パターン1またはパターン2に一致するレコードをアクションの実行対象とします。

パターン1 ? パターン2 : パターン3

三項演算子で，パターン1とパターン2に一致するレコードまたはパターン3に一致するレコードをアクションの実行対象とします。

! パターン

否定の演算子で，パターンに一致しないレコードをアクションの実行対象とします。

(パターン)

複数条件のパターンをグループ化します。

パターン1, パターン2

パターン1に一致するレコードから，パターン2に一致するレコードまでがアクションの実行範囲となります。なお，パターン2に指定したレコードがなく入力ファイルの終端に達した場合は，入力ファイルの最終レコードまでが範囲となります。ただし，複数の入力ファイルを指定した場合，次の入力ファイルでパターン2に一致するレコードを検索します。この書式は50個まで指定できます。

BEGIN

ファイル入力の開始前に実行するアクションに対するパターンです。アクションの記述を省略できません。また，ほかのパターンと組み合わせることはできません。なお，複数の入力ファイルを指定している場合は，最初のファイル入力開始前にアクションが実行されます。

END

ファイルの最後のレコードに対するアクション実行後，またはexit制御文で終了した場合に実行するアクションに対するパターンです。アクションの記述を省略できません。また，ほかのパターンと組み合わせることはできません。なお，複数の入力ファイルを指定している場合は，最後のファイルの最後のレコードに対するアクション実行後となります。

制御文

使用できる制御文を次の表に示します。if文，while文，for文，do文，break文，continue文，return文の構文規則はC言語と同じです。ただし，for文の初期化式と再初期化式は1つの式だけ指定できます。

制御文

構文

内容

if文

if (条件式) 処理 [else 処理]

条件分岐します。

if (変数 in 配列) 処理[else 処理]

変数に指定した添え字の配列要素が配列に存在するかどうかを判定します。

while文

while (条件式) 処理

条件が成立している間，繰り返します。

for文

for (初期化式; 継続条件式; 再初期化式) 処理

繰り返し実行します。

for (変数 in 配列) 処理

各配列要素の添え字の値を順次取り出しながら処理します。添え字の値の取り出しは順不同です。

do文

do 処理 while (継続条件式)

後判定によって条件が成立している間，繰り返します。

break文

break

繰り返し処理を抜けます。

continue文

continue

繰り返し処理を中断して，繰り返し処理の先頭に戻ります。

next文

next

処理中の入力レコードに対して，この制御文以降の処理を停止し，次の入力レコードの処理を開始します。

nextfile文

nextfile

処理中の入力ファイルに対して，この制御文以降の処理を停止し，次の入力ファイルの処理を開始します。

return文

return [expr]

ユーザー定義関数を終了します。式exprで指定した値を呼び出し元に返します。式exprを指定しない場合は，0がユーザー定義関数の戻り値となります。

delete文

delete 配列

配列を削除します。

delete 配列[要素]

配列の要素を削除します。

exit文

exit [expr]

処理中のスクリプトの実行を停止します。

式exprで指定した値をコマンドの終了コードとして返します。式exprを指定しない場合は，0がコマンドの終了コードとなります。式exprで指定した値は符号付きの4バイトの数値として扱います。

Windowsの場合，式exprで指定した値がコマンドの終了コードとなります。UNIXの場合，式exprで指定した値が0〜255の範囲外のときは，値の下位8ビットがコマンドの終了コードとなります。JP1/Advanced Shellのジョブ定義スクリプトから実行する場合は，0〜255の範囲の値を指定してください。

WindowsでJP1/Advanced Shellのジョブ定義スクリプトから実行する場合，式exprで指定した値が0〜255の範囲外のときは，コマンドの呼び出し元に返す終了コードは式exprで指定した値とは異なります。JP1/Advanced Shellでのコマンドの終了コードの扱いについては「5.8.8　ジョブ，ジョブステップおよびコマンドの終了コード」を参照してください。

組み込み関数

使用できる組み込み関数を次に示します。

数学関数

使用できる数学関数を次の表に示します。

関数名

内容

atan2(y,x)

y/xの逆正接を返します。単位はラジアンです。引数が不足している場合は1を返し，警告メッセージを出力します。

cos(x)

xの余弦を返します。単位はラジアンです。

exp(x)

xの指数関数を返します。結果がオーバーフローまたはアンダーフローする場合は1を返し，警告メッセージを出力します。

int(x)

xの小数点以下を切り捨てて整数を返します。

log(x)

xの自然対数を返します。xが0または負の場合は1を返し，警告メッセージを出力します。

rand()

乱数nを返します（0≦n＜1の範囲）。srand関数でシード値を設定しない場合は，コマンドを実行するたびに同じ値を返します。

sin(x)

xの正弦を返します。単位はラジアンです。

sqrt(x)

xの平方根を返します。xが負の場合は1を返し，警告メッセージを出力します。

srand([expr])

式exprをrand関数用のシード値を設定して，設定したシード値を返します。exprを省略した場合は，時刻を基にしたシード値を設定します。

文字列関数

使用できる文字列関数を次の表に示します。マルチバイト文字は1文字として扱います。

関数名

内容

gsub(r, t[, s])

文字列s中のすべての正規表現rをtに置き換えます。sを省略した場合，$0（レコード全体が格納されているフィールド変数）を置き換え対象とします。tに&を指定した場合は，&が一致した文字列に置き換えられます。終了コードとして，置き換えた回数を返します。

index(s,t)

文字列s中の文字列tの位置を返します。文字列tがなかった場合は0を返します。

length[([s])]

文字列sの文字数を返します。sを指定しなかった場合は，$0（レコード全体が格納されているフィールド変数）の文字数を返します。

match(s, r)

文字列s中の正規表現rが現れる位置を返します。正規表現rがなかった場合には0を返します。また，RSTART組み込み変数には正規表現rに一致した文字列の位置が設定されます。不一致時は0になります。RLENGTH組み込み変数には正規表現rに一致した文字列の長さが設定されます。不一致時は-1になります。

sprintf(書式, 式[, ... ])

書式に従って，式を整形した結果の文字列を返します。書式については出力書式の説明を参照してください。

split(s, array[, fs])

文字列sをフィールドセパレータfsによってフィールド分割し，配列arrayに格納します。戻り値として配列の要素数を返します。分割した各フィールドの値は，配列arrayに，array[1]，array[2]，…，array[戻り値]の順に格納されます。

フィールドセパレータfsの指定を省略した場合は，フィールドセパレータとして組み込み変数FSの値が使用されます。

フィールドセパレータfsには文字列および正規表現を指定できます。また，フィールドセパレータfsに文字指定なしを示す「""」を指定した場合は，1文字ずつ分割されます。

sub(r, t[, s])

文字列s中に最初にあった正規表現rをtに置き換えます。sを省略した場合，$0（レコード全体が格納されているフィールド変数）を置き換え対象とします。tに&を指定した場合は，&が一致した文字列に置き換えられます。正規表現rがあった場合は終了コードとして1を返します。正規表現rがなかった場合は0を返します。

substr(s, m[, n])

文字列sのm番目の文字から最大n文字の部分文字列を返します。nを省略した場合は，m番目以降のすべての文字列を返します。

tolower(str)

文字列str中のすべての英大文字を英小文字に変換した文字列を返します。

toupper(str)

文字列str中のすべての英小文字を英大文字に変換した文字列を返します。

ビット操作関数

使用できる操作関数を次の表に示します。xおよびyは符号付きの4バイトの数値として扱います。

関数名

内容

compl(x)

整数xの1の補数を返します。

and(x, y)

整数xと整数yのビットごとの論理積を返します。

or(x, y)

整数xと整数yのビットごとの論理和を返します。

xor(x, y)

整数xと整数yのビットごとの排他的論理和を返します。

lshift(x, n)

整数xをビット数n分，左にシフトした値を返します。ビットのシフトは算術シフトで行われるため，符号部分もシフト対象となります。

rshift(x, n)

整数xをビット数n分，右にシフトした値を返します。ビットのシフトは算術シフトで行われるため，符号部分は右にシフトした時に補てんする符号として扱われます。

入出力関数

使用できる入出力関数を次に示します。

getline [変数名]

現在の入力ファイルから次のレコードを入力します。変数名が指定されている場合は変数名で指定した変数にレコードを入力し，組み込み変数のNRおよびFNRが設定されます。変数名の指定を省略した場合は，フィールド変数$0にレコードを入力し，組み込み変数のNF，NRおよびFNRが設定されます。レコードの入力に成功すると1を返し，ファイルの終端に到達すると0を返し，エラーが発生すると-1を返します。

getline [変数名] < パス名

パス名に指定したファイルから次のレコードを入力します。パス名は"（ダブルクォーテーション）で囲んで指定します。パス名の代わりにパス名を代入した変数の名称も指定できます。パス名に「-」を指定した場合は標準入力から入力します。

指定例を次に示します。

getline line < "file001.txt"

変数名が指定されている場合は変数名で指定した変数にレコードを入力します。変数名の指定を省略した場合は，フィールド変数$0にレコードを入力し，組み込み変数のNFが設定されます。

指定したファイルは，getline関数で最初にレコードを受け取るときにオープンし，awkコマンドが終了するまでオープンしたままとなります。このため，同じファイルに対して再度先頭レコードから入力を開始したい場合は，close関数を実行する必要があります。

コマンド名 | getline [変数名]

コマンド名で指定したプログラムがパイプに出力したレコードを，getline関数を使用して入力します。コマンド名は，実行するプログラムの名称とその引数の値を"（ダブルクォーテーション）で囲んで，コマンドライン形式で記述します。コマンド名の代わりにコマンド名を代入した変数の名称も指定できます。

変数名が指定されている場合は，変数名で指定した変数にレコードを入力します。変数名の指定を省略した場合は，フィールド変数$0にレコードを入力し，組み込み変数のNFが設定されます。指定例を次に示します。

コマンドがパイプに出力した内容から1レコード分を入力し，フィールド変数$0に代入します。

"cat -n file01.txt" | getline

コマンド名を変数に代入し，変数名とgetline関数を接続して実行します。

rtxt = "cat -n file01.txt"
rtxt | getline

指定したプログラムの出力を受け取るためのパイプ作成とプログラム実行は，「コマンド名 | getline [変数名]」実行時に行われます。同じコマンド名を複数回実行する場合，パイプ作成とプログラム実行が行われるのは最初に指定したコマンド名の実行のときだけです。作成されたパイプはawkコマンドが終了するまで存在します。このため，コマンド名で指定したプログラムを再実行したい場合は，close関数を実行する必要があります。次に例を示します。

"cat -n file01.txt" | getline rec        →1.
"cat -n file01.txt" | getline rec        →2.
close("cat -n file01.txt")               →3.
"cat -n file01.txt" | getline rec        →4.

パイプの作成およびcatコマンドの実行が行われ，catコマンドがパイプに出力した1番目のレコードの内容が変数recに格納されます。

catコマンドがパイプに出力した2番目のレコードの内容が変数recに格納されます。

パイプが閉じられます。

パイプの作成およびcatコマンドの実行が行われ，catコマンドがパイプに出力した1番目のレコードの内容が変数recに格納されます。なお，コマンド名の記述内容がprint関数およびprintf関数で指定するコマンド名の記述内容と同じでも別のコマンド名の記述と見なされます。

print [式[, ... ]]

式を標準出力に出力します。式を省略した場合は，現在の入力レコードを標準出力に出力します。式をコンマ（,）で区切って複数指定した場合，各式は組み込み変数OFSの値で区切られます。出力レコードの終端には組み込み変数ORSの値が出力されます。

print [式[, ... ]] > パス名

式をパス名で指定したファイルに出力します。パス名は"（ダブルクォーテーション）で囲んで指定します。パス名の代わりにパス名を代入した変数の名称も指定できます。式を省略した場合は，現在の入力レコードをパス名で指定したファイルに出力します。式をコンマ（,）で区切って複数指定した場合，各式は組み込み変数OFSの値で区切られます。出力レコードの終端には組み込み変数ORSの値が出力されます。既存ファイルに追加書きで出力する場合は「>>パス名」で指定します。

指定したファイルは，print関数で最初に出力するときにオープンし，awkコマンドが終了するまでオープンしたままとなります。このため，同じファイルに対して，ファイルの先頭から出力したい場合はclose関数を実行する必要があります。

print [式[, ... ]] | コマンド名

式をパイプに出力し，コマンド名で指定したプログラムに渡します。

コマンド名は，実行するプログラムの名称とその引数の値を"（ダブルクォーテーション）で囲んで，コマンドライン形式で記述します。コマンド名の代わりにコマンド名を代入した変数の名称も指定できます。

式を省略した場合は，現在の入力レコードをパイプに出力します。式をコンマ（,）で区切って複数指定した場合，各式は組み込み変数OFSの値で区切られます。出力レコードの終端には組み込み変数ORSの値が出力されます。

指定したプログラムへ出力結果を渡すためのパイプ作成とプログラム実行は，「print [式[, ... ]] | コマンド名」実行時に行われます。同じコマンド名を複数回実行する場合，パイプ作成とプログラム実行が行われるのは最初に指定したコマンド名の実行のときだけです。作成されたパイプはawkコマンドが終了するまで存在します。このため，コマンド名で指定したプログラムを再実行したい場合は，close関数を実行する必要があります。コマンド名の記述内容がgetline関数で指定するコマンド名の記述内容と同じでも別のコマンド名の記述と見なされます。

printf 書式[,式[, ... ]]

書式に従って標準出力に出力します。書式については出力書式の説明を参照してください。その他の内容は「print [式[, ... ]]」を参照してください。

Windowsの場合，改行文字を表す「¥n」を指定したとき，出力先には［CR］+［LF］で出力されます。

printf 書式[,式[, ... ]] >パス名

書式に従ってファイルに出力します。書式については出力書式の説明を参照してください。その他の内容は「print [式[, ... ]] >パス名」を参照してください。

printf 書式[,式[, ... ]] | コマンド名

書式に従ってパイプに出力します。書式については出力書式の説明を参照してください。その他の内容は「print [式[, ... ]] | コマンド名」を参照してください。コマンド名の内容がprint関数に指定したコマンド名と同じ場合は，同じプログラムの実行に対して出力します。

close(パス名|コマンド名)

getline関数，print関数，printf関数で使用したファイルまたはgetline関数，print関数，printf関数でコマンド名実行時に作成されたパイプをクローズします。

クローズに成功した場合は0を返します。失敗した場合は，ファイルのときはOSのclose関数の戻り値，パイプのときはOSのpclose関数の戻り値を返します。

引数にはgetline関数，print関数，printf関数で指定したパス名またはコマンド名を指定します。パス名は"（ダブルクォーテーション）で囲んで指定します。コマンド名は，実行するプログラムの名称とその引数の値を"（ダブルクォーテーション）で囲んで，コマンドライン形式で記述します。また，getline関数，print関数，printf関数で指定したパス名やコマンド名が格納されている変数も指定できます。なお，close関数に記述するパス名やコマンド名は，getline関数，print関数，printf関数に記述したパス名やコマンド名の文字列と文字数も含めて同じにしてください。パス名やコマンド名の文字列が異なる場合，別のパス名または別のコマンド名と見なされます。1つのclose関数に指定したコマンド名がgetline関数，print関数またはprintf関数で指定したコマンド名と同じ場合は，getline関数で作成されたパイプとprint関数またはprintf関数で作成されたパイプの両方がクローズされます。指定例を次に示します。

print "hitachi"  | "cat -n"
close("cat -n")

fflush([パス名|コマンド名])

getline関数，print関数，printf関数で使用したファイルまたはgetline関数，print関数，printf関数でプログラム実行時に作成されたパイプをフラッシュします。フラッシュに成功した場合は0を返します。失敗した場合は，OSのfflush関数の戻り値を返します。

引数にはgetline関数，print関数，printf関数で指定したパス名またはコマンド名を指定します。パス名は"（ダブルクォーテーション）で囲んで指定します。コマンド名は，実行するプログラムの名称とその引数の値を"（ダブルクォーテーション）で囲んで，コマンドライン形式で記述します。また，getline関数，print関数，printf関数で指定したパス名やコマンド名が格納されている変数も指定できます。なお，fflush関数に記述するパス名やコマンド名は，getline関数，print関数，printf関数に記述したパス名やコマンド名の文字列と文字数も含めて同じにしてください。パス名やコマンド名の文字列が異なる場合，別のパス名または別のコマンド名と見なされます。

引数の指定を省略した場合は，すべてのファイルとパイプをフラッシュします。

汎用関数

使用できる汎用関数を次の表に示します。

関数名

内容

system(コマンド名)

コマンド名に指定したプログラムを実行し，実行したプログラムのステータスを返します。

コマンド名は，実行するプログラムの名称とその引数の値を"（ダブルクォーテーション）で囲んで，コマンドライン形式で記述します。コマンド名の代わりにコマンド名を代入した変数の名称も指定できます。

UNIXの場合，実行したプログラムのステータスは，プログラムが返す終了コードの下位8ビットの値となります。

ユーザー定義関数

組み込み関数以外に独自の関数を定義できます。構文を次に示します。

function|func name（［param［,…］］) ｛ statements ｝

関数名nameに使用できる文字は，英数字および_（アンダースコア）だけです。また，先頭文字は数字以外でなければなりません。

関数の引数paramにはユーザー定義の変数または配列の名称を指定できます。関数へ渡す引数は，ユーザー定義の変数は値渡しで，配列は参照渡しで行われます。

関数定義で指定した引数の数と，関数呼び出し時に指定した引数の数が異なっていても解析エラーにはなりません。ただし，関数呼び出し時に指定した引数の数が関数定義で指定した引数の数よりも多い場合は，警告メッセージが出力されます。関数の定義で指定した引数は，ローカル変数としますが，関数呼び出し時に指定した引数の数が関数定義で指定した引数の数よりも多い場合は，関数呼び出し時の余分な引数はグローバル変数と見なされます。

関数の定義で指定できる引数の数は50個までです。また，関数呼び出し時に指定できる引数の数も50個までです。なお，引数の数が50個以内かどうかは，関数の呼び出し時にチェックされます。

変数

スクリプトで使用する変数にはユーザー定義変数，フィールド変数，組み込み変数および配列があります。ユーザー定義変数と配列はスクリプト内で最初に使用したときに生成されます。なお，初期化されていない（演算や代入などの式で使用されていない）変数の初期値は，数値としては0，文字列値としてはNULLが格納されます。

変数の値の型は，変数が使用されるごとに，使用方法に合わせて数値または文字列に変化します。ただし，文字列が数字以外の場合は0の数値とします。例えば，次に示す2つのprint関数の出力結果は両方とも7が出力されます。

x = "3" + "4"
y = 3 + 4
print x
print y

変数ごとに説明します。

ユーザー定義変数

変数名に使用できる文字は，英数字と_（アンダースコア）だけです。先頭文字は数字以外でなければなりません。

配列

配列名は，変数名のあとに[ ]（角括弧）で添え字を囲んで表します。添え字には数字だけでなく"（ダブルクォーテーション）で囲まれた文字列も使用できます。また，添え字をコンマで区切って複数記述し，多次元配列を表せます。

awkコマンドの多次元配列は，各次元の添え字の値を組み込み変数SUBSEPの値で連結し，1つの文字列の添え字として扱います。多次元配列は内部的には一次元配列として処理されます。例えば，組み込み変数SUBSEPの値を「#」に変更したあとに配列を作成した場合，2つのprint関数は同じ値を出力します。指定例を次に示します。print関数の出力結果は両方とも「日立」になります。

SUBSEP = "#"
arry["あ", "か", "さ"] = "日立"
print arry["あ", "か", "さ"]
print arry["あ#か#さ"]

フィールド変数

入力レコードの内容を参照するために，次のフィールド変数があります。

変数名

内容

$0

入力ファイルから現在読み込んでいるレコードの内容を設定します。

$1,$2,...

現在読み込んでいるレコードの内容を順に設定します。

組み込み変数FSの値によって分割された各フィールド値が，レコードの最初のフィールドに$1変数，2番目のフィールドに$2変数というように設定されます。

$変数名

変数にフィールド番号を設定することで，$0や$1など直接フィールド番号を記述した場合と同じようにフィールドを参照できます。※

関数や制御文で使用する場合，使用する前に変数にフィールド番号を設定する必要があります。

$(式)

フィールド番号を求める式（変数名+1など）を式に指定することで，$0や$1など直接フィールド番号を記述した場合と同じようにフィールドを参照できます。

注※

次の場合，「print $a」および「print $1」は同じ内容が出力されます。

a = 1
print $a
print $1

組み込み変数

次の組み込み変数があります。

変数名

内容

ARGC

コマンドライン引数の個数です。オプション値およびスクリプト指定値は含みません。スクリプトおよび-vオプションで変更できます。-vオプションでARGCに0を設定した場合，引数に対象パス名が指定されていない状態になります。

ARGV

コマンドライン引数の配列です。スクリプトで変更できます。引数に指定した対象パス名が格納されている要素にNULLを設定すると，入力ファイルからレコードの入力が行われません。-vオプションで指定した値は上書きされます。

CONVFMT※

数値を変換するときに使用する変換書式です。デフォルトは%.6gです。数値に小数部分がある場合に有効となります。

ENVIRON

実行時の環境変数の配列です。添え字は環境変数名です。環境変数名は"（ダブルクォーテーション）で囲んで指定します。環境変数名の代わりに環境変数名を代入した変数の名称も指定できます。

FILENAME

現在の入力ファイル名です。標準入力からの入力の場合はファイル名に「-」が設定されます。

FNR

現在の入力ファイルの入力レコード数です。対象パス名で指定したファイルから1レコードを入力するたびに更新されます。また，「getline [変数名]」でレコードを入力するときにも更新されます。

複数の対象パス名を指定した場合，次の入力ファイルから入力を開始するときに0で初期化されます。

FS

フィールドセパレータです。デフォルトは1バイトのスペースです。正規表現を使用できます。フィールドセパレータを変更する場合，指定する文字列の長さは99バイト以下にしてください。また，フィールドセパレータ値が1バイトのスペースの場合は，1バイトのスペースとタブ(¥t)によってフィールド分割されます。フィールドセパレータに値を設定しない場合は，1文字ずつフィールド分割されます。

複数の文字を指定する場合は，正規表現となるため，¥はエスケープ文字として扱われます。-Fオプションと同時に使用した場合は，この変数の値が優先されます。

NF

現在の入力レコードのフィールド数です。対象パス名で指定したファイルからレコードを入力すると格納されます。また，getline関数でフィールド変数$0にレコードを入力したときにも格納されます。

$NFと記述すると，現在の入力レコードの最終フィールドの値を参照できます。

NR

現在までに読み込んだ入力レコード数です。対象パス名で指定したファイルから1レコードを入力するたびに更新されます。また，「getline [変数名]」で次のレコードを入力するときにも更新されます。

複数の対象パス名を指定した場合は，レコードの入力が終了したファイルのレコード数も含まれます。

OFMT※

数値の出力書式です。デフォルトは%.6gです。数値に小数部分がある場合に有効となります。

OFS

出力フィールドセパレータです。デフォルトは1バイトのスペースです。

ORS

出力レコードセパレータです。デフォルトは改行文字（¥n）です。Windowsの場合，改行文字（¥n）は［CR］+［LF］で出力されます。

RLENGTH

match関数で一致した文字列の長さです。一致しなかった場合は-1が設定されます。

RS

入力レコードセパレータです。デフォルトは改行文字です。値を変更する場合，1バイトの文字だけ設定できます。文字列やマルチバイト文字を指定した場合は，先頭1バイトを使用します。改行文字（¥n）を設定した場合，Windowsは，入力ファイル中の［CR］+［LF］または［LF］が対象となります。UNIXは，入力ファイル中の［LF］が対象となります。改行文字以外の値を設定した場合，Windowsは，入力レコードに含まれる改行文字は［LF］です。UNIXは，入力ファイル中の改行文字が［CR］+［LF］の場合は［CR］も含まれます。

RSTART

match関数で一致した文字列の開始位置です。一致しなかった場合は0が設定されます。

SUBSEP

多次元配列のセパレータです。デフォルトは0x1Cです。

注※

指定できる変換指定子は，f，e，g，E，Gだけです。それ以外の変換指定子を指定しないでください。

演算子

使用できる演算子を優先順位の低い順に次の表に示します。式の中で同じ優先順位の演算子は，式の左側に記述された演算子の優先順位が高くなります。

演算子

説明

=，+=，-=，*=，/=，%=，^=，**=

代入演算子です。

?:

三項演算子です。

||

論理ORです。

&&

論理ANDです。

~，!~

正規表現の一致(~)と不一致(!~)です。

<，<=，>，>=，!=，==

関係演算子です。

スペース

文字列連結です。

+，-

加算および減算です。

*，/，%

乗算，除算および剰余です。

+，-，!

単項および論理否定です。

^，**

累乗です。

++，--

インクリメントおよびデクリメントです。

出力書式

printf関数およびsprintf関数で，変換指定を示す%と共に指定する変換指定子を次の表に示します。

文字

説明

c

1バイト文字です。

s

文字列です。

d

符号付き10進整数です。

i

o

符号なし8進整数です。

x

符号なし16進整数です。10〜15の値には「abcdef」を使用します。

X

符号なし16進整数です。10〜15の値には「ABCDEF」を使用します。

u

符号なし10進整数です。

f

浮動小数点数です。[-]dddd.dddd形式に変換します。

e

浮動小数点数です。[-]d.dddde[+-]dd[d]形式に変換します。

g

変換指定子eまたはfで出力される符号付きの値のうち，指定された値および精度を表現できる短い方の書式です。末尾の0は出力されません。

E

浮動小数点数です。[-]d.ddddE[+-]dd[d]形式に変換します。

G

変換指定子Eまたはfで出力される符号付きの値のうち，指定された値および精度を表現できる短い方の書式です。末尾の0は出力されません。

%

%の文字です。

エスケープ文字

次の個所にはエスケープ文字を使用できます。

-Fオプションの入力フィールドセパレータ

-vオプションの変数値

引数で指定する組み込み変数の変数値

パターンおよび変数への代入などで指定する"（ダブルクォーテーション）で囲まれた文字列

使用できるエスケープ文字を次の表に示します。

エスケープ文字

意味

¥a

アラート文字（ベル）

¥b

バックスペース文字

¥f

フォームフィード文字（改ページ）

¥n

改行文字

¥r

復帰文字

¥t

タブ文字

¥v

垂直タブ文字

¥d,¥dd,¥ddd

1〜3桁の8進数で表された文字※1。0を意味する数値は指定できません。

¥xhex

16進値で表された文字（0〜9，a〜f，A〜F）※1※2。0を意味する数値は指定できません。

¥c

任意のリテラル文字（「¥"」の場合「"」）

¥¥

1つのバックスラッシュ文字

注※1

スラッシュ（/）で囲んだパターンおよび正規表現に指定する場合，実行時の文字コード種別によっては指定できない値があります。

文字コード種別ごとに指定できる値を次の表に16進数値で示します。なお，次の値以外を指定した場合はエラー終了します。

文字コード種別

指定できる値（16進数値）

シフトJIS

0x01-0x80，0xA0-0xDF，0xFD-0xFF

UTF-8

0x01-0xBF，0xFE-0xFF

EUC

0x01-0x8D，0x90-0xA0，0xFF

C

0x01-0xFF

注※2

ダブルクォーテーション（"）で囲んだ文字列に¥xhexを指定する場合，「¥x」から16進表記外の文字が出てくる前までの文字を16進表記文字とします。16進表記文字が98文字を超える場合は98文字までとなります。ただし，16進表記文字が2文字を超える場合は，16進表記文字から16進値の変換結果は保証されません。

なお，-vオプションの変数値や，引数で指定する組み込み変数の変数値に指定した¥は，エスケープ文字として扱われます（シングルクォーテーションで囲んでいるケースを除く）。そのため，パス名を指定するときは注意が必要です。例を次に示します。

（例1）正しいパス名（d:¥a¥b¥c）をawkコマンドのスクリプトに渡せない例

この例では，¥がエスケープ文字として処理されて¥が削除された結果，VAR001にはc:¥a¥b¥cが設定されます。

その後，awkコマンドの変数に設定される際には再び¥がエスケープ文字として処理され，最終的にVAR001にはc:abcが設定されます。

CCC01="c:¥¥a¥¥b¥¥c"
awk -v VAR001="${CCC01}"  -f prog01.awk

同様に次の2つの例も正しいパス名を渡せません。

awk -v VAR001=c:¥¥a¥¥b¥¥c  -f prog01.awk
awk -v VAR001='c:¥a¥b¥c'  -f prog01.awk

（例2）正しいパス名（d:¥a¥b¥c）をawkコマンドのスクリプトに渡せる例

この例では，CCC01，CCC02の両方ともc:¥¥a¥¥b¥¥cが格納されます。

その後，awkコマンドのVAR001へ格納される際にはc:¥a¥b¥cとなり，正しく処理できます。

CCC01='c:¥¥a¥¥b¥¥c'
CCC02="c:¥¥¥¥a¥¥¥¥b¥¥¥¥c"
awk -v VAR001="${CCC01}"  -f prog01.awk
awk -v VAR001="${CCC02}"  -f prog01.awk

同様に次の2つの例も正しいパス名を渡せます。

awk -v VAR001=c:¥¥¥¥a¥¥¥¥b¥¥¥¥c  -f prog01.awk
awk -v VAR001='c:¥¥a¥¥b¥¥c'  -f prog01.awk

特殊ファイル名

getline関数で標準入力から入力したり，print関数およびprintf関数で標準出力，または標準エラー出力へ出力したりしたい場合に，それらの入力先および出力先を表す特殊ファイル名が使用できます。使用できる特殊ファイル名を次に示します。なお，特殊ファイル名をclose関数に指定しても無視されます。

特殊ファイル名

意味

/dev/stdin

標準入力

/dev/stdout

標準出力

/dev/stderr

標準エラー出力

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

exit文で指定した値

制御文のexit文で指定したコマンドの終了コード

注意事項

awkコマンドは，数値を内部的に倍精度浮動小数点数（8バイト）として扱います。また，printf関数およびsprintf関数の出力書式に，変換指定子d，i，o，x，X，uを指定して出力および変換する場合は，4バイトの符号付き整数で丸めます。このため，4バイトの符号付き整数の範囲外の数値に，変換指定子d，i，o，x，X，uを指定して出力または変換をした場合に誤差が発生します。この誤差はOSに依存します。

getline関数，print関数およびprintf関数で，同時にオープンできるファイルの最大数は256個です。同時にオープンできるファイルには，コマンド指定によって生成されるパイプも含みます。なお，UNIXの場合，OS全体で同時にオープンできるファイルの最大値に達している，またはulimitでそのプロセスのファイルディスクリプタ数の最大値が制限されているなどのOSの設定値によっては，256個より少なくなります。

バイナリファイルからの入力およびバイナリデータの出力は，動作を保証しません。

system関数などによる外部プログラムの実行は，次のプログラムの引数として実行されます。このため，最大パス名長などの外部プログラム実行に関する仕様はそのプログラムの仕様に依存します。

Windowsの場合

環境変数COMSPECで指定したコマンドプロセッサの引数として実行されます。デフォルト値はcmd.exeです。なお，使用されるコマンドプロセッサは環境変数のCOMSPECとPATHによって決まります。

UNIXの場合

シェルの引数として実行されます。OSの仕様によって，起動されるプログラムは異なる可能性があります。

Windowsの場合，getline関数，print関数またはprintf関数で指定したコマンドからの入出力開始時に，デスクトップヒープ不足によって指定したコマンド実行でアプリケーションエラーとなる場合があります。このため，コマンド入出力が不要になったとき，close関数でクローズするまたはデスクトップヒープ指定値を見直してください。

Windowsの場合，system関数で実行するコマンドの引数にワイルドカードを含むファイル名やディレクトリ名を指定しても，ワイルドカードは展開されません。

Windowsの場合，getline関数，print関数，printf関数でパイプによって接続するコマンドの引数にワイルドカードを含むファイル名やディレクトリ名を指定しても，ワイルドカードは展開されません。

Windowsの場合，system関数のように外部プログラムを指定するところに，関連づけられているファイルのパス名を指定した場合，関連づけられているプログラムが起動します。バッチジョブで実行するときには注意が必要です。

Windowsの場合，入出力関数および汎用関数でパス名を指定するときは，次の指定をする必要があります。

ディレクトリ区切り文字に「¥」を使用する場合は，「¥¥」で指定する必要があります。

system関数のように外部プログラムを指定するところにスペースを含むパス名を指定する場合は，パス全体を「¥"」で囲む必要があります。

-Fオプションの入力フィールドセパレータ，-vオプションの変数値，引数で指定する組み込み変数の変数値に指定した「¥」は，エスケープ文字を表す記号として扱われます。

Windowsの場合，system関数などで生成したプロセスにファイルディスクリプタが引き継がれないで，クローズされた状態になります。例えば，親プロセスがオープンしていたファイルディスクリプタに対して再度オープンしないで入出力を行おうとするとエラーになります。ただし，標準入力，標準出力および標準エラー出力は再度オープンされた状態になります。

Windowsの場合，system関数に指定したコマンド名にパスが含まれていないときは，コマンドプロンプトなどのコマンドプロセッサのパス検索順序で見つかったコマンドが実行されます。

exit文でコマンドの終了コードを返す場合，exit文に指定した値によっては，コマンドの呼び出し元に返す終了コードとexit文に指定した値が異なるときがあります。exit文で指定するコマンドの終了コードの詳細については，exit文の説明を参照してください。なお，awkコマンドではexit文で指定した値を4バイトの符号付き整数で丸めます。このため，4バイトの符号付き整数の範囲外の数値を指定した場合は誤差が発生します。この誤差はOSに依存します。

使用例

コマンドの引数に，レコードの検索するパターンおよびパターンに一致したレコード内の英小文字を英大文字に変換するアクションを指定します。入力ファイルはfile01.txtです。

file01.txtの内容

hitachi group01 Tokyo
HITACHI group02 Yokohama
hitachi group03 Fukuoka
HITACHI group04 Hokkaido

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk "/hitachi/{print toupper($0)}" file01.txt
HITACHI GROUP01 TOKYO
HITACHI GROUP03 FUKUOKA

2番目のフィールドが正規表現のパターンに一致するレコードを出力します。入力ファイルはfile01a.txtです。

file01a.txtの内容

hitachi group01 Tokyo
hitachi group02 Yokohama
hitachi grp0000 Fukuoka
hitachi group04 Hokkaido

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk "$2 ~ /group/" file01a.txt
hitachi group01 Tokyo
hitachi group02 Yokohama
hitachi group04 Hokkaido

-Fオプションに入力フィールドセパレータとして#を指定して，3番目のフィールドの内容を出力します。入力ファイルはfile02.txtです。

file02.txtの内容

hitachi#group01#Nagoya
HITACHI#group02#Hiroshima
hitachi#group03#Ooita

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -F"#" "{print $3}" file02.txt
Nagoya
Hiroshima
Ooita

コマンドの引数にアクションに渡す変数padstrとその値を指定します。スクリプトファイルはprog01.awkです。入力ファイルはfile03.txtです。

prog01.awkの内容

# program name : prog01
{
count++
print padstr " " $0※
}
END{
    print "total record : " count
}

注※

-vオプションで指定した変数の値，スペース，入力レコードの内容を出力します。

file03.txtの内容

group01 Tokyo
group02 Yokohama
group03 Fukuoka

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -v padstr="hitachi" -f prog01.awk file03.txt
hitachi group01 Tokyo
hitachi group02 Yokohama
hitachi group03 Fukuoka
total record : 3

コマンドの引数に入力ファイルfile02.txtに対する組み込み変数FSの値として#を指定します。入力ファイルはfile01.txtおよびfile02.txtです。

file01.txtの内容

hitachi group01 Tokyo
HITACHI group02 Yokohama
hitachi group03 Fukuoka
HITACHI group04 Hokkaido

file02.txtの内容

hitachi#group01#Nagoya
HITACHI#group02#Hiroshima
hitachi#group03#Ooita

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk "{print $3}" file01.txt FS="#" file02.txt
Tokyo
Yokohama
Fukuoka
Hokkaido
Nagoya
Hiroshima
Ooita

group03を含むレコードからgroup06を含むレコードまでをファイルfile06.txtに出力します。スクリプトファイルはprog02.awkです。入力ファイルはfile04.txtおよびfile05.txtです。

prog02.awkの内容

BEGIN{
    print "Extract record : group03 - group06" > "file06.txt"
}
/group03/,/group06/{ ※
    count++;
    print >> "file06.txt";

}
END{
    printf "total record : %03d¥n", count >> "file06.txt"
}

注※

group03に一致するレコードからgroup06に一致するレコードを処理対象とします。

file04.txtの内容

hitachi group01 Tokyo
HITACHI group02 Yokohama
hitachi group03 Fukuoka
HITACHI group04 Hokkaido

file05.txtの内容

hitachi group05 Nagoya
HITACHI group06 Hiroshima
hitachi group07 Ooita

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog02.awk file04.txt file05.txt
C:¥TEMP>%ADSH_OSCMD_DIR%¥cat file06.txt
Extract record : group03 - group06
hitachi group03 Fukuoka
HITACHI group04 Hokkaido
hitachi group05 Nagoya
HITACHI group06 Hiroshima
total record : 004

ファイルfile04.txtの先頭レコードからgroup02を含むレコードまでを出力します。また，ファイルfile05.txtのすべてのレコードを出力します。スクリプトファイルはprog03.awkです。入力ファイルは直前のfile04.txtおよびfile05.txtです。

prog03.awkの内容

{
    count++; print
    if ($2 == "group02") {
        nextfile※
    }
}
END{
    printf("total record : %03d¥n", count)
}

注※

2番目のフィールドの内容がgroup02の場合，次の入力ファイルの処理を開始します。

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog03.awk file04.txt file05.txt
hitachi group01 Tokyo
HITACHI group02 Yokohama
hitachi group05 Nagoya
HITACHI group06 Hiroshima
hitachi group07 Ooita
total record : 005

レコードの2番目のフィールドがgroup02の場合，awkコマンドの実行を停止します。また，コマンドの終了コードとして，停止するまでに読み込んだレコード数を返します。スクリプトファイルはprog04.awkです。入力ファイルはfile04.txtおよびfile07.txtです。

prog04.awkの内容

{
    print
if ($2 == "group02") {
        exit(NR)※
    }
}
END{
    printf("total record : %03d¥n", NR)
}

注※

現在までに読み込んだレコード数が格納されている組み込み変数NRの値を終了コードとして，コマンドを終了します。

file04.txtの内容

hitachi group01 Tokyo
HITACHI group02 Yokohama
hitachi group03 Fukuoka
HITACHI group04 Hokkaido

file07.txtの内容

hitachi group05 Nagoya
HITACHI group06 Hiroshima
hitachi group07 Ooita
hitachi group03 Okinawa

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog04.awk file04.txt file07.txt
hitachi group01 Tokyo
HITACHI group02 Yokohama
total record : 002

レコード中に最初に出てくる特定の文字列を，sub関数を使用して変更します。スクリプトファイルは，prog05.awkです。入力ファイルはfile08.txtです。

prog05.awkの内容

{
    if (sub(/日立/, "&製作所")※) {
        print
    } else {
           print "未変換レコード : " $0
    }
}

注※

レコード中の「日立」を「日立製作所」に置き換えます。

file08.txtの内容

日立 横浜支店 日立グループ
日立 東京支店 日立グループ
田中 沖縄支店 田中グループ
日立 福岡支店 日立グループ

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog05.awk file08.txt
日立製作所 横浜支店 日立グループ
日立製作所 東京支店 日立グループ
未変換レコード : 田中 沖縄支店 田中グループ
日立製作所 福岡支店 日立グループ

レコード中の特定の文字列をgsub関数を使用してすべて変更します。スクリプトファイルは，prog06.awkです。入力ファイルはfile09.txtです。

prog06.awkの内容

{
    if (gsub(/日立/, "&製作所") ※) {
        print
    } else {
           print "未変換レコード : " $0
    }
}

注※

レコード中のすべての「日立」を「日立製作所」に置き換えます。

file09.txtの内容

日立 横浜支店 日立グループ
日立 東京支店 日立グループ
田中 沖縄支店 田中グループ
日立 福岡支店 日立グループ

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog06.awk file09.txt
日立製作所 横浜支店 日立製作所グループ
日立製作所 東京支店 日立製作所グループ
未変換レコード : 田中 沖縄支店 田中グループ
日立製作所 福岡支店 日立製作所グループ

特定の文字列の位置をindex関数によって求めます。スクリプトファイルは，prog07.awkです。

prog07.awkの内容

BEGIN{
    str = "日立:hitachi"
    print "Column = " index(str, "hitachi")
}

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog07.awk
Column = 4

文字列の長さをlength関数によって求めます。スクリプトファイルは，prog08.awkです。

prog08.awkの内容

BEGIN{
    str = "日立:hitachi"
    print "Length = " length(str)
}

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog08.awk
Length = 10

特定の文字列の位置と文字列の長さをmatch関数によって求めます。スクリプトファイルは，prog09.awkです。

prog09.awkの内容

BEGIN{
    str = "hitachi:日立製作所"
    print "Column  = " match(str, /製.所/)
    print "RSTART  = " RSTART
    print "RLENGTH = " RLENGTH
}

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog09.awk
Column  = 11
RSTART  = 11
RLENGTH = 3

文字列を特定の文字で分割し配列に格納します。スクリプトファイルは，prog10.awkです。

prog10.awkの内容

BEGIN{
    str = "日立#横浜支店#日立グループ"
    num = split(str, arry,"#")
    for (i = 1; i <= num; i++ ) {
        print arry[i]
    }
}

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog10.awk
日立
横浜支店
日立グループ

特定の位置にある部分文字列を求めます。スクリプトファイルは，prog11.awkです。

prog11.awkの内容

BEGIN{
    str = "hitachi:日立製作所"
    rtnstr = substr(str, 11, 2)
    print "SUBSTR = " rtnstr
}

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog11.awk
SUBSTR = 製作

引数指定のファイル以外からレコードを入力します。スクリプトファイルはprog12.awkです。入力ファイルはfile10.txtです。

prog12.awkの内容

BEGIN{
    while ((getline rec < "file10.txt"※) > 0) {
        print rec
    }
}

注※

指定したファイルfile10.txtからレコードを入力し，レコードの内容を変数recに格納します。

file10.txtの内容

hitachi group01 Tokyo
HITACHI group02 Yokohama
hitachi group03 Fukuoka
HITACHI group04 Hokkaido

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog12.awk
hitachi group01 Tokyo
HITACHI group02 Yokohama
hitachi group03 Fukuoka
HITACHI group04 Hokkaido

print関数の出力内容をコマンドにパイプ経由で渡します。スクリプトファイルはprog13.awkです。入力ファイルはfile11.txtです。

prog13.awkの内容

BEGIN{
    cmd = "sort "
}
{
    if (sub(/group01/, $2)) {
        count++
        print | cmd※1
    }
}
END{
    close(cmd)※2
    print "total record : " count
}

注※1

変数cmdに指定したsortコマンドにレコードの内容を渡します。

注※2

close関数を実行することでパイプが閉じられsortコマンドの実行が終了します。

file11.txtの内容

hitachi group01 003 tokyo
hitachi group02 001 yokohama
hitachi group03 001 fukuoka
hitachi group01 004 hokkaido
hitachi group01 001 nagoya
hitachi group02 001 hiroshima
hitachi group01 002 ooita

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog13.awk file11.txt
hitachi group01 001 nagoya
hitachi group01 002 ooita
hitachi group01 003 tokyo
hitachi group01 004 hokkaido
total record : 4

配列の要素を削除します。スクリプトファイルはprog14.awkです。

prog14.awkの内容

BEGIN{
    arry["福岡"]   = "福岡"
    arry["北海道"]   = "札幌"
    arry["神奈川"] = "横浜"
    arry["島根"]   = "松江"
    for (key in arry) {
        printf("  %*s : %s¥n", 6, key,  arry[key])
    }
    print "Deletes result of the array element"
    delete arry["神奈川"]
    for (key in arry) {
        printf("  %*s : %s¥n", 6, key,  arry[key])
    }
}

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog14.awk
    福岡 : 福岡
  北海道 : 札幌
  神奈川 : 横浜
    島根 : 松江
Deletes result of the array element
    福岡 : 福岡
  北海道 : 札幌
    島根 : 松江

プログラム開始時にディレクトリを作成し，作成したディレクトリ内のファイルにレコードの内容を出力します。スクリプトファイルはprog15.awkです。入力ファイルはfile12.txtです。

prog15.awkの内容

BEGIN{
    if ((rc = system("mkdir dir001")※1)) {
        printf("system func error rc = %x¥n", rc) > "/dev/stderr"※2
        exit(1)
    }
}
{
    print >> "dir001¥¥outfile.txt"
}

注※1

system関数によってmkdirコマンドを実行してディレクトリを作成します。

注※2

system関数の戻り値を標準エラー出力に出力します。

file12.txtの内容

hitachi group01 Tokyo
HITACHI group02 Yokohama
hitachi group03 Fukuoka
HITACHI group04 Hokkaido

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog15.awk file12.txt
C:¥TEMP>%ADSH_OSCMD_DIR%¥cat dir001¥¥outfile.txt
hitachi group01 Tokyo
HITACHI group02 Yokohama
hitachi group03 Fukuoka
HITACHI group04 Hokkaido

ユーザー定義関数を呼び出し，ユーザー定義関数の処理結果を出力します。スクリプトファイルはprog16.awkです。

prog16.awkの内容

BEGIN{
a = 3
b = 4
result = func01(a, b, c)
print "func01 = " result
}
function func01(x,y){
x *= x
y *= y
return x + y
}

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -f prog16.awk
awk: warning: function func01 called with 3 args, uses only 2※
 source line number 4
func01 = 25

注※

ユーザー定義関数呼び出し時の引数の個数が，関数の定義で記述した引数の個数よりも多いため，警告メッセージが出力されます。

制御文の記述で構文エラーがある場合のメッセージを表示します。スクリプトファイルは，prog17.awkです。

prog17.awkの内容

BEGIN{
    while ((getline rec < "file10.txt") > 0)) {※
        print rec
    }
}

注※

while文の「(」と「)」の数が不一致となっています。

コマンドの実行結果を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥awk -f prog17.awk
awk: extra ) at source line 2 source file prog17.awk
 context is
            while ((getline rec < "file10.txt") > >>>  0)) <<<
awk: syntax error at source line 2 source file prog17.awk
awk: illegal statement at source line 2 source file prog17.awk
        extra )

組み込み関数の記述で書式が不正な場合のメッセージを表示します。スクリプトファイルはprog18.awkです。

prog18.awkの内容

BEGIN{
    str = "日立:hitachi"
    print "Column = " index(str)※
}

注※

index関数の引数に検索する文字列の指定がありません。

コマンドの実行結果を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥awk -f prog18.awk
awk: syntax error at source line 3 source file prog18.awk
 context is
            print "Column = " >>>  index(str) <<<
awk: illegal statement at source line 3 source file prog18.awk

JP1/Advanced Shellの一時ファイル機能とパス変換機能を利用してファイルを入出力します。ジョブ定義スクリプトはadsh001.ashです。スクリプトファイルはprog19.awkです。入力ファイルはfile12.txtです。

環境ファイルの一時ファイル機能とパス変換機能の指定内容

#-adsh_conf TEMP_FILE_DIR       "C:¥¥TEMP¥¥ADSH"
#-adsh_conf PATH_CONV_ENABLE / :
#-adsh_conf PATH_CONV "/var/hitachi/jp1as/perm" "C:¥¥hitachi¥¥JP1AS¥¥perm"

adsh001.ashの内容

#-adsh_file_temp TEMP
#-adsh_step_start adsh001 -onError stop
"$ADSH_OSCMD_DIR/awk" -f prog19.awk "/var/hitachi/jp1as/perm/file12.txt"
#-adsh_step_error
exit 100
#-adsh_step_end

prog19.awkの内容

{
    print FILENAME,":",$0 > ENVIRON["TEMP"]
}
END{
while(getline var < ENVIRON["TEMP"])
    print var
}

file12.txtの内容

001 abc
002 efgh
003 ijklmnop

awkコマンドの出力内容（ジョブの標準出力に出力される内容）

C:¥hitachi¥JP1AS¥perm¥file12.txt : 001 abc
C:¥hitachi¥JP1AS¥perm¥file12.txt : 002 efgh
C:¥hitachi¥JP1AS¥perm¥file12.txt : 003 ijklmnop

引数が指定されていない場合のメッセージを表示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥awk
usage: awk [-F fs] [-v var=value] [-f progfile | prog]
        [[file ...] | [built-in-var=value ...]] ...

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥awk -z
awk: illegal option -- z
usage: awk [-F fs] [-v var=value] [-f progfile | prog]
      [[file ...] | [built-in-var=value ...]] ...

basenameコマンド（パスからファイル名を取得する）

形式

basename  文字列［サフィックス］

機能

ファイルパス名規則に従った文字列からファイル名部分の文字列を取り出し，標準出力に出力します。

サフィックス（任意の文字による文字列）を指定すると，取り出した文字列の終端からサフィックスに一致する部分を削除します。

ファイル名部分の文字列の取り出し規則は次のとおりです。

指定された文字列の，ディレクトリ区切り文字で区切られた各要素から，最も右側にある要素を取り出します。

UNIXの場合，/をディレクトリ区切り文字と見なします。Windowsの場合，/と¥をディレクトリ区切り文字と見なします。

Windowsの場合，ドライブレターに続く:（コロン）も各要素の区切り文字として扱います。

ディレクトリ区切り文字が連続している場合，1つのディレクトリ区切り文字として扱います。

指定された文字列の終端がディレクトリ区切り文字の場合は，終端のディレクトリ区切り文字を取り除いたあとのファイル名部分の文字列を取り出します。

文字列にディレクトリ区切り文字がない場合，指定された文字列をそのまま取り出します。

文字列にディレクトリ区切り文字だけを指定した場合，ディレクトリ区切り文字を取り出します。

引数

文字列

ファイル名部分を取り出す文字列を指定します。

サフィックス

取り出したファイル名部分の終端から削除するサフィックスを指定します。指定したサフィックスが次の場合，取り出したファイル名部分の文字列をそのまま出力します。

ファイル名部分の文字列の終端に一致しない。

取り出したファイル名部分の文字列と同じサフィックスを指定している。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

このコマンドには指定できるオプションがありません。そのため，引数にオプションを指定した場合，そのオプションを，ファイル名部分を取り出す文字列またはサフィックスとして解釈します。

使用例

パス名からファイル名部分の文字列を取り出す例を次に示します。

例1

C:¥TEMP>%ADSH_OSCMD_DIR%¥basename E:¥dir001¥file01.txt
file01.txt

例2

C:¥TEMP>%ADSH_OSCMD_DIR%¥basename /dir001
dir001

例3

C:¥TEMP>%ADSH_OSCMD_DIR%¥basename .¥file01.txt
file01.txt

例4

C:¥TEMP>%ADSH_OSCMD_DIR%¥basename E:¥dir001¥dir002¥
dir002

例5

C:¥TEMP>%ADSH_OSCMD_DIR%¥basename E:¥
E:

例6

C:¥TEMP>%ADSH_OSCMD_DIR%¥basename ¥¥server01¥
server01

例7

C:¥TEMP>%ADSH_OSCMD_DIR%¥basename ¥¥
¥

例8

C:¥TEMP>%ADSH_OSCMD_DIR%¥basename "C:¥Documents and Settings¥User01¥My Documents"
My Documents

例9

C:¥TEMP>%ADSH_OSCMD_DIR%¥basename C:file01.txt
file01.txt

パス名から拡張子を除いたファイル名を取り出す例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥basename E:¥dir001¥file01.txt .txt
file01

catコマンド（ファイルの内容を標準出力に出力する）

形式

cat［-b］［-n］［-s］［-u］［パス名 ...］

機能

ファイルの内容を標準出力に出力します。ファイルが複数ある場合は，連結して出力します。

引数

-b

空行以外のすべての行に番号を付けます。

-n

すべての行に番号を付けます。最初の行を1とします。行番号は6桁で表示します。6桁で表示できない場合は順次，桁数を増やします。行番号の次には，タブを出力します。

-s

連続した空行を1つにします。

-u

UNIXの場合，出力時のバッファリングを抑止します。

Windowsの場合，指定が無視されます。

パス名

連結して出力するファイルのパス名を指定します。パス名は複数指定できます。パス名を指定しない，またはパス名に「-」を指定した場合は，標準入力から入力します。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

改行コードが［LF］の場合だけ空行と見なします。［CR］+［LF］の行は空行と見なされないため，-bオプションおよび-sオプションは対象外になります。このため，Windowsの通常ファイルの場合は，空行を含まないことになります。

Windowsの場合，ファイルおよび標準入力，標準出力をバイナリモードで入出力します。改行コードは変換しません。

標準出力をファイルに出力する場合，パス名に指定したファイルと同じファイルを指定すると，次のメッセージを出力してエラーになります。

cat: ファイル名: input file is output file

使用例

この使用例では，次の内容が記述された「abc.txt」「abcdex.txt」を基に，catコマンドの実行結果を説明します。「△」はスペース，「→」はタブを表します。

abc.txt

aaaaaaaaaaa

bbbbbbbb

△△△△△△△
cccccccccccccccc

   →      →      →

△△△△△△△△△△△
dddddddddddd

abcdex.txt

aaaaaaaaaaa
△△△△△△
△△△△△△
△△△△△△
△△△△△△
△△△△△△
bbbbbbbb

cccccccccccc

dddddddddddd

eeeeeeeeeeeeeeeee
   →      →
   →      →

catコマンドを実行した結果表示に使用する入力ファイルの形式を次に示します。

-bオプションを指定し，空行以外に行番号を付けます。

$ cat -b abc.txt
     1→aaaaaaaaaaa

     2→bbbbbbbb

     3→△△△△△△△
     4→cccccccccccccccc

     5→ →      →      →

     6→△△△△△△△△△△△
     7→dddddddddddd

-nオプションを指定し，すべての行に行番号を付けます。

$ cat -n abc.txt
     1→aaaaaaaaaaa
     2→
     3→bbbbbbbb
     4→
     5→
     6→cccccccccccccccc
     7→
     8→
     9→
    10→
    11→dddddddddddd

-sオプションを指定し，連続した空行を1つの空行として表示します。

$ cat -s abcdex.txt
aaaaaaaaaaa
△△△△△△
△△△△△△
△△△△△△
△△△△△△
△△△△△△
bbbbbbbb

cccccccccccc

dddddddddddd

eeeeeeeeeeeeeeeee
   →      →
   →      →

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥cat -w
cat: illegal option -- w
usage: cat [-bnsu] [file ...]

ファイルがない場合のエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥cat file99
cat: file99: No such file or directory

cmpコマンド（バイナリファイルの内容を比較する）

形式

cmp［-l|-s］パス名1 パス名2［比較開始位置1［比較開始位置2］］

機能

バイナリファイルを比較します。異なるバイト位置を表示できます。

引数

-lオプションおよび-sオプションを指定しない場合は，最初に検出した異なる場所を表示します。-lオプションおよび-sオプションを同時に指定した場合はエラーになります。

-l

違いのあるバイトのオフセット（10進数）とその値（8進数）を表示します。

-s

異なるかどうかを示す終了状態を返します。

パス名1

比較元のパス名を指定します。パス名1に「-」を指定すると，標準入力から比較する内容を入力できます。

パス名2

比較先のパス名を指定します。パス名2に「-」を指定すると，標準入力から比較する内容を入力できます。

比較開始位置1

パス名1の比較を開始する位置（バイト）を指定します。

比較開始位置2

パス名2の比較を開始する位置（バイト）を指定します。

終了コード

終了コード

意味

0

正常終了。ファイルは同一です。

1

正常終了。ファイルは異なっています。または，どちらかのファイルで先にファイルの終端（EOF）に到達しました。ファイルの終端に達した場合，メッセージ（cmp: EOF on ファイル名）を出力します。

2以上

エラー終了

注意事項

改行コードが［CR］+［LF］の場合，2バイトと見なします。

Windowsの場合，ファイルおよび標準入力をバイナリモードで入力します。改行コードは変換しません。

使用例

この使用例では，次の内容が記述された「abc.txt」「abcd.txt」を基に，cmpコマンドの実行結果を説明します。「△」はスペース，「→」はタブを示します。

abc.txt

aaaaaaaaaaa

bbbbbbbb

△△△△△△△
cccccccccccccccc

   →      →      →

△△△△△△△△△△△
dddddddddddd

abcd.txt

aaaaaaaaaaa

bbbbbbbb

△△△△△△△
cccccccccccccccc
△△△△△△△△△△△△△△△△
△△△△△△△△△△△△△△△△△△
△△△△△△△△△△△△△△△
△△△△△△△△△△△△△△△△△△△△△△△△△△△
dddddddddddd
eeeeeeeeeeeeeeeee
   →      →
   →      →

cmpコマンドを実行した結果表示に使用する入力ファイルの形式を次に示します。

-lオプションを指定して，abc.txtとabcd.txtで違いのあるバイトのオフセット（10進数）とその値（8進数）を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥cmp -l abc.txt abcd.txt
    49  12  40
    50  11  40
    51  11  40
    52  11  40
    53  12  40
    54  12  40
    65  40  12
    66  12  40
    67 144  40
    68 144  40
    69 144  40
    70 144  40
    71 144  40
    72 144  40
    73 144  40
    74 144  40
    75 144  40
    76 144  40
    77 144  40
    78 144  40
    79  12  40
cmp: EOF on abc.txt

-sオプションを指定して，結果を表示しないで終了コードを返すようにします。

C:¥TEMP>%ADSH_OSCMD_DIR%¥cmp -s abc.txt abcd.txt

skipオプションを指定して，ファイルの比較を開始するバイトをそれぞれ3に設定します。上段にskipを指定しない場合を，下段にskipを3に設定した場合を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥cmp abc.txt  abcd.txt
abc.txt abcd.txt differ: char 49, line 7

C:¥TEMP>%ADSH_OSCMD_DIR%¥cmp abc.txt  abcd.txt  3 3
abc.txt abcd.txt differ: char 46, line 7

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥cmp -w
cmp: illegal option -- w
usage: cmp [-l | -s] file1 file2 [skip1 [skip2]]

ファイルがない場合のエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥cmp file99 file123
cmp: file99: No such file or directory

cpコマンド（ファイルまたはディレクトリをコピーする）

形式

cp［-f|-i］［-p］［-R|-r［-H|-L|-P］］コピー元ファイル名 コピー先ファイル名
cp［-f|-i］［-p］［-R|-r［-H|-L|-P］］コピー元 ... コピー先ディレクトリ名

機能

ファイルまたはディレクトリをコピーします。

引数

-f

コピー先のファイルを上書きする場合に警告を出しません。-f，-iオプションは最後に指定されたオプションが有効になります。

-i

コピー先のファイルを上書きする場合に警告を出し，応答を要求します。標準入力からの応答がyまたはYの文字で始まっていればコピーします。それ以外の文字を応答したり，標準入力が使用できなかったりした場合は，処理を中断し，終了コード0を返して終了します。

-f，-iオプションは最後に指定されたオプションが有効になります。

-p

コピー元のファイルの属性を保存します。

Windowsの場合，コピー元のファイルの最終修正日時および最終アクセス日時を保持します。ディレクトリの情報は保持しません。

UNIXの場合，コピー元のファイルの所有者，グループ，アクセス権，最終修正日時および最終アクセス日時を保持します。

-R|-r

ディレクトリを再帰的にコピーします。

-H

UNIXの場合，-Rオプションまたは-rオプションと共に指定すると，コマンドライン上で指定したシンボリックリンクをたどります。

ツリー内をたどっている最中に見つけたシンボリックリンクのリンク先はたどりません。

-Rオプションまたは-rオプションを指定しない場合は無視されます。また，-Hオプション，-Lオプションおよび-Pオプションは最後に指定されたオプションが有効になります。

Windowsの場合，指定は無視されます。

-L

UNIXの場合，-Rオプションまたは-rオプションと共に指定すると，遭遇したすべてのシンボリックリンクをたどります。

-Rオプションまたは-rオプションを指定しない場合は無視されます。また，-Hオプション，-Lオプションおよび-Pオプションは最後に指定されたオプションが有効になります。

Windowsの場合，指定は無視されます。

-P

UNIXの場合，-Rオプションまたは-rオプションと共に指定すると，すべてのシンボリックリンクをたどりません。

-Rオプションまたは-rオプションを指定しない場合は無視されます。また，-Hオプション，-Lオプションおよび-Pオプションは最後に指定されたオプションが有効になります。

Windowsの場合，指定は無視されます。

コピー元ファイル名

コピーするファイル名を指定します。

コピー先ファイル名

コピー先のファイル名を指定します。

コピー元

コピーするファイルまたはディレクトリを指定します。

コピー先ディレクトリ名

コピー先のディレクトリを指定します。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

Windowsの場合，コピー先のファイル名は，コピー元に指定したファイル名で作成されます。Windowsでは，ファイル名の英大文字を英小文字と扱ってコピーします。例えば，コピー対象のファイル名がA.txtの場合，cp a.txt tmpdirと実行すると，tmpdirの中のファイル名はa.txtになります。

Windowsの場合，ファイルをバイナリモードで入出力します。改行コードは変換しません。

UNIXの場合，一般ユーザーがcpコマンドの-pオプションでコピー元のファイルの属性を保存するとき，コピー元ファイルの所有者とcpコマンドの実行者が異なると，コピー元のファイルの所有者，グループ，およびアクセス権情報（setuidビット，setgidビット，スティッキービット）は保存しません。

使用例

-iオプションを指定して，コピー先ファイルを上書きすることに対する応答を要求します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥cp -i  file1.txt file2.txt
overwrite file2.txt? y

C:¥TEMP>%ADSH_OSCMD_DIR%¥cp -i file1.txt file2.txt
overwrite file2.txt? n

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥cp -w
cp: illegal option -- w
usage: cp [-fip] [-Rr [-H | -L | -P]] source target
       cp [-fip] [-Rr [-H | -L | -P]] source ... directory

ファイルがない場合のエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥cp file99 file123
cp: file99: No such file or directory

cutコマンド（各行の選択範囲を標準出力に表示する）

形式

cut -b リスト［-n］［--output-delimiter=文字列］［パス名 ...］
cut -c リスト［--output-delimiter=文字列］［パス名 ...］
cut -f リスト［-s］［-d デリミタ］［--output-delimiter=文字列］［パス名 ...］

機能

各行の選択範囲を標準出力に表示します。それぞれのファイルまたはデフォルトの標準入力から，各行のリストに指定された部分を選択して標準出力に出力します。

引数

-bオプション，-cオプション，-fオプションのどれも指定しない場合は，usageを出力して終了します。

-b リスト

--bytes=リスト

動作を指定するオプションです。バイト位置で範囲指定します。リストには1から始まるバイト位置を指定します。複数回指定でき，指定した部分をすべてつなげて出力します。

--output-delimiterオプションを同時に指定すると，--output-delimiterオプションに指定した文字列でつなげて出力します。

-c リスト

--characters=リスト

動作を指定するオプションです。文字位置で範囲指定します。リストには1から始まる文字位置を指定します。複数回指定でき，指定した部分をすべてつなげて出力します。

--output-delimiterオプションを同時に指定すると，--output-delimiterオプションに指定した文字列でつなげて出力します。

-f リスト

--fields=リスト

動作を指定するオプションです。フィールド位置で範囲指定します。リストには区切り文字で区切られた1から始まるフィールド位置を指定します。複数回指定でき，指定した部分およびデリミタをすべてつなげて出力します。

選択されたフィールドは区切り文字で区切って表示します。区切り文字が存在しない行は，行全体を出力します。ただし，-sオプションを指定すると区切り文字が存在しない行は出力しません。

また，--output-delimiterオプションを指定することで，選択されたフィールドと共に出力する区切り文字を変更できます。

リスト

カラム位置または区切り文字で区切られたフィールド位置を指定できます。カラム位置は，1から始まります。

選択範囲をコンマ，スペースまたはタブで区切ると，複数の選択範囲が指定できます。スペースまたはタブで区切る場合は，"（ダブルクォーテーション）で囲む必要があります。1個の選択範囲はn，x-，-y，x-yのどれかを指定します。存在しない位置を指定してもエラーにはなりません。n，x，yはフィールドまたはカラム位置です。

n：その位置だけを示します。

x-：xの位置から最後までを示します。

-y：先頭位置からyの位置までを示します。

x-y：位置xから位置yを示します。x＜yとなる必要があります。x＞yの場合，エラーメッセージが出力されます（cut: [-bcf] list: illegal list value）。

-n

マルチバイトを分割しません。-nを指定しない場合は，マルチバイト文字の途中でも分割します。

パス名

入力するパス名を指定します。パス名を省略するかハイフン（-）を指定すると，標準入力から入力します。

-s

--only-delimited

区切り文字が存在しない行は出力しません。-fオプションと共に指定しない場合，usageを表示して終了します。

-d デリミタ

--delimiter=デリミタ

デリミタで指定された先頭1文字をフィールド区切り文字にします。-dオプションを指定しない場合，タブが指定されたものとします。

-fオプションと共に指定しない場合，usageを表示して終了します。

--output-delimiter=文字列

-fオプションと共に指定した場合，出力するフィールドの区切り文字を指定した文字列に置き換えて出力します。

-bオプションまたは-cオプションと共に指定した場合，フィールド間を指定した文字列でつなげて出力します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

cutコマンドはテキストファイルを対象としています。バイナリファイルからの入力やバイナリデータの出力は，動作を保証しません。

使用例

この使用例では，次の内容が記述された「test.txt」を基に，cutコマンドの実行結果を説明します。

123:5678:abcdef:hijkl
field1:field2:field3:filed4
sssssssssssssssssssssss

cutコマンドを実行した結果表示に使用するファイルの形式を次に示します。

1バイト目と3から5バイト目を出力します。

$ cut -b 1,3-5 test.txt
13:5
feld
ssss

1から4文字目までを出力します。

$ cut -c -4 test.txt
123:
fiel
ssss

1番目と4番目のフィールドを表示します。

$ cut -f 1,4 -d : test.txt
123:hijkl
field1:filed4
sssssssssssssssssssssss

1バイト目と3〜5バイト目を出力し，フィールド間に@:/の文字列を追加します。

$ cut -b 1,3-5 --output-delimiter="@:/" test.txt
1@:/3:5
f@:/eld
s@:/sss

1番目と4番目のフィールドを表示し，区切り文字を@:/の文字列に置き換えます。

$ cut -f 1,4 -d : --output-delimiter="@:/" test.txt
123@:/hijkl
field1@:/field4
sssssssssssssssssssssss

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥cut -z
cut: illegal option -- z
usage: cut -b list [-n] [--output-delimiter=string] [file ...]
       cut -c list [--output-delimiter=string] [file ...]
       cut -f list [-s] [-d delim] [--output-delimiter=string] [file ...]

dateコマンド（システムの日付と時刻を表示する）

形式

date［-u］［-d 日時情報指定文字列 | -r 経過秒］［+書式］

機能

システムの日付と時刻を表示します。

引数

-u

--utc

--universal

UTC（世界協定時）の日付を表示します。

-d 日時情報指定文字列

--date=日時情報指定文字列

表示する日時を日時情報指定文字列で指定します。複数指定した場合は最後の指定が有効になります。指定できる日時情報指定文字列については，「-dオプションで指定できる日時情報指定文字列」を参照してください。

-r 経過秒

エポック（UTCの1970年1月1日00:00:00）から，経過秒に指定した時間が経過した日時を表示します。経過秒に指定できる値は，-1009875600〜2147440447です。範囲外の値を指定した場合，出力する内容は保証できません。

+書式

日付と時刻の表示形式を書式指定コードで指定します。書式指定コードはOSのAPIであるstrftime関数の書式指定コードが指定できます。指定できる書式指定コードについては，「指定できる書式指定コード」を参照してください。

この引数を指定していない場合は，日付と時刻の表示形式は「%Y/%m/%d %A %H:%M:%S %Z」になります。

指定できる書式指定コード

「+」で始まる引数には，OSのAPIであるstrftime関数の書式指定コードが指定できます。このOSのAPIであるstrftime関数で指定できる書式指定コードは，OSによって異なります。各OSで指定できる書式指定コードについては，各OSのstrftime関数についてのドキュメントを参照してください。

各OSで共通して使用できる代表的な書式指定コードを次の表に示します。

書式指定コード

意味

%a

曜日の省略名

%A

曜日の正式名

%b

月の省略名

%B

月の正式名

%c

ロケールに対応する日付・時刻の表示

%d

10進数で表す月の日付（01〜31）

%H

24時間表記で表す時間（00〜23）

%I

12時間表記で表す時間（01〜12）

%j

10進数で表す年の初めからの日数（001〜366）

%m

10進数で表す月（01〜12）

%M

10進数で表す分（00〜59）

%p

現在のロケールの午前/午後

%S

10進数で表す秒。表示される値の範囲は，うるう秒への対応の違いから，OSによって異なる

%U

10進数で表す週の通し番号（00〜53）。その年の最初の日曜日を週の最初の日とする

%w

10進数で表す曜日（0〜6，日曜日が0）

%W

10進数で表す週の通し番号（00〜53）。その年の最初の月曜日を週の最初の日とする

%x

現在のロケールの日付の表示

%X

現在のロケールの時刻の表示

%y

10進数で表す西暦の下2桁（00〜99）

%Y

10進数で表す4桁の西暦

%Z

タイムゾーン名。タイムゾーンが不明な場合は表示しない

%%

%（パーセント）記号

-dオプションで指定できる日時情報指定文字列

日時情報指定文字列には，dateコマンドで表示したい日時を次のように指定します。

絶対日時だけで指定

指定した日時を表示します。

相対日時だけで指定

現在の日時から移動した日時を表示します。

絶対日時と相対日時を組み合わせて指定

絶対日時で指定した日時から，相対日時で指定した分だけ移動した日時を表示します。

日時情報指定文字列の要素は大文字でも小文字でも指定できます。UTCの1970年1月1日0時0分0秒より小さい値，または2038年1月19日3時14分7秒より大きい値を指定した場合，エラーメッセージ「date: Invalid date: 指定値」を出力し，エラー終了します。ただし，AIXの場合，ローカルのタイムゾーンの2038年1月19日3時14分7秒より大きい値を指定すると，エラーメッセージ「date: Invalid date: 指定値」を出力し，エラー終了します。また，日時情報指定文字列として空文字を指定した場合，現在の日付の0時0分0秒を表示します。

日時情報指定文字列で指定できる要素と構文を次に示します。

絶対日時の指定

絶対日時での日時情報指定文字列の要素を次の表に示します。

表8‒7　日時情報指定文字列（絶対日時の指定）の要素

種別

指定できる要素※

詳細

年

10進数で表す4桁の西暦 （YYYY）

1970から2038まで指定できます。

10進数で表す西暦の下2桁 （YY）

00から99まで指定できます。

69から99までは1900年代と仮定され，00から68までは2000年代と仮定されます。

月

月の名称（MONTH）

次の値が指定できます。

January，Jan：1月

February，Feb：2月

March，Mar：3月

April，Apr：4月

May：5月

June，Jun：6月

July，Jul：7月

August，Aug：8月

September，Sept，Sep：9月

October，Oct：10月

November，Nov：11月

December，Dec：12月

10進数で表す月（MM）

01から12まで指定できます。

日

10進数で表す月の日付（DD）

01から31まで指定できます。

時

24時間表記で表す時間（hh）

00から23まで指定できます。

12時間表記で表す時間（hh）

01から12まで指定できます。

分

10進数で表す分（mm）

00から59まで指定できます。

秒

10進数で表す秒（ss）

00から59まで指定できます。

午前・午後

午前・午後（am | a.m. | pm | p.m.）

次の値を時間の後ろに指定できます。

am，a.m.：午前

pm，p.m.：午後

タイムゾーン

タイムゾーン名（ST）

次の値が指定できます。

UTC，UT：世界協定時

GMT：グリニッジ標準時（UTC + 0時間）

WET：西ヨーロッパ時間（UTC + 0時間）

AST：大西洋標準時（UTC - 4時間）

EST：東部標準時（UTC - 5時間）

CST：中部標準時（UTC - 6時間）

MST：山岳部標準時（UTC - 7時間）

PST：太平洋標準時（UTC - 8時間）

HST：ハワイ標準時（UTC - 10時間）

WAT：西アフリカ時間（UTC + 1時間）

CET：中央ヨーロッパ時間（UTC + 1時間）

MET：中央ヨーロッパ時間（UTC + 1時間）

CAT：中央アフリカ時間（UTC + 2時間）

EET：東ヨーロッパ時間（UTC + 2時間）

JST：日本標準時（UTC + 9時間）

GST：グアム標準時（UTC + 10時間）

NZST：ニュージーランド標準時（UTC + 12時間）

ミリタリータイムゾーン（ST）

次の値が指定できます。

A：UTC - 1時間

B：UTC - 2時間

C：UTC - 3時間

D：UTC - 4時間

E：UTC - 5時間

F：UTC - 6時間

G：UTC - 7時間

H：UTC - 8時間

I：UTC - 9時間

K：UTC - 10時間

L：UTC - 11時間

M：UTC - 12時間

N：UTC + 1時間

O：UTC + 2時間

P：UTC + 3時間

Q：UTC + 4時間

R：UTC + 5時間

S：UTC + 6時間

T：UTC + 7時間

U：UTC + 8時間

V：UTC + 9時間

W：UTC + 10時間

X：UTC + 11時間

Y：UTC + 12時間

Z：UTC

UTCからの時間指定（+hhmm | -hhmm | +hh:mm | -hh:mm）

UTCからの時間を+hhmm，-hhmm，+hh:mmまたは-hh:mmで指定できます。mmおよび:mmは省略することができます。

タイムゾーン（夏時間）

タイムゾーン（夏時間）（DT）

次の値が指定できます。

BST：英国夏時間（GMT + 1時間）

ADT：大西洋夏時間（AST + 1時間）

EDT：東部夏時間（EST + 1時間）

CDT：中部夏時間（CST + 1時間）

MDT：山岳部夏時間（MST + 1時間）

PDT：太平洋夏時間（PST + 1時間）

MEST：中央ヨーロッパ夏時間（MET + 1時間）

NZDT：ニュージーランド夏時間（NZST + 1時間）

デイライトセービングタイム

デイライトセービングタイム（DST）

デイライトセービングタイムとしてDSTを指定できます。タイムゾーンと同時に指定することで，指定したタイムゾーンの標準時刻を，指定された日時やタイムゾーンに関係なく，常に1時間進めます。タイムゾーンの指定なしでDSTを指定することはできません。

注※

括弧内のYYやMONTHなどの記号は，次の表の構文と対応しています。

絶対日時での日時情報指定文字列の構文を次の表に示します。

表8‒8　日時情報指定文字列（絶対日時の指定）の構文

種別※

構文

詳細

日付の指定

[YY]YYMMDD

スペースなしで，年・月・日の順番で定義します。年の最初の2桁は省略できます。

[YYYY/]MM/DD

「/」区切りで，年・月・日の順番で定義します。年を省略した場合，現在の年が仮定されます。

MM/DD[/[YY]YY]

「/」区切りで，月・日・年の順番で定義します。年を省略した場合，現在の年が仮定されます。年の最初の2桁は省略できます。

[YY]YY-MM-DD

「-」区切りで，年・月・日の順番で定義します。年の最初の2桁は省略できます。

DD MONTH [[YY]YY]

スペース区切りで，日・月の正式名（または月の省略名）・年の順番で定義します。年を省略した場合，現在の年が仮定されます。年の最初の2桁は省略できます。

MONTH DD [,[YY]YY]

月の正式名（または月の省略名）・日・年の順番で指定します。月の正式名（または月の省略名）と日をスペース区切りで，日と年を「,」区切りで定義できます。年を省略した場合，現在の年が仮定されます。年の最初の2桁は省略できます。

DD[-]MONTH[[-][YY]YY]

「-」区切り，またはスペースなしで，日・月の正式名（または月の省略名）・年の順番で定義します。年を省略した場合，現在の年が仮定されます。年の最初の2桁は省略できます。

MONTH-DD-[YY]YY

「-」区切りで，月の正式名（または月の省略名）・日・年の順番で定義します。年の最初の2桁は省略できます。

MONTH DD [[YY]YY]

スペース区切りで，月の正式名（または月の省略名）・日・年の順番で定義します。年を省略した場合，現在の年が仮定されます。年の最初の2桁は省略できます。

時間の指定

hh[mm]

hh [am | a.m. | pm | p.m.]

スペースなしで，時・分の順番で定義します。

分の定義は省略できます。

時だけの定義のとき，スペース区切りでam(a.m.)，pm(p.m.)を定義できます。

am(a.m.)，pm(p.m.)を定義する場合，時の定義は12時間表記にしてください。

hh:mm[:ss] [am | a.m. | pm | p.m.]

「:」区切りで，時・分・秒の順番で定義します。

秒の定義は省略できます。

時・分・秒の定義の後ろに，スペース区切りでam(a.m.)，pm(p.m.)を定義できます。

am(a.m.)，pm(p.m.)を定義する場合，時・分・秒の定義は12:59:59以内としてください。

hh:mm[:ss] [+hh[mm] | -hh[mm] | +hh[:mm] | -hh[:mm]]

「:」区切りで，時・分・秒の順番で定義します。

秒の定義は省略できます。

時・分・秒の定義のあとに，スペース区切りで+hhmm，-hhmm，+hh:mmまたは-hh:mmを定義できます。

タイムゾーン

ST [DST]

ST [+hh[mm] | -hh[mm] | +hh[:mm] | -hh[:mm]]

タイムゾーンを指定します。タイムゾーンの後ろにスペース区切りで，DST，+hhmm，-hhmm，+hh:mmまたは-hh:mmを定義できます。

DT

タイムゾーン（夏時間）を定義します。タイムゾーン（夏時間）と共に，DST，+hhmm，-hhmm，+hh:mmまたは-hh:mmを定義することはできません。

注※

同じ種別は複数定義できませんが，異なる種別同士は組み合わせて定義できます。

日付だけ指定すると，時間は0時0分0秒が定義されます。

時（hh）だけ指定すると，現在の日付で分（mm）と秒（ss）が0で定義されます。

時間（hh）と分（mm）だけ指定すると，現在の日付で秒（ss）が0で定義されます。

相対日時の指定

相対日時での日時情報指定文字列の要素を次の表に示します。

表8‒9　日時情報指定文字列（相対日時の指定）の要素

指定できる要素※

詳細

年・月の移動（DATE）

次の値を指定します。

year，years：年の移動

month，months：月の移動

値の前に数値（NUM）を指定できます。数値（NUM）を省略した場合は1が仮定されます。

日の移動（DATE）

次の値を指定します。

fortnight，fortnights：2週間（14日）の移動

week，weeks：1週間（7日）の移動

day，days：日の移動

tomorrow：明日（1日後）

yesterday：昨日（1日前）

today：今日（0日）

now：現在（0日）

値の前に数値（NUM）を指定できます。数値（NUM）を省略した場合は1が仮定されます。

時・分の移動（DATE）

次の値を指定します。

hour，hours：時間の移動

minute，min，minutes：分の移動

値の前に数値（NUM）を指定できます。数値（NUM）を省略した場合は1が仮定されます。

秒の移動（DATE）

次の値を指定します。

second，sec，seconds：秒の移動

値の前に数値（NUM）を指定できます。数値（NUM）を省略した場合は1が仮定されます。

曜日の移動（DAY）

次の値を指定します。

Monday，Mon：月曜

Tuesday，Tue，Tues：火曜

Wednesday，Wed，Wednes：水曜

Thursday，Thu，Thur，Thurs：木曜

Friday，Fri：金曜

Saturday，Sat：土曜

Sunday，Sun：日曜

値の前に数値（NUM）を指定し，NUM回目の曜日を指定できます。数値（NUM）を省略した場合は1が仮定されます。1または数値（NUM）の指定がない場合，次に訪れる曜日を意味します。符号（+|-）または前後指定（ago）を指定することはできません。

数値指定（文字列）（NUM）

次の値を指定します。

last：-1

this：0

next：1

first：1

third：3

fourth：4

fifth：5

sixth：6

seventh：7

eighth：8

ninth：9

tenth：10

eleventh：11

twelfth：12

値の前に数値（NUM）は指定できません。

数値指定（数字）（NUM）

0から2147483647まで指定できます。

符号（+|-）

次の値を数値指定（数字）の前に指定できます。

+：正

- ：負

符号の後ろに数値の指定がない場合，符号の指定は無視します。

前後指定（ago）

次の値を指定します。

ago：前の「-」

agoの直前に指定された日時情報指定文字列の正負を逆（正なら負，負なら正）にします。

注※

括弧内のNUMやDATEなどの記号は，次の表の構文と対応しています。

相対日時での日時情報指定文字列の構文を次の表に示します。「日時の移動」と「曜日の移動」は組み合わせて定義できます。

表8‒10　日時情報指定文字列（相対日時の指定）の構文

種別

構文

詳細

日時の移動

[[+ | -]NUM] DATE [ago]

現在の日時，または日時情報指定文字列（日時の指定）で指定した日時からの移動分を指定します。

スペース区切りで複数指定することもできます。

組み合わせ可能な要素については表「日時情報指定文字列（相対日時の指定）の要素」を参照してください。

曜日の移動

[NUM] DAY

DAY[,]

曜日を指定します。複数指定することはできません。

また，曜日の前に数値（NUM）を指定すると，NUM回目の曜日を定義できます。数値（NUM）の指定がない場合，次に訪れる曜日を意味します。

曜日の後ろに「,」またはスペースを指定することで，「日時の移動」の定義を続けて指定できます。

その他の指定

その他の日時情報指定文字列の要素を次の表に示します。

表8‒11　日時情報指定文字列（その他）の要素

指定できる要素

詳細

コメント

日時情報指定文字列の中に「(」と「)」で囲んで，コメントとして任意の文字列を指定します。「(」と「)」が適切に入れ子状になっている場合，中に指定された文字列は無視されます。

また，「(」だけが指定されている場合，「(」以降の指定はすべて無視されます。

「絶対日時の指定」および「相対日時の指定」は次の順序で算出されます。2.〜4.の途中で，秒に換算した結果が0〜2147483647の範囲を超えた場合，最終結果に関係なくエラーになることがあります。

現在の日時，または「絶対日時の指定」で指定された日時を求めます。

1.に対して，「相対日時の指定」で指定された「曜日の移動」の結果を加算します。「絶対日時の指定」で「日付の指定」の指定がされた場合は，「曜日の移動」の指定があっても加算しません。

2.に対して，「相対日時の指定」で指定された「年・月の移動」のすべての結果を加算・減算します。

3.に対して，「相対日時の指定」で指定された「日の移動」，「時・分の移動」，「秒の移動」のすべての結果を加算・減算します。

2.〜4.は計算対象の日時からの移動分を計算します。

例えば，現在の日時が2014年4月30日10時10分10秒のときに「date -d "Fri, 1 year 1 month 1 day 1 hour 1 min 1 sec"」が指定された場合，次のように計算します。

1.で，現在の日時を求めます。

⇒2014年4月30日（水曜日）10時10分10秒になります。

2.で，2014年4月30日（水曜日）から次の金曜日までの日数を足します。

⇒2014年5月2日（金曜日）10時10分10秒になります。

3.で，365日と2014年の5月分の日数を足します。

⇒2015年6月2日（月曜日）10時10分10秒になります。

4.で，1日分の日数と，1時間1分1秒の時間を足します。

⇒2015年6月3日（火曜日）11時11分11秒になります。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

「+」で始まる引数に指定した書式コードが，strftime関数で有効な書式コード以外の場合は，指定された値をそのまま出力します。

Windowsの場合，有効な書式コードと無効な書式コードを混在して指定すると，すべての書式コードを変換しないで，指定された値をそのまま出力します。

UNIXの場合，有効な書式コードは変換出力し，無効な書式コードは指定された値を出力します。

Windowsの場合，環境変数TZを設定するときは，環境変数TZの値とコントロールパネルの「日付と時刻のプロパティ」ダイアログボックスで定義されているタイムゾーンを同じにしてください。同じでない場合，日時の表示が正しく行われない場合があります。

指定できる引数でない引数をコマンドラインに指定しても，その引数の指定は無視されます。

次の環境変数が設定されている場合は，「+」で始まる引数の後ろに指定したオプションは無視されます。

環境変数POSIXLY_CORRECT

環境変数ADSH_CMD_ARGORDER=seq

使用例

オプションを指定しない場合のデフォルトを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥date
2011/05/09 月曜日 02:03:05 JST

-uオプションを指定して，UTC（世界協定時）の日付と時刻を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥date -u
2011/05/08 日曜日 17:03:11 UTC

-rオプションを指定して，エポックから，指定した秒が経過した日時を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥date -r 1234567890
2009/02/14 土曜日 08:31:30 JST

「+」で始まるオペランドに，表示する日付と時刻の形式を指定します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥date "+%Y-%m-%d %H.%M.%S"
2011-05-09 02.10.02

今年の12月12日の日付を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥date -d "12/12"
2011/12/12 日曜日 00:00:00 JST

3か月と1日後の日付を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥date -d "3 months 1 day"
2011/08/10 水曜日 00:00:00 JST

2日前の日付を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥date -d "2 days ago"
2011/05/07 土曜日 00:00:00 JST

2011年5月1日から100日後の日付を表示します。日時情報指定文字列を--dateオプションで指定します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥date --date="1-May-2011 100 days"
2011/08/09 火曜日 00:00:00 JST

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥date -a
date: illegal option -- a
usage: date [-u] [-d string | -r seconds] [+format]

diffコマンド（2つのファイルや標準入力を比較する）

形式

diff［-a］［-b］［-i］［-s］［-w］
　　［-c行数|-C 行数|-q|-u行数|-U 行数|
　　　-y［-W 出力幅］ ［--suppress-common-lines］］
　　［-L ラベル］
　　 パス名1 パス名2
diff［-a］［-b］［-i］［-r］［-s］［-w］
　　［-c行数|-C 行数|-q|-u行数|-U 行数|
　　　-y［-W 出力幅］ ［--suppress-common-lines］］
　　［-L ラベル］
　　 ディレクトリ名1 ディレクトリ名2

機能

2つのファイルや標準入力を比較します。

引数

-a

--text

ファイルをテキストと見なして比較します。

-b

--ignore-space-change

行中の1つ以上のスペースまたはタブを1個のスペースまたはタブとして比較します。-wオプションが指定されている場合は，-wオプションが有効となります。

-i

--ignore-case

英大文字と英小文字を区別しません。

-s

--report-identical-files

ファイルの内容が同じ場合，メッセージ（Files パス名1 and パス名2 are identical）を出力します。

-w

--ignore-all-space

行中のスペースおよびタブをすべて無視して比較します。-wオプションを指定すると，-bオプションの指定は無効になります。

-c行数

-C 行数

--context［=行数］

比較するパス名を標準出力に出力します。行の追加，削除および変更を+，-，!の記号で出力します。

行数を指定した場合，差異の前後に指定した行数ずつ出力します。-cオプション，--contextオプションに行数を指定しない場合，3行ずつ出力します。

なお，-cオプションに行数を指定する場合，スペースを空けないで行数を指定してください。

-q

--brief

差異がある場合，メッセージ（Files パス名1 and パス名2 differ）だけを出力します。

-u行数

-U 行数

--unified［=行数］

比較するパス名を標準出力に出力し，行の追加および削除を+，-の記号で出力します。差異が1つのセクションとして出力されます。

行数を指定した場合，差異の前後に指定した行数ずつ出力します。-uオプション，--unifiedオプションに行数を指定しない場合，3行ずつ出力します。

なお，-uオプションに行数を指定する場合，スペースを空けないで行数を指定してください。

-L ラベル

--label=ラベル

-c，-u，-C，-Uオプションが指定されている場合，パス名の代わりにラベルで指定したラベルを出力します。-Lオプションを1つ指定した場合は，パス名1の代わりにラベルを出力します。-Lオプションを2つ指定した場合は，パス名1とパス名2の代わりに指定された順序でラベルを出力します。

-y

--side-by-side

行の追加・削除・変更・改行コードの有無だけの差分を「>」「<」「|」「¥」「/」の記号で，差異のない行は記号なしで出力します。パス名1とパス名2の各行は1行にまとめて横並びに出力します。

まとめられた1行が130カラムを超える場合は，パス名1とパス名2の各行の長さを調整して出力します。

また，次のオプションと組み合わせて出力を変更することができます。

-Wオプション

--suppress-common-linesオプション

-W 出力幅

--width=出力幅

1行に出力する出力幅（カラム数）を変更できます。-yオプションと共に指定した場合に有効です。

--suppress-common-lines

差異のない行を出力しません。-yオプションと共に指定した場合に有効です。

パス名1

比較元のパス名を指定します。

「-」を指定すると，比較する内容を標準入力から入力できます。また，標準入力から入力した内容を保存する一時ファイルが作成されます。一時ファイルの出力先ディレクトリは次のとおりです。

UNIXの場合

環境変数TMPDIRに定義されたディレクトリに出力します。

環境変数TMPDIRが定義されていない場合は，/var/tmpに出力します。

Windowsの場合

共通アプリケーションフォルダ¥HITACHI¥JP1AS¥miscに出力します。

パス名2

比較先のパス名を指定します。

「-」を指定すると，比較する内容を標準入力から入力できます。また，標準入力から入力した内容を保存する一時ファイルが作成されます。一時ファイルの出力先ディレクトリは次のとおりです。

UNIXの場合

環境変数TMPDIRに定義されたディレクトリに出力します。

環境変数TMPDIRが定義されていない場合は，/var/tmpに出力します。

Windowsの場合

共通アプリケーションフォルダ¥HITACHI¥JP1AS¥miscに出力します。

-r

--recursive

ディレクトリ単位で比較した場合，サブディレクトリがあるときは，その配下も再帰的に検索して比較します。

ディレクトリ1

比較元のディレクトリを指定します。ディレクトリ1とディレクトリ2のどちらか片方にパス名を指定した場合は，同じファイル名を別のディレクトリで検索して比較します。同じファイル名が存在しない場合はエラーメッセージ（diff: 比較したいパス名: No such file or directory）を出力します。

ディレクトリ2

比較先のディレクトリを指定します。ディレクトリ1とディレクトリ2のどちらか片方にパス名を指定した場合は，同じファイル名を別のディレクトリで検索して比較します。同じファイル名が存在しない場合はエラーメッセージ（diff: 比較したいパス名: No such file or directory）を出力します。

出力形式

diffコマンドによる差異の表示形式には次に示す3つがあります。指定するオプションによって，どの出力形式になるかが決まります。

形式

意味

通常表示形式

-c，-C，-q，-u，-U，-yオプション指定時以外の表示形式です。2つのファイルの差異を表示します。

2つのファイルの差異の開始位置，終了位置および差異を表示します。2つのファイルの差異の開始位置と終了位置の間の記号の意味を次に示します。

a：追加

d：削除

c：変更

複数行にわたり差異がある場合は，差異開始行と差異終了行をコンマ（,）で区切って表示します。

差異はパス名1からの差分，パス名2からの差分の順に表示し，その間に「---」を表示します。差異の行頭の<は削除および変更された行を表し，>は追加および変更された行を表します。<と>の後ろにはスペースが1つ出力されます。

コンテキスト形式

-c，-Cオプションを指定した場合の表示形式です。出力では差異がある行に加えて前後の変更されていない行も表示します。差異のない行を何行分表示するかは指定できます。デフォルトでは3行分表示します。

ヘッダには2つのファイルの情報を次のように表示します。

差異の固まりの境：15個のアスタリスク（*）

2つのファイルの差異の開始位置，終了位置および差異

差異は，次のように表します。

行頭に+がある行：追加があった行

行頭にマイナス（-）がある行：削除があった行

行頭に!がある行：変更があった行

+，マイナス（-），!の後ろにはスペースが1つ出力されます。また，差分がない行の先頭にはスペースが2つ出力されます。

差異のある行が隣接する場合は1つの差異の固まりとして扱います。しかし，差異のある行が離れている場合は再度15個のアスタリスク（*）を表示し，差異を表示します。

ユニファイド形式

-u，-Uオプションを指定した場合の表示形式です。出力はコンテキスト形式の出力を1つのセクションとして表示しています。差異のない行を何行分表示するかは指定できます。デフォルトでは3行分表示します。

ヘッダには2つのファイルの情報を次のように表示します。

2つのアットマーク（@）で始まる行：2つのファイルの差異の開始位置，終了位置および差異

差異は，次のように表示します。

行頭に+がある行：追加があった行

行頭にマイナス（-）がある行：削除があった行

+とマイナス（-）の後ろには，コンテキスト形式の場合と異なり，スペースは出力されません。また，差分がない行の先頭にはスペースが1つ出力されます。

変更があった行は，削除された行，追加された行として表されます。

差異のある行が隣接する場合は1つの差異の固まりとして扱います。しかし，差異のある行が離れている場合は再度2つのアットマーク（@）で始まる2つのファイルの差異の開始位置と終了位置を表示し，差異を表示します。

サイドバイサイド形式

-yオプションを指定した場合の表示形式です。出力はパス名1とパス名2のそれぞれの行を1行にまとめて横並びに表示します。デフォルトでは，出力する行は差異の有無に関係なくすべての行が対象です。まとめられた1行が130カラムを超える場合は，パス名1とパス名2のそれぞれの行は横並びで130カラム以内に表示できるように長さが調節されます。

差異は，パス名2の行の前に次の記号で示します。

「>」：追加された行

「<」：削除された行

「|」：変更された行

エスケープ文字(¥)：パス名1の行に改行がなかった行

「/」：パス名2の行に改行がなかった行

-yオプションは-Wオプション，--suppress-common-linesオプションと組み合わせることで，1行の出力幅の変更や，差異のない行の出力抑止ができます。

通常表示形式の例

通常表示形式の出力例を次に示します。

出力例

C:¥USR¥JP1¥oscmd¥bin>diff file1 file2
1c1,2                               ←1.
< aaaaaaaaaaa                       ←2.
---                                 ←3.
> aaAAAAAaaaa                       ←4.
> bbBBBBBbbbb                       ←4.

説明

file1とfile2の差異がある位置を表します。file1とfile2の間の記号のaは追加，dは削除，cは変更を意味します。記号の前にはfile1の行番号が，記号の後にはfile2の行番号が表示されます。複数行に渡って差異がある場合は，差異開始行と差異終了行をコンマ（,）で区切って表示します。

file1の差異を表します。

file1とfile2の差異の境目を表します。

file2の差異を表します。

コンテキスト形式の例

出力例

C:¥USR¥JP1¥oscmd¥bin>diff -c file1 file2
*** file1       Thu May 12 20:17:54 2011  ←1.
--- file2       Thu May 12 20:18:29 2011  ←2.
***************                           ←3.
*** 1,5 ****                              ←4.
  aaaaaaaaaaa                             ←5.
! bbbbbbbb                                ←5.
  cccccccccccc                            ←5.
- dddddddddddd                            ←5.
  eeeeeeeee                               ←5.
--- 1,5 ----                              ←6.
  aaaaaaaaaaa                             ←7.
! bbbBBBbb                                ←7.
  cccccccccccc                            ←7.
  eeeeeeeee                               ←7.
+ ffffffffffffffffff                      ←7.

説明

file1のファイル情報として，ファイル名とファイルの最終修正日時を表示します。

file2のファイル情報として，ファイル名とファイルの最終修正日時を表示します。

file1とfile2の差異の固まりの境を15個のアスタリスク（*）で表示します。file1とfile2の差異がある行が3行以上離れているときは，別の固まりとして再度この境を表示したあと，次の差異の情報を出力します。

file1の差異の開始位置と終了位置をコンマ（,）で区切って表示します。

file1の差異を表示します。プラス（+）は追加，マイナス（-）は削除，!は変更を意味します。

file2の差異の開始位置と終了位置をコンマ（,）で区切って表示します。

file2の差異を表示します。プラス（+）は追加，マイナス（-）は削除，!は変更を意味します。

ユニファイド形式の例

出力例

C:¥USR¥JP1¥oscmd¥bin>diff -u file1 file2
--- file1       Thu May 12 20:17:54 2011  ←1.
+++ file2       Thu May 12 20:18:29 2011  ←2.
@@ -1,5 +1,5 @@                           ←3.
 aaaaaaaaaaa                              ←4.
-bbbbbbbb                                 ←4.
+bbbBBBbb                                 ←4.
 cccccccccccc                             ←4.
-dddddddddddd                             ←4.
 eeeeeeeee                                ←4.
+ffffffffffffffffff                       ←4.

説明

file1のファイル情報として，ファイル名とファイルの最終修正日時を示します。

file2のファイル情報として，ファイル名とファイルの最終修正日時を示します。

file1とfile2の差異の開始位置と終了位置をコンマ（,）で区切って示します。先頭にマイナス（-）が付いている方がfile1，先頭にプラス（+）が付いている方がfile2の差異の開始位置と終了位置を示します。

file1とfile2の差異を一つのセクションとして示します。プラス（+）はfile1からfile2で追加された行を示します。マイナス（-）はfile1からfile2で削除された行を示します。変更部分は，削除された行，追加された行として表されます。

サイドバイサイド形式の例

出力例

C:¥USR¥JP1¥oscmd¥bin>diff -y file1 file2
a                                     a    ←1.
b                                   | b1   ←1.
c                                     c    ←1.
d                                   <      ←1.
e                                     e    ←1.
                                    > f    ←1.
g                                   ¥ g    ←1.

説明

file1とfile2のそれぞれの行を1行にまとめて横並びに出力します。

「>」はfile1からfile2で追加された行を示します。

「<」はfile1からfile2で削除された行を示します。

「|」はfile1からfile2で変更された行を示します。

「¥」はfile1の行に改行がないことを示します。

記号がない行は差異がない行です。

終了コード

終了コード

意味

0

ファイルは同一です。

1

ファイルは異なっています。

2以上

エラー終了

注意事項

-cオプション，-Cオプション，-qオプション，-uオプション，-Uおよび-yオプションは最後に指定したオプションが有効となります。

ファイルの先頭から8,192バイト以内で表示できる1バイト文字，スペース，タブ，バックスペースおよびマルチバイト文字以外のデータが含まれている場合は，バイナリファイルと見なされます。

ロケールと異なる文字コードのファイルはバイナリファイルと見なされます。

Windowsの場合，ファイルおよび標準入力，標準出力をバイナリモードで入出力します。改行コードは変換しません。

パス名に「-」を指定した場合，端末から標準入力に入力している途中，および比較処理を実行している最中にdiffコマンドの実行を中断すると，次の名前の一時ファイルが残ることがあります。この場合は，手動で一時ファイルを削除してください。

【Windowsの場合】

diff.XXXXXX（XXXXXXは任意の6文字の文字列）

【UNIXの場合】

diffppppp.XXXXXXXX（pppppは5桁以上のプロセスID，XXXXXXXXは任意の8文字の文字列）

使用例

diffコマンドを実行した結果表示に使用する入力ファイルの形式を次に示します。「△」はスペース，「→」はタブを表します。

abc.txt

aaaaaaaaaaa

bbbbbbbb

△△△△△△△
cccccccccccccccc

   →      →      →

△△△△△△△△△△△
dddddddddddd
△△△eeeeeeeeeeee

abcd.txt

aaAAAAAaaaa

bbBBBbbb

△△△△△△△
cccccccccccccccc
△△△△△△△△△△△△△△△△
△△△△△△△△△△△△△△△△△△
△△△△△△△△△△△△△△△
△△△△△△△△△△△△△△△△△△△△△△△△△△△
dddddddddddd
eeeeeeeeeeee

wxy.txt

aaaaaaaaaaa

bbbbbbbb
xxxxxxxxxxxxxx

cccccccccccccccc
dddddddddddd
eeeeeeeeeeee
fffffffffffffff
ggggggggg

wxyz.txt

aaaaaaaaaaa

bbbBBBbb
xxxxxxxxxxxxxx

cccccccccccccccc
dddddddddddd
fffffffffffffff
ggggggggg
hhhhhhhhhhhhhhhhhh

これらのファイルを基に，コマンドの実行結果を次に示します。

オプションを指定しない場合のデフォルトを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff abc.txt abcd.txt
1c1
< aaaaaaaaaaa
---
> aaAAAAAaaaa
3c3
< bbbbbbbb
---
> bbBBBbbb
7,10c7,10
<
<    →    →     →
<
< △△△△△△△△△△△
---
> △△△△△△△△△△△△△△△△
> △△△△△△△△△△△△△△△△△△
> △△△△△△△△△△△△△△△
> △△△△△△△△△△△△△△△△△△△△△△△△△△△
12c12
< △△△eeeeeeeeeeee
---
> eeeeeeeeeeee

-bオプションを指定し，スペースまたはタブの数の違いを無視します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -b abc.txt abcd.txt
1c1
< aaaaaaaaaaa
---
> aaAAAAAaaaa
3c3
< bbbbbbbb
---
> bbBBBbbb
12c12
< △△△eeeeeeeeeeee
---
> eeeeeeeeeeee

-iオプションを指定し，英大文字と英小文字を区別しないで比較します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -i abc.txt abcd.txt
7,10c7,10
<
<    →    →     →
<
< △△△△△△△△△△△
---
> △△△△△△△△△△△△△△△△
> △△△△△△△△△△△△△△△△△△
> △△△△△△△△△△△△△△△
> △△△△△△△△△△△△△△△△△△△△△△△△△△△
12c12
< △△△eeeeeeeeeeee
---
> eeeeeeeeeeee

-sオプションを指定し，ファイル内容が同一の場合も報告するようにします。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -s abc.txt abc.txt
Files abc.txt and abc.txt are identical

-wオプションを指定し，行中のスペースおよびタブをすべて無視して比較します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -w abc.txt abcd.txt
1c1
< aaaaaaaaaaa
---
> aaAAAAAaaaa
3c3
< bbbbbbbb
---
> bbBBBbbb

-qオプションを指定し，差異の内容は表示しないで，差異があるかどうかだけを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -q abc.txt abcd.txt
Files abc.txt and abcd.txt differ

-cオプションを指定し，行の追加，削除および変更を+，-，!の記号で表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -c ..¥dir1¥wxy.txt ..¥dir1¥wxyz.txt
*** wxy.txt     Thu May 12 20:17:54 2011
--- wxyz.txt    Thu May 12 20:18:29 2011
***************
*** 1,10 ****
  aaaaaaaaaaa

! bbbbbbbb
  xxxxxxxxxxxxxx

  cccccccccccccccc
  dddddddddddd
- eeeeeeeeeeee
  fffffffffffffff
  ggggggggg
--- 1,10 ----
  aaaaaaaaaaa

! bbbBBBbb
  xxxxxxxxxxxxxx

  cccccccccccccccc
  dddddddddddd
  fffffffffffffff
  ggggggggg
+ hhhhhhhhhhhhhhhhhh

-uオプションを指定し，行の追加および削除を+，-の記号で表示します。差異を1つのセクションとして表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -u ..¥dir1¥wxy.txt ..¥dir1¥wxyz.txt
--- wxy.txt     Thu May 12 20:17:54 2011
+++ wxyz.txt    Thu May 12 20:18:29 2011
@@ -1,10 +1,10 @@
 aaaaaaaaaaa

-bbbbbbbb
+bbbBBBbb
 xxxxxxxxxxxxxx

 cccccccccccccccc
 dddddddddddd
-eeeeeeeeeeee
 fffffffffffffff
 ggggggggg
+hhhhhhhhhhhhhhhhhh

-Cオプションを指定し，差異の前後の1行を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -C1 wxy.txt wxyz.txt
*** wxy.txt     Thu May 12 20:17:54 2011
--- wxyz.txt    Thu May 12 20:18:29 2011
***************
*** 2,4 ****

! bbbbbbbb
  xxxxxxxxxxxxxx
--- 2,4 ----

! bbbBBBbb
  xxxxxxxxxxxxxx
***************
*** 7,10 ****
  dddddddddddd
- eeeeeeeeeeee
  fffffffffffffff
  ggggggggg
--- 7,10 ----
  dddddddddddd
  fffffffffffffff
  ggggggggg
+ hhhhhhhhhhhhhhhhhh

-Uオプションを指定し，行の追加および削除を+，-の記号で表示します。差異を1つのセクションとして，差異の前後の1行を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -U1 wxy.txt wxyz.txt
--- wxy.txt     Thu May 12 20:17:54 2011
+++ wxyz.txt    Thu May 12 20:18:29 2011
@@ -2,3 +2,3 @@

-bbbbbbbb
+bbbBBBbb
 xxxxxxxxxxxxxx
@@ -7,4 +7,4 @@
 dddddddddddd
-eeeeeeeeeeee
 fffffffffffffff
 ggggggggg
+hhhhhhhhhhhhhhhhhh

-yオプションを指定し，行の追加，削除，変更を>，<，|の記号で表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -y wxy.txt wxyz.txt
aaaaaaaaaaa                         aaaaaaaaaaa

bbbbbbbb                          | bbbBBBbb
xxxxxxxxxxxxxx                      xxxxxxxxxxxxxx

cccccccccccccccc                    cccccccccccccccc
dddddddddddd                        dddddddddddd
eeeeeeeeeeee                      <
fffffffffffffff                     fffffffffffffff
ggggggggg                           ggggggggg
                                  > hhhhhhhhhhhhhhhhhh

-yオプションを指定してサイドバイサイド形式で表示する場合に，--suppress-common-linesオプションを指定して差異のない行を出力しないようにします。

C:¥TEMP>%ADSH_OSCMD_DIR%diff -y --suppress-common-lines wxy.txt wxyz.txt
bbbbbbbb                          | bbbBBBbb
eeeeeeeeeeee                      <
                                  > hhhhhhhhhhhhhhhhhh

-Lオプションで指定したラベルで，比較元のファイル名を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -L name1 -c abc.txt abcd.txt
*** name1
--- abcd.txt    Thu May 12 20:36:44 2011
***************
*** 1,12 ****
! aaaaaaaaaaa

! bbbbbbbb

  △△△△△△△
  cccccccccccccccc
!
!   →    →     →
!
! △△△△△△△△△△△
  dddddddddddd
! △△△eeeeeeeeeeee
--- 1,12 ----
! aaAAAAAaaaa

! bbBBBbbb

  △△△△△△△
  cccccccccccccccc
! △△△△△△△△△△△△△△△△
! △△△△△△△△△△△△△△△△△△
! △△△△△△△△△△△△△△△
! △△△△△△△△△△△△△△△△△△△△△△△△△△△
  dddddddddddd
! eeeeeeeeeeee

-aオプションを指定しないでバイナリファイルを比較した場合を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff binaryfile1 binaryfile2
Binary files binaryfile1 and binaryfile2 differ

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff -z
diff: illegal option -- z
usage: diff [-abisw] [-c[number] | -C number | -q | -u[number] | -U number |
            -y [-W columns] [--suppress-common-lines]] [-L label] file1
            file2
       diff [-abirsw] [-c[number] | -C number | -q | -u[number] | -U number |
            -y [-W columns] [--suppress-common-lines]] [-L label] dir1 dir2

ファイルがない場合のエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥diff file99 file123
diff: file99: No such file or directory

dirnameコマンド（パス名からディレクトリパス名部分の文字列を取り出す）

形式

dirname［文字列］

機能

ファイルパス名規則に従った文字列から，ファイル名部分を取り除いた残りのディレクトリパス名を取り出し，標準出力に出力します。

ディレクトリパス名の取り出し規則は次のとおりです。

指定された文字列のディレクトリ区切り文字で区切られた各要素のうち最も右側にある要素と，その要素の前にあるディレクトリ区切り文字を取り除いた，すべての要素を取り出します。なお，取り出したディレクトリパス名の途中に連続する区切り文字が存在しても，そのまま取り出します。

UNIXの場合は「/」がディレクトリ区切り文字と見なされ，Windowsの場合は「/」と「¥」がディレクトリ区切り文字と見なされます。

指定された文字列の終端がディレクトリ区切り文字の場合は，終端のディレクトリ区切り文字を取り除いた上で最も右側にある要素を取り除いた，すべての文字列が取り出されます。

文字列にディレクトリ区切り文字がない場合や，文字列を指定していない場合は，カレントを意味する「.」（ピリオド）を出力します。

文字列にディレクトリ区切り文字だけを指定した場合は，ディレクトリ区切り文字を取り出します。

Windowsの場合，文字列の先頭1文字が英字で，次に「:」（コロン）が続いた場合，英字はドライブレターとして扱います。ドライブレターに続く「:」（コロン）も，各要素の区切り文字として扱います。

Windowsの場合，ルートディレクトリのディレクトリパスは，上記の規則に関係なく，次のように取り出されます。

パス名の開始文字列の形式

dirnameコマンドの取り出し結果

ドライブレター:¥

ドライブレター:¥

ドライブレター:

ドライブレター:

¥¥サーバ名（UNC名指定）

¥¥

¥¥?（サービス機能の不活性化指定）

¥¥

¥¥.（10番以降のデバイス名指定）

¥¥

dirnameコマンドの指定値と取り出し結果の例を次に示します。

dirnameコマンドの指定値

取り出し結果

C:¥

C:¥

C:

C:

¥¥server01¥

¥¥

¥¥server01

¥¥

¥¥?¥

¥¥

¥¥?

¥¥

¥¥.¥

¥¥

¥¥.

¥¥

¥¥

¥¥

C:file001.txt

C:

C:¥file001.txt

C:¥

引数

文字列

ファイルパス名を指定します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

このコマンドには指定できるオプションが存在しません。そのため，引数にオプションを指定した場合，そのオプションはディレクトリパス名部分を取り出す文字列として解釈します。

使用例

パス名からディレクトリパス名部分の文字列を取り出す例を次に示します。

例1

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname E:¥dir001¥file01.txt
E:¥dir001

例2

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname /dir001
/

例3

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname .¥file01.txt
.

例4

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname E:¥dir001¥dir002¥
E:¥dir001

例5

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname E:¥
E:¥

例6

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname ¥¥server01¥
¥¥

例7

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname ¥¥server01¥com
¥¥server01

例8

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname ¥¥
¥¥

例9

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname "C:¥Documents and Settings¥User01¥My Documents"
C:¥Documents and Settings¥User01

例10

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname C:file01.txt
C:

例11

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname C:¥file01.txt
C:¥

例12

C:¥TEMP>%ADSH_OSCMD_DIR%¥dirname file01.txt
.

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥> dirname /a/b /c/d
usage: dirname [string]

egrepコマンド（ファイル内の文字を検索する）

形式

egrep［-a］［-b］［-c］［-E］［-h］［-I］［-i］［-L］［-l］［-n］
     ［-q］［-R］［-r］［-s］［-U］［-v］［-w］［-x］
     ［-A 数値］ ［-B 数値］ ［-C［数値］］
     ［-e パターン］ ［-f パターンファイルパス名］ ［パターン］ ［パス名 ...］

機能

ファイルの中から指定されたパターンを検索します。検索するパターンは拡張された正規表現として扱います。egrepコマンドの動作は-Eオプションを指定したgrepコマンドと同じです。

引数

-a

すべてのファイルをASCIIテキストファイルとして扱います。

-b

それぞれ一致した行の先頭にバイト単位のオフセットを出力します。

-c

選択された行数だけ標準出力に出力します。

-E

拡張された正規表現としてパターンを扱います（デフォルト値）。

-h

次のどちらかの指定をする場合，各出力行の先頭にファイル名を付けないようにします。

-Rまたは-rオプションを指定する

複数の検索対象パス名を指定する

-I

バイナリファイルを無視します。

-i

大文字と小文字を区別しません。

-L

パターンを含まないファイルの名前だけを標準出力に出力します。-Lオプションと-lオプションは，最後に指定したオプションが有効となります。

-l

パターンを含むファイルの名前だけを標準出力に出力します。-Lオプションと-lオプションは，最後に指定したオプションが有効となります。

-n

各出力行にファイルの相対的な行番号を出力します。-cオプション，-Lオプション，-lオプション，および-qオプションを指定した場合は無視されます。

-q

標準出力には何も出力しません。終了コードだけを返します。

-R|-r

検索ディレクトリを再帰的に検索します。

なお，-Lオプション，-lオプション，および-qオプションを指定しない場合は，各出力行の先頭にファイル名が付けられます。

-s

読めないファイルや存在しないファイルは無視します。エラーメッセージを抑止します。

-U

バイナリファイルを検索します。ただし，出力はしません。

-v

パターンに一致しなかった行を出力します。

-w

指定文字列が単語として含まれている行を出力します。

単語とは英数字およびアンダースコア（_）から構成される文字列のことです。また，単語の前後はスペースなどの単語構成文字列以外の文字や，行頭または行末で区切られている必要があります。

-x

指定した文字列とファイルのすべての行を1行ごとに比較して完全に一致した場合に，一致した回数だけ指定した文字列を出力します。

-A 数値

数値で指定した行だけ，パターンにマッチした行のあとの行も出力します。

-B 数値

数値で指定した行だけ，パターンにマッチした行の前の行も出力します。

-C［数値］

数値で指定した行だけ，パターンにマッチした行の前後の行も表示します。数値を省略した場合，前後2行を表示します。この場合，「-A 2 -B 2」と指定したときと同じになります。

-Cオプションに数値を指定する場合は，-Cオプションと数値の間にスペースを入れないでください。

-e パターン

「-」で始まるパターンを指定するときに使用します。

-f パターンファイルパス名

検索するパターンを1行ごとにパターンファイルのパス名に指定します。パターンの指定がない場合はマッチしません。

［パターン］

検索するパターンを指定します。

［パス名 ...］

検索対象のパス名を指定します。複数指定ができます。パス名を指定しない場合は，検索対象の内容を標準入力から入力できます。ディレクトリ名の指定は，-Rオプションまたは-rオプションを指定した場合に有効です。

なお，-Lオプション，-lオプション，および-qオプションを指定しない場合は，各出力行の先頭にファイル名が付けられます。

終了コード

終了コード

意味

0

正常終了。

パターンを含む行が存在します。

-vが指定されている場合は，パターンを含まない行が存在します。

1

正常終了。

パターンを含む行が存在しません。

-vが指定されている場合は，パターンを含まない行が存在しません。

2以上

エラー終了

注意事項

Windowsの場合，シンボリックリンクのリンク先を出力しません。

ファイルの先頭から8,192バイト内に表示できる1バイト文字，スペース，タブ，バックスペースおよびマルチバイト文字以外のデータが含まれている場合は，バイナリファイルと見なされます。

Windowsのコマンドプロンプトから実行する場合，パターンをクォーテーションで囲むときは"（ダブルクォーテーション）を使用してください。

ロケールと異なる文字コードのファイルはバイナリファイルと見なされます。

Windowsの場合，ファイルおよび標準入力，標準出力をバイナリモードで入出力します。改行コードは変換しません。

正規表現で使用する次のメタキャラクタを検索する場合は，直前にエスケープ文字（¥）を指定します。

+，?，|，(，)，{，}

使用例

拡張された正規表現による検索の使用例を示します。オプションの使用例についてはgrepコマンドの使用例を参照してください。

拡張された正規表現を示す「|」を使用して，文字列「AB」と「AD」のどちらかを含む行を検索します。入力ファイルはfile01.txtです。

file01.txtの内容

AA
AB
AC
AD
AB|AD

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥egrep "AB|AD" file01.txt
AB
AD
AB|AD

文字列「AB|AD」を含む行を検索します。「|」は拡張された正規表現として扱われるため，「|」の直前にエスケープ文字（¥）を指定します。入力ファイルはfile01.txtです。

file01.txtの内容

AA
AB
AC
AD
AB|AD

コマンドの実行結果を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥egrep "AB¥|AD" file01.txt
AB|AD

expandコマンド（タブ文字をスペースに置き換える）

形式

expand［-タブリスト］［-t タブリスト］［パス名 ...］

機能

タブストップでそろえられている行をタブ文字からスペースに置き換えて標準出力に出力します。タブ文字の後ろにバックスペース文字が続いた場合，タブのカラム幅を減らして出力されます。

入力ファイル内の行は，改行文字で区切られたレコードを1つの行と見なします。Windowsでは［CR］+［LF］または［LF］が改行文字と見なされ，UNIXでは［LF］が改行文字と見なされます。なお，UNIXの場合，入力ファイルの各レコードが［CR］+［LF］で区切られていると，変換後の出力行には［CR］が含まれます。

引数

-タブリスト

「-t タブリスト」と動作は同じです。

また，「-タブリスト」と「-t タブリスト」は同時に指定でき，その場合は複数指定となります。

-t タブリスト

--tabs=タブリスト

タブストップの位置を1以上の整数で指定します。このオプションを指定しない場合，タブストップのデフォルト値である8が適用され，タブストップの位置を1つ指定した場合と同じになります。

タブリストにタブストップの位置を1つ指定する場合と，複数指定する場合の動作は次のとおりです。

タブストップの位置を1つ指定した場合

タブストップごとの文字間隔として使用します。

これによって，1つのタブストップに含まれるタブ文字をスペースへ置き換える際は，指定した文字間隔となるようスペースの数を調整されます。

タブストップの位置を複数指定した場合

タブストップのカラム位置として使用します。カラム位置は0から始まります。

タブストップの位置を複数指定する方法を次に示します。

タブリストに，コンマまたはスペースで区切ってタブストップの位置を複数指定する

スペースで区切る場合は，"（ダブルクォーテーション）で囲む必要があります。

これによって，タブストップに含まれるタブ文字をスペースへ置き換える際は，指定したカラム位置となるようスペースの数を調整されます。タブリストで指定された数以降のタブストップの設定が必要な場合は，スペース1つに置き換えられます。

タブリストにタブストップの位置を1つ指定し，オプションを複数指定する

上記の2つの指定方法を組み合わせて指定する

タブストップは，入力行ごとに最初の指定値から設定されます。タブストップの位置は引数全体で昇順となるよう指定してください。

パス名

タブ文字をスペースに置き換えるファイルのパス名を指定します。パス名を指定しないか「-」を指定した場合は，標準入力から入力します。

複数のファイルを指定し，ファイルのどれかでオープンに失敗した場合は， エラーメッセージを出力して継続します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

パス名にオープンできないファイルが存在しました。

2

エラー終了（終了コード1のケースを除く）

注意事項

expandコマンドはテキストファイルを対象としています。バイナリファイルから入力した場合や，バイナリデータに出力した場合は，動作を保証しません。

使用例

タブストップの位置を1つ指定する場合

タブストップを1つ指定した場合，タブストップごとの文字間隔として使用します。

例として，ファイル「file1」のタブストップに6を指定した例を次に示します。

ファイル「file1」の内容

次のファイル内容の「→」はタブ文字を示しています。

----+----+----+----+----+----+-----
a001 → a002 → a003
b001 → b002    →→    b003
c001 → c2   → c03

コマンド実行例

タブストップを6とし，ファイルfile1を指定しています。

$ expand -t 6 file1

実行結果

----+----+----+----+----+----+-----
a001  a002  a003
b001  b002        b003
c001  c2    c03

1行目は指定値6の間隔でタブストップが設定されています。

2行目のb002とb003の間はタブ文字が2つあるため，タブストップが2つ設定されています。

3行目は文字列数が異なるc001，c2，c03がタブストップ間隔6で設定されています。

タブストップの位置をタブリストで複数指定する場合

タブストップを複数指定した場合，指定した順にタブストップが設定されます。指定数を超えてタブストップの設定が必要な場合は，スペース1つと置き換えられます。

ファイル「file1」の内容

次のファイル内容の「→」はタブ文字を示しています。

----+----+----+----+----+----+-----
a001 → a002 → a003 → a004

コマンド実行例1

タブリストを6，16とし，ファイルfile1を指定しています。

$ expand -t 6,16 file1

実行結果1

----+----+----+----+----+----+-----
a001  a002      a003 a004

指定値の桁までスペースを設定して文字列を出力します。

1つ目の指定値は6のため，a001を出力して6桁までスペースを設定し，その後ろにa002を出力しています。

同様にa002を出力したあと，指定値である16桁までスペースを設定しa003を出力しています。

タブリストにはそれ以降の指定値がないため，a003とa004の間にはスペースを1つ置いてa004を出力しています。

コマンド実行例2

タブリストを2，16とし，ファイルfile1を指定しています。

$ expand -t "2 16" file1

実行結果2

----+----+----+----+----+----+-----
a001            a002 a003 a004

指定値1の値が2のため，a001を出力したあと2桁までスペースを設定しようとしますが，a001を出力した時点で2桁を超えています。そのため，指定値「2」は無視し，次の値である16桁までスペースを設定して，a002を出力しています。

タブリストにはそれ以降の指定値がないため，スペースを1つずつ設定して，その後ろの文字列を設定しています。

タブストップをオプションで複数指定する場合

［-t タブリスト］と［-タブリスト］を組み合わせたタブストップの複数指定には，幾つかの記述方法があります。次の指定例はタブストップを2と16で指定した場合の指定方法で，どの記述方法も同一です。

$ expand -t 2 -t 16 file1
$ expand -t 2 -16 file1
$ expand -2 -t 16 file1
$ expand -2 -16 file1
$ expand -t 2,16 file1
$ expand -2,16 file1

バックスペースを含んで入力する場合

タブ文字の後ろにバックスペース文字が続いた場合，タブのカラム幅を減算して出力されます。

ファイル「file1」の内容

次のファイル内容の「→」はタブ文字を示しています。

a003の直前にバックスペース文字（^H）が存在しています。

----+----+----+----+----+----+-----
a001 → a002 → ^Ha003→a004
b001 → b002 → b003 → b004

コマンド実行例

タブストップをデフォルトの8で実行します。

$ expand file1

実行結果

----+----+----+----+----+----+-----
a001    a002   a003     a004
b001    b002    b003    b004

a003の直前にバックスペース文字があるため，出力時に保存され，結果としてa003の出力桁は17桁ではなく16桁となります。

標準入力からの入力の場合

パス名を指定しないか「-」を指定する場合は，標準入力からの入力となります。

ファイル「file1」の内容

次のファイル内容の「→」はタブ文字を示しています。

----+----+----+----+----+----+-----
a001 → a002 → a003 → a004

コマンド実行例

file1を標準入力から入力しています。

$ expand < file1

または

$ expand - < file1

実行結果

----+----+----+----+----+----+-----
a001    a002    a003    a004

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥> expand -z
expand: illegal option -- z
usage: expand [-tablist] [-t tablist] [file ...]

exprコマンド（式を評価する）

形式

expr 式

機能

式を評価して，標準出力に結果を書き込みます。式の要素はすべて別々の引数として指定します。

式は，数値・文字列・変数・式およびそれらと演算子の組み合わせで指定します。式の評価は文字列および整数として保持します。

引数

式

評価する式を指定します。演算子を優先順位の低い順に次に示します。同じ優先順位の演算子は，｛ ｝で囲みコンマで区切って示します。引数が不正の場合，exprコマンドはエラーメッセージを出力して終了コード2を返します。expr1 とexpr2には式を指定します。

expr1| expr2

expr1の評価が空文字列およびゼロではない場合，expr1の評価を返します。expr1が空文字列およびゼロの場合は，expr2の評価を返します。expr2も空文字の場合は，空文字を返します。

expr1 & expr2

どちらの式の評価も空文字列またはゼロではない場合，expr1の評価を返します。それ以外の場合は，0を返します。

expr1 {=，>，>=，<，<=，!=} expr2

両方の式の評価が整数の場合は，整数を比較した結果を返します。それ以外の場合は，ロケールで定義した照合順序で文字列を比較した結果を返します。結果は，指定された関係が真の場合は1，偽の場合は0になります。

=：左辺の値と右辺の値が等しい

>：左辺の値が大きい

>=：左辺の値が大きいか右辺の値と等しい

<：左辺の値が小さい

<=：左辺の値が小さいか右辺の値と等しい

!=：左辺の値と右辺の値が等しくない

expr1 {+，-} expr2

両方の式の評価が整数値の場合，加算または減算の結果を返します。

整数値ではない場合，エラーメッセージ（expr: non-numeric argument）を出力します。

+：加算

-：減算

expr1 {*，/，%} expr2

両方の式の評価が整数値の場合，乗算，除算および剰余演算の結果を返します。整数値ではない場合，エラーメッセージ（expr: non-numeric argument）を出力します。除数がゼロの場合，エラーメッセージ（expr: division by zero）を出力します。

*：乗算

/：除算

%：剰余

expr1 : expr2

expr2がexpr1と一致するかどうかを評価します。

expr2は正規表現で指定します。正規表現には，「^」がストリングの先頭に付加されます。

expr2にタグ付き正規表現が指定されている場合，（expr2がexpr1と一致する場合）最初のタグ付き正規表現にマッチした文字列を返します。

expr2にタグ付き正規表現が指定されていない場合，（expr2がexpr1と一致する場合）一致した文字数を返します。

expr2がexpr1と一致しない場合，およびexpr2に正規表現が使用されている場合は空文字を返します。expr2に正規表現が使用されていない場合は，0を返します。

expr2の指定が空文字と一致する指定の場合，0を返します。そのため，expr1が空文字であることを判定する場合は，expr1とexpr2の両方に同じ文字を付与して評価させる必要があります。つまり，「expr '' : '$'」はエラーであり，「expr X'' : 'X$'」などのように使用する必要があります。

length 文字列

指定した文字列の長さを返します。環境変数ADSH_CMDEXPR_LENGTHについては「2.5　環境変数を設定する」を参照してください。

環境変数ADSH_CMDEXPR_LENGTH=bが設定されている場合，lengthは演算子と判断され，その後ろに続く文字列の長さ（バイト数）を返します。

環境変数ADSH_CMDEXPR_LENGTH=cが設定されている場合，lengthは演算子と判断され，その後ろに続く文字列の長さ（文字数）を返します。

環境変数ADSH_CMDEXPR_LENGTHが設定されていない，またはb，c以外の値を設定した場合は，lengthは演算子として扱われません。

また，length演算子には式を指定できます。式を指定する場合は，式全体を()（丸括弧）で囲む必要があります。

終了コード

終了コード

意味

0

正常終了。式は空文字列および0ではありません。

1

正常終了。式は空文字列または0です。

2

エラー終了。式は無効です。

3以上

エラー終了

メモリ不足などが発生しました。

注意事項

整数値は- 2147483648〜2147483647の範囲で保存します。それより大きな値を指定した場合は，32ビットの2進数であふれた桁は無視して取り出されます。

演算子および括弧に指定する文字は，シェルによって解釈される文字を含むため，適切にエスケープする必要があります。式全体をダブルクォーテーション（"）で囲むと文字列として解釈されるため，個々の演算子をダブルクォーテーション（"）で囲む必要があります。

このコマンドには指定可能なオプションが存在しません。そのため，引数にオプションを指定した場合，そのオプションを式として解釈します。

使用例

変数aと変数bの演算をします。

$ a=2
$ b=3
$ x=`expr ¥( $a + $b ¥) ¥* 10`
$ echo $?
0
$ echo $x
50
$

変数a | 変数bの評価をします。

$ a=""
$ b="abcdef"
$ expr "$a" ¥| "$b"
abcdef
$

パス名から拡張子を除いたファイル名を切り出します。

$ a='d:¥jp1as¥test.txt'
$ expr $a : '.*¥¥¥(.*¥)¥.'
test
$

変数に数字が含まれるかどうかを調べます。数字がない場合は0になります。

$ a='abcde12345kl'
$ b='abcdefg'
$ expr $a : '.*[0-9].*'
12
$ expr $b : '.*[0-9].*'
0
$

文字列「テスト文字列」の長さをバイト数で返します。

$ export ADSH_CMDEXPR_LENGTH=b
$ echo $LANG
ja_JP.UTF-8
$ expr length "テスト文字列"
18

文字列「テスト文字列」の長さを文字数で返します。

$ export ADSH_CMDEXPR_LENGTH=c
$ echo $LANG
ja_JP.UTF-8
$ expr length "テスト文字列"
6

文字列「teststring」の長さ（バイト数）に2を加算して返します。

$ export ADSH_CMDEXPR_LENGTH=b
$ echo $LANG
ja_JP.UTF-8
$ expr length teststring + 2
12

findコマンド（ディレクトリ内のファイルを検索する）

形式

find［-d］［-H］［-h］［-L］ パス名［...］［検索式］

機能

検索を開始するパスをパス名に指定し，ディレクトリ階層をたどって，ファイルを検索します。検索の条件および検索したファイルの扱いを，検索式に指定できます。

引数

オプション，検索を開始するパス名および検索式を指定します。検索を開始するパス名は，findコマンドの引数のパス名で指定します。

オプションはハイフン（-）と共に1文字のオプション名を指定します。

-d

ディレクトリ内のファイルを階層の深いディレクトリから先に検索します。

-H

UNIXの場合，引数として指定したパス名がシンボリックリンクだった場合，リンク先が指定されたものとして処理します。リンク先が存在しない場合は，シンボリックリンクが指定されたとして処理します。検索中に遭遇したシンボリックリンクはリンク先を参照しません。-Hオプション，-hオプションおよび-Lオプションは，最後に指定したオプションが有効となります。

Windowsの場合，-Hオプションを指定しても無視されます。

-h

UNIXの場合，シンボリックリンクは，すべてリンク先を参照して処理を継続します。リンク先が存在しない場合は，シンボリックリンクが指定されたとして処理します。-Hオプション，-hオプションおよび-Lオプションは，最後に指定したオプションが有効となります。

Windowsの場合，-hオプションを指定しても無視されます。

-L

UNIXの場合，シンボリックリンクは，すべてリンク先を参照して処理を継続します。リンク先が存在しない場合は，シンボリックリンクが指定されたとして処理します。-Hオプション，-hオプションおよび-Lオプションは，最後に指定したオプションが有効となります。

Windowsの場合，-Lオプションを指定しても無視されます。

パス名

パス名を指定します。

検索式

検索式（expression）は，プライマリおよび演算子を指定します。

プライマリ

-amin 時間差

UNIXの場合，ファイルおよびディレクトリの最終アクセス日時と，findが実行を開始した日時の差が，ここで指定された時間差（単位：分）のときは真です。日時の差は，1分未満は切り上げます。

時間差は，符号を指定しないか，+または-の符号を付けた数値を指定することで，次のように扱われます。

符号を指定しない場合：指定した時間差

+を前置した場合：指定値より大きい

-を前置した場合：指定値より小さい

時間差の範囲は2147483647（0x7fffffff）までで，それ以上を指定しても2147483647となります。

時間差に数値以外を指定した場合，エラーメッセージ（find: プライマリ: 指定した文字列: illegal numeric value）を出力します。

時間差を指定しなかった場合，エラーメッセージ（find: プライマリ: requires additional arguments）を出力します。

Windowsの場合，指定するとエラーとなります。

-anewer パス名

UNIXの場合，ファイルおよびディレクトリの最終アクセス日時がパス名より新しい場合は真です。

Windowsの場合，指定するとエラーとなります。

-atime 時間差

UNIXの場合，ファイルおよびディレクトリの最終アクセス日時と，findが実行を開始した日時の差がここで指定された時間差（単位：日）のときは真です。日時の差は，1日未満は切り上げます。

時間差は符号を指定しないか，+または-の符号を付けた数値を指定することで，次のように扱われます。

符号を指定しない場合：指定した時間差

+を前置した場合：指定値より大きい

-を前置した場合：指定値より小さい

時間差の範囲は2147483647（0x7fffffff）までで，それ以上を指定しても2147483647となります。

時間差に数値以外を指定した場合，エラーメッセージ（find: プライマリ: 指定した文字列: illegal numeric value）を出力します。

時間差を指定しなかった場合，エラーメッセージ（find: プライマリ: requires additional arguments）を出力します。

Windowsの場合，指定するとエラーとなります。

-cmin 時間差

UNIXの場合，ファイル情報の最終変更日時（書き込みが発生した，所有者，グループ，リンク数やモードなどが変更された日時）と，findが実行を開始した日時の差が，ここで指定された時間差（単位：分）のときは真です。日時の差は，1分未満は切り上げます。

時間差は符号を指定しないか，+または-の符号を付けた数値を指定することで，次のように扱われます。

符号を指定しない場合：指定した時間差

+を前置した場合：指定値より大きい

-を前置した場合：指定値より小さい

nの範囲は2147483647（0x7fffffff）までで，それ以上を指定しても2147483647となります。

時間差に数値以外を指定した場合，エラーメッセージ（find: プライマリ: 指定した文字列: illegal numeric value）を出力します。

時間差を指定しなかった場合，エラーメッセージ（find: プライマリ: requires additional arguments）を出力します。

Windowsの場合，指定するとエラーとなります。

-cnewer パス名

UNIXの場合，ファイル情報の最終変更日時（書き込みが発生した，所有者，グループ，リンク数およびモードなどが最後に変更された日時）が，パス名で指定されたファイルより新しい場合は真です。

Windowsの場合，指定するとエラーとなります。

-ctime 時間差

UNIXの場合，ファイル情報の最終変更日時（書き込みが発生した，所有者，グループ，リンク数およびモードなどが最後に変更された日時）と，findが実行を開始した日時の差がここで指定された時間差（単位：日）のときは真です。日時の差は，1日未満は切り上げます。

時間差は符号を指定しないか，+または-の符号を付けた数値を指定することで，次のように扱われます。

符号を指定しない場合：指定した時間差

+を前置した場合：指定値より大きい

-を前置した場合：指定値より小さい

時間差の範囲は2147483647（0x7fffffff）までで，それ以上を指定しても2147483647となります。

時間差に数値以外を指定した場合，エラーメッセージ（find: プライマリ: 指定した文字列: illegal numeric value）を出力します。

時間差を指定しなかった場合，エラーメッセージ（find: プライマリ: requires additional arguments）を出力します。

Windowsの場合，指定するとエラーとなります。

-depth

階層の深いディレクトリから検索します。ディレクトリ内のファイルを先に処理します。常に真です。

-empty

ファイルやディレクトリが空の場合は真です。

-exec コマンドライン ;

検索したファイルおよびディレクトリに対して処理をするコマンドラインを指定します。

findコマンドを実行するシェルによっては，*，;（セミコロン）などの文字が展開されるため，"（ダブルクォーテーション）または'（シングルクォーテーション）で囲むか，エスケープ文字（¥）を使用する必要があります。

コマンドラインは;（セミコロン）で区切ります。

コマンドラインで指定したプログラムは，findが起動されたディレクトリをカレントディレクトリとして起動します。

コマンドラインに{ }を指定すると，検索したファイルまたはディレクトリのパス名に置き換わります。パス名は，検索を開始するパスを絶対パスで指定した場合は絶対パスに，検索を開始するパスを相対パスで指定した場合は相対パスになります。

コマンドラインで指定したプログラムが終了コード0で終了した場合，真です。

-follow

常に真です。

UNIXの場合，シンボリックリンクは，すべてリンク先を参照して処理を継続します。リンク先が存在しない場合は，シンボリックリンクが指定されたとして処理します。

-group グループ名

Windowsの場合，常に偽となります。

UNIXの場合，ファイルの属するグループがグループ名の場合は真です。グループ名が数字で，そのグループ名が存在しないときは，グループIDと解釈します。

-iname パターン

-nameオプションの説明を参照してください。ただし，英大文字と英小文字を区別しません。

-inum 番号

Windowsの場合，常に偽となります。

UNIXの場合，ファイルのinode番号が指定した番号のときは真です。

番号は符号を指定しないか，+または-の符号を付けた数値を指定します。符号を指定しない場合は指定値を，+を前置した場合は指定値より大きい，-を前置した場合は指定値より小さいとして扱います。番号の範囲は2147483647（0x7fffffff）までで，それ以上を指定しても2147483647となります。

番号に数値以外を指定した場合，エラーメッセージ（find: プライマリ: 指定した文字列: illegal numeric value）を出力します。

番号を指定しなかった場合，エラーメッセージ（find: プライマリ: requires additional arguments）を出力します。

-links リンク数

Windowsの場合，常に偽となります。

UNIXの場合，ファイルのリンク数が指定したリンク数のときは真です。

リンク数は符号を指定しないか，+または-の符号を付けた数値を指定します。符号を指定しない場合は指定値を，+を前置した場合は指定値より大きい，-を前置した場合は指定値より小さいとして扱います。リンク数の範囲は2147483647（0x7fffffff）までで，それ以上を指定しても2147483647となります。

リンク数に数値以外を指定した場合，エラーメッセージ（find: プライマリ: 指定した文字列: illegal numeric value）を出力します。

リンク数を指定しなかった場合，エラーメッセージ（find: プライマリ: requires additional arguments）を出力します。

-ls

Windowsの場合は，ファイルパーミッション，所有者名，サイズ（バイト単位），最終修正日時およびパス名を標準出力に出力します。常に真です。

UNIXの場合，inode番号，サイズ（512バイト単位），ファイルパーミッション，ハードリンク数，所有者名，グループ，サイズ（バイト単位），最終修正日時およびパス名を標準出力に出力します。常に真です。ファイルがスペシャルファイルの場合は，サイズ（バイト単位）の代わりにメジャー番号およびマイナー番号を表示します。ファイルがシンボリックリンクの場合は，リンク先のパス名が「->」のあとに表示されます。

-maxdepth 深さ

現在検索しているディレクトリの深さが，指定した深さより小さいまたは同じ場合には真です。最初に指定したディレクトリの深さは1です。

深さの指定範囲は，0から32767までです。0を指定すると，検索対象ディレクトリだけ（ディレクトリに格納されているファイルは対象外）となります。

指定できる値より大きい値を指定するとエラーとなります（find: 指定値: maxdepth value too large）。

深さに数値以外を指定した場合，エラーメッセージ（find: 指定した文字列: プライマリ: value invalid）を出力します。

深さを指定しなかった場合，エラーメッセージ（find: プライマリ: requires additional arguments）を出力します。

-mindepth 深さ

現在検索しているディレクトリの深さが指定した深さ以上の場合には真です。

深さの指定範囲は，0から32767までです。

指定できる値より大きい値を指定してもエラーになりません。

深さに数値以外を指定した場合，0が指定されたことになります。

深さを指定しなかった場合，エラーメッセージ（find: プライマリ: requires additional arguments）を出力します。

-mmin 時間差

ファイルおよびディレクトリの最終修正日時と，findが実行を開始した日時の差が時間差で指定された分のときは真です。日時の差は，1分未満は切り上げます。

時間差は符号を指定しないか，+または-の符号を付けた数値を指定します。符号を指定しない場合は指定値を，+を前置した場合は指定値より大きい，-を前置した場合は指定値より小さいとして扱います。時間差の範囲は2147483647（0x7fffffff）までで，それ以上を指定しても2147483647となります。

時間差に数値以外を指定した場合，エラーメッセージ（find: プライマリ: 指定した文字列: illegal numeric value）を出力します。

時間差を指定しなかった場合，エラーメッセージ（find: プライマリ: requires additional arguments）を出力します。

-mtime 時間差

ファイルおよびディレクトリの最終修正日時と，findが実行を開始した日時の差が時間差で指定された日のときは真です。日時の差は，1日未満は切り上げます。

時間差は符号を指定しないか，+または-の符号を付けた数値を指定します。符号を指定しない場合は指定値を，+を前置した場合は指定値より大きい，-を前置した場合は指定値より小さいとして扱います。時間差の範囲は2147483647（0x7fffffff）までで，それ以上を指定しても2147483647となります。

時間差に数値以外を指定した場合，エラーメッセージ（find: プライマリ: 指定した文字列: illegal numeric value）を出力します。

時間差を指定しなかった場合，エラーメッセージ（find: プライマリ: requires additional arguments）を出力します。

-mount

常に真です。UNIXの場合，検索を開始したディレクトリのデバイス番号と異なるディレクトリは，検索しないようにします。

-name パターン

検索するファイル名またはディレクトリ名をパターンで指定します。検索したファイル名またはディレクトリ名がパターンに一致する場合は真です。

パターンは，文字とワイルドカードの組み合わせで指定します。ワイルドカードで使用する文字を指定するために，エスケープ文字（¥）を使用できます。また，ワイルドカードで使用する文字以外もエスケープ文字（¥）を使用できます。この場合，そのまま¥が無視されたように見えます。

ワイルドカードとして使用できる文字を次の表に示します。

ワイルドカード

意味

?

任意の1文字に合致します。

*

0文字以上の文字列に合致します。

[…]

[ ]に囲まれた文字列のどれか1文字に合致します。[ ]に囲まれた文字列の先頭に!または^を付けた場合，[ ]に囲まれていない文字に合致します。-（ハイフン）で区切るとハイフンで区切られた，間にある任意の文字（その2文字も含む）に合致します。

ワイルドカード[ ]の記述例を次の表に示します。

記述例

意味

[!abc]

a，b，cの3つを除く文字と合致します。

[0-9]

0から9までのどれかに合致します。

[a-z]

英小文字に合致します。

[A-Z]

英大文字に合致します。

[0-9a-zA-Z]

英数字に合致します。

-newer パス名

現在のファイルおよびディレクトリが，パス名の最終修正日時より新しい場合は真です。

-nogroup

Windowsの場合，常に偽となります。

UNIXの場合，現在のファイルが，存在しないグループに属している場合に真です。

-nouser

Windowsの場合，常に偽となります。

UNIXの場合，現在のファイルの所有者が存在していないユーザーの場合に真です。

-ok コマンドライン ;

検索したファイルおよびディレクトリに対して処理をするコマンドラインを指定します。

findコマンドを実行するシェルによっては，*，;（セミコロン）などの文字が展開されるため，"（ダブルクォーテーション）または'（シングルクォーテーション）で囲むか，エスケープ文字（¥）を使用する必要があります。

コマンドラインは;（セミコロン）で区切ります。

コマンドラインで指定したプログラムは，findが起動されたディレクトリをカレントディレクトリとして起動します。起動する前に，ユーザーに応答を求めます。標準入力からyが入力されない場合，コマンドラインを実行しないで，偽を返します。

コマンドラインに{ }を指定すると，検索したファイルまたはディレクトリのパス名に置き換わります。パス名は，検索を開始するパス名を絶対パスで指定した場合は絶対パスに，検索を開始するパスを相対パスで指定した場合は相対パスになります。

コマンドラインで指定したプログラムが終了コード0で終了した場合，真です。

-path パターン

検索するファイル名またはディレクトリ名のパス名をパターンで指定します。検索したファイルまたはディレクトリのパス名がパターンに一致する場合は真です。

パターンには，指定した文字とワイルドカードの組み合わせで指定します。ワイルドカードで使用する文字そのものを指定するために，エスケープ文字（¥）を使用できます。ワイルドカードで使用する文字以外に使用した場合，¥が無視されたように見えます。

パターンの指定の詳細は，-name パターンの説明を参照してください。

-perm [-]パーミッション

UNIXの場合，パーミッションを8進数の数値またはシンボルで指定します。Windowsでこの引数を指定するとエラー（find: -perm: unknown option）になります。

パーミッションをハイフン（-）に続いて指定した場合，ファイルまたはディレクトリのモードのうちパーミッションで指定された値が設定されていると真になります。ハイフンが指定されない場合は，パーミッションとファイルのモードが完全に一致したときに真になります。

パーミッションを数値で指定した場合，8進数以外または8進数の07777（10進数の4095）より大きな値を指定するとエラーとなります。

パーミッションをシンボルで指定した場合，何も指定されていない状態（数値表現での0）に対して設定，追加および削除をします。1つまたは複数のシンボルで指定された結果が検索に使用されます。

シンボルは3つの部分から構成されます。次に示すシンボルを1つまたは複数指定します。複数指定する場合は，コンマ（,）でシンボル間を区切ります。

シンボル内の順序

指定できる値

1つ目

アクセス権を設定する項目を指定します。複数同時に指定できます。

指定できる項目を次に示します。省略するとすべてのユーザーが仮定されます。

u：所有者

g：グループ

o：その他

a：全ユーザー

2つ目

モードに対する操作を指定します。1つ目のシンボルで指定した項目に対して次の処理をします。

=：アクセス権の設定（上書き）

+：アクセス権の追加

-：アクセス権の削除

設定，追加および削除する値は，3つ目のシンボルで指定します。

3つ目のシンボルに続いて2つ目および3つ目のシンボルを記述できます。3つ目のシンボルは省略できます。

3つ目

設定するアクセス権を指定します。複数同時に指定できます。指定できる値を次に示します。

r：読み取り

w：書き込み

x：実行

s：実行時にユーザーまたはグループIDを設定する

t：スティッキービット

u：モードに現在設定されている所有者のアクセス権

g：モードに現在設定されているグループのアクセス権

o：モードに現在設定されているその他のアクセス権

省略するとアクセス権を設定する項目を消去します。消去した値を2つ目のシンボルに従って設定，追加および削除します。追加および削除だけでは値は変化しません。

sとtの指定は，1つ目でoだけを指定した場合には無視されます。

シンボルの指定例を次の表に示します。

-permの指定値

同等の数値指定

説明

u=x,g=w

120

uに対してxを設定し，gに対してwを設定しています。

u=x,g=u

110

uに対してxを設定し，gに対してuと同じ値を設定しています。

u=x,=u

111

uに対してxを設定し，そのあとa（省略値）にuと同じ値を設定しています。

u=x,u=w

200

uに対してxを設定し，その後uに対してwを設定（上書き）しています。

u=x,u+w

300

uに対してxを設定し，その後uに対してwを追加しています。

ug=x

110

uとgに対してxを設定しています。

u=rw

600

uに対してrおよびwを設定しています。

u=r+x

500

uに対してrを設定し，xを追加しています。

u=r=w

200

uに対してrを設定し，さらにwを設定（上書き）しています。

=x,u=

011

a（省略値）にxを設定し，uの設定を消去しています。

=

000

a（省略値）を消去しています。

-print

検索したファイルまたはディレクトリのパス名を標準出力に出力して改行します。常に真です。

-print0

検索したファイルまたはディレクトリのパス名とNULL（'¥0'）を標準出力に出力します。常に真です。

-prune

検索中に遭遇したディレクトリはたどらないようにします。常に真です。-dオプションが指定されている場合は無効となります。

-size サイズ［c］

ファイルのサイズが，指定したサイズブロック（512バイト単位に切り上げ）の場合は真です。サイズのあとにcを指定するとバイト単位で評価します。

サイズは符号を指定しないか，+または-の符号を付けた数値を指定することで，次のように扱われます。

符号を指定しない場合：指定した時間差

+を前置した場合：指定値より大きい

-を前置した場合：指定値より小さい

nの範囲は9223372036854775807（0x7fffffffffffffff）までで，それ以上を指定しても9223372036854775807となります。

サイズに数値以外を指定した場合，エラーメッセージ（find: プライマリ: 指定した文字列: illegal numeric value）を出力します。

サイズを指定しなかった場合，エラーメッセージ（find: プライマリ: requires additional arguments）を出力します。

-type タイプ

現在のファイルのタイプが指定したタイプと等しい場合は真です。タイプを次に示します。次のタイプ以外を指定した場合は，エラーメッセージ（find: -type: 指定した値: unknown type）が出力されます。

b：ブロック型スペシャルファイル（Windowsでは指定できません）

c：キャラクタ型スペシャルファイル（Windowsでは指定できません）

d：ディレクトリ

f：通常ファイル

l：シンボリックリンク（Windowsでは指定できません）

p：FIFO（Windowsでは指定できません）

s：ソケット（Windowsでは指定できません）

-user ユーザー名

Windowsの場合，ファイルの所有者がユーザー名のときは真です。

UNIXの場合，ファイルの所有者がユーザー名のときは真です。ユーザー名に数値を指定し，その所有者名が存在しないときはユーザーIDとして評価します。

-xdev

常に真です。UNIXの場合，検索を開始したディレクトリのデバイス番号と異なるディレクトリは，検索しないようにします。

演算子

プライマリは次の演算子と共に使用できます。優先度の高い順に示します。

( 検索式 )

括弧演算子内の検索式が条件を満たす場合，真です。

! 検索式

!演算子に続く検索式が条件を満たす場合，偽です。

検索式 -and 検索式|検索式 -a 検索式|検索式 検索式

検索式を-and演算子もしくは-a演算子で接続する，または検索式を2つ並べると論理積となります。2つの検索式が真の場合，真です。最初の検索式が偽の場合，2つ目の検索式は評価されません。

検索式 -or 検索式|検索式 -o 検索式

検索式を-or演算子または-o演算子で接続すると論理和になります。どちらかの検索式が真の場合，真です。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

findを実行するシェルによっては，セミコロンや括弧などにエスケープ文字（¥）を使用するか，シングルクォーテーション（'）またはダブルクォーテーション（"）で囲む必要があります。

検索したファイルやディレクトリの出力順序は，OSやファイルシステムによって異なります。そのため，複数プラットフォームでの動作の一貫性を期待する場合は，出力結果をsortする必要があります。

Windowsの場合，-execプライマリなどで生成したプロセスにファイルディスクリプタが引き継がれないで，クローズされた状態になります。例えば，親プロセスがオープンしていたファイルディスクリプタに対して再度オープンしないで入出力を行おうとするとエラーになります。ただし，標準入力，標準出力および標準エラー出力は再度オープンされた状態になります。

Windowsの場合，-execオプションに指定したプログラム名にパスが含まれていないときは，プログラムを実行するWindows APIのパス検索順序で見つかったプログラムが実行されます。

使用例

「.c」で終わる名称のファイルやディレクトリを表示します。

$ find . -name '*.c'
./test/a.c
./test/b.c
./test/c.c
./test/abc.c
$

ファイルtttより古い，または所有者がrootではないファイルやディレクトリを表示します。

$ ls -l
合計 0
-rw-rw-r-- 1 user1 group1 0 10月  7 10:12 a.c
-rw-rw-r-- 1 root  group1 0 10月  7 10:12 abc.c
-rw-rw-r-- 1 user1 group1 0 10月  7 10:12 b.c
-rw-rw-r-- 1 user1 group1 0 10月  7 10:10 c.c
-rw-rw-r-- 1 user1 group1 0 10月  7 10:11 ttt
$ find . ¥! ¥( -newer ttt -user root ¥)
.
./ttt
./b.c
./a.c
./c.c
$

カレントディレクトリの下にある，ファイル名がドット(.)と1桁の数字で終わるファイルを表示します。ただし，command1ディレクトリはスキップします。

$ ls command1 command2
command1:
a1.txt  b1.txt  command1  command1.1  command1.c  command1.o  extern.h  obj

command2:
a2.txt  b2.txt  command2  command2.1  command2.c  command2.o  extern.h  obj
$ find . ! -path './command1/*' -name '*.[0-9]'
./command2/command2.1
$

カレントディレクトリの下にある，すべての*.oファイルを削除します。

$ ls command1 command2
command1:
a1.txt  b1.txt  command1  command1.1  command1.c  command1.o  extern.h  obj

command2:
a2.txt  b2.txt  command2  command2.1  command2.c  command2.o  extern.h  obj
$ find . -name '*.o' -exec rm {} ¥;
$ ls command1 command2
command1:
a1.txt  b1.txt  command1  command1.1  command1.c  extern.h  obj

command2:
a2.txt  b2.txt  command2  command2.1  command2.c  extern.h  obj
$

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥find -w
find: illegal option -- w
usage: find [-dHhL] path ... [expression]

getoptコマンド（コマンドラインのオプションを解析する）

形式1

getopt 解析するオプション 解析される引数

形式2

getopt [オプション] [--] 解析するオプション 解析される引数

形式3

getopt [オプション] -o 解析するショートオプション名 [オプション] [--] 解析される引数

機能

解析される引数に指定されたコマンドラインを解析するオプションの指定内容で解析し，結果を標準出力に出力します。ショートオプション，ロングオプションとも解析できます。これによって，シェルスクリプトでの構文解析が容易になります。

次のどちらかで指定された場合は，形式1で指定されていると判定されます。

引数の最初のパラメーターが「-」で始まっていない場合

環境変数GETOPT_COMPATIBLEが設定されている場合

これ以外の場合は，-oオプションの指定があれば形式3，指定がなければ形式2で指定されていると判定されます。

引数

解析するオプション

解析するオプションの文字列を指定します。

ショートオプションを指定する場合は次の点に注意してください。

ショートオプションの先頭が「-」の場合，オペランドは出現個所で出力されます。ショートオプションの先頭が「+」の場合，オプションはオペランドの前に指定必須となります。

ただし，形式1では先頭にある「-」「+」は無視されます。

ショートオプションの先頭（「-」「+」の場合はその次の文字）が「:」の場合，解析される引数のオプションが，解析するオプションに指定されていなくてもエラーメッセージは出力されませんが，終了コードはエラーとなります。解析される引数は継続して解析されます。

なお，オプション文字またはオプション名の後ろに「:」または「::」を指定すると，次の内容を定義できます。

オプション文字またはオプション名の後ろに「:」を指定した場合

オプション値が必須なオプションであることを示します。

この場合，解析される引数には，オプション名とオプション値を次の書式で指定します。

ショートオプション名とオプション値を続けて指定します。

$ getopt "xy:z" -yarg

-y arg --

ショートオプション名とオプション値の間にスペースを入れて指定します。

$ getopt "xy:z" -y arg

-y arg --

ロングオプション名とオプション値の間にスペースを入れて指定します。

$ getopt -o "abc" -l xyz: -- --xyz nml

--xyz 'nml' --

「ロングオプション名=オプション値」の形式で指定します。

$ getopt -o "abc" -l xyz: -- --xyz=nml

--xyz 'nml' --

オプション文字またはオプション名の後ろに「::」を指定した場合

オプション値の指定が任意のオプションであることを示します。引数を指定する場合は，オプション文字またはオプション名の直後に指定する必要があります。

この場合，解析される引数には，オプション名とオプション値を次の書式で指定します。

ショートオプションの場合

オプション名とオプション値を続けて指定します。

ロングオプションの場合

「ロングオプション名=オプション値」の形式で指定します。

解析される引数

解析される引数として，オプション名，オプション値，オペランドを指定します。オプションの指定については，「8.1　コマンドの記述形式」を参照してください。

オプションの指定方法

ショートオプションの場合は「-」の後ろにショートオプション名を指定し，ロングオプションの場合は「--」の後ろにロングオプション名を指定します。「--」の後ろにロングオプション名が続かない場合は，その個所でオプションの解析を終了し，以降のパラメーターをオペランドと判断します。

ロングオプション名は短縮して指定できます。その場合，出力結果にはロングオプションの完全名が出力されます。例を次に示します。

$ getopt -o "" -l "longZ" -- --lo
 --longZ --

短縮指定の場合はほかのオプションと区別できるように指定してください。あいまいな指定をすると，解析するオプションで先に定義したオプション名と判断されます。

オプションとオペランドの指定順

デフォルトではオプションとオペランドの指定順に決まりはなく，オペランドの後ろに指定したオプションも解析されます。なお，次の環境変数を設定すると，オプションの指定順を設定できます。

環境変数ADSH_CMD_ARGORDERによるオプション指定順の設定

環境変数ADSH_CMD_ARGORDERを設定すると，解析される引数に指定するオプションは，オペランドの前での指定が必須となります。

環境変数POSIXLY_CORRECTによるオプション指定順の設定

環境変数POSIXLY_CORRECTを設定すると，解析される引数に指定するオプションは，オペランドの前での指定が必須となります。

環境変数ADSH_CMD_ARGORDERに記述したコマンドのほかに，Linux版のコマンドでも有効となります。

オプション

形式2と形式3では次のオプションを指定できます。

-l ロングオプション名

-longoptions=ロングオプション名

解析するロングオプションを指定します。

オプションを複数指定する場合は，「,」（コンマ）またはスペースで区切って一度に指定するか，このオプションで複数回指定します。

-n プログラム名

--name=プログラム名

オプション解析のエラーメッセージで出力するコマンド名を「getopt」からここで指定したプログラム名へ変更します。

-q

--quiet

解析される引数のオプション解析のエラーメッセージを抑止します。

-Q

--quiet-output

解析結果の出力を抑止します。

-u

--unquoted

形式2，形式3の解析結果のオプション値とオペランドをクォーテーションで囲まないようにします。

-o 解析するショートオプション名

--options=ショートオプション名

解析するショートオプションを指定します。

複数回指定した場合，最後に指定した値が有効になります。

ショートオプションに「W;」を指定し，解析される引数に「-W」指定のロングオプション名を指定した場合，ロングオプション名として解釈されます。

解析結果の出力

解析結果は，オプション名，オプション値，オペランドに分類され，標準出力に出力されます。

形式2または形式3で指定した場合は，オプション値およびオペランドはシングルクォーテーションで囲まれます。-uを指定した場合は囲まれません。

ショートオプションの場合は「-」とオプション名，ロングオプションの場合は「--」と完全なオプション名が，1つのオプションとして出力されます。

オプション（オプション名・オプション値）とオペランドの間には，区切りとして「--」が出力されます。ただし，ショートオプションの先頭に「-」を指定した場合はこの限りではありません。

オプション解析でエラーが発生しても処理を継続し，後続のパラメーターのオプションを解析します。例を次に示します。

$ getopt "xyz" -w -x
getopt: invalid option -- w
 -x --

終了コード

終了コード

意味

0

正常終了

1

エラー終了

解析される引数に指定したオプションが，解析するオプションに定義されていません。

2

エラー終了

getoptコマンドのオプションが不正です。

3

エラー終了

終了コード1，2以外のエラーです。

使用例

コマンドを形式1で実行する例を示します。

$ getopt "xy:z" -z -y arg1 arg2
 -z -y arg1 -- arg2

コマンドを形式2で実行する例を示します。

$ getopt -q "xy:z" -z -y arg1 arg2
 -z -y 'arg1' -- 'arg2'

コマンドを形式3で実行する例を示します。

$ getopt -o "xy:z" -- -z -y arg1 arg2
 -z -y 'arg1' -- 'arg2'

解析結果を位置パラメーターに設定する例を示します。

実行ファイル

OPT=`getopt -o abc:d: -- -a -b`
eval set -- "$OPT"
echo $1
echo $2
echo $3

実行結果

-a
-b
--

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥> getopt -z
getopt: illegal option -- z
usage: getopt optstring parameters
       getopt [options] [--] optstring parameters
       getopt [options] -o optstring [options] [--] parameters

grepコマンド（ファイル内の文字を検索する）

形式

grep［-a］［-b］［-c］［-E］［-G］［-h］［-I］［-i］［-L］［-l］［-n］
    ［-q］［-R］［-r］［-s］［-U］［-v］［-w］［-x］
    ［-A 数値］［-B 数値］［-C［数値］］
    ［-e パターン］［-f パターンファイルパス名］［パターン］［パス名 ...］

機能

ファイル内の文字（指定したパターン）を検索します。

引数

-a

すべてのファイルをASCIIテキストファイルとして扱います。

-b

それぞれ一致した行の先頭にバイト単位のオフセットを出力します。

-c

選択された行数だけ標準出力に出力します。

-E

拡張された正規表現としてパターンを扱います。-Eオプションおよび-Gオプションは最後に指定したオプションが有効となります。

-G

パターンを正規表現として扱います。デフォルト値です。-Eオプションおよび-Gオプションは最後に指定したオプションが有効となります。

-h

次のどちらかの指定をする場合，各出力行の先頭にファイル名を付けないようにします。

-Rまたは-rオプションを指定する

複数の検索対象パス名を指定する

-I

バイナリファイルを無視します。

-i

大文字と小文字を区別しません。

-L

パターンを含まないファイルの名前だけを標準出力に出力します。-Lオプションおよび-lオプションは，最後に指定したオプションが有効となります。

-l

パターンを含むファイルの名前だけを標準出力に出力します。-Lオプションおよび-lオプションは，最後に指定したオプションが有効となります。

-n

各出力行にファイルの相対的な行番号を表示します。-cオプション，-Lオプション，-lオプションおよび-qオプションを指定した場合は無視されます。

-q

標準出力には何も出力しません。

-R|-r

検索ディレクトリを再帰的に検索します。

なお，-Lオプション，-lオプション，および-qオプションを指定しない場合は，各出力行の先頭にファイル名が付けられます。

-s

読めないファイルや存在しないファイルは無視します。エラーメッセージを抑止します。

-U

バイナリファイルを検索します。ただし，出力はしません。

-v

パターンに一致しなかった行を出力します。

-w

指定文字列が単語として含まれている行を出力します。

単語とは英数字およびアンダースコア（_）から構成される文字列のことです。また，単語の前後はスペースなどの単語構成文字列以外の文字や，行頭または行末で区切られている必要があります。

-x

指定した文字列とファイルのすべての行を1行ごとに比較して完全に一致した場合に，一致した回数だけ指定した文字列を出力します。

-A 数値

数値で指定した行だけ，パターンにマッチした行のあとの行も出力します。

-B 数値

数値で指定した行だけ，パターンにマッチした行の前の行も出力します。

-C［数値］

数値で指定した行だけ，パターンにマッチした行の前後の行も出力します。数値を省略した場合，前後2行を表示します。この場合，「-A 2 -B 2」と指定したときと同じになります。

-Cオプションに数値を指定する場合は，-Cオプションと数値の間にスペースを入れないでください。

-e パターン

「-」で始まるパターンを指定するときに使用します。

-f パターンファイルパス名

検索するパターンを1行ごとにパターンファイルのパス名に指定します。パターンの指定がない場合はマッチしません。

［パターン］

検索するパターンを指定します。

［パス名 ...］

検索対象のパス名を指定します。複数指定ができます。パス名を指定しない場合は，検索対象の内容を標準入力から入力できます。ディレクトリ名の指定は，-Rオプションまたは-rオプションを指定した場合に有効です。

なお，-Lオプション，-lオプション，および-qオプションを指定しない場合は，各出力行の先頭にファイル名が付けられます。

終了コード

終了コード

意味

0

正常終了。

パターンを含む行が存在します。

-vが指定されている場合は，パターンを含まない行が存在します。

1

正常終了。

パターンを含む行が存在しません。

-vが指定されている場合は，パターンを含まない行が存在しません。

2以上

エラー終了

注意事項

Windowsの場合，シンボリックリンクのリンク先を出力しません。

ファイルの先頭から8,192バイト内に表示できる1バイト文字，スペース，タブ，バックスペースおよびマルチバイト文字以外のデータが含まれている場合は，バイナリファイルと見なされます。

Windowsのコマンドプロンプトから実行する場合，パターンをクォーテーションで囲むときは"（ダブルクォーテーション）を使用してください。

ロケールと異なる文字コードのファイルはバイナリファイルと見なされます。

Windowsの場合，ファイルおよび標準入力，標準出力をバイナリモードで入出力します。改行コードは変換しません。

使用例

オプションを指定しない場合のデフォルトを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep ABCD test1.txt
ABCDEFGHIJKLMNOPQRSTUVWXYZ
77777777[ABCD]ccccccccc
555555555:ABCD:111111111
ABCD
ABCD_XYZ
0000<ABCD>0000
/* ABCD */

複数ファイルを指定して，オプションを指定しない場合のデフォルトを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep ABCD_ test1.txt test2.txt test3.txt test4.txt
test1.txt:ABCD_XYZ
test2.txt:ABCD_XYZ
test3.txt:ABCD_XYZ
test4.txt:ABCD_XYZ

-hオプションを指定して，複数のファイルを検索したときにファイル名を付加しないで一致した行を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -h ABCD test1.txt test2.txt test3.txt test4.txt
ABCD_XYZ
ABCD_XYZ
ABCD_XYZ
ABCD_XYZ

-bオプションを指定して，一致した行の先頭にバイト単位のオフセットを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -b ABCD test1.txt
77:ABCDEFGHIJKLMNOPQRSTUVWXYZ
104:77777777[ABCD]ccccccccc
133:555555555:ABCD:111111111
212:ABCD
256:ABCD_XYZ
301:0000<ABCD>0000
316:/* ABCD */

-cオプションを指定して，一致した行数だけ表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -c ABCD test1.txt
7

-iオプションを指定して，大文字と小文字を区別しない指定をした場合を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -i AbCd  test1.txt
ABCDEFGHIJKLMNOPQRSTUVWXYZ
77777777[ABCD]ccccccccc
555555555:ABCD:111111111
abcdefghijklmnopqrstuvwxyz
ABCD
abcd
ABCD_XYZ
0000<ABCD>0000
/* ABCD */

-Lオプションを指定して，パターンを含まないファイル名だけを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -L ABC_  test1.txt test2.txt test3.txt test4.txt
test1.txt
test2.txt
test4.txt

-lオプションを指定して，パターンを含むファイル名だけを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -l ABC_ test1.txt test2.txt test3.txt test4.txt
test3.txt

-nオプションを指定して，各出力行にファイルの相対的な行番号を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -n ABCD test1.txt
4:ABCDEFGHIJKLMNOPQRSTUVWXYZ
5:77777777[ABCD]ccccccccc
7:555555555:ABCD:111111111
10:ABCD
14:ABCD_XYZ
17:0000<ABCD>0000
18:/* ABCD */

-qオプションを指定して，標準出力に何も表示しない指定をした場合を表示します。上段は-qオプションを指定しない場合，下段は-qオプションを指定した場合です。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep ABCD_XYZ test1.txt
ABCD_XYZ

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -q ABCD_XYZ test1.txt

-Rオプションを指定して，検索ディレクトリを再帰的に検索した場合を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -R ABCD C:¥USR¥data
C:¥USR¥data¥data_2¥data_3¥test3.txt:ABCDEFGHIJKLMNOPQRSTUVWXYZ
C:¥USR¥data¥data_2¥data_3¥test3.txt:ABCD333
C:¥USR¥data¥data_2¥data_3¥test3.txt:ABCD_AS
C:¥USR¥data¥data_2¥test2.txt:77777777[ABCD]ccccccccc
C:¥USR¥data¥data_2¥test2.txt:555555555:ABCD:111111111
C:¥USR¥data¥data_2¥test2.txt:ABCD222
C:¥USR¥data¥data_2¥test2.txt:ABCD_MM
C:¥USR¥data¥test0.txt:ABCD_1118
C:¥USR¥data¥test0.txt:ABCD_AS321
C:¥USR¥data¥test0.txt:0000<ABCD>0000
C:¥USR¥data¥test0.txt:/* ABCD */

-sオプションを指定して，エラーメッセージを抑止した場合を表示します。上段は-sオプションを指定しない場合，下段は-sオプションを指定した場合です。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep ABCD  test5.txt
grep: test5.txt: No such file or directory

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -s ABCD  test5.txt

-wオプションを指定して，パターンが独立している場合だけ表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -w ABCD test1.txt
77777777[ABCD]ccccccccc
555555555:ABCD:111111111
ABCD
0000<ABCD>0000
/* ABCD */

-xオプションを指定して，1行に指定文字列だけある場合を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -x ABCD test1.txt
ABCD

ファイル（file.txt）の内容で，-xオプションを指定した場合を表示します。

file.txtの内容

ABABAB

ACACACAC

ABABAB

次のコマンドを実行した場合，一致しないため何も表示されません。

grep -x ABA file.txt

次のコマンドを実行した場合，ファイル（file.txt）の1行目と3行目が一致し，次のように表示されます。

grep -x ABABAB file.txt
ABABAB
ABABAB

-Aオプションで3を指定し，一致した行の後ろ3行も表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -A 3 XYZ  test1.txt
ABCDEFGHIJKLMNOPQRSTUVWXYZ
77777777[ABCD]ccccccccc
-XYZ
555555555:ABCD:111111111
ababababababababababababab
abcdefghijklmnopqrstuvwxyz
--
ABCD_XYZ
asasasasasasasasas01
ASASASASASASAS
0000<ABCD>0000

-Bオプションで3を指定し，一致した行の前3行も表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -B 3 XYZ  test1.txt
/*-----------------------*/
ABABABABABABABABABABABABAB
012345678901234567890
ABCDEFGHIJKLMNOPQRSTUVWXYZ
77777777[ABCD]ccccccccc
-XYZ
--
JJJJJJJJJJJJJJJJ
KKKKKKKKKKKKKKKK
abcd
ABCD_XYZ

-Cオプションを指定し，一致した行の前後2行も表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -C XYZ test1.txt
ABABABABABABABABABABABABAB
012345678901234567890
ABCDEFGHIJKLMNOPQRSTUVWXYZ
77777777[ABCD]ccccccccc
-XYZ
555555555:ABCD:111111111
ababababababababababababab
--
KKKKKKKKKKKKKKKK
abcd
ABCD_XYZ
asasasasasasasasas01
ASASASASASASAS

-eオプションで，-で始まるパターンを指定した場合を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -e "-rw-" file01.txt
-rw------- user0001    12 May 12 17:19 a.txt
-rw------- user0001    79 May 12 20:36 abc.txt
-rw------- user0001   141 May 12 20:36 abcd.txt
-rw------- user0001    12 May 12 18:05 b.txt
-rw------- user0001   133 May 12 21:49 f01.txt
-rw------- user0001     0 May 12 19:42 ff
-rw------- user0001     0 May 12 20:54 ff.txt

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep -d
grep: illegal option -- d
usage: grep [-abcEGhIiLlnqRrsUvwx] [-A num] [-B num] [-C[num]]
        [-e pattern] [-f file] [pattern] [file ...]

ファイルがない場合のエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥grep CHECK  file99
grep: file99: No such file or directory

headコマンド（ファイルの最初の部分を表示する）

形式

head［-行数|-n 行数］［パス名 ...］

機能

ファイルの最初の数行を表示します。ファイルの最初の部分からそれぞれ指定した行数を標準出力に出力します。ファイルの指定がない場合，標準入力から入力します。行数を省略した場合は，10行を仮定します。

引数

-行数 | -n 行数　〜＜10進数＞((1〜2147483647))

標準出力へ出力する，入力ファイルの最初の行数をそれぞれ指定します。0以下または2147483647より大きい値を指定すると，エラーメッセージ（head: line count too small: 指定値／head: line count too large: 指定値）を出力します。

パス名

入力ファイル名を指定します。

省略時は標準入力から入力します。

複数ファイルを指定できます。複数ファイルを指定した場合，それぞれのファイルを識別するために，次に示す文字をそれぞれのファイルの出力に先行して出力します。2つ目以降のファイルの場合，改行のあとに次に示す文字を出力します。

==> ファイル名 <==

複数ファイルを指定して実行した場合はすべてのファイルを処理し，オープンに失敗したファイルが1つでもあると終了コード1で終了します。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

使用例

headコマンドを実行した結果表示に使用するファイルの形式を次に示します。

test1.txt

0001:test1.txt
0002:test1.txt
0003:test1.txt
0004:test1.txt
0005:test1.txt
0006:test1.txt
0007:test1.txt
0008:test1.txt
0009:test1.txt
0010:test1.txt

test2.txt

0001:test2.txt
0002:test2.txt
0003:test2.txt
0004:test2.txt
0005:test2.txt
0006:test2.txt
0007:test2.txt
0008:test2.txt
0009:test2.txt
0010:test2.txt

これらのファイルを基にコマンドの実行結果を示します。

test1.txtおよびtest2.txtファイルの最初の2行を表示します。

$ head -2 test1.txt test2.txt
==> test1.txt <==
0001:test1.txt
0002:test1.txt

==> test2.txt <==
0001:test2.txt
0002:test2.txt
$

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥head -d
head: illegal option -- d
usage: head [-count | -n count] [file ...]

hostnameコマンド（ホスト名を表示する）

形式

hostname

機能

現在のホスト名を表示します。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

このコマンドには指定可能な引数が存在しません。引数が指定された場合でも無視して処理を実行します。

使用例

現在のホストシステムの名称を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥hostname
HOST01

lsコマンド（ファイルまたはディレクトリの内容を表示する）

形式

ls［-1］［-A］［-a］［-C］［-c］［-d］［-F］［-f］［-g］［-h］［-i］［-k］
  ［-L］［-l］［-m］［-n］［-p］［-q］［-R］［-r］［-S］［-s］［-T］［-t］
  ［-u］［-x］
  ［--format=表示形式］［--full-time］
  ［--indicator-style=ファイル種別様式］［--sort=ソートキー］
  ［--time=ファイル日時種別］
  ［パス名 ...］

機能

ディレクトリの内容を表示します。ディレクトリの内容は標準出力に出力されます。出力内容のうちパーミッションの表示内容は次のようになります。

最初の1文字は，対象の種類として次の内容が表示されます。

-：通常ファイル

b：ブロック型スペシャルファイル

c：キャラクタ型スペシャルファイル

d：ディレクトリ

l：シンボリックリンク

p：FIFO

s：ソケット

以降の9文字は，3文字ごとの3つのセットとして解釈され，所有者，グループ，その他のユーザーのパーミッションを表示します。Windowsの場合は所有者だけのパーミッションを表示します。

パーミッション内の順序

表示される文字※

権限

1つ目

r

所有者による読み取り

2つ目

w

所有者による書き込み

3つ目

x

所有者による実行

s

所有者によるセットユーザーIDまたはセットグループID/実行

S

所有者によるセットユーザーIDまたはセットグループID/非実行

4つ目

r

グループによる読み取り

5つ目

w

グループによる書き込み

6つ目

x

グループによる実行

s

グループによるセットユーザーIDまたはセットグループID/実行

S

グループによるセットユーザーIDまたはセットグループID/非実行

7つ目

r

その他のユーザーによる読み取り

8つ目

w

その他のユーザーによる書き込み

9つ目

x

その他のユーザーによる実行

t

その他のユーザーによるスティッキービット/実行

T

その他のユーザーによるスティッキービット/非実行

注※

表示される文字の意味は次のとおりです。

文字

意味

-

対応するパーミッションが与えられていない

r

Windowsの場合，ファイルまたはディレクトリが存在する

UNIXの場合，読み取り権限が与えられている

w

Windowsの場合，読み取り専用属性が設定されていない

UNIXの場合，書き込み権限が与えられている

x

Windowsの場合，次のどれかに該当する

拡張子が「.com」，「.exe」，「.cmd」または「.bat」である

ディレクトリである

UNIXの場合，実行権限が与えられている

s

セットユーザーIDまたはセットグループIDが与えられていて，実行権限が与えられている【UNIX限定】

S

セットユーザーIDまたはセットグループIDが与えられていて，実行権限が与えられていない【UNIX限定】

t

スティッキービットが与えられていて，実行権限が与えられている【UNIX限定】

T

スティッキービットが与えられていて，実行権限が与えられていない【UNIX限定】

-gオプション，-lオプション，-nオプション，--full-timeオプションを指定すると，ロングフォーマットの出力形式となります。

ロングフォーマットとは，ファイル名やディレクトリ名の出力だけでなく，ファイルやディレクトリの詳細な情報を出力する形式です。また，ロングフォーマット形式に-hオプション，-Tオプション，-uオプションを組み合わせると，各項目の出力形式を変更できます。

引数

-1

--format=single-column

1行に1エントリ（1列）で出力します。

-A

--almost-all

「.」および「..」を除いてすべてのエントリを出力します。

-a

--all

「.」で始まるファイル名およびディレクトリ名を含めて出力します。

-C

--format=vertical

縦方向にソートして，複数列で出力します。端末出力時のデフォルトです。

-c

--time=ctime

--time=status

ソート（-tオプション）やリスト出力（-gオプション，-lオプション，-nオプション，--full-timeオプション）を指定した場合，ファイルの最終修正日時ではなく，ファイル情報の最終変更日時を使います。

-d

--directory

ディレクトリの内容を表示しないで，ディレクトリ名を出力します。

-F

--classify

--indicator-style=classify

ディレクトリ名の後ろに「/」，実行可能ファイルの後ろに「*」，シンボリックリンクの後ろに「@」，FIFO名の後ろに「|」，ソケットの後ろに「=」を出力します。

-f

--sort=none

ソートをしないで出力します。

-g

ロングフォーマットで出力しますが，所有者は出力しません。

-h

--human-readable

ロングフォーマット使用時に，ファイルサイズを2のべき乗で割って小数点第2位を四捨五入した値をファイルサイズとして出力します。ファイルサイズには，サイズ文字（M：1048576，K：1024）が付加されます。

ディレクトリ内にスペシャルファイルが存在する場合，-hオプションは無視されます。

-i

--inode

UNIXの場合，ファイルごとにinode番号を出力します。

Windowsの場合，常に0を出力します。

-k

UNIXの場合，-lオプション，-gオプション，-sオプションおよび--full-timeオプションで出力するディレクトリの合計ブロック数と，-sオプションで表示するファイルサイズをKB単位で出力します。

Windowsの場合，-sオプションで表示するファイルサイズをKB単位で出力します。

-L

--dereference

UNIXの場合，シンボリックリンクではなく，参照しているファイルの情報を出力します。

Windowsの場合，常に参照しているファイルの情報を出力します。

-l

--format=long

--format=verbose

次の項目をロングフォーマットで出力します。日時を完全な形式で出力するには--full-timeオプションを使用してください。

UNIXの場合

アクセス権，リンク数，所有者名，グループ名，サイズ，最終修正日時，ファイル名またはディレクトリ名。ただし，表示対象がディレクトリの場合は，「.」や「..」も含めて，そのディレクトリ直下に存在するディレクトリの総数を表示します。

Windowsの場合

ファイル所有者のアクセス権，所有者名，サイズ（ディレクトリの場合は表示しません），最終修正日時，ファイル名またはディレクトリ名

-m

--format=commas

ファイル名をコンマ（,）で区切って出力します。

-n

--numeric-uid-gid

UNIXの場合，ユーザー名，グループ名の代わりにユーザーID，グループIDを出力します。

Windowsの場合，ユーザーIDに0を出力します。また，グループIDは出力しません。

-p

--indicator-style=slash

ディレクトリ名の直後に「/」を出力します。

-q

--hide-control-chars

ファイル名に表示できない文字が使われていた場合，代わりに「?」を出力します。端末出力時のデフォルトです。

-R

--recursive

サブディレクトリを再帰的に出力します。

-r

--reverse

逆順にソートして出力します。

-S

--sort=size

サイズでソートして，最も大きいファイルを先頭に出力します。

-s

--size

UNIXの場合，ファイルのブロック数を出力します。-kオプションおよび環境変数BLOCKSIZEが定義されていない場合は，512バイトのブロック単位で切り上げて出力します。

Windowsの場合，ブロック数は常に0と出力されます。

-T

月，日，時間，分，秒，年を含む日時情報を出力します。-gオプション，-lオプションまたは-nオプションのどれかと同時に指定した場合に有効となります。

-t

--sort=time

ファイルの最終修正日時でソートします。最新の修正が先頭になります。

-u

--time=atime

--time=access

--time=use

ソート（-tオプション）およびリスト表示（-gオプション，-lオプション，-nオプション，--full-timeオプション）の場合，ファイルの最終修正日時ではなくファイルの最終アクセス日時を使用します。

-x

--format=across

--format=horizontal

-Cと同様に複数列で出力しますが，横方向にソートして出力します。

-format=表示形式

ファイルまたはディレクトリの内容を表示する場合の表示形式を指定します。

表示形式に次の値を指定できます。--formatオプションを複数指定した場合は，最後の指定が有効になります。

acrossまたはhorizontal

横方向にソートして，複数列で出力します。-xオプションと同じです。

commas

ファイル名をコンマ（,）で区切って出力します。-mオプションと同じです。

longまたはverbose

ロングフォーマットで表示します。-lオプションと同じです。

single-column

1行に1エントリ（1列）で出力します。-1オプションと同じです。

vertical

縦方向にソートして，複数列で出力します。-Cオプションと同じです。

--full-time

-lオプションと同様の項目を出力します。ただし，日時に関する情報は標準の省略形式ではなく，完全な形式で出力します。

日時部分の出力形式は次のとおりです。

YYYY-MM-DD hh:mm:ss.nnnnnnnnn +/-hhmm

YYYY：西暦年

MM：月

DD：日

hh：時

mm：分

ss：秒

nnnnnnnnn：1秒未満の日時。常に000000000と出力します。

+/-hhmm：タイムゾーン。UTCからの時差を示します。

--indicator-style=ファイル種別様式

表示するファイルの種別を示す情報の様式を指定します。

ファイル種別様式には次の値を指定できます。

classify

ファイルの種別を表す文字をファイル名の直後に出力します。ディレクトリ名の場合は直後に「/」を表示します。-Fオプションと同じです。

ファイルの種別を表す文字の内容は，-Fオプションの説明を参照してください。

slash

ディレクトリ名の直後に「/」を表示します。-pオプションと同じです。

--indicator-style=classifyと--indicator-style=slashを同時に指定した場合，classifyの指定が有効になります。

Windowsの場合，classifyを指定しても無視されます。

--sort=ソートキー

複数のファイルを表示する場合に，ソートキーに指定したファイル情報をキーにしてソートして表示します。--sortオプションを複数指定すると，最後の指定が有効になります。

ソートキーには次の値を指定できます。

size

ファイルのサイズでソートします。-Sオプションと同じです。

time

ファイルの最終修正日時でソートします。-tオプションと同じです。--timeオプションを使用して，ファイルの最終アクセス日時や最終変更日時でのソートもできます。

none

ソートしないで出力します。-fオプションと同じです。

--time=ファイル日時種別

ソート（-t）やリスト表示（-gオプション，-lオプション，-nオプション，--full-timeオプション）で使用するファイル日時は，ここで指定した種類の日時が適用されます。--timeオプションを複数指定すると，最後の指定が有効になります。Windowsの場合，--timeオプションを指定しても無視されます。

ファイル日時には次の値を指定できます。

atime，access，またはuse

ファイルの最終アクセス日時を使用します。-uオプションと同じです。

ctimeまたはstatus

ファイル情報の最終変更日時を使用します。-cオプションと同じです。

パス名

出力するファイル名またはディレクトリ名を指定します。複数指定することもできます。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

-1オプション，-Cオプション，-lオプション，-mオプション，-xオプションおよび--full-timeオプションは，最後に指定したオプションが有効となります。

ただし，-lオプションと--full-timeオプションを同時に指定した場合は，--full-timeオプションが有効となります。

-Aオプションの指定の有無に関係なく，常に「.」または「..」を除いたすべてのエントリ（「.」で始まるエントリを含む）が出力対象となります。

ブロックサイズのデフォルトは512バイトです。

ファイルの日時がコマンド実行日時より182日（約半年）以上前の場合や，182日以上先の場合は，日時の代わりに年を表示します。

ただし，--full-timeオプションを指定した場合はこの限りではありません。

UNIXの場合，ユーザー名が取得できないときはユーザーID，グループ名が取得できないときはグループIDを表示します。

Windowsの場合，-Fオプション，-cオプションおよび-uオプションは無視されます。

Windowsの場合，ユーザー名が取得できないときは「...」と表示します。

Windowsの場合，ディレクトリ内のファイルサイズ合計はバイト単位で表示します。

Windows上で隠しファイル属性の場合も表示対象となります。

このコマンドは，次の環境変数が有効になります。

環境変数COLUMNS

-Cオプションの指定による，複数列で出力したときの1行当たりの出力幅を定義します。なお，JP1/Advanced Shellのジョブ定義スクリプト内には，定義できません。

環境変数BLOCKSIZE

UNIXの場合，-sオプションの指定で表示する，ブロック数の1ブロック当たりのサイズを定義します。環境変数BLOCKSIZEには512から1GB（1024×1024×1024）まで指定できます。範囲外の値を指定した場合は次のように処理し，警告メッセージを標準エラー出力に出力して，後続の処理を続行します。

・環境変数BLOCKSIZEに512より小さい値を指定した場合

　　ブロックサイズを512バイトとします。

・環境変数BLOCKSIZEに1G（1024×1024×1024）より大きい値を指定した場合

　　ブロックサイズを1G（1024×1024×1024）バイトとします。

環境変数BLOCKSIZEでブロックサイズを変更する場合は，512の倍数を指定してください。512の倍数でない場合，余りは切り捨てられます。例えば，1,500バイトが定義されている場合，1,024バイトとして扱います。数値の後ろに，何倍であるかを示すサイズ文字（G（1024×1024×1024），M（1024×1024），K（1024））を指定できます。数値とサイズ文字以外を指定した場合，ブロックサイズを512バイトとして，警告メッセージを標準エラー出力に出力し，後続の処理を続行します。

環境変数TZ

UNIXの場合，日付時刻の表示に使用されるタイムゾーンを定義します。

Windowsの場合，日付時刻の表示は，コントロールパネルの「日付と時刻のプロパティ」ダイアログボックスで定義されているタイムゾーンが使用されます。環境変数TZの値は影響しません。

ただし，--full-timeオプションで表示するタイムゾーンは，環境変数TZの値とコントロールパネルの「日付と時刻のプロパティ」ダイアログボックスで定義されているタイムゾーンを使用するため，環境変数TZの値とコントロールパネルの「日付と時刻のプロパティ」ダイアログボックスのタイムゾーンは同じにしてください。同じでない場合，--full-timeオプションで表示されるタイムゾーンは正しく表示されません。

Windowsの場合，ドライブレターを指定してディレクトリを参照すると，指定の仕方によってはコマンドを実行しているカレントディレクトリを参照します。

次に示すフォルダ構成を例に指定例を説明します。

カレントドライブ       別ドライブ
D:¥                    E:¥
  │                     │
  ├X                    ├R
  ├Y                    ├S
  └Z                    └T
    │                     │
    ├file1                ├fileA
    ├file2                ├fileB
    └file3                └fileC

lsコマンドにカレントドライブを「D:¥」でなく「D:」と指定すると，コマンドを実行したカレントディレクトリ（D:¥Z）配下の情報を表示します。

D:¥Z>ls -l D:
total 462
-rw------- ouser001  154 Jun 02 15:23 file1
-rw------- ouser001  154 Jun 02 15:23 file2
-rw------- ouser001  154 Jun 02 15:23 file3

カレントドライブ（D:¥）を指定すると，指定したドライブレターの直下（D:¥）の情報を表示します。

D:¥Z>ls -l D:¥
total 0
drwx------ ouser001   Jun 02 15:22 X
drwx------ ouser001   Jun 02 15:23 Y
drwx------ ouser001   Jun 02 15:25 Z

別ドライブ（E:）を指定すると，指定したドライブレターの直下（E:¥）の情報を表示します。

D:¥Z>ls -l E:
total 0
drwx------ ouser001   Jun 02 15:24 R
drwx------ ouser001   Jun 02 15:24 S
drwx------ ouser001   Jun 02 15:25 T

別ドライブ（E:¥）を指定すると，指定したドライブレターの直下（E:¥）の情報を表示します。

D:¥Z>ls -l E:¥
total 0
drwx------ ouser001   Jun 02 15:24 R
drwx------ ouser001   Jun 02 15:24 S
drwx------ ouser001   Jun 02 15:25 T

使用例

オプションを指定しない場合，カレントディレクトリのファイルを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls
cmp.exe      grep.exe     mv.exe       sleep.exe    cp.exe
hostname.exe spool        Adshuxpl.dll date.exe     ls.exe
rm.exe       tmp          cat.exe      mkdir.exe    rmdir.exe    uname.exe

-1オプションを指定して，1列で表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -1
Adshuxpl.dll
cat.exe
cmp.exe
cp.exe
date.exe
grep.exe
hostname.exe
ls.exe
mkdir.exe
mv.exe
rm.exe
rmdir.exe
sleep.exe
spool
tmp
uname.exe

-Aオプションを指定して，「.」および「..」を除いたすべてのエントリを表示します。Windowsの場合は，-Aオプションの指定に関係なく「.」で始まるエントリを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -A
abcde.txt    date.exe     hostname.exe rm.exe       uname.exe
abcdex.txt   ls.exe       rmdir.exe    Adshuxpl.dll cat.exe
file1.txt    mkdir.exe    sleep.exe    abc.txt      cmp.exe
mv.exe       spool        abcd.txt     cp.exe       grep.exe
tmp

-aオプションを指定して，「.」で始まるディレクトリを含めて表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -a
.            cat.exe      mv.exe       spool
..           cmp.exe      grep.exe     tmp
cp.exe       hostname.exe rm.exe       uname.exe
date.exe     ls.exe       rmdir.exe    Adshuxpl.dll
mkdir.exe    sleep.exe

-Cオプションを指定し，縦方向にソートして複数列で表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -C
cmp.exe      mkdir.exe    rmdir.exe    uname.exe    cp.exe
grep.exe     mv.exe       sleep.exe    Adshuxpl.dll date.exe
hostname.exe spool        cat.exe      ls.exe       rm.exe
tmp

-fオプションを指定して，ソートをしないで表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -f
Adshuxpl.dll cmp.exe      mkdir.exe    rmdir.exe    uname.exe
cp.exe       grep.exe     mv.exe       sleep.exe    date.exe
hostname.exe spool        cat.exe      ls.exe       rm.exe
tmp

-gオプションを指定し，所有者表示なしのロングフォーマットで表示します。Windowsの場合はグループ名を表示しません。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -g
total 1069363
-rw------- 439808 May 09 11:31 Adshuxpl.dll
-rwx------  10752 May 09 11:34 cat.exe
-rwx------  10240 May 09 11:34 cmp.exe
-rwx------  18432 May 09 11:34 cp.exe
-rwx------  10240 May 09 11:34 date.exe
-rwx------  43008 May 09 11:33 grep.exe
-rwx------   7680 May 09 11:33 hostname.exe
-rwx------  22528 May 09 16:27 ls.exe
-rwx------   8192 May 09 11:33 mkdir.exe
-rwx------  12288 May 09 11:33 mv.exe
-rwx------  16384 May 09 11:33 rm.exe
-rwx------   8192 May 09 11:32 rmdir.exe
-rwx------   8192 May 09 11:32 sleep.exe
drwx------        May 10 08:50 spool
drwx------        May 10 08:50 tmp
-rwx------   9216 May 09 11:32 uname.exe

-hオプションをロングフォーマットと共に指定して，ファイルサイズにサイズ文字を付加します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -lh
total 1069363
-rw------- 10379780    430K May 09 11:31 Adshuxpl.dll
-rwx------ 10379780   10.5K May 09 11:34 cat.exe
-rwx------ 10379780   10.0K May 09 11:34 cmp.exe
-rwx------ 10379780   18.0K May 09 11:34 cp.exe
-rwx------ 10379780   10.0K May 09 11:34 date.exe
-rwx------ 10379780   42.0K May 09 11:33 grep.exe
-rwx------ 10379780    7.5K May 09 11:33 hostname.exe
-rwx------ 10379780   22.0K May 09 16:27 ls.exe
-rwx------ 10379780    8.0K May 09 11:33 mkdir.exe
-rwx------ 10379780   12.0K May 09 11:33 mv.exe
-rwx------ 10379780   16.0K May 09 11:33 rm.exe
-rwx------ 10379780    8.0K May 09 11:32 rmdir.exe
-rwx------ 10379780    8.0K May 09 11:32 sleep.exe
drwx------ 10379780         May 10 08:50 spool
drwx------ 10379780         May 10 08:50 tmp
-rwx------ 10379780    9.0K May 09 11:32 uname.exe

-iオプションを指定して，ファイルごとにinode番号を表示します。Windowsの場合はinode番号に0を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -i
0 cp.exe        0 hostname.exe  0 rm.exe        0 uname.exe
0 date.exe      0 ls.exe        0 rmdir.exe     0 Adshuxpl.dll
0 mkdir.exe     0 sleep.exe     0 cat.exe       0 mv.exe
0 spool         0 cmp.exe       0 grep.exe      0 tmp

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -il
total 1069363
0 -rw------- 10379780  439808 May 09 11:31 Adshuxpl.dll
0 -rwx------ 10379780   10752 May 09 11:34 cat.exe
0 -rwx------ 10379780   10240 May 09 11:34 cmp.exe
0 -rwx------ 10379780   18432 May 09 11:34 cp.exe
0 -rwx------ 10379780   10240 May 09 11:34 date.exe
0 -rwx------ 10379780   43008 May 09 11:33 grep.exe
0 -rwx------ 10379780    7680 May 09 11:33 hostname.exe
0 -rwx------ 10379780   22528 May 09 16:27 ls.exe
0 -rwx------ 10379780    8192 May 09 11:33 mkdir.exe
0 -rwx------ 10379780   12288 May 09 11:33 mv.exe
0 -rwx------ 10379780   16384 May 09 11:33 rm.exe
0 -rwx------ 10379780    8192 May 09 11:32 rmdir.exe
0 -rwx------ 10379780    8192 May 09 11:32 sleep.exe
0 drwx------ 10379780         May 10 08:50 spool
0 drwx------ 10379780         May 10 08:50 tmp
0 -rwx------ 10379780    9216 May 09 11:32 uname.exe

-lオプションを指定して，ロングフォーマットで表示します。Windowsの場合は，所有者のアクセス権限だけ表示します。グループ名，リンク数およびディレクトリサイズは表示しません。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -l
total 1069359
-rw------- 10379780  439808 May 09 11:31 Adshuxpl.dll
-rwx------ 10379780   10752 May 09 11:34 cat.exe
-rwx------ 10379780   10240 May 09 11:34 cmp.exe
-rwx------ 10379780   18432 May 09 11:34 cp.exe
-rwx------ 10379780   10240 May 09 11:34 date.exe
-rwx------ 10379780   43008 May 09 11:33 grep.exe
-rwx------ 10379780    7680 May 09 11:33 hostname.exe
-rwx------ 10379780   22528 May 09 16:27 ls.exe
-rwx------ 10379780    8192 May 09 11:33 mkdir.exe
-rwx------ 10379780   12288 May 09 11:33 mv.exe
-rwx------ 10379780   16384 May 09 11:33 rm.exe
-rwx------ 10379780    8192 May 09 11:32 rmdir.exe
-rwx------ 10379780    8192 May 09 11:32 sleep.exe
drwx------ 10379780         May 10 08:50 spool
drwx------ 10379780         May 10 08:50 tmp
-rwx------ 10379780    9216 May 09 11:32 uname.exe

-lオプションのリスト表示で-cオプションを指定して，ファイルの最終修正日時ではなくファイル情報の最終変更日時を表示します。Windowsの場合は，-cオプションの指定を無視してファイルの最終修正日時を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -lc
total 1069363
-rw------- 10379780  439808 May 09 11:31 Adshuxpl.dll
-rwx------ 10379780   10752 May 09 11:34 cat.exe
-rwx------ 10379780   10240 May 09 11:34 cmp.exe
-rwx------ 10379780   18432 May 09 11:34 cp.exe
-rwx------ 10379780   10240 May 09 11:34 date.exe
-rwx------ 10379780   43008 May 09 11:33 grep.exe
-rwx------ 10379780    7680 May 09 11:33 hostname.exe
-rwx------ 10379780   22528 May 09 16:27 ls.exe
-rwx------ 10379780    8192 May 09 11:33 mkdir.exe
-rwx------ 10379780   12288 May 09 11:33 mv.exe
-rwx------ 10379780   16384 May 09 11:33 rm.exe
-rwx------ 10379780    8192 May 09 11:32 rmdir.exe
-rwx------ 10379780    8192 May 09 11:32 sleep.exe
drwx------ 10379780         May 10 08:50 spool
drwx------ 10379780         May 10 08:50 tmp
-rwx------ 10379780    9216 May 09 11:32 uname.exe

-lオプションのリスト表示で-uオプションを指定して，ファイルの最終修正日時ではなくファイルの最終アクセス日時を表示します。Windowsの場合は，-uオプションの指定を無視してファイルの最終修正日時を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -lu
total 1069363
-rw------- 10379780  439808 May 09 11:31 Adshuxpl.dll
-rwx------ 10379780   10752 May 09 11:34 cat.exe
-rwx------ 10379780   10240 May 09 11:34 cmp.exe
-rwx------ 10379780   18432 May 09 11:34 cp.exe
-rwx------ 10379780   10240 May 09 11:34 date.exe
-rwx------ 10379780   43008 May 09 11:33 grep.exe
-rwx------ 10379780    7680 May 09 11:33 hostname.exe
-rwx------ 10379780   22528 May 09 16:27 ls.exe
-rwx------ 10379780    8192 May 09 11:33 mkdir.exe
-rwx------ 10379780   12288 May 09 11:33 mv.exe
-rwx------ 10379780   16384 May 09 11:33 rm.exe
-rwx------ 10379780    8192 May 09 11:32 rmdir.exe
-rwx------ 10379780    8192 May 09 11:32 sleep.exe
drwx------ 10379780         May 10 08:50 spool
drwx------ 10379780         May 10 08:50 tmp
-rwx------ 10379780    9216 May 09 11:32 uname.exe

-mオプションを指定して，ストリーム出力形式でコンマで区切って表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -m
Adshuxpl.dll, cat.exe, cmp.exe, cp.exe, date.exe,
grep.exe, hostname.exe, ls.exe, mkdir.exe, mv.exe,
rm.exe, rmdir.exe, sleep.exe, spool, tmp, uname.exe

-nオプションを指定して，ユーザー名，グループ名の代わりにユーザーID，グループIDを表示します。Windowsの場合はユーザーIDに0を表示します。また，グループIDを表示しません。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -n
total 1069363
-rw------- 0  439808 May 09 11:31 Adshuxpl.dll
-rwx------ 0   10752 May 09 11:34 cat.exe
-rwx------ 0   10240 May 09 11:34 cmp.exe
-rwx------ 0   18432 May 09 11:34 cp.exe
-rwx------ 0   10240 May 09 11:34 date.exe
-rwx------ 0   43008 May 09 11:33 grep.exe
-rwx------ 0    7680 May 09 11:33 hostname.exe
-rwx------ 0   22528 May 09 16:27 ls.exe
-rwx------ 0    8192 May 09 11:33 mkdir.exe
-rwx------ 0   12288 May 09 11:33 mv.exe
-rwx------ 0   16384 May 09 11:33 rm.exe
-rwx------ 0    8192 May 09 11:32 rmdir.exe
-rwx------ 0    8192 May 09 11:32 sleep.exe
drwx------ 0         May 10 08:50 spool
drwx------ 0         May 10 08:50 tmp
-rwx------ 0    9216 May 09 11:32 uname.exe

-pオプションを指定して，ディレクトリの後ろに「/」を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -p
cp.exe          hostname.exe    rm.exe          uname.exe
date.exe        ls.exe          rmdir.exe       mkdir.exe
sleep.exe       cat.exe         mv.exe          spool/
cmp.exe         grep.exe        tmp/

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -alp
total 1069363
drwx------ 10379780         May 10 09:45 ./
drwx------ 10379780         May 10 10:02 ../
-rw------- 10379780  439808 May 09 11:31 Adshuxpl.dll
-rwx------ 10379780   10752 May 09 11:34 cat.exe
-rwx------ 10379780   10240 May 09 11:34 cmp.exe
-rwx------ 10379780   18432 May 09 11:34 cp.exe
-rwx------ 10379780   10240 May 09 11:34 date.exe
-rwx------ 10379780   43008 May 09 11:33 grep.exe
-rwx------ 10379780    7680 May 09 11:33 hostname.exe
-rwx------ 10379780   22528 May 09 16:27 ls.exe
-rwx------ 10379780    8192 May 09 11:33 mkdir.exe
-rwx------ 10379780   12288 May 09 11:33 mv.exe
-rwx------ 10379780   16384 May 09 11:33 rm.exe
-rwx------ 10379780    8192 May 09 11:32 rmdir.exe
-rwx------ 10379780    8192 May 09 11:32 sleep.exe
drwx------ 10379780         May 10 08:50 spool/
drwx------ 10379780         May 10 08:50 tmp/
-rwx------ 10379780    9216 May 09 11:32 uname.exe

-qオプションを指定して，表示できない文字を「?」で表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -q ..¥dir1
.sub1     file2.txt sub4      wc2.c     wc4.c
.sub2     sub3      wc1.c     wc3.c     ????.txt

-Rオプションを指定して，サブディレクトリを再帰的に表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -R ..¥dir1
.sub1     file2.txt sub4      wc2.c     wc4.c
.sub2     sub3      wc1.c     wc3.c     ????.txt

..¥dir1¥.sub1:

..¥dir1¥.sub2:

..¥dir1¥sub3:

..¥dir1¥sub4:

-rオプションを指定して，逆順にソートして表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -r
spool        hostname.exe date.exe     Adshuxpl.dll
sleep.exe    mv.exe       grep.exe     cp.exe
uname.exe    rmdir.exe    mkdir.exe    cmp.exe
tmp          rm.exe       ls.exe       cat.exe

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -rl
total 1069363
-rwx------ 10379780    9216 May 09 11:32 uname.exe
drwx------ 10379780         May 10 08:50 tmp
drwx------ 10379780         May 10 08:50 spool
-rwx------ 10379780    8192 May 09 11:32 sleep.exe
-rwx------ 10379780    8192 May 09 11:32 rmdir.exe
-rwx------ 10379780   16384 May 09 11:33 rm.exe
-rwx------ 10379780   12288 May 09 11:33 mv.exe
-rwx------ 10379780    8192 May 09 11:33 mkdir.exe
-rwx------ 10379780   22528 May 09 16:27 ls.exe
-rwx------ 10379780    7680 May 09 11:33 hostname.exe
-rwx------ 10379780   43008 May 09 11:33 grep.exe
-rwx------ 10379780   10240 May 09 11:34 date.exe
-rwx------ 10379780   18432 May 09 11:34 cp.exe
-rwx------ 10379780   10240 May 09 11:34 cmp.exe
-rwx------ 10379780   10752 May 09 11:34 cat.exe
-rw------- 10379780  439808 May 09 11:31 Adshuxpl.dll

-Sオプションを指定して，サイズでソートして最も大きいファイルを先頭に表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -S
Adshuxpl.dll rm.exe       cmp.exe      mkdir.exe
ls.exe       mv.exe       date.exe     rmdir.exe    spool
cat.exe      sleep.exe    tmp          grep.exe     cp.exe
uname.exe    hostname.exe

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -lS
total 1069363
-rw------- 10379780  439808 May 09 11:31 Adshuxpl.dll
-rwx------ 10379780   43008 May 09 11:33 grep.exe
-rwx------ 10379780   22528 May 09 16:27 ls.exe
-rwx------ 10379780   18432 May 09 11:34 cp.exe
-rwx------ 10379780   16384 May 09 11:33 rm.exe
-rwx------ 10379780   12288 May 09 11:33 mv.exe
-rwx------ 10379780   10752 May 09 11:34 cat.exe
-rwx------ 10379780   10240 May 09 11:34 cmp.exe
-rwx------ 10379780   10240 May 09 11:34 date.exe
-rwx------ 10379780    9216 May 09 11:32 uname.exe
-rwx------ 10379780    8192 May 09 11:33 mkdir.exe
-rwx------ 10379780    8192 May 09 11:32 rmdir.exe
-rwx------ 10379780    8192 May 09 11:32 sleep.exe
-rwx------ 10379780    7680 May 09 11:33 hostname.exe
drwx------ 10379780         May 10 08:50 spool
drwx------ 10379780         May 10 08:50 tmp

-sオプションを指定して，ファイルのブロック数を表示します。Windowsの場合は0です。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -sl
total 1070036
0 -rw------- 10379780  439808 May 09 11:31 Adshuxpl.dll
0 -rw------- 10379780      90 May 10 10:46 abc.txt
0 -rw------- 10379780     152 May 10 15:25 abcd.txt
0 -rw------- 10379780     179 May 10 11:01 abcde.txt
0 -rw------- 10379780     146 May 10 15:22 abcdex.txt
0 -rwx------ 10379780   10752 May 09 11:34 cat.exe
0 -rwx------ 10379780   10240 May 09 11:34 cmp.exe
0 -rwx------ 10379780   18432 May 09 11:34 cp.exe
0 -rwx------ 10379780   10240 May 09 11:34 date.exe
0 -rw------- 10379780     106 May 10 13:58 file1.txt
0 -rwx------ 10379780   43008 May 09 11:33 grep.exe
0 -rwx------ 10379780    7680 May 09 11:33 hostname.exe
0 -rwx------ 10379780   22528 May 09 16:27 ls.exe
0 -rwx------ 10379780    8192 May 09 11:33 mkdir.exe
0 -rwx------ 10379780   12288 May 09 11:33 mv.exe
0 -rwx------ 10379780   16384 May 09 11:33 rm.exe
0 -rwx------ 10379780    8192 May 09 11:32 rmdir.exe
0 -rwx------ 10379780    8192 May 09 11:32 sleep.exe
0 drwx------ 10379780         May 10 08:50 spool
0 drwx------ 10379780         May 10 08:50 tmp
0 -rwx------ 10379780    9216 May 09 11:32 uname.exe

-Tオプションを指定して，月，日，時間，分，秒，年などの時間情報を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -lT
total 1069363
-rw------- 10379780  439808 May 09 11:31:40 2011 Adshuxpl.dll
-rwx------ 10379780   10752 May 09 11:34:28 2011 cat.exe
-rwx------ 10379780   10240 May 09 11:34:20 2011 cmp.exe
-rwx------ 10379780   18432 May 09 11:34:35 2011 cp.exe
-rwx------ 10379780   10240 May 09 11:34:13 2011 date.exe
-rwx------ 10379780   43008 May 09 11:33:44 2011 grep.exe
-rwx------ 10379780    7680 May 09 11:33:34 2011 hostname.exe
-rwx------ 10379780   22528 May 09 16:27:40 2011 ls.exe
-rwx------ 10379780    8192 May 09 11:33:15 2011 mkdir.exe
-rwx------ 10379780   12288 May 09 11:33:53 2011 mv.exe
-rwx------ 10379780   16384 May 09 11:33:01 2011 rm.exe
-rwx------ 10379780    8192 May 09 11:32:54 2011 rmdir.exe
-rwx------ 10379780    8192 May 09 11:32:49 2011 sleep.exe
drwx------ 10379780         May 10 08:50:19 2011 spool
drwx------ 10379780         May 10 08:50:19 2011 tmp
-rwx------ 10379780    9216 May 09 11:32:44 2011 uname.exe

-tオプションを指定して，ファイルの最終修正日時でソートします。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -t
date.exe     hostname.exe rmdir.exe
spool        cp.exe       mkdir.exe    sleep.exe
tmp          cat.exe      mv.exe       uname.exe    Adshuxpl.dll
ls.exe       cmp.exe      grep.exe     rm.exe

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -lt
total 1069363
drwx------ 10379780         May 10 08:50 spool
drwx------ 10379780         May 10 08:50 tmp
-rwx------ 10379780   22528 May 09 16:27 ls.exe
-rwx------ 10379780   18432 May 09 11:34 cp.exe
-rwx------ 10379780   10752 May 09 11:34 cat.exe
-rwx------ 10379780   10240 May 09 11:34 cmp.exe
-rwx------ 10379780   10240 May 09 11:34 date.exe
-rwx------ 10379780   12288 May 09 11:33 mv.exe
-rwx------ 10379780   43008 May 09 11:33 grep.exe
-rwx------ 10379780    7680 May 09 11:33 hostname.exe
-rwx------ 10379780    8192 May 09 11:33 mkdir.exe
-rwx------ 10379780   16384 May 09 11:33 rm.exe
-rwx------ 10379780    8192 May 09 11:32 rmdir.exe
-rwx------ 10379780    8192 May 09 11:32 sleep.exe
-rwx------ 10379780    9216 May 09 11:32 uname.exe
-rw------- 10379780  439808 May 09 11:31 Adshuxpl.dll

-xオプションを指定し，横方向にソートして複数列で表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥ls -x
Adshuxpl.dll cat.exe      cmp.exe      cp.exe
date.exe       grep.exe     hostname.exe ls.exe       mkdir.exe
mv.exe         rm.exe       rmdir.exe    sleep.exe    spool
tmp          uname.exe

--full-timeオプションを指定し，日時を完全な形式でロングフォーマット表示します。

C:¥Program Files¥HITACHI¥JP1AS¥JP1ASE¥cmd>ls --full-time
total 2638901
-rwx------ SYSTEM  327168 2014-01-10 19:47:42.000000000 +0900 awk.exe
-rwx------ SYSTEM   10240 2014-01-10 19:45:32.000000000 +0900 basename.exe
-rwx------ SYSTEM   12800 2014-01-10 19:48:44.000000000 +0900 cat.exe
-rwx------ SYSTEM   11264 2014-01-10 19:48:44.000000000 +0900 cmp.exe
-rwx------ SYSTEM   19968 2014-01-10 19:48:40.000000000 +0900 cp.exe
-rwx------ SYSTEM   14848 2014-01-10 19:48:04.000000000 +0900 cut.exe
-rwx------ SYSTEM   10240 2014-01-10 19:48:36.000000000 +0900 date.exe
-rwx------ SYSTEM  237056 2014-01-10 19:48:14.000000000 +0900 diff.exe
-rwx------ SYSTEM  224256 2014-01-10 19:45:28.000000000 +0900 egrep.exe

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥>ls -z
ls: illegal option -- z
usage: ls [-1AaCcdFfghikLlmnpqRrSsTtux] [--format=word] [--full-time]
          [--indicator-style=word] [--sort=word] [--time=word] [file ...]

mkdirコマンド（ディレクトリを作成する）

形式

mkdir［-p］［-m パーミッション］ディレクトリ ...

機能

ディレクトリを作成します。

引数

-p

必要に応じて，存在しない中間のディレクトリを作成します。

-m パーミッション

UNIXの場合，作成したディレクトリにパーミッションを設定します。umask値は反映されません。

パーミッションは8進数の数値またはシンボルを指定します。

数値を指定した場合，8進数以外または8進数の07777（10進数の4095）より大きな値を指定するとエラーとなります。

シンボルを指定した場合，何も指定されていない状態（数値表現での0）に対して設定，追加および削除をします。1つまたは複数のシンボルで指定された結果が検索に使用されます。

シンボルは3つの部分から構成されます。次に示すシンボルを1つまたは複数指定します。複数指定する場合は，コンマ（,）でシンボル間を区切ります。

シンボル内の順序

指定できる値

1つ目

アクセス権を設定する項目を指定します。複数同時に指定できます。指定できる項目を次に示します。省略するとすべてのユーザーが仮定されます。

u：所有者

g：グループ

o：その他

a：全ユーザー

2つ目

モードに対する操作を指定します。1つ目のシンボルで指定した項目に対して次の処理をします。

=：アクセス権の設定（上書き）

+：アクセス権の追加

-：アクセス権の削除

設定，追加および削除する値は，3つ目のシンボルで指定します。

3つ目のシンボルに続けて2つ目および3つ目のシンボルを記述できます。このとき3つ目のシンボルは省略できます。

3つ目

設定するアクセス権を指定します。複数同時に指定できます。指定できる値を次に示します。

r：読み取り

w：書き込み

x：実行

s：実行時にユーザーまたはグループIDを設定する

t：スティッキービット

u：モードに現在設定されている所有者のアクセス権

g：モードに現在設定されているグループのアクセス権

o：モードに現在設定されているその他のアクセス権

省略するとアクセス権を設定する項目を消去します。消去した値を2つ目のシンボルに従って設定，追加および削除します。2つ目で設定する追加および削除では，3つ目で設定する値は変化しません。

sとtの指定は，1つ目でoだけを指定した場合には無視されます。

シンボルの指定例を次の表に示します。

-permの指定値

同等の数値指定

説明

u=x,g=w

120

uに対してxを設定し，gに対してwを設定しています。

u=x,g=u

110

uに対してxを設定し，gに対してuと同じ値を設定しています。

u=x,=u

111

uに対してxを設定し，そのあとa（省略値）にuと同じ値を設定しています。

u=x,u=w

200

uに対してxを設定し，そのあとuに対してwを設定（上書き）しています。

u=x,u+w

300

uに対してxを設定し，そのあとuに対してwを追加しています。

ug=x

110

uとgに対してxを設定しています。

u=rw

600

uに対してrおよびwを設定しています。

u=r+x

500

uに対してrを設定し，xを追加しています。

u=r=w

200

uに対してrを設定し，さらにwを設定（上書き）しています。

=x,u=

011

a（省略値）にxを設定し，uの設定を消去しています。

=

000

a（省略値）を消去しています。

Windowsの場合，指定は無視されます。

ディレクトリ

作成するディレクトリ名を指定します。ディレクトリ名は複数指定できます。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

Windowsの場合，-mオプションは無視されます。モードの指定はできません。

使用例

C:¥USR¥JP1ディレクトリ下にDir2ディレクトリを作成します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥mkdir C:¥USR¥JP1¥Dir2

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥mkdir -w
mkdir: illegal option -- w
usage: mkdir [-p] [-m mode] directory ...

mvコマンド（ファイルまたはディレクトリを移動する）

形式

mv［-f］［-i］移動元 移動先
mv［-f］［-i］移動元 ... 移動先ディレクトリ

機能

ファイルまたはディレクトリを移動します。ファイル名またはディレクトリ名も変更できます。

引数

-f

確認しないでパスを上書きします。-iオプションの前に指定すると無視されます。

-i

上書きする場合に確認します。標準入力からyまたはYを応答すると，上書きします。-fオプションの前に指定すると無視されます。

移動元

移動するパス名を指定します。移動元には，複数のパス名を指定できます。

移動先

移動先のパス名を指定します。移動元，移動先にパス名を指定した場合，ファイル名またはディレクトリ名を変更することもできます。

移動先ディレクトリ

移動先のディレクトリ名を指定します。移動元に複数のパス名を指定した場合，複数のファイルやディレクトリを移動できます。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

-iオプションと-fオプションは最後に指定されたオプションが有効となります。

Windowsの場合，オーバーライド時にオーナーのアクセス権以外は表示しません。

表示するパーミッションの詳細については，「lsコマンド（ファイルまたはディレクトリの内容を表示する）」を参照してください。

Windowsの場合，シンボリックリンクはサポートしていません。

Windowsの場合，グループおよびモードは保持されません。

Windowsの場合，移動先のファイル名は移動元に指定したファイル名で作成されます。また，Windowsの場合，ファイル名の英大文字は英小文字に置き換えられます。例えば，移動対象のファイル名がA.txtの場合，mv a.txt tmpdirと実行すると，tmpdirの中のファイル名はa.txtになります。

Windowsの場合，ファイルをバイナリモードで入出力します。改行コードは変換しません。

UNIXの場合，mvコマンドでファイルおよびディレクトリを移動したとき，次の条件をすべて満たすと，移動後のファイルおよびディレクトリの所有者はmvコマンドの実行者になります。

一般ユーザーがmvコマンドを実行した。

移動元ファイルの所有者がmvコマンドの実行者と異なる。

移動元と移動先のファイルシステムが異なる。

また，次の情報は引き継がれません。

移動元ファイルに設定されていたsetuidビットとsetgidビットのアクセス権情報

移動元ディレクトリに設定されていたsetuidビット，setgidビット，スティッキービットのアクセス権情報

使用例

-iオプションを指定して，移動先ファイルに上書きするかどうかを確認します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥mv -i ..¥dir1¥file1.txt  ..¥dir1¥file2.txt
overwrite ..¥dir1¥file2.txt?

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥mv -w
mv: illegal option -- w
usage: mv [-fi] source target
       mv [-fi] source ... directory

ファイルがない場合のエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥mv file3.txt file4.txt
mv: file3.txt: No such file or directory

pasteコマンド（複数のファイルを行単位で連結する）

形式

paste［-s］［-d リスト］［パス名 ...］

機能

複数のファイルを行単位に連結して標準出力に出力します。ファイル内のすべての行を1行に結合してから複数のファイルを連結することもできます。

引数

-s

ファイル内のすべての行を区切り文字によって結合して1つの行にします。

-sオプションを指定しない場合は，各ファイルの同じ行番号の行を区切り文字で結合します。

-d リスト

結合する行と行の間に挿入する区切り文字をリストに指定します。-dオプションを指定しない場合，タブ文字が指定されたものとします。

スペースまたはタブを指定する場合は，"（ダブルクォーテーション）で囲んでください。

区切り文字には次の特殊文字も指定できます。

使用できる特殊文字

意味

備考

¥n

改行文字

Windowsの場合，［CR］+［LF］が改行文字となります。

UNIXの場合，［LF］が改行文字となります。

¥t

タブ文字

−

¥¥

1つのバックスラッシュ文字

−

¥0

空文字列

長さ0の文字列（""）です。結合する行と行の間に区切り文字を挿入しません。

（凡例）

−：該当なし

特殊文字を指定する場合，pasteコマンドを実行するシェルによってはエスケープ文字として扱われるため，特殊文字をクォーテーション（"または'）で囲む必要があります。特殊文字以外の文字の直前に「¥」を指定した場合，「¥」は無視され，「¥」の直後の文字が区切り文字として使用されます。また，「¥」だけを指定した場合はエラーで終了します。

区切り文字は複数指定できます。区切り文字を複数指定した場合の動作を次に示します。

行を結合するたびに区切り文字を取り出して，行と行の間に挿入します。区切り文字は先頭の区切り文字から順に取り出されます。

-sオプションが指定されていない場合，結合した行を出力したときは，再び先頭の区切り文字から順に取り出されます。

-sオプションが指定されている場合，ファイル内のすべての行を結合して出力したときは，再び先頭の区切り文字から順に取り出されます。

区切り文字を取り出すときに，-dオプションに指定した区切り文字を使い切っていた場合は再び先頭の区切り文字から順に取り出されます。

パス名

連結して出力するファイルのパス名を指定します。パス名を指定しない，またはパス名に「-」を指定した場合は，標準入力から入力します。

パス名，および「-」は複数指定できます。パス名と「-」を混在して指定することもできます。

複数のファイルを指定した場合，オープンに失敗したファイルがあると次のように動作します。

-sオプションが指定されていないときはエラーメッセージを出力し，終了コード1でエラー終了します。標準出力には何も出力されません。

-sオプションが指定されているときはオープンに失敗したファイル対してエラーメッセージを出力し，処理を続行します。すべてのファイルに対して処理をしたあと終了コード1で終了します。

パス名を1つだけ指定した場合は次のように動作します。

-sオプションが指定されていないときは行の出力だけが行われます。

-sオプションが指定されているときはファイル内のすべての行を結合して出力します。

行の入力と出力

入力ファイル内の行は，改行文字で区切られたレコードが1つの行と見なされます。

Windowsの場合，［CR］+［LF］または［LF］が改行文字と見なされます。

UNIXの場合，［LF］が改行文字と見なされます。

なお，入力ファイルの各レコードが［CR］+［LF］で区切られている場合は，連結後の行には［CR］が含まれます。

連結後に出力される行の終わりには改行文字が出力されます。出力される改行文字は次のとおりです。

Windowsの場合，［CR］+［LF］で出力されます。

UNIXの場合，［LF］で出力されます。

行単位の連結（-sオプションが指定されていない場合）

各ファイルの同じ行番号の行を区切り文字によって結合し，結合した結果を1つの行として出力します。なお，同じ行番号の行が空行の場合，行の内容は空文字列としてほかのファイルの行と結合されます。

各ファイルから同じ行番号の行を入力するときに，一部のファイルの入力でファイルの終端に達した場合，そのファイルの行の内容は空文字列としてほかのファイルの行と結合されます。

file1，file2，file3，file4を行単位に連結する例を次に示します。

file1の内容

a001
a002

file2の内容

b001
（空行）
b003

file3の内容

c001
c002
c003
c004

file4の内容

d001

file1，file2，file3，file4を行単位に連結するコマンド

$ paste file1 file2 file3 file4

このとき，次のように連結します。「→」は区切り文字のタブ文字を表します。

a001→b001→c001→d001   1.
a002→→    c002→       2.
→    b003→c003→       3.
→    →    c004→       4.

file1，file2，file3，file4の1行目の内容を結合して出力します。行と行の間にはタブ文字を挿入します。

次の値をタブ文字によって結合し出力します。

file1の2行目の内容

file2の2行目は空行のため空文字列

file3の2行目の内容

file4はファイル終端のため空文字列

空文字列は長さ0の文字列であるため，実際には「file1の2行目の内容＋タブ文字＋タブ文字＋file3の2行目の内容＋タブ文字」が出力されます。

次の値をタブ文字によって結合し出力します。

file1はファイル終端のため空文字列

file2の3行目の内容

file3の3行目の内容

file4はファイル終端のため空文字列

実際には「タブ文字＋file2の3行目＋タブ文字＋file3の3行目＋タブ文字」が出力されます。

次の値をタブ文字によって結合し出力します。

file1はファイル終端のため空文字列

file2はファイル終端のため空文字列

file3の4行目の内容

file4はファイル終端のため空文字列

実際には「タブ文字＋タブ文字＋file3の4行目＋タブ文字」が出力されます。

なお，一部のファイルが空のファイルの場合もそのファイルの行の内容は空文字列としてほかのファイルの行と結合されます。ただし，引数に指定したファイルすべてが空のファイルの場合は行は出力されません。

ファイル内の行の結合（-sオプションが指定されている場合）

1つのファイル内のすべての行を区切り文字によって結合し，1つの行にしてからほかのファイルと連結します。なお，ファイルが空の場合は改行文字だけを出力します。引数に指定したファイルすべてが空のファイルの場合もファイルごとに改行文字が出力されます。

file1，file2，file3，file4を連結する例を次に示します。

file1の内容

a001
a002

file2の内容

空のファイル

file3の内容

c001
c002
c003
c004

file4の内容

d001

file1，file2，file3，file4を連結するコマンド

$ paste -s file1 file2 file3 file4

このとき，次のように連結します。「→」は区切り文字のタブ文字を表します。

a001→a002               1.
                         2.
c001→c002→c003→c004   3.
d001                     4.

file1のすべての行を区切り文字で結合して出力します。

file2は空のファイルのため改行文字だけを出力します。

file3のすべての行を区切り文字で結合して出力します。

file4は1行だけのため，行の内容だけ出力します。

標準入力から入力した行の結合

標準入力から入力した行の結合について説明します。

行単位の結合（-sオプションが指定されていない場合）

標準入力から1行だけ入力し，ほかのファイルの行と結合します。「-」を複数指定した場合は「-」を指定した順に標準入力から1行ずつ入力し，それぞれ入力した行を結合します。

ファイルと標準入力の内容を連結する場合，標準入力からの入力は連結するファイルの終端に達するまで行われます。このため，標準入力から行を入力するときにEOFが入力されると，空文字列としてファイルの行と結合されます。

file1を標準入力から入力しfile2と行単位に連結する例を次に示します。

file1の内容

a001
a002
a003
a004
a005

file2の内容

b001
b002
b003
b004

file1，file2を行単位に連結するコマンド

$ cat file1 | paste - file2 -

行は次の順に結合されます。

file1から入力した行（標準入力から入力）

file2から入力した行

file1から入力した行（標準入力から入力）

このとき，次のように連結します。「→」は区切り文字のタブ文字を表します。

a001→b001→a002     1.
a003→b002→a004     2.
a005→b003→         3.
→    b004→         4.

次の値をタブ文字によって結合し出力します。

・標準入力から入力した行の内容（file1の1行目の内容）

・file2の1行目の内容

・標準入力から入力した行の内容（file1の2行目の内容）

次の値をタブ文字によって結合し出力します。

・標準入力から入力した行の内容（file1の3行目の内容）

・file2の2行目の内容

・標準入力から入力した行の内容（file1の4行目の内容）

次の値をタブ文字によって結合し出力します。

・標準入力から入力した行の内容（file1の5行目の内容）

・file2の3行目の内容

・標準入力からはEOFを入力した（標準入力に出力するファイルが終端に到達している）ため空文字列

次の値をタブ文字によって結合し出力します。

・標準入力からはEOFを入力した（標準入力に出力するファイルが終端に到達している）ため空文字列

・file2の4行目の内容

・標準入力からはEOFを入力した（標準入力に出力するファイルが終端に到達している）ため空文字列

ファイル内の行の結合（-sオプションが指定されている場合）

標準入力からEOFを入力するまで行の入力を繰り返し，標準入力から入力したすべての行を区切り文字で結合します。結合した行をほかのファイルと連結します。file1を標準入力から入力しfile2と連結する例を次に示します。

file1の内容

a001
a002
a003

file2の内容

b001
b002

file1，file2を連結するコマンド（file1を標準入力から入力）

$ cat file1 | paste -s - file2

このとき，次のように連結します。「→」は区切り文字のタブ文字を表します。

a001→a002→a003    1.
b001→b002          2.

標準入力から入力したすべての行（file1のすべての行）を区切り文字で結合して出力します。

file2から入力したすべての行を区切り文字で結合して出力します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

引数に指定したファイルのうち，オープンに失敗したファイルがありました。

-sオプションが指定されていない場合は，ファイルは連結されません。

-sオプションが指定されている場合は，ファイルのオープン失敗時にエラーメッセージを出力し，次に指定されているファイルを処理します。

2

エラー終了

不正なオプションを指定しました。

3

エラー終了

メモリ不足が発生したなどの処理を続行できないエラーが発生しました。

注意事項

pasteコマンドはテキストファイルを対象としています。バイナリファイルからの入力やバイナリデータの出力は，動作を保証しません。

-sオプションを指定しない場合，引数に指定した複数のファイルを同時にオープンします。UNIXの場合，OS全体で同時にオープンできるファイルの最大値，またはulimitでそのプロセスのファイルディスクリプタ数の最大値制限されているなどのOSの設定値によっては，ファイルをオープンするときにエラーが発生するおそれがあります。

使用例

複数のファイルを行単位に連結します。結合する行と行の間に挿入する区切り文字はタブ文字とします。出力結果の「→」はタブ文字を表します。

入力ファイル（file01）の内容

a001
a002
a003

入力ファイル（file02）の内容

b001
b002
b003

入力ファイル（file03）の内容

c001
c002
c003

このときのコマンド指定と実行結果を次に示します。

$ paste file01 file02 file03
a001→b001→c001
a002→b002→c002
a003→b003→c003

複数のファイルを行単位に連結します。結合する行と行の間には区切り文字「=」と「%」を順に挿入します。

入力ファイル（file01）の内容

a001
a002
a003

入力ファイル（file02）の内容

b001
b002
b003

入力ファイル（file03）の内容

c001
c002
c003

入力ファイル（file04）の内容

d001
d002
d003

このときのコマンド指定と実行結果を次に示します。

$ paste -d "=%" file01 file02 file03 file04
a001=b001%c001=d001
a002=b002%c002=d002
a003=b003%c003=d003

複数のファイルを行単位に連結します。結合する行と行の間には区切り文字「=」，「%」および「@」を順に挿入します。

入力ファイル（file01）の内容

a001
a002
a003

入力ファイル（file02）の内容

b001
b002
b003

入力ファイル（file03）の内容

c001
c002
c003

このときのコマンド指定と実行結果を次に示します。

$ paste -d "=%@" file01 file02 file03
a001=b001%c001 ※
a002=b002%c002
a003=b003%c003

注※

同じ行番号に対する行の連結回数は次のように2回です。

・file01の1行とfile02の1行を連結

・file01とfile02の行の連結結果に対してfile03の1行を連結

このため，-dオプションに指定した区切り文字「@」は使用されません。

lsコマンドで表示されるファイル名一覧を標準入力から入力し4列で出力します。ファイル名とファイル名の間には区切り文字「,」を挿入します。

$ ls
a001  a002  a003  a004  b001  b002  b003  b004  c001  c002
$ ls | paste -d "," - - - -
a001,a002,a003,a004
b001,b002,b003,b004
c001,c002,,

ファイル単位にファイル内の全行を結合して1行としたあと，各ファイルを連結します。結合する行と行の間には区切り文字「=」，「%」および「@」を順に挿入します。

入力ファイル（file01）の内容

a001
a002
a003

入力ファイル（file02）の内容

b001
b002
b003
b004

入力ファイル（file03）の内容

c001
c002
c003
c004
c005

入力ファイル（file04）の内容

d001
d002

このときのコマンド指定と実行結果を次に示します。

$ paste -s -d "=%@" file01 file02 file03 file04
a001=a002%a003
b001=b002%b003@b004
c001=c002%c003@c004=c005
d001=d002

複数のファイルを行単位に連結する場合に，存在しないファイルを指定したときのメッセージを次に示します。

$ paste file01 file02 file03
paste: file02: No such file or directory

ファイル内の全行を結合し，複数のファイルを連結します。入力ファイルとして存在しないファイルfile01とfile03が指定されています。

入力ファイル（file02）の内容

b001
b002
b003
b004

入力ファイル（file04）の内容

d001
d002

このときのコマンド指定と実行結果を次に示します。

$ paste -s -d "=%@" file01 file02 file03 file04
paste: file01: No such file or directory※
b001=b002%b003@b004
paste: file03: No such file or directory※
d001=d002

注※

標準エラー出力に出力される内容

rmコマンド（ファイルまたはディレクトリを削除する）

形式

rm［-d］［-f］［-i］［-R］［-r］パス名 ...

機能

ファイルまたはディレクトリを削除します。

引数

-d

ファイルまたはディレクトリを削除します。ディレクトリの場合，ディレクトリごと削除します。

-f

ファイルを削除します。存在しないファイルは無視されます。削除するかどうかは問い合わせません。-iオプションの前に指定すると無視されます。

-i

ファイルを削除する前に確認します。標準入力からyまたはYを応答すると削除します。-fオプションの前に指定すると無視されます。

-R|-r

再帰的にディレクトリツリーを削除します。

パス名

削除するパス名を指定します。複数指定できます。

終了コード

終了コード

意味

0

正常終了

指定したファイルやディレクトリの削除に成功しました。

-fオプションを指定した場合は，指定したファイルのうち，存在するファイルの削除に成功しました。

1以上

エラー終了

注意事項

Windowsの場合，write権限がなく削除を確認するときは，オーナーのアクセス権以外は表示しません。

表示するパーミッションの詳細については，「lsコマンド（ファイルまたはディレクトリの内容を表示する）」を参照してください。

-fオプションおよび-iオプションは最後に指定したオプションが有効となります。

使用例

-iオプションを指定して，ファイルを削除するかどうか確認します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥rm -i file2.txt
remove file2.txt?

ファイルがない場合のエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥rm c.txt
rm: c.txt: No such file or directory

-dオプションを使用しないでディレクトリを削除しようとした場合のエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥rm dir8
rm: dir8: is a directory

削除しようとしたディレクトリにファイルが存在した場合のエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥rm -d dir8
rm: dir8: Directory not empty

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥rm -w
rm: illegal option -- w
usage: rm [-dfiRr] file ...

rmdirコマンド（空のディレクトリを削除する）

形式

rmdir ディレクトリ名 ...

機能

空のディレクトリを削除します。

引数

ディレクトリ名

削除するディレクトリを指定します。

終了コード

終了コード

意味

0

正常終了

ディレクトリの削除に成功しました。

1以上

エラー終了

注意事項

このコマンドには指定可能なオプションが存在しません。そのため，引数にオプションを指定した場合，そのオプションをディレクトリとして解釈します。

使用例

D:¥temp¥dir1のdir1ディレクトリを削除します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥rmdir  D:¥temp¥dir1

ディレクトリが空ではない場合のエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥rmdir dir8
rmdir: dir8: Directory not empty

削除するディレクトリが指定されていない場合のエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥rmdir
usage: rmdir directory ...

sedコマンド（テキスト中の文字列を置換する）

形式

sed［-a］［-E］［-n］［-r］［-u］コマンド［入力ファイルパス名...］
sed［-a］［-E］［-n］［-r］［-u］［-e コマンド］...［-f スクリプトファイルパス名］...［入力ファイルパス名...］

機能

ファイルや標準入力のテキストの文字列を置換して標準出力に出力します。

引数

-a

編集コマンドの解析エラーが発生した場合に，ファイルが作成されないようにしたり，既存ファイルが空にならないようにしたりするときに指定します。wコマンドまたはsコマンドのwフラグで指定するパターンスペース出力ファイルの作成方法を定義します。パターンスペース出力ファイルは，wコマンド，またはwフラグ指定のsコマンドが適用されるときに作成されます。-aオプションを指定しない場合は，wコマンド，またはsコマンドのwフラグ解析時にパターンスペース出力ファイルを作成します。

-E|-r

コマンドで指定するパターンを，拡張した正規表現として扱います。どちらのオプションを指定しても同じように実行されます。

-n

標準出力へのパターンスペースの出力を抑止します。pコマンドまたはPコマンドによる出力以外はパターンスペースの標準出力への出力は行いません。

-u

Windowsの場合，標準出力への実行結果出力時のバッファリングを抑止します。

UNIXの場合，標準出力への実行結果出力時のバッファリングをレコード単位にします。

コマンド|-e コマンド

入力ファイルを編集するコマンドを指定します。-eオプションは複数指定できます。-eオプションを複数指定する場合，コマンドの実行順序は指定された順番です。-fオプションを指定しない場合は，-eオプションの指定を省略できます。

-f スクリプトファイルパス名

スクリプトファイルのパス名を指定します。スクリプトファイルには，入力ファイルのレコードを編集する編集コマンドを記述します。-fオプションは複数指定できます。-fオプションを複数指定する場合，または-eオプションと組み合わせて指定する場合，コマンドの実行順序は指定された順番です。

入力ファイルパス名

編集する入力ファイルのパス名を指定します。複数指定できます。パス名を指定しない場合は，標準入力から入力します。ファイルを複数指定した場合，処理中のファイルが終端に到達したときに次のファイルをオープンしてレコードを入力します。

編集コマンドの記述形式

入力ファイルを編集する編集コマンドの記述形式を次に示します。

［address［,address］］command［arguments］

addressには，編集対象のレコードを特定するためのアドレス（レコードの行番号，または検索パターン文字列）を指定します。

commandには，入力レコードに適用する編集コマンドを指定します。

argumentsには，編集コマンドに渡す引数を指定します。

入力ファイルから1レコードを入力するたびにアドレスで指定したレコードの行番号，または検索パターン文字列と比較し，一致した場合に編集コマンドが実行されます。アドレスを省略した場合はすべてのレコードが編集の対象となります。編集コマンドの実行結果は標準出力に出力されます。

アドレス

入力ファイル内の編集対象となるレコードを特定するためのアドレスです。

行番号

入力ファイルの先頭レコードを1とした行番号を指定します。最終レコードは「$」を使うこともできます。複数の入力ファイルを指定した場合は通し番号になります。なお，行番号（アドレス範囲指定時は開始行番号）に0を指定した場合，編集コマンドは入力レコードに適用されません。

検索パターン文字列

レコード内の文字列に一致させる検索パターン文字列を「/」で囲んで指定します。検索パターン文字列には正規表現が指定できます。指定例を次に示します。

/abc/w file

検索パターン文字列を囲む「/」は，「¥」と改行文字以外のすべての1バイト文字のどれかに変更できます。「/」以外の文字を区切り文字として使用する場合は，先頭の区切り文字の前に「¥」を記述します。

指定例を次に示します。検索パターン文字列を囲む「/」を「#」に変更して指定します。

¥#abc#w file

アドレス範囲指定

「address，address」を指定することで編集対象となるレコードの範囲が指定できます。1番目のaddressに一致するレコードから，2番目のaddressに一致するレコードまでが編集コマンドの実行範囲となります。

範囲は，次のように指定できます。

2つの行番号による範囲

2つの検索パターン文字列による範囲

行番号と検索パターン文字列の組み合わせによる範囲

2つの行番号による範囲の指定例を次に示します。

5,20w outfile

1番目のaddressで指定した行番号のレコードから，2番目のaddressに指定した行番号のレコードまでが編集コマンドの実行範囲となります。

なお，1番目のaddressで指定した行番号が2番目のaddressで指定した行番号より大きい場合（1番目のaddress＞2番目のaddress），1番目のaddressで指定した行番号のレコードだけが編集コマンドの実行対象となります。

2つの検索パターン文字列による範囲の指定例を次に示します。

/abc/,/xyz/w file

1番目のaddressの検索パターン文字列に一致するレコードから，2番目のaddressの検索パターン文字列に一致するレコードまでが編集コマンドの実行範囲となります。

なお，2番目のaddressで指定した検索パターン文字列を含むレコードがなく入力ファイルの終端に達した場合は，入力ファイルの最終行までが範囲となります。ただし，複数の入力ファイルを指定した場合，次の入力ファイルで2番目のaddressで指定した検索パターン文字列に一致するレコードを検索します。

1番目のaddressが検索パターン文字列で2番目のaddressが行番号の場合，検索パターンに一致したレコードの行番号が2番目のaddressの行番号より大きい場合（1番目のaddress＞2番目のaddress），検索パターンに一致したレコードだけが編集コマンドの実行対象となります。

パターンスペースとホールドスペース

sedコマンドにはパターンスペース，ホールドスペースと呼ばれるテキスト編集用の作業領域があります。

パターンスペースには入力ファイルから入力したレコードが格納されます。

パターンスペースは，次に示すsedコマンドの処理の流れで使用されます。

入力ファイルから改行コードで分割された1レコードを入力します。

Windowsでは，［CR］＋［LF］または［LF］です。UNIXでは，［LF］だけです。UNIXの場合，入力ファイルの改行コードが［CR］＋［LF］のときは，パターンスペースに［CR］が格納されます。

入力レコードの内容をパターンスペースにコピーします。

パターンスペースがアドレスで指定した行番号，またはパターンスペースの内容に検索パターン文字列が一致する場合に編集コマンドを実行します。

実行するコマンドがDコマンドの場合に，Dコマンド実行後にパターンスペースの内容が残っているときは，手順1と手順2は処理されません。

パターンスペースの内容を標準出力に出力します。

ただし，-nオプションが指定されている場合は処理されません。

パターンスペースの内容を消去します。

ホールドスペースはパターンスペースの内容を退避したり，ホールドスペースの内容をパターンスペースに戻したりする一時的な作業領域として使用できます。

編集コマンド

sedコマンドで使用できる編集コマンドを次に示します。

［address［,address］］{command-list}

入力レコードに適用する複数の編集コマンドをグループ化します。各編集コマンドは改行または;（セミコロン）で区切ります。なお，最後に記述した編集コマンドと同じ行に「}」を記述する場合は，コマンド名の後ろに「;」を記述する必要があります。

[address]a¥（改行）

text

次の入力レコードを読み込む前にtextに記述したテキストを標準出力に出力します。複数レコードを出力する場合は，改行の直前に「¥」を記述します。

指定例を次に示します。次の入力レコードを読み込む前に2レコードを標準出力に出力します。

a¥（改行）
テキスト1¥（改行）
テキスト2

[address[,address]]b[label]

指定したラベルlabelが定義されている「:label」コマンドに分岐します。labelの指定を省略した場合は，スクリプト記述の末尾に分岐します。

[address[,address]]c¥（改行）

text

パターンスペースの内容を削除します。アドレス未指定または1個のアドレスが指定されている場合は，textに記述したテキストを標準出力に出力します。アドレス2個指定の場合は，選択された範囲の最終レコードを処理したあとにtextに記述したテキストを標準出力に出力します。複数レコードを出力する場合は，改行の直前に「¥」を記述します。

また，cコマンドの後ろに記述されているコマンドは実行されないで，次の入力レコードを読み込んで先頭のコマンドから実行が開始されます。

[address[,address]]d

パターンスペースの内容を削除します。削除するパターンスペースの内容は標準出力には出力されません。また，dコマンドの後ろに記述されているコマンドは実行されないで，次の入力レコードを読み込んで先頭のコマンドから実行が開始されます。

[address[,address]]D

パターンスペースに複数レコードが格納されている場合に，最初の改行までを削除します。パターンスペースの内容は標準出力には出力されません。また，Dコマンドの後ろに記述されているコマンドは実行されないで，先頭のコマンドから実行が開始されます。

Dコマンドを実行した結果，パターンスペースの内容がなくなった場合は，次の入力レコードを読み込んで先頭のコマンドから実行が開始されます。

[address[,address]]g

ホールドスペースの内容をパターンスペースにコピーします。コピー前のパターンスペースの内容は破棄されます。

[address[,address]]G

ホールドスペースの内容をパターンスペースに追加します。追加前にパターンスペースに格納されているレコードとは改行文字で区切られます。

[address[,address]]h

パターンスペースの内容をホールドスペースにコピーします。コピー前のホールドスペースの内容は破棄されます。

[address[,address]]H

パターンスペースの内容をホールドスペースに追加します。追加前にホールドスペースに格納されているレコードとは改行文字で区切られます。

[address]i¥（改行）

text

現在の入力レコードをパターンスペースに格納する前にtextに記述したテキストを標準出力に出力します。複数レコードを出力する場合は，改行の直前に「¥」を記述します。

[address[,address]]l

パターンスペースの内容を標準出力に出力します。1バイト文字（0x20〜0x7eの範囲），スペースおよびマルチバイト文字以外のデータは，各バイトごとに「¥」に続いて3桁の8進数で出力します。また，「¥」は「¥¥」として出力され，次の表に示す制御コードはエスケープ文字として出力されます。

制御コード

出力されるエスケープ文字

アラート文字（ベル）

¥a

バックスペース文字

¥b

フォームフィード文字（改ページ）

¥f

改行文字。なお，行（複数行の場合は最終行）の終端の改行文字は出力されません。

¥n

復帰文字

¥r

タブ文字

¥t

垂直タブ文字

¥v

1レコードの出力幅は，次の優先順位で値が決まります。

環境変数COLUMNSの値

コンソールへの出力の場合はコンソール画面の幅

半角文字で60文字

各レコードの終わりには$記号が出力されます。なお，1レコードが出力幅を超える場合は折り返して出力されます。折り返し部分には「¥」が出力されます。

なお，環境変数COLUMNSはJP1/Advanced Shellのジョブ定義スクリプト内に定義できません。

[address[,address]]n

入力ファイルから次の入力レコードを読み込んでパターンスペースに格納し，現在の内容を標準出力に出力します。現在の行番号には1が加算されます。-nオプション指定時は，パターンスペースの現在の内容は標準出力に出力されません。

[address[,address]]N

入力ファイルから次の入力レコードを読み込んでパターンスペースに追加します。追加前にパターンスペースに格納されているレコードとは改行文字で区切られます。現在の行番号には1が加算されます。

[address[,address]]p

パターンスペースの内容を標準出力に出力します。

[address[,address]]P

パターンスペースに複数レコードが格納されている場合に，最初の改行までの内容を出力します。パターンスペースに1レコードしか格納されていない場合はpコマンドの場合と同じです。

[address]q

スクリプトの処理を終了します。この記述以降はコマンドの実行および入力レコードの入力はしません。-nオプションが指定されていない場合，終了時にパターンスペースの内容を標準出力に出力します。また，aまたはrコマンドで追加されたレコードがあるときはそのレコードが出力されます。

[address]r パス名

次の入力レコードの入力前にパス名で指定したファイルの内容を標準出力に出力します。パス名で指定したファイルの入力でエラーが発生しても無視されます。

Windowsの場合，ファイル中の改行コードは［CR］＋［LF］で出力されます。

UNIXの場合，ファイル中の改行コードをそのまま出力します。

[address[,address]]s/pattern/replacement/flags

パターンスペース内のパターンpatternに最初に一致する文字列を置き換え文字列replacementに置き換えます。「s」，patternおよびreplacementの区切り文字である「/」を，「¥」と改行文字以外のすべての1バイト文字のどれかに変更できます。区切り文字をpattern，replacementの文字に含めたい場合は，pattern，replacement内の区切り文字の前に「¥」を記述します。

パターンには正規表現が指定できます。

また，置き換え文字列replacementには次の文字が指定できます。

「&」を指定した場合は，「&」がパターンに一致した文字列に置き換わります。「&」を置き換える文字として扱いたい場合は「&」の前に「¥」を記述します。

「¥N」(N:1〜9の数字)を指定した場合は，「¥N」がパターンの()（丸括弧）で囲まれたタグ付き正規表現に一致する文字列に置き換わります。「¥」の後ろの数字はパターン中のタグ付き正規表現文字列の順番を示します。

改行を含める場合は改行の直前に「¥」を記述します。

flagsに指定できるフラグには次の値があります。なお，フラグは省略でき，また1個以上指定できます。

N

パターンスペースでN回目に一致したパターンだけを置き換えます。

g

パターンスペースの最初にパターンに一致した文字列の置き換えだけでなく，パターンスペース内のパターンに一致したすべての文字列を置き換えます。

p

置き換えを実行した場合，置き換え後のパターンスペースの内容を標準出力に出力します。

w パス名

置き換えを実行した場合，置き換え後のパターンスペースの内容をパス名で指定したファイルに追加します。指定したファイルがある場合は，次のようになります。

-aオプションを指定しないとき

置き換えの有無に関係なくsedコマンド実行前の内容は破棄されます。

-aオプションを指定するとき

置き換えが実行されるとsedコマンド実行前の内容は破棄されます。

Windowsの場合，ファイルに出力される改行コードは［CR］+［LF］で出力されます。

[address[,address]]t[label]

入力レコードが読み込まれてから，または直前に実行されたtコマンド以降でsコマンドによる置き換えが行われた場合に，指定したラベルlabelが定義されている:（コロン）コマンドに分岐します。labelの指定を省略した場合は，スクリプト記述の末尾に分岐します。

[address[,address]]w パス名

パターンスペースの内容をパス名で指定したファイルに追加します。指定したファイルがある場合は，次のようになります。

-aオプションを指定しないとき

アドレスaddressが一致しているかどうかに関係なくsedコマンド実行前の内容は破棄されます。

-aオプションを指定するとき

アドレスaddressに一致するとsedコマンド実行前の内容は破棄されます。

Windowsの場合，ファイルに出力される改行コードは［CR］+［LF］で出力されます。

[address[,address]]x

パターンスペースの内容とホールドスペースの内容を交換します。

[address[,address]]y/string1/string2/

パターンスペースの内容に対して，文字列string1に指定した文字ごとに検索と置き換えを行います。置き換える文字は，文字列string1の各文字に対応する位置にある文字列string2中の文字で置き換えます。

string1とstring2の文字数は同じにする必要があります。

string1またはstring2に改行文字を指定する場合は¥nを指定します。「y」，string1およびstring2の区切り文字である「/」を，「¥」と改行文字以外のすべての1バイト文字のどれかに変更できます。

[address[,address]]!commandまたは[address[,address]]!{command-list}

コマンドまたは，グループ化したコマンド群をアドレスaddressで選択されないレコードに適用します。

:label

bおよびtコマンドに指定した分岐先のラベルを定義します。:（コロン）コマンド自体は処理をしません。

[address]=

現在の行番号を1レコードとして標準出力に出力します。

(空行)

空行は無視されます。

#

#以降はコメントとして扱われます。なお，スクリプトファイルの先頭レコードの1カラム目に「#n」を記述した場合は，-nオプションを指定した場合の動作となります。

エスケープ文字

アドレスの検索パターン，aコマンドのテキスト，cコマンドのテキスト，iコマンドのテキスト，sコマンドのパターンと置き換え文字列，およびyコマンドの検索文字と置き換え文字には次のエスケープ文字を使用できます。

エスケープ文字

意味

¥a

アラート文字（ベル）

¥b

バックスペース文字※1

¥f

フォームフィード文字（改ページ）

¥n

改行文字※2

¥r

復帰文字

¥t

タブ文字

¥v

垂直タブ文字

¥xhex

1〜2桁の16進値で表された文字（0〜9，a〜f，A〜F）※3

¥c

任意のリテラル文字(「¥"」なら「"」)

¥¥

1つのバックスラッシュ文字

注※1

アドレスの検索パターン，sコマンドのパターンに指定した場合，正規表現演算子の¥bとして扱われます。なお，[ ]で囲んだ文字集合内に指定した場合はバックスペース文字として扱われます。

注※2

Windowsの場合，aコマンドのテキスト，cコマンドのテキストおよびiコマンドのテキストで指定すると，出力時に［CR］+［LF］で出力されます。

注※3

パターンに指定する場合，実行時の文字コード種別によっては指定できない値があります。文字コード種別ごとに指定できる値を16進数値で示します。なお，次の値以外を指定した場合はエラー終了します。

・文字コード種別：シフトJIS

　0x01-0x80,0xA0-0xDF,0xFD-0xFF

・文字コード種別：UTF-8

　0x01-0xBF,0xFE-0xFF

・文字コード種別：EUC

　0x01-0x8D,0x90-0xA0,0xFF

・文字コード種別：C

　0x01-0xFF

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

使用例

ファイルの1レコード目から3レコード目を削除するdコマンドを指定します。入力ファイルは，file01.txtです。

file01.txtの内容

hitachi group01 Tokyo
HITACHI group02 Yokohama
hitachi group03 Fukuoka
HITACHI group04 Hokkaido
HITACHI group05 Ooita
HITACHI group06 Hiroshima

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed "1,3d" file01.txt
HITACHI group04 Hokkaido
HITACHI group05 Ooita
HITACHI group06 Hiroshima

検索パターンに一致したレコードに対して，iコマンドで一致したレコードの前に2レコード追加し，aコマンドで一致したレコードの前に1レコード追加します。検索パターンに一致しないレコードはcコマンドで別のレコードに置き換えます。スクリプトファイルは，scpt01.sedです。入力ファイルは，file02.txtです。

scpt01.sedの内容

/file/{
i¥
<FILE-LINE>¥
 [FILE-BEGIN]
a¥
 [FILE-END]
}
/file/!{
c¥
<DIR-LINE>
}

file02.txtの内容

The file path used by trace is invalid.
Don't know current directory.
Input asc file is the same as output asc file.
Cannot change directory.
Merging two asc files is started.

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed -f scpt01.sed file02.txt
<FILE-LINE>
 [FILE-BEGIN]
The file path used by trace is invalid.
 [FILE-END]
<DIR-LINE>
<FILE-LINE>
 [FILE-BEGIN]
Input asc file is the same as output asc file.
 [FILE-END]
<DIR-LINE>
<FILE-LINE>
 [FILE-BEGIN]
Merging two asc files is started.
 [FILE-END]

パターンに最初に一致する文字列を置き換えます。入力ファイルは，file03.txtです。

file03.txtの内容

日立 横浜支店 日立グループ
日立 東京支店 日立グループ
日立 沖縄支店 日立グループ
日立 福岡支店 日立グループ

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed "s/日立/&製作所/" file03.txt
日立製作所 横浜支店 日立グループ
日立製作所 東京支店 日立グループ
日立製作所 沖縄支店 日立グループ
日立製作所 福岡支店 日立グループ

パターンに一致する文字列を整形して置き換えます。入力ファイルは，file04.txtです。

file04.txtの内容

日立 横浜支店   日立グループ
日立 東京支店   日立グループ
日立 沖縄支店   日立グループ
日立 北海道支店 日立グループ
日立 福岡支店   日立グループ

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed "s/¥(日立 ¥)¥(.*¥)¥(支店¥)/¥1¥3名:¥2/" file04.txt
日立 支店名:横浜   日立グループ
日立 支店名:東京   日立グループ
日立 支店名:沖縄   日立グループ
日立 支店名:北海道 日立グループ
日立 支店名:福岡   日立グループ

パターンに2回目に一致する文字列を置き換えます。入力ファイルは，file05.txtです。

file05.txtの内容

日立 横浜支店 日立グループ 日立製作所
日立 東京支店 日立グループ 日立製作所
日立 沖縄支店 日立グループ 日立製作所
日立 福岡支店 日立グループ 日立製作所

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed "s/日立/&製作所/2" file05.txt
日立 横浜支店 日立製作所グループ 日立製作所
日立 東京支店 日立製作所グループ 日立製作所
日立 沖縄支店 日立製作所グループ 日立製作所
日立 福岡支店 日立製作所グループ 日立製作所

特定範囲のレコードのパターンに一致するすべての文字列を置き換えます。入力ファイルは，file06.txtです。

file06.txtの内容

日立 横浜支店 日立グループ
日立 東京支店 日立グループ
日立 沖縄支店 日立グループ
日立 福岡支店 日立グループ

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed "/東京/,/沖縄/s/日立/&製作所/g" file06.txt
日立 横浜支店 日立グループ
日立製作所 東京支店 日立製作所グループ
日立製作所 沖縄支店 日立製作所グループ
日立 福岡支店 日立グループ

sコマンドのフラグにpを指定し，文字列を置き換えたレコードを標準出力に出力します。入力ファイルは，file07.txtです。

file07.txtの内容

日立 横浜支店 日立グループ
日立 東京支店 日立グループ
日立 沖縄支店 日立グループ
日立 福岡支店 日立グループ

コマンドの実行例を次に示します。

-nオプションを指定した場合

C:¥DIR>%ADSH_OSCMD_DIR%¥sed -n "/東京/,/沖縄/s/日立/&製作所/gp" file07.txt
日立製作所 東京支店 日立製作所グループ
日立製作所 沖縄支店 日立製作所グループ

-nオプションを指定しない場合

C:¥DIR>%ADSH_OSCMD_DIR%¥sed "/東京/,/沖縄/s/日立/&製作所/gp" file07.txt
日立 横浜支店 日立グループ
日立製作所 東京支店 日立製作所グループ
日立製作所 東京支店 日立製作所グループ
日立製作所 沖縄支店 日立製作所グループ
日立製作所 沖縄支店 日立製作所グループ
日立 福岡支店 日立グループ

sコマンドのフラグにwを指定し，文字列を置き換えたレコードをファイルに出力します。入力ファイルは，file08.txtです。

file08.txtの内容

日立 横浜支店 日立グループ
日立 東京支店 日立グループ
日立 沖縄支店 日立グループ
日立 福岡支店 日立グループ

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed -n "/東京/,/沖縄/s/日立/&製作所/gw dir¥¥out.txt" file08.txt
C:¥DIR>%ADSH_OSCMD_DIR%¥cat dir¥out.txt
日立製作所 東京支店 日立製作所グループ
日立製作所 沖縄支店 日立製作所グループ

特定範囲のレコード以外のレコードをファイルに出力します。入力ファイルは，file09.txtです。

file09.txtの内容

日立 横浜支店 日立グループ
日立 東京支店 日立グループ
日立 北海道支店 日立グループ
日立 沖縄支店 日立グループ
日立 福岡支店 日立グループ

コマンドの実行例を次に示します。

C:¥DIR>sed -n "/東京/,/沖縄/!w dir¥¥out.txt" file09.txt
C:¥DIR>cat dir¥out.txt
日立 横浜支店 日立グループ
日立 福岡支店 日立グループ

yコマンドで文字を置き換えます。入力ファイルは，file10.txtです。

file10.txtの内容

あ い う え お あ い う
お え う い あ

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed "y/あいうえお/アiウeオ/" file10.txt
ア i ウ e オ ア i ウ
オ e ウ i ア

検索パターンに一致したレコードと行番号を標準出力に出力します。スクリプトファイルの先頭レコードに「#n」を記述し，検索パターンに一致しないレコードは出力しません。スクリプトファイルは，scpt02.sedです。入力ファイルは，prog01.awkです。

scpt02.sedの内容

#n
/ print/{
=
p
}

prog01.awkの内容

BEGIN{
    print "Extract record : group03 - group06" > "file06.txt"
}
/group03/,/group06/{  ※
    count++;
    print >> "file06.txt";

}
END{
    printf "total record : %03d¥n", count >> "file06.txt"
}

注※

group03に一致するレコードからgroup06に一致するレコードを処理対象とします。

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed -f scpt02.sed prog01.awk
2
    print "Extract record : group03 - group06" > "file06.txt"
6
    print >> "file06.txt";
10
    printf "total record : %03d¥n", count >> "file06.txt"

lコマンドで印字できない文字とエスケープ文字を可視化して出力します。入力ファイルは，file11.txtです。

file11.txtの内容

日立(タブ)横浜¥支店(タブ)日立グループ
日立(タブ)東京¥支店(タブ)日立グループ
日立(タブ)福岡¥支店(タブ)日立(0x12)※グループ

注※

1バイトのデータです。

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed -n "l" file11.txt
日立¥t横浜¥¥支店¥t日立グループ$
日立¥t東京¥¥支店¥t日立グループ$
日立¥t福岡¥¥支店¥t日立¥022グループ$

検索パターンに一致したレコードの位置にrコマンドで指定したファイル内のレコードを出力します。dコマンドで検索パターンに一致したレコードを削除します。スクリプトファイルは，scpt03.sedです。入力ファイルは，prog02.awk，およびheader.txtです。

scpt03.sedの内容

/^<Header>/{
r header.txt
d
}

prog02.awkの内容

###################################################################
<Header>
###################################################################
BEGIN{
    str = "日立#横浜支店#日立グループ"
    num = split(str, arry,"#")
    for (i = 1; i <= num; i++ ) {
        print arry[i]
    }
}

header.txtの内容

# Sample program
# Hitachi group list

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed -f scpt03.sed prog02.awk
###################################################################
# Sample program
# Hitachi group list
###################################################################
BEGIN{
    str = "日立#横浜支店#日立グループ"
    num = split(str, arry,"#")
    for (i = 1; i <= num; i++ ) {
        print arry[i]
    }
}

ファイルからレコードブロックを抽出します。スクリプトファイルは，scpt04.sedです。入力ファイルは，file12.txtです。

scpt04.sedの内容

/^Error01/{
:LOOP
      n※1
      /Error/{
          /^Error01/b LOOP※2
          /^Error01/!d
      }
      b LOOP※2
}
d

注※1

現在のパターンスペースの内容を標準出力に出力し，次のレコードを入力します。

注※2

次のレコードを入力するためにnコマンドを実行するLOOPラベルに分岐します。

file12.txtの内容

Error01001
The file path used by trace is invalid.
Error02001
Don't know current directory.
Error01002
Unable to get the date for the start of the job execution.
Spool job was not deleted.
Error01003
Cannot change directory.
Error02002
Asc file name size is exceeded limits
for batch coverage function.
Error01004
Failed to get the current time.

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed -f scpt04.sed file12.txt
Error01001
The file path used by trace is invalid.
Error01002
Unable to get the date for the start of the job execution.
Spool job was not deleted.
Error01003
Cannot change directory.
Error01004
Failed to get the current time.

qコマンドでパターンに一致したレコードを入力した場合にスクリプトを終了します。入力ファイルは，file13.txtです。

file13.txtの内容

Error01001
The file path used by trace is invalid.
Error02001
Don't know current directory.
Error01002
Unable to get the date for the start of the job execution.
Spool job was not deleted.
Error01003
Cannot change directory.

コマンドの実行例を次に示します。

C:¥DIR>%ADSH_OSCMD_DIR%¥sed "/Error01002/q" file13.txt
Error01001
The file path used by trace is invalid.
Error02001
Don't know current directory.
Error01002

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥sed -x
sed: illegal option -- x
usage: sed [-aEnru] command [file ...]
       sed [-aEnru] [-e command] ... [-f command_file] ... [file ...]

sleepコマンド（指定された時間だけ停止する）

形式

sleep 秒数

機能

指定した時間だけ実行を停止します。

引数

秒数

実行を停止する時間を秒単位で指定します。数字以外を指定するとusageが表示されます。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

使用例

5秒間実行を停止します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥sleep  5

secondsに数字以外を指定した場合を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥sleep poipoi
usage: sleep seconds

sortコマンド（テキストファイルをソートする）

形式

sort［-c|-m］［-b］［-f］［-n］［-r］［-u］［-z］
    ［-k 開始位置［,終了位置］］［-o 出力先パス名］
    ［-T 一時ファイルディレクトリ］［-t フィールド区切り文字］
    ［入力パス名 ...］

機能

ファイルや標準入力から入力して，次のどれかの処理を実施します。実行結果を標準出力に出力します。

ソート

マージ

ソートされているかのチェック

引数

動作モードの指定

動作モードの指定をするオプションを省略すると，ソートします。ソートを昇順にするか降順にするかは，-rオプションの有無で指定します。

-c

指定したファイルに対してソートされているかどうかチェックします。チェック機能は，1つのファイルが正しくソートされているかどうかを判定します。

ソートされている場合は終了コード0で終了します。ソートされていない場合は，標準エラー出力にメッセージ（sort: found disorder: フィールドの内容）を出力し，終了コード1で終了します。

このオプションを指定した場合，入力ファイルを2個以上指定するとエラーとなります（sort: too many input files for the -c option）。-uオプション以外のオプションと同時に指定した場合，このオプションを最優先します。複数回指定してもエラーになりません。

-cオプションを指定しない場合はソートします。

-m

入力ファイルはソートされていると仮定してマージだけします。-cオプションが同時に指定されている場合，-mオプションは無視されます。複数回指定してもエラーになりません。

-mオプションを指定しない場合はソートします。

入出力の指定

-o 出力先パス名

標準出力の代わりに出力先パス名に指定したファイルに出力します。

出力先のファイルが存在しない場合は新規に作成します。UNIXの場合，新規に作成したファイルのパーミッションはumaskに従って設定します。

ファイルが存在する場合は中間ファイルにいったん出力してから，元のファイルを削除して中間ファイルを出力ファイル名に変更します。この中間ファイルの出力先は入力ファイルと同一ディレクトリに作成します。UNIXの場合，ファイルのパーミッションはumaskに従って新たに設定します。

このオプションを複数指定した場合，最後に指定したオプションが有効になります。

UNIXの場合，出力先パス名に/dev/stdout（Windowsの場合も小文字で/dev/stdoutと記述する）を指定したとき，標準出力を使用します。

出力先パス名にシンボリックリンクを指定した場合，リンクを削除し，新規のファイルが作成されます。

-T 一時ファイルディレクトリ

sortコマンドで内部処理として使用する一時ファイルを作成するディレクトリとして，一時ファイルディレクトリで指定したディレクトリを使用します。

一時ファイルとは，ソートおよびマージ処理でメモリ上だけで処理ができない場合に使用する作業用のファイルのことです。

このオプションを複数指定した場合，最後の指定が有効になります。

このオプションを省略した場合，次のディレクトリを使用します。

Windowsの場合，共通アプリケーションフォルダ¥HITACHI¥JP1AS¥miscを使用します。

UNIXの場合，環境変数TMPDIRに定義されたディレクトリを使用します。環境変数TMPDIRが定義されていないときは，/var/tmpを使用します。

入力パス名

入力するファイルを指定します。入力パス名に指定がない，または入力パス名として「-」を指定した場合は，標準入力から入力します。/dev/stdin（Windowsの場合も小文字で/dev/stdinと記述する）を指定した場合，標準入力を使用します。

ソートキーに対する指定

-b

-kオプションで指定した開始位置および終了位置に対して，行頭のスペースを無視してソートキーの位置を決めます。-kオプションでソートキーを指定した場合に，-bオプションは有効です。-bオプションは-kオプションよりあとに記述できません。

-f

小文字を大文字と見なしてソートします。複数回指定してもエラーになりません。

-n

先頭の数値文字列を数値としてソートします。

-fオプションよりも-nオプションが優先されます。このオプションは複数回指定できます。

数値の扱いを次に示します。

アスキー文字の0(0x30)〜9(0x39)で構成される文字列です。

先頭のスペース(0x20および0x09)ならびにゼロ(0x30)は無視します。

数値にマイナス記号(0x2d)を前に置いてもかまいません。

数値の小数点は1つまで指定できます。

数値に，整数部分の桁区切り文字を含んでもかまいません。

小数点および整数部分の桁区切り文字はロケールによって異なります。主に小数点はピリオド(.)，整数部分の桁区切り文字はコンマ(,)に定義されています。

数値文字列がない場合は0として扱います。

整数の桁数，または小数点以下の値で小数点以下の桁数が61以上になる数値をソートキーとして指定しないでください。

-r

-rオプションを指定すると降順に出力します。このオプションを指定しない場合，昇順に出力します。このオプションは複数回指定できます。

フィールド区切りの指定

-t フィールド区切り文字

フィールド区切り文字を指定します。ソートキーのオフセットを決める場合，フィールド区切り文字はフィールドの一部と見なされません。また，連続するフィールド区切り文字は空のフィールドとなります。レコードの区切り文字と同じ文字は指定できません。

-tオプションを指定していない場合，デフォルトのフィールド区切りは連続したスペースとなり，スペースと非スペースの間でフィールドを区切ります。連続したスペースが空のフィールドを区切ることはありません。先頭のスペースは，ソートキーのオフセットを決めるときにフィールドの一部と見なされます。

フィールド区切りとして複数文字指定した場合，およびマルチバイト文字を指定した場合は，先頭1バイトをフィールド区切りと見なします。レコード区切りと同じバイト値を指定できません。

-tオプションにフィールド区切り文字の指定をしなかった場合，直後に指定したオプションおよびファイル名がフィールド区切り文字として処理されます。そのため，区切り文字を指定するようにしてください。このオプションは複数指定するとエラーとなります（sort: multiple field delimiters）。

ソートキーの指定

-k 開始位置［,終了位置］

ソートキーの開始位置および終了位置を指定します。複数指定すると，最初のソートキーが等しい場合に次のソートキーで比較できます。

開始位置より終了位置の指定が大きい場合または指定したフィールドが存在しない場合，ソートキーの指定はないものとして扱われ，このソートキーの比較は等しいと判断されます。

開始位置および終了位置は，次の形式で指定します。

フィールド位置［.インデント］［bfnr］

フィールド位置

レコード内のフィールドの位置を指定します。数値以外を指定するとエラーとなります（sort: missing field number）。負の値を指定するとエラーとなります（sort: field numbers must be positive）。

開始位置には0を指定できません。

終了位置に0を指定した場合，レコードの末尾までを仮定します。

フィールド位置にはint型の最大値まで指定できます。それ以上を指定すると，オーバーフローが発生して予測しない値になることがあるため，指定しないでください。

フィールド位置の終了位置に0を指定した場合，次のインデントで説明する終了位置の指定はできません。

インデント

フィールドの中のオフセットを指定します。数値以外または負の値を指定するとエラーとなります（sort: missing offset）。

インデントの単位はバイトで，マルチバイトの途中を指定するとそのバイト位置から評価します。

開始位置のインデントには0を指定できません。

終了位置のインデントには0を指定できますが，0を指定するとインデントの指定がないと見なされます。

インデントはint型の最大値まで指定できます。それ以上を指定すると，オーバーフローが発生して予測しない値になることがあるため，指定しないでください。

フィールド位置の開始位置でインデントを省略した場合，フィールドの先頭バイト位置となります。

フィールド位置の終了位置でインデントを省略した場合，フィールドの最終バイト位置となります。

ソートキーに指定するオプション

ソートキーは，bオプション，fオプション，nオプション，rオプションで指定できます。

bオプションでは，前のスペースを無視してソートキーの位置を決めます。

fオプションでは，小文字を大文字と見なしてソートします。

nオプションでは，先頭の数値文字列を数値としてソートします。

rオプションでは，降順にソートします。

開始位置に指定したbオプションは開始位置にだけ有効です。また，終了位置に指定したbオプションは終了位置にだけ有効です。終了位置にインデントの指定がない場合は，bオプションは無効になります。-bオプション以外のオプションは，開始位置または終了位置のどちらにも指定でき，意味は同じです。

その他の指定

-u

同一のソートキーであるレコードが複数あった場合は，どれか1レコードだけ出力します。-cオプションと同時に指定すると，ソートキーが同じレコードがないかどうかをチェックします。複数回指定してもエラーになりません。

-z

レコードの区切りを変更するオプションです。レコードの区切りとしてNULL(0x00)を使用します。このオプションは複数指定するとエラーとなります（sort: multiple field delimiters）。

Windowsの場合，入力データの改行コードは，入力時に削除され，出力時に追加されます。そのため，バイナリファイルを入力しないでください。

ソート機能

ソート機能は，1つまたは複数のファイルを読み込み，1つまたは複数のソートキーを比較します。ソートキーは，-kオプションで指定し，1つまたは複数のフィールドで指定します。フィールドは，-tオプションで指定するフィールド区切り文字でレコードを区切ります。

ソートキーの指定がない場合，デフォルトではレコード全体を1つのソートキーと見なします。ソートキー同士はバイトごとに比較します。

ソートキーが複数ある場合，先頭に指定したソートキーを比較し，一致したときは次のソートキーを不一致になるまで順次比較します。

ソートキーがすべて一致した場合，レコード全体をバイト単位で比較して出力します。-rオプションの指定がない場合は昇順に，-rオプションの指定がある場合は降順に出力します。

ソートキーに対するオプションの指定方法

ソートキーに対するオプションは2つに分類されます。1つまたは複数のキーを指定した場合にそれぞれに有効となるグローバルオプションと，-kオプションに指定するローカルオプションです。

sortコマンドで指定する-fnrbオプションはグローバルオプションです。また，sortコマンドの-kオプションに指定するfnbrをローカルオプションと呼びます。グローバルオプションは-kオプションより後ろに指定できません。

各オプションをグローバルオプションとローカルオプションで指定した場合の動作を次に示します。

オプション

動作

b

グローバルオプションの指定は，-kオプションに指定する開始位置および終了位置の両方に有効になります。終了位置にインデント指定がない場合，または終了位置のインデントに0を指定した場合は，終了位置に対する指定は無効となります。

-kオプションを指定しない場合は，-bオプションの指定は無効となります。

f|n|r

ローカルオプションに指定がある場合，グローバルオプションの指定を無視します。

グローバルオプションの指定例を次に示します。

-bfnr -k 1,1 -k 2,2

1番目と2番目のフィールドは-bfnrオプションが有効になります。1番目と2番目のフィールドに次のように指定します。

-bオプション：前のスペースを無視してソートキーの位置を決めます。

-fオプション：小文字を大文字と見なして比較します。-nオプションの指定によって無効となります。

-nオプション：先頭の数値文字列を数値として比較します。

-rオプション：降順となるように比較します。

グローバルオプション-bの指定がない場合のソートキーの範囲を次に説明します。

-k 1

1番目のフィールドからレコードの末尾までをソートキーとします。

-k 1,1

1番目のフィールド全体をソートキーとします。

-k 1,5

1番目のフィールドの先頭バイトから，5番目のフィールドの最終バイトをソートキーとします。

-k 1.2,5.11

1番目のフィールドの2バイト目から5番目のフィールドの11バイト目までをソートキーとします。

-k 2,1

2番目から1番目のフィールドの指定ですが，大小関係が逆転しており，ソートキーは比較されません。

-k 2.1b,5.1b

2番目のフィールドの先頭のスペースを除いた1バイト目から，5番目のフィールドの先頭スペース文字を除いた1バイト目までをソートキーとします。

-k 2.1b,5.0b

2番目のフィールドの先頭のスペースを除いた1バイト目から，5番目のフィールドの最終バイトまでをソートキーとします。

マージ機能

マージ機能はソート済みの各入力ファイル間のレコードを比較してデータを整列し，結合します。実際にはソートされていない場合でも，ソートしたと仮定して動作します。file1およびfile2をマージする例を次に示します。

file1

AAA
DDD

file2

BBB
AAA

file1およびfile2をマージするコマンド

# sort -m file1 file2

この場合，次のように結合します。

AAA   (file1の1行目のレコード)    ←file1:1行目とfile2の1行目を比較した結果
BBB   (file2の1行目のレコード)    ←file1:2行目とfile2の1行目を比較した結果
AAA   (file2の2行目のレコード)    ←file1:2行目とfile2の2行目を比較した結果
DDD   (file1の2行目のレコード)    ←file2:3行目がないためfile1の2行目

小文字を大文字と見なすオプション（-fオプション）

レコードをソートする場合の例を次に示します。

file1

a:B
A:b

大文字と見なさないソートコマンド

$ sort -t : -k 2,2 file1

「:」で区切った2つ目のフィールドをキーにソートします。

大文字と見なさないソートコマンドの出力

a:B
A:b

bよりBが小さいため，「a:B」が先に出力されます。

大文字と見なすソートコマンド

$ sort -f -t : -k 2,2 file1

-fオプションを追加します。

大文字と見なすソートコマンドの出力

A:b
a:B

2つ目のフィールドを-fオプションの指定に従って大文字と見なして比較するため，同じ値のソートキーと評価します。ソートキーが同じ値であるため，レコード全体をバイトで比較します。この結果，aよりAが小さいため「A:b」が先に出力されます。

終了コード

終了コード

意味

0

正常終了

1

正常終了

入力したデータはソートされていません（-cオプションを指定した場合）。

重複するキーが存在します（-cオプションと-uオプションを指定した場合）。

2

エラー終了

注意事項

メモリ上で処理ができない場合，一時ファイルを使用して処理をします。一時ファイルの使用時にディスク容量が不足した場合，次のメッセージを出力してエラーになります。

sort: fwrite: No space left on device

上記のメッセージが出力された場合は，-Tオプションを使用して，容量に十分な空きがあるディスクを指定してください。

sortコマンドの実行を中断すると，-oオプションで指定したファイルが存在するディレクトリに中間ファイルが残ることがあります。この場合は手動で削除してください。-oオプションを指定しない場合も一時ファイルを使用すると，実行中断などで一時ファイルが残ることがあるため，手動で削除してください。

sortコマンドでのスペースとは，¥t（タブ）とスペース文字(0x20)のことです。また，-zオプションを指定すると¥n（改行）もスペースと見なされます。

入力ファイルの最終レコードにレコード区切り文字がなくても，ソートおよびマージの結果にはレコード区切り文字が付加されます。

入力の改行コードは<CR><LF>または<LF>で処理できますが，UNIXの場合，＜CR＞はデータとして扱います。また，出力結果は入力ファイルの改行コードの形式に関係なく，プラットフォームの改行コードに従った改行コードになります。

レコードが格納できない場合，格納できるまで拡張します。メモリが確保できない場合，エラーとなります。

ソートで使用するバッファは16MBです。このバッファでソートを継続できない場合，一時ファイルを作成します。そのため，大容量データではこのコマンドを使用しないことを推奨します。

ソート・マージ処理でメモリ上だけで処理ができない場合，sortコマンドの処理を中断すると，次の名前の一時ファイルが残ることがあります。この場合は手動で一時ファイルを削除してください。

【Windowsの場合】

soruuuu.tmp（uuuuは任意の16進文字列）

【UNIXの場合】

sortppppp.XXXXXX（pppppは5桁以上のプロセスID，XXXXXXは任意の6文字の文字列）

-oオプションを指定した場合，sortコマンドの処理を中断すると，次のファイル名の中間ファイルが残ることがあります。この場合は手動で中間ファイルを削除してください。

【Windowsの場合】

出力先パス名の先頭3文字uuuu.tmp（uuuuは任意の16進文字列）

【UNIXの場合】

出力先ファイル名pppppXXXXXX（pppppは5桁以上のプロセスID，XXXXXXは任意の6文字の文字列）

-oオプションに同じ出力先パス名を指定して多重実行すると，エラー終了することがあります。この場合の動作は保証できません。

使用例

sortコマンドを実行した結果表示に使用するファイルの形式を次に示します。

file1

yyyy:101
tttt:8
ppppppp:14

file2

cccccc:101
ggggg:31
rrrrrrrr:5
mmmmmmm:14

コマンドの実行例を次に示します。

2つのテキストファイルを合わせて並べ替えます。

$ sort file1 file2
cccccc:101
ggggg:31
mmmmmmm:14
ppppppp:14
rrrrrrrr:5
tttt:8
yyyy:101

2つのテキストファイルを合わせて，数値部分の降順で並べ替えます。

$ sort -t: -n -r -k 2 file1 file2
yyyy:101
cccccc:101
ggggg:31
ppppppp:14
mmmmmmm:14
tttt:8
rrrrrrrr:5

1番目のフィールドをソートキーとして，3つのファイルをマージします。

$ cat s1.txt
AAA s1
DDD s1

$ cat s2.txt
BBB s2
AAA s2

$ cat s3.txt
CCC s3
111 s3

$ sort -m -k 1,1 s1.txt s2.txt s3.txt
AAA s1
BBB s2
AAA s2

CCC s3
111 s3

DDD s1

$

キーが同じデータをソートします。

$ cat zr1.txt
aaa:999
$ cat zr2.txt
bbb:999

$ sort -k 2,2 -t : zr2.txt zr1.txt

aaa:999
bbb:999
$

1番目のフィールドは数値として，2番目のフィールドは文字列としてソートします。

入力コマンド

sort -t : -k 1n,1  -k 2,2

入力データ

0010:aaa
10:AAA
-1:aaa
-1.00:ZZZ
1:zzz

実行結果

-1.00:ZZZ
-1:aaa
1:zzz
10:AAA
0010:aaa

3番目のフィールドの先頭から行末までの小文字を大文字として評価し，2番目のフィールドは降順に評価してソートします。2番目のフィールドにはローカルオプションを指定しているため，グローバルオプションの指定は有効ではなく，小文字は小文字として評価します。

入力コマンド

sort -t : -f -k 3  -k 2,2r

入力データ

aaa:aaa:cccc
aaa:AAA:cccc
aaa:aaa:AAAA
aaa:AAA:aaaa
aaa:aaa:BBBB
aaa:AAA:bbbb

実行結果

aaa:aaa:AAAA
aaa:AAA:aaaa
aaa:aaa:BBBB
aaa:AAA:bbbb
aaa:aaa:cccc
aaa:AAA:cccc

オプションエラーのメッセージを表示します。

Windowsの例

C:¥TEMP>%ADSH_OSCMD_DIR%¥sort -w
sort: illegal option -- w
usage: sort [-cm][-bfnruz] [-k field1[,field2]] [-o output]
       [-T dir] [-t char] [file ...]

Linuxの例

$ sort -w
sort: invalid option -- w
usage: sort [-cm][-bfnruz] [-k field1[,field2]] [-o output]
        [-T dir] [-t char] [file ...]

AIXの例

$ sort -w
sort: illegal option -- w
usage: sort [-cm][-bfnruz] [-k field1[,field2]] [-o output]
        [-T dir] [-t char] [file ...]

入力ファイルにディレクトリを指定した場合のメッセージを表示します。

$ ./sort dir01
sort: dir01: Is a directory

入力ファイルとして存在しないファイルを指定した場合のメッセージを表示します。

$ ./sort xxxx
sort: xxxx: No such file or directory

存在しない一時ファイルディレクトリを指定した場合のメッセージを表示します。

Windowsの例

C:¥TEMP>%ADSH_OSCMD_DIR%¥sort -mTxxx s0.txt s0.txt s0.txt s0.txt s0.txt s0.t
xt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt
s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt
sort: xxx¥sort: The directory name is invalid.

Linuxの例

$ ./sort -mT xxxx s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt
sort: xxxx/sort.SDm1yr: No such file or directory

AIXの例

$ ./sort -mT xxxx s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt s0.txt
sort: xxxx/sort.XXXXXX: No such file or directory

不当なフィールド位置を指定した場合のメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥sort -k xx
sort: missing field number

不当なフィールド位置を指定した場合のメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥sort -k 0 s0.txt
sort: field numbers must be positive

不当なインデントをフィールド位置に指定した場合のメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥sort -k 1.0 s0.txt
sort: illegal offset

splitコマンド（ファイルを分割する）

形式

split［-a サフィックス長］
     ［-b バイト数［k|m］|-l 行数］［入力パス名［プリフィックス］］

機能

ファイルや標準入力の内容を分割して，ファイルに出力します。

引数

-a サフィックス長

分割後にファイルの名前に付けるサフィックスの長さを指定します。

1から254の範囲で指定します。範囲外の値を指定した場合，または数値以外を指定した場合はエラーとなります（split: 指定値: too small／split: 指定値: too large／split: 指定値: invalid）。デフォルトは2です。複数回指定できますが，最後に指定した値が有効となります。

-b バイト数［k|m］

ファイルをデータサイズで分割する場合のサイズをバイトで指定します。-lオプションと同時に指定した場合はエラーとなり，usageが表示されます。

k：キロバイト単位の値になります（1k=1,024バイト）。

m：メガバイト単位の値になります（1m=1,048,576バイト)。

複数回指定できますが，最後に指定した値が有効となります。

-l 行数

行数でファイルを分割する場合に，行数を指定します。-bオプションと同時に指定した場合はエラーとなり，usageが表示されます。-bオプションおよび-lオプションを指定しない場合は，1000行が指定されたものとします。

入力パス名

入力するファイル名を指定します。省略時は標準入力を仮定します。

プリフィックス

分割後にファイルの名前に付けるプリフィックスとして使用します。

分割後のファイルの名前は次のように決定します。

プリフィックス＋サフィックス

プリフィックスは指定がある場合は，その文字列を使用します。指定がない場合は，「x」，「y」，「z」の順番に使用されます。

サフィックスは，a〜zを組み合わせた文字列を，サフィックス長で指定された長さ分使用します。サフィックスは文字コード順に使用されます。

例：2バイトの場合，aa，ab，ac，…，az，ba，bb，…となります。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

出力ファイルが入力ファイルと同じ場合，上書きをします。パス名が同じにならないようにプリフィックスを指定するか，または入力するファイルをカレントディレクトリとは別のディレクトリに移動してください。

分割後のファイル名が不足する場合は，エラーとなります（split: too many files）。作成したファイルは削除しないで終了します。この場合，サフィックス長を大きく指定する，またはバイト数および行数を大きくしてください。

分割後のファイル名の長さがシステムの上限を超えた場合，次のメッセージを出力してエラーになります。

【Windowsの場合】

split : ファイル名 : No such file or directory

【UNIXの場合】

split : ファイル名 : File name too long

Windowsの場合，ファイルおよび標準入力，標準出力をバイナリモードで入出力します。改行コードは変換しません。

使用例

test1.txtファイルを2行単位で分割します。

$ ls
test1.txt
$ cat test1.txt
0001:test1.txt
0002:test1.txt
0003:test1.txt
0004:test1.txt
0005:test1.txt
0006:test1.txt
0007:test1.txt
0008:test1.txt
0009:test1.txt
0010:test1.txt
$ split -l2 test1.txt
$ ls
test1.txt  xaa  xab  xac  xad  xae
$ cat xaa
0001:test1.txt
0002:test1.txt
$ cat xab
0003:test1.txt
0004:test1.txt
$ cat xac
0005:test1.txt
0006:test1.txt
$ cat xad
0007:test1.txt
0008:test1.txt
$ cat xae
0009:test1.txt
0010:test1.txt
$

test1.txtファイルを40バイト単位で分割します。

$ ls
test1.txt
$ cat test1.txt
0001:test1.txt
0002:test1.txt
0003:test1.txt
0004:test1.txt
0005:test1.txt
0006:test1.txt
0007:test1.txt
0008:test1.txt
0009:test1.txt
0010:test1.txt
$ split -a 5 -b 40 test1.txt new
$ ls
newaaaaa  newaaaab  newaaaac  newaaaad  test1.txt
$ cat newaaaaa
0001:test1.txt
0002:test1.txt
0003:test1$

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥split -z
split: illegal option -- z
usage: split [-a suffix_length]
             [-b byte_count[k|m] | -l line_count] [file [name]]

statコマンド（ファイルまたはディレクトリの状態を標準出力に出力する）

形式

【Windows限定】stat [-c 書式] [-t] パス名 ...
【UNIX限定】   stat [-L] [-c 書式] [-t] パス名 ...

機能

ファイルまたはディレクトリの状態を標準出力に出力します。パス名にシンボリックリンクファイルが指定された場合，リンクをたどらないでシンボリックリンクファイルの状態を表示します。

引数

-L

--dereference

【UNIX限定】

パス名にシンボリックリンクファイルを指定した場合，リンクをたどった先のファイルまたはディレクトリの状態を表示します。

-c 書式

--format=書式

ファイルまたはディレクトリの状態を書式に従った形式で表示します。書式には，書式指定コードおよび任意の文字列を指定できます。このオプションを指定した場合の表示形式および書式指定コードについては，項目「表示形式」の「独自の表示形式」を参照してください。指定可能な書式指定コード以外を指定した場合，標準エラー出力に警告メッセージを出力し，標準出力に「?」を出力して，後続の処理を続行します。

-tオプションと同時に指定した場合，このオプションが優先されます。

-t

--terse

簡潔な表示形式で情報を出力します。簡潔な表示形式については，項目「表示形式」の「簡潔な表示形式」を参照してください。

パス名

状態を表示するファイル名またはディレクトリ名を指定します。

パス名を複数指定した場合は，ファイルまたはディレクトリの状態を縦に連続して表示します。複数指定して実行した場合はすべてのファイルまたはディレクトリを処理し，1つでも状態の表示に失敗したファイルまたはディレクトリがあると，終了コード1で終了します。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

表示形式

ファイル情報の表示形式には，通常表示形式，簡潔な表示形式，独自の表示形式の3種類があります。どの表示形式になるかは指定するオプションによって決まります。

通常表示形式

オプションを指定しないで実行した場合の表示形式です。次のファイル情報をラベル付きで表示します。

出力情報

ラベル

クォートされたファイル名

シンボリックリンクの場合は，シンボリックリンクの参照先も表示します。【UNIX限定】

File:

合計サイズ

Size:

割り当てられたブロック数

Blocks:

ファイルシステムI/O操作での最適なブロックサイズ

IO Block:

ファイルの種類

表示内容は，項目「表示形式」の「ファイルの種類の表示内容」を参照してください。

−

デバイス番号

「デバイス番号の16進数表記h/デバイス番号の10進数表記d」の形式で表示します。

デバイスファイルではない場合は表示しません。

Device:

iノード番号

Inode:

ハードリンクの数

Links:

デバイスファイルの種類

「メジャーデバイス番号，マイナーデバイス番号」の形式で表示します。デバイスファイルではない場合は表示しません。

Device type:

パーミッション

「パーミッションの8進数表記/パーミッションの文字列表記」の形式で表示します。

Access:

所有者のユーザー情報

「所有者のユーザーID/所有者のユーザー名」の形式で表示します。

Uid:

所有者のグループ情報

「所有者のグループID/所有者のグループ名」の形式で表示します。

Gid:

ファイルの最終アクセス日時

Access:

ファイルの最終修正日時

Modify:

ファイル情報の最終変更日時

Change:

（凡例）

−：ラベルがないことを示します。

簡潔な表示形式

-tオプションを指定した場合の表示形式です。次のファイル情報をスペース区切りで連続して表示します。

ファイル名

合計サイズ

割り当てられたブロック数

rawモードの16進数表記

所有者のユーザーID

所有者のグループID

デバイス番号の16進数表記

iノード番号

ハードリンクの数

メジャーデバイス番号

マイナーデバイス番号

ファイルの最終アクセス日時（エポックからの秒数）

ファイルの最終修正日時（エポックからの秒数）

ファイル情報の最終変更日時（エポックからの秒数）

ファイルシステムI/O操作での最適なブロックサイズ

独自の表示形式

-cオプションを指定した場合の表示形式です。書式指定コードおよび任意の文字列を組み合わせて，独自の表示形式を指定できます。また，書式指定コードの%の後ろには，フラグ文字，フィールド幅，精度も定義できます。

書式指定コード

指定できる書式指定コードを次の表に示します。

書式指定コード

意味

%a

パーミッションの8進数表記

Windowsの場合，所有者だけのパーミッションを表示します。

%A

パーミッションの文字列表記

Windowsの場合，所有者だけのパーミッションを表示します。

%b

割り当てられたブロック数

Windowsの場合，常に0を表示します。

%B

各ブロックの大きさ（バイト単位）

Windowsの場合，常に0を表示します。

%d

デバイス番号の10進数表記

Windowsの場合，ドライブ番号を表示しますが，次の場合は表示が異なります。

フルパスにしたときにドライブレターに続く「:」がないパスの場合

デバイス番号として「-」を表示して，後続の処理を続行します。

デバイス番号取得処理でエラーが発生した場合

警告メッセージを標準エラー出力に出力し，デバイス番号として「?」を表示して，後続の処理を続行します。

%D

デバイス番号の16進数表記

Windowsの場合，ドライブ番号を表示しますが，次の場合は表示が異なります。

フルパスにしたときにドライブレターに続く「:」がないパスの場合

デバイス番号として「-」を表示して，後続の処理を続行します。

デバイス番号取得処理でエラーが発生した場合

警告メッセージを標準エラー出力に出力し，デバイス番号として「?」を表示して，後続の処理を続行します。

%f

rawモードの16進数表記

Windowsの場合，所有者だけのパーミッションを表示します。

%F

ファイルの種類

表示内容は，項目「表示形式」の「ファイルの種類の表示内容」を参照してください。

%g

所有者のグループID

Windowsの場合，常に0を表示します。

%G

所有者のグループ名

Windowsの場合，常に「...」を表示します。

UNIXの場合，所有者のグループ名を取得できないときは所有者のグループIDを表示して，後続の処理を続行します。

%h

ハードリンクの数

Windowsの場合，常に0を表示します。

%i

iノード番号

Windowsの場合，常に0を表示します。

%n

ファイル名

%N

クォーテーションで囲まれたファイル名

シンボリックリンクの場合は参照先ファイル名も表示します。

Windowsの場合，シンボリックリンクであっても参照先ファイル名は表示しません。

UNIXの場合，参照先ファイル名の取得に失敗したときは，警告メッセージを標準エラー出力に出力し，参照先ファイル名は表示しないで，後続の処理を続行します。

%o

ファイルシステム I/O操作での最適なブロックサイズ

Windowsの場合，常に0を表示します。

%s

合計サイズ（バイト単位）

Windowsの場合，ディレクトリの合計サイズは常に0を表示します。

UNIXの場合，デバイスファイルの合計サイズは常に0を表示します。

%t

メジャーデバイス番号の16進数表記

Windowsの場合，常に0を表示します。

%T

マイナーデバイス番号の16進数表記

Windowsの場合，常に0を表示します。

%u

所有者のユーザーID

Windowsの場合，常に0を表示します。

%U

所有者のユーザー名

Windowsの場合，所有者のユーザー名が取得できないときは「...」を表示して，後続の処理を続行します。

UNIXの場合，所有者のユーザー名が取得できないときは所有者のユーザーIDを表示して，後続の処理を続行します。

%x

ファイルの最終アクセス日時※

Windowsの場合，ファイルの最終修正日時と同じ情報を表示します。

ファイルの最終アクセス日時の表示に失敗した場合，警告メッセージを標準エラー出力に出力し，ファイルの最終アクセス日時の表示は「?」にして，後続の処理を続行します。

%X

ファイルの最終アクセス日時のエポック（UTCの1970年1月1日00:00:00）からの秒数

Windowsの場合，ファイルの最終修正日時と同じ情報を表示します。

%y

ファイルの最終修正日時※

ファイルの最終修正日時の表示に失敗した場合，警告メッセージを標準エラー出力に出力し，ファイルの最終修正日時の表示は「?」にして，後続の処理を続行します。

%Y

ファイルの最終修正日時のエポック（UTCの1970年1月1日00:00:00）からの秒数

%z

ファイル情報の最終変更日時※

Windowsの場合，ファイルの最終修正日時と同じ情報を表示します。

ファイル情報の最終変更日時の表示に失敗した場合，警告メッセージを標準エラー出力に出力し，ファイル情報の最終変更日時の表示は「?」にして，後続の処理を続行します。

%Z

ファイル情報の最終変更日時のエポック（UTCの1970年1月1日00:00:00）からの秒数

Windowsの場合，ファイルの最終修正日時と同じ情報を表示します。

%%

%（パーセント）記号

注※

「ファイルの最終アクセス日時」，「ファイルの最終修正日時」，「ファイル情報の最終変更日時」で出力する日時の出力形式は次のとおりです。

YYYY-MM-DD hh:mm:ss.nnnnnnnnn +/-hhmm

　YYYY：西暦年

　MM：月

　DD：日

　hh：時

　mm：分

　ss：秒

　nnnnnnnnn：1秒未満の日時。常に000000000と出力します。

　+/-hhmm：タイムゾーン。UTCからの時差を示します。

フラグ文字

書式指定コードの%の後ろに次のフラグ文字を指定できます。省略することもできます。

フラグ文字

内容

#

0以外の8進数表記に対しては前に0を付けます。

0以外の16進数表記に対しては前に0xを付けます。

-

出力文字列をフィールドの左にそろえます。

+

数値の正負を示す記号（+/-）を常に表示します。

符号なし整数として定義されているファイル情報に対しては，この指定は無視されます。

スペース

符号付き整数として定義されているファイル情報に対して，正の数字の前にスペースを表示します。

+と同時に指定した場合は，+が優先されます。

0

フィールドの左側をスペースの代わりに0で埋めます。

フィールド幅

書式指定コードの%またはフラグ文字の後ろに数値を指定することで，最小のフィールド幅を定義します。フィールド幅は0〜2147483647の範囲で指定できます。省略することもできます。

精度

書式指定コードの%またはフラグ文字の後ろに，ピリオド（.）と次に示す数値を定義します。精度は，UNIXの場合は0〜2147483647の範囲で，Windowsの場合は0〜512の範囲で指定できます。省略することもできます。

ファイル情報が文字列の場合

表示する最大長を定義します。

ファイル情報が数値の場合

最小桁数を定義します。

ファイルの種類の表示内容

表示されるファイルの種類と，その意味は次のとおりです。

ファイルの種類

意味

regular file

通常ファイル

directory

ディレクトリ

symbolic link

シンボリックリンク【UNIX限定】

fifo

FIFO【UNIX限定】

socket

ソケット【UNIX限定】

block special file

ブロック型スペシャルファイル【UNIX限定】

character special file

キャラクタ型スペシャルファイル【UNIX限定】

unknown file

不明なファイル（上記以外のファイル）【UNIX限定】

注意事項

Windowsの場合，「通常ファイル」，「ディレクトリ」以外については，通常ファイルまたはディレクトリとして扱います。

UNIXの場合，「通常ファイル」，「ディレクトリ」，「シンボリックリンク」，「FIFO」，「ソケット」，「ブロック型スペシャルファイル」，「キャラクタ型スペシャルファイル」以外は不明なファイルとして扱います。

Windowsの場合，日付と時刻の表示には「日付と時刻のプロパティ」で定義されているタイムゾーンが使用されます。環境変数TZの値は影響しません。

ただし，タイムゾーンの表示は環境変数TZの値とコントロールパネルの「日付と時刻のプロパティ」ダイアログボックスで定義されているタイムゾーンを使用するため，環境変数TZの値とコントロールパネルの「日付と時刻のプロパティ」ダイアログボックスで定義されているタイムゾーンは同じにしてください。同じでない場合，「ファイルの最終アクセス日時」，「ファイルの最終修正日時」，「ファイル情報の最終更新日時」で表示されるタイムゾーンが正しく表示されません。

UNIXの場合，ブロックサイズのデフォルトは512バイトです。ブロックサイズは環境変数BLOCKSIZEで変更できます。

環境変数BLOCKSIZEは512から1G（1024×1024×1024）の範囲で指定できます。範囲外の値を指定した場合は次のように処理し，警告メッセージを標準エラー出力に出力して，後続の処理を続行します。

環境変数BLOCKSIZEに512より小さい値を指定した場合

ブロックサイズを512バイトとします。

環境変数BLOCKSIZEに1G（1024×1024×1024）より大きい値を指定した場合

ブロックサイズを1G（1024×1024×1024）バイトとします。

環境変数BLOCKSIZEでブロックサイズを変更する場合は，512の倍数を指定してください。512の倍数でない場合，余りは切り捨てられます。例えば，1,500バイトが定義されている場合，1,024バイトとして扱います。

数字の後ろには，何倍であるかを示すサイズ文字（G（1024×1024×1024），M（1024×1024），K（1024））を指定できます。数値とサイズ文字以外を指定した場合，ブロックサイズを512バイトとして，警告メッセージを標準エラー出力に出力し，後続の処理を続行します。

Solarisの場合，ディレクトリ内のファイルの「割り当てられたブロック数」を出力する際，間接ブロックを含むブロックの総数を表示します。また，ハードリンクされたファイルがある場合，「割り当てられたブロック数」は正しく表示されません。

使用例

ファイルの状態を通常表示形式で表示します。

Windowsの場合

C:¥TEMP>%ADSH_OSCMD_DIR%¥stat .¥test.txt
  File: `.¥test.txt'
  Size: 7               Blocks: 0          IO Block: 0      regular file
Device: 0003h/00003d    Inode: 0           Links: 1
Access: (0600/-rw-------)  Uid: (    0/   user1)   Gid: (    0/     ...)
Access: 2014-02-20 10:31:28.000000000 +0900
Modify: 2014-02-20 10:31:33.000000000 +0900
Change: 2014-02-20 10:31:28.000000000 +0900

UNIXの場合

$ stat ./test.txt
  File: `./test.txt'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 688407      Links: 2
Access: (0644/-rw-r--r--)  Uid: (  501/   user1)   Gid: (  502/  group1)
Access: 2014-02-11 18:35:52.000000000 +0900
Modify: 2014-02-11 18:35:52.000000000 +0900
Change: 2014-02-18 16:08:39.000000000 +0900

ファイルのサイズだけを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥stat -c %s .¥test.txt
7

複数ファイルの状態を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥stat .¥test.txt .¥test1.txt
  File: `.¥test.txt'
  Size: 7               Blocks: 0          IO Block: 0      regular file
Device: 0003h/00003d    Inode: 0           Links: 1
Access: (0600/-rw-------)  Uid: (    0/   user1)   Gid: (    0/     ...)
Access: 2014-02-20 10:31:28.000000000 +0900
Modify: 2014-02-20 10:31:33.000000000 +0900
Change: 2014-02-20 10:31:28.000000000 +0900
  File: '.¥test1.txt'
  Size: 7               Blocks: 0          IO Block: 0      regular file
Device: 0003h/00003d    Inode: 0           Links: 1
Access: (0600/-rw-------)  Uid: (    0/   user1)   Gid: (    0/     ...)
Access: 2014-02-20 14:34:01.000000000 +0900
Modify: 2014-02-20 14:34:01.000000000 +0900
Change: 2014-02-20 14:34:01.000000000 +0900

ファイルの状態を独自の表示形式で出力します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥stat -c "Filename : %n" .¥test.txt
Filename : .¥test.txt

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥stat -z
stat: illegal option -- z
usage: stat [-c format] [-t] file ...

tailコマンド（ファイルの最後の部分を表示する）

形式

tail［-r］［-b ブロック数|-c バイト数|-n 行数|-行数］［パス名 ...］

機能

ファイルや標準入力の最後の部分を標準出力に出力します。デフォルトは標準入力です。入力のバイト単位，行単位またはブロック単位の位置から表示されます。指定した表示範囲のデータが存在しない場合でもエラーになりません。表示できるデータは表示されます。

引数

+符号のある数は入力の先頭からの位置を示します。例えば，-c +2は入力の先頭から2バイト目で表示を始めます。

-符号がある数字または符号のない数字は最後からの位置を示します。例えば，-n 2は入力の最後から2行目を示します。デフォルトは，-n 10または入力の最後の10行です。

-r

行単位で逆順に表示します。

-bオプションと共に指定した場合，ファイルの終端から，-bオプションに指定したブロック数分戻った所まで，行単位にファイルの終端から出力します。表示開始位置がマルチバイト文字の中間の場合，文字化けすることがあります。

-cオプションと共に指定した場合，ファイルの終端から，-cオプションに指定したバイト数分戻った所まで，行単位にファイルの終端から出力します。表示開始位置がマルチバイト文字の中間の場合，文字化けすることがあります。

-nオプションまたは行数と共に指定した場合，ファイルの終端から，-nオプションまたは行数で指定した行数分戻った所まで，行単位にファイルの終端から出力します。

-rオプションだけ指定した場合，入力したすべての行を，行単位にファイルの終端から出力します。複数回指定してもエラーになりません。

-b ブロック数

-rオプションを指定しない場合，1ブロック（512バイト）単位で表示開始位置を指定します。

符号がない場合またはマイナス（-）符号がある場合，最後からの位置を示します。プラス（+）符号がある場合，入力の先頭からの表示位置を示します。

ブロック数の指定を省略した場合は，エラーメッセージ（tail: option requires an argument - オプション）とusageが出力されます。ブロック数に数値以外を指定した場合は，エラーメッセージ（tail: illegal offset -- 指定文字列）が出力されます。

表示開始位置がマルチバイト文字の中間の場合，文字化けすることがあります。また，改行コードはバイト数にカウントされます。例えばWindowsの場合，行末が<LF>のときは1バイト，<CR><LF>のときは2バイトでカウントします。複数回指定するとusageが出力されます。

-c バイト数

-rオプションを指定しない場合，バイト数で表示開始位置を指定します。

符号がない場合またはマイナス（-）符号がある場合，最後からの位置を示します。プラス（+）符号がある場合，入力の先頭からの表示位置を示します。

バイト数の指定を省略した場合は，エラーメッセージ（tail: option requires an argument - オプション）とusageが出力されます。

バイト数に数値以外を指定した場合は，エラーメッセージ（tail: illegal offset -- 指定文字列）が出力されます。

表示開始位置がマルチバイト文字の中間の場合，文字化けすることがあります。また，改行コードはバイト数にカウントされます。例えばWindowsの場合，行末が<LF>のときは1バイト，<CR><LF>のときは2バイトでカウントします。複数回指定するとusageが出力されます。

-n 行数|-行数

-rオプションを指定しない場合，行単位で表示開始位置を指定します。

符号がない場合またはマイナス（-）符号がある場合，最後からの位置を示します。プラス（+）符号がある場合，入力の先頭からの表示位置を示します。

行数の指定を省略した場合は，エラーメッセージ（tail: option requires an argument - オプション）とusageが出力されます。行数に数値以外を指定した場合は，エラーメッセージ（tail: illegal offset -- 指定文字列）が出力されます。複数回指定するとusageが出力されます。

パス名

入力ファイルを指定します。指定がない場合は標準入力から入力します。入力ファイルは複数指定できます。複数ファイルを指定した場合，それぞれのファイルを識別するために，次に示す文字をそれぞれのファイルの出力に先行して出力します。2つ目以降のファイルの場合，改行のあとに次に示す文字を出力します。

==> ファイル名 <==

複数ファイルを指定して実行した場合，すべてのファイルに対して処理をしたあと，オープンに失敗したファイルが1つでもあると終了コード1で終了します。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

指定した表示範囲のデータが存在しない場合，エラーになりません。表示できるデータは表示します。

-rオプションを指定しない場合，かつ-bオプション，-cオプション，-nオプションを指定しない場合，-nに10が指定されます。

Windowsの場合，ファイルおよび標準入力，標準出力をバイナリモードで入出力します。改行コードは変換しません。

使用例

test1.txtとtest2.txtファイルの最後の2行を表示します。

$ cat test1.txt
0001:test1.txt
0002:test1.txt
0003:test1.txt
0004:test1.txt
0005:test1.txt
0006:test1.txt
0007:test1.txt
0008:test1.txt
0009:test1.txt
0010:test1.txt
$ cat test2.txt
0001:test2.txt
0002:test2.txt
0003:test2.txt
0004:test2.txt
0005:test2.txt
0006:test2.txt
0007:test2.txt
0008:test2.txt
0009:test2.txt
0010:test2.txt
$ tail -n2 test1.txt test2.txt
==> test1.txt <==
0009:test1.txt
0010:test1.txt

==> test2.txt <==
0009:test2.txt
0010:test2.txt
$

test1.txtファイルの先頭から5行目以降を表示します。

$ cat test1.txt
0001:test1.txt
0002:test1.txt
0003:test1.txt
0004:test1.txt
0005:test1.txt
0006:test1.txt
0007:test1.txt
0008:test1.txt
0009:test1.txt
0010:test1.txt
$ tail -n+5 test1.txt
0005:test1.txt
0006:test1.txt
0007:test1.txt
0008:test1.txt
0009:test1.txt
0010:test1.txt
$

-rオプションを指定した場合の例1を表示します。

$ cat zztt1.txt
1:0001:zzzz:
2:0001:aaaa:
3:0001:JJJJ:
4:0001:cccc:
5:0001:cccc:
6:0001:cccc:
7:0001:cccc:
8:0001:cccc:
9:0001:cccc:
10:0001:cccc:
11:0001:cccc:
12:0001:cccc:
$ tail -r -n  2 zztt1.txt
12:0001:cccc:
11:0001:cccc:
$ tail -r  zztt1.txt　　（10行ではなく全行表示）
12:0001:cccc:
11:0001:cccc:
10:0001:cccc:
9:0001:cccc:
8:0001:cccc:
7:0001:cccc:
6:0001:cccc:
5:0001:cccc:
4:0001:cccc:
3:0001:JJJJ:
2:0001:aaaa:
1:0001:zzzz:
$

-rオプションを指定した場合の例2を表示します。

$ cat block.txt  --->1行100バイト+改行コード(¥n)で101行のデータ
0000000000:1234567890123(中略)78901234567890123456789012345678T
00001xxx00:1234567890123(中略)78901234567890123456789012345678T
00002xxx00:1234567890123(中略)78901234567890123456789012345678T
    (中略)
00098xxx00:1234567890123(中略)78901234567890123456789012345678T
00099xxx00:1234567890123(中略)78901234567890123456789012345678T
00100xxx00:1234567890123(中略)78901234567890123456789012345678T
$ tail -b 1 block.txt
45678T
00096xxx00:1234567890123(中略)78901234567890123456789012345678T
00097xxx00:1234567890123(中略)78901234567890123456789012345678T
00098xxx00:1234567890123(中略)78901234567890123456789012345678T
00099xxx00:1234567890123(中略)78901234567890123456789012345678T
00100xxx00:1234567890123(中略)78901234567890123456789012345678T
$ tail -rb 1 block.txt
00100xxx00:1234567890123(中略)78901234567890123456789012345678T
00099xxx00:1234567890123(中略)78901234567890123456789012345678T
00098xxx00:1234567890123(中略)78901234567890123456789012345678T
00097xxx00:1234567890123(中略)78901234567890123456789012345678T
00096xxx00:1234567890123(中略)78901234567890123456789012345678T
45678T
$ tail -c 110 block.txt
2345678T
00100xxx00:1234567890123(中略)78901234567890123456789012345678T
$ tail -rc 110 block.txt
00100xxx00:1234567890123(中略)78901234567890123456789012345678T
2345678T
$

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥tail -z
tail: illegal option -- z
usage: tail [-r] [-b number | -c number | -n number | -number] [file ...]

touchコマンド（ファイルの最終アクセス日時と最終修正日時を変更する）

形式

touch［-a］［-c］［-f］［-m］［-r パス名］［-t 設定日時］パス名 ...
touch［-a］［-c］［-f］［-m］設定日時 パス名 ...

機能

指定したファイルの最終アクセス日時と最終修正日時を変更します。Windowsの場合はファイルの最終修正日時だけを変更します。

引数

変更する日時の種類

変更する日時の種類は-aオプションまたは-mオプションで指定します。-aオプションと-mオプションの両方とも指定していない場合，または，-aオプションおよび-mオプションの両方とも指定した場合は，ファイルの最終アクセス日時と最終修正日時の両方を変更します。ただし，Windowsの場合は，実際にはファイルの最終アクセス日時は変更されません。

-a

ファイルの最終アクセス日時を変更します。

-mオプションを指定しないで-aオプションを指定した場合は，ファイルの最終アクセス日時だけを変更し，ファイルの最終修正日時は変更しません。

Windowsの場合，-aオプションを指定しても実際にはファイルの最終アクセス日時は変更されませんが，引数に指定した設定日時の形式チェックと，-rオプションに指定したファイルの読み込みは実行されます。

-m

ファイルの最終修正日時を変更します。

-aオプションを指定しないで-mオプションを指定した場合は，ファイルの最終修正日時だけを変更し，ファイルの最終アクセス日時は変更しません。

設定する日時の指定

設定する日時は，-rオプション，-tオプションまたはMMDDhhmm[YY]形式の設定日時で設定します。これらのオプションの指定がない場合は，コマンドの実行日時が設定されます。

-tオプションおよびMMDDhhmm[YY]形式の設定日時に指定できる日時の範囲は，UTC（協定世界時）の1970年1月1日0時0分0秒〜2038年1月19日3時14分7秒です。指定した日時は，コマンド実行時のタイムゾーンによって解釈されます。

タイムゾーンが日本標準時（UTC+9）の場合に指定できる日時の範囲は，1970年1月1日9時0分0秒〜2038年1月19日12時14分7秒です。ただし，AIX，Windowsの場合，タイムゾーンが日本標準時（UTC+9）のときに指定できる日時の上限は2038年1月19日3時14分7秒です。

タイムゾーンは環境変数TZに設定されている値が使用されます。Windowsで環境変数TZが設定されていない場合は，コントロールパネルの「日付と時刻のプロパティ」ダイアログボックスに設定されているタイムゾーンが使用されます。なお，Windowsの場合，環境変数TZに設定したタイムゾーンと「日付と時刻のプロパティ」に設定したタイムゾーンを同じ値にする必要があります。

-r パス名

ファイルに設定する最終アクセス日時および最終修正日時をここで指定したファイルパスから取得します。取得したファイルの最終日時は，-aオプションが指定されている場合は最終アクセス日時，-mオプションが指定されている場合は最終修正日時として設定されます。

ディレクトリ名を指定すると，指定したディレクトリから最終アクセス日時，および最終修正日時を取得します。

オプションを複数回指定した場合，最後に指定した値が有効になります。

-rオプションと-tオプションを両方指定した場合は，最後に指定されたオプションが有効になります。

-t 設定日時

ファイルに設定する最終アクセス日時，最終修正日時に設定する日時を指定します。指定した日時は，-aオプションが指定されている場合は最終アクセス日時，-mオプションが指定されている場合は最終修正日時として設定されます。

オプションを複数回指定した場合，最後に指定した値が有効になります。

-rオプションと-tオプションを両方指定した場合は，最後に指定されたオプションが有効になります。

設定日時は次の形式で指定します。

[[CC]YY]MMDDhhmm[.SS]

CC

西暦年の上2桁を指定します。

YY

西暦年の下2桁を指定します。

CCを省略すると，CCには次の値が設定されます。

YYが69〜99の場合，CCには19が設定されます。

YYが00〜68の場合，CCには20が設定されます。

なお，CCとYYの両方の指定を省略した場合は，コマンド実行日時の西暦年が設定されます。

MM

月を01〜12の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

DD

日を01〜31の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

hh

時を00〜23の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

mm

分を00〜59の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

SS

秒を00〜61の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。秒の指定を省略した場合は00が設定されます。

なお，60〜61の値を指定して設定した場合，うるう秒への対応をしていないシステムでは，lsコマンドなどで日時を表示すると60のときは1秒，61のときは2秒繰り上げられた日時が表示されます。

設定日時

ファイルの最終アクセス日時，最終修正日時に設定する日時を指定します。指定した日時は，-aオプションが指定されている場合は最終アクセス日時，-mオプションが指定されている場合は最終修正日時として設定されます。

-rオプションまたは-tオプションを指定した場合は，ファイル名として扱われます。

指定した日時の桁数が8桁と10桁のどちらでもない場合はファイル名として扱われ，ファイルが存在しない場合はファイルが作成されます。

設定日時は次の形式で指定します。

MMDDhhmm[YY]

MM

月を01〜12の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

DD

日を01〜31の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

hh

時を00〜23の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

mm

分を00〜59の範囲の数値で指定します。1桁の数値を指定する場合は先頭に0を指定してください。

YY

西暦年の下2桁を指定します。指定を省略した場合はコマンド実行日時の西暦年が設定されます。

なお，西暦年の上2桁には次の値が設定されます。

　YYが69〜99の場合：19

　YYが00〜68の場合：20

その他のオプション

パス名

最終アクセス日時，最終修正日時を変更するファイルのパス名を指定します。パス名は複数指定できます。

指定したパスが存在しない場合は0バイトのファイルを新規に作成します。

Windowsの場合

ディレクトリの最終修正日時は変更できません。ディレクトリ名を指定するとエラーとなります。また，存在するファイルに対して最終修正日時を変更する場合は，読み取り権限と書き込み権限が必要です。

UNIXの場合

新規に作成したファイルのパーミッションは，umaskに従って設定されます。ディレクトリ名を指定すると，ディレクトリの最終アクセス日時，最終修正日時が変更されます。

また，スーパーユーザー以外のユーザーが，存在するファイルに対して最終アクセス日時や最終修正日時を変更する場合は，次の権限が必要です。

-tオプション，またはMMDDhhmm[YY]形式の設定日時の指定あり

ファイルの所有者の権限が必要です。

-tオプション，およびMMDDhhmm[YY]形式の設定日時の指定なし

ファイルに対する書き込み権限が必要です。

-c

最終アクセス日時，最終修正日時を変更するファイルが存在しなかった場合，ファイルを作成しません。また，エラーメッセージは出力しません（エラー扱いとはしません）。

-f

OSが提供するtouchコマンドとの互換のためのオプションです。指定しても無視されます。

ファイルに設定する最終アクセス日時と最終修正日時

日時を設定する-rオプション，-tオプション，またはMMDDhhmm[YY]形式の設定日時と，変更する日時の種類を指定する-aオプションまたは-mオプションの指定によって，ファイルの最終アクセス日時と最終修正日時は次のように設定されます。

-rオプションを指定した場合

-rオプションに指定したファイルから取得した最終アクセス日時と最終修正日時は，パス名に指定したファイルの有無によって，次の表のように設定されます。

表8‒12　-rオプションを指定した場合に設定されるファイルの最終アクセス日時，最終修正日時

-aオプションと-mオプションの指定

パス名に指定されたファイルの有無

設定される最終アクセス日時

設定される最終修正日時

Windows

UNIX

-aだけを指定

存在する

−

◎

−

存在しない

○

◎

○

-mだけを指定

存在する

−

◎

存在しない

○

◎

-a，-mの両方を指定，

または

-a，-mとも指定なし

存在する

−

◎

◎

存在しない

○

◎

◎

（凡例）

◎：-rオプションに指定したファイルの対応する最終アクセス日時および最終修正日時が設定されます。

○：コマンドの実行日時が設定されます。

−：コマンド実行前のファイルの最終アクセス日時および最終修正日時がそのまま適用されます。

-tオプションまたはMMDDhhmm[YY]形式の設定日時を指定した場合

-tオプションまたはMMDDhhmm[YY]形式の設定日時で指定した日時は，パス名に指定したファイルの有無によって，次の表のように設定されます。

表8‒13　引数に設定日時を指定した場合に設定されるファイルの最終アクセス日時，最終修正日時

-aオプションと-mオプションの指定

パス名に指定されたファイルの有無

設定されるファイルの最終アクセス日時

設定されるファイルの最終修正日時

Windows

UNIX

-aだけを指定

存在する

−

◎

−

存在しない

○

◎

○

-mだけを指定

存在する

−

◎

存在しない

○

◎

-a，-mの両方を指定，

または

-a，-mとも指定なし

存在する

−

◎

◎

存在しない

○

◎

◎

（凡例）

◎：-tオプションに指定した設定日時，またはMMDDhhmm[YY]形式の設定日時が設定されます。

○：コマンドの実行日時が設定されます。

−：コマンド実行前のファイルの最終アクセス日時および最終修正日時がそのまま適用されます。

-rオプション，-tオプションおよびMMDDhhmm[YY]形式の設定日時を指定しないとき

-rオプション，-tオプションおよびMMDDhhmm[YY]形式の設定日時が指定されていない場合，パス名に指定したファイルの有無によって，次の表のように設定されます。

表8‒14　設定日時の取得および指定がない場合に設定されるファイルの最終アクセス日時，最終修正日時

-aオプションと-mオプションの指定

パス名に指定されたファイルの有無

設定されるファイルの最終アクセス日時

設定されるファイルの最終修正日時

Windows

UNIX

-aオプションだけを指定

存在する

−

○

−

存在しない

○

○

-mオプションだけを指定

存在する

−

○

存在しない

○

○

-a，-mの両方を指定，

または

-a，-mとも指定なし

存在する

−

○

○

存在しない

○

○

（凡例）

○：コマンドを実行した日時

−：コマンド実行前のファイルの最終アクセス日時および最終修正日時がそのまま適用されます。

終了コード

終了コード

意味

0

正常終了。

1

エラー終了。

不正なオプションを指定しました。

-tオプションに指定した設定日時，MMDDhhmm[YY]形式の設定日時が正しくありません。

-rオプションに指定したファイルの読み込みに失敗しました。

2

エラー終了。

ファイルの作成に失敗しました。

ファイルの最終アクセス日時，最終修正日時の変更に失敗しました。

最終修正日時を変更するファイルのパス名にディレクトリを指定しました。【Windows限定】

引数に複数のファイルが指定されているときは，後続のファイルを処理します。

注意事項

UNIXの場合，-rオプションに指定するパス名，ファイルの最終アクセス日時と最終修正日時を変更するパス名にシンボリックリンク名を指定した場合，シンボリックリンク先のパスが対象となります。

Windowsの場合，シンボリックリンクはサポートしていません。

-rオプションに指定したファイルの最終アクセス日時，最終修正日時がUTC（協定世界時）の1970年1月1日0時0分〜2038年1月19日3時14分の範囲外の場合，ファイルに設定される最終アクセス日時，最終修正日時の値は保証されません。

Windowsの場合，実際にファイルに設定される最終修正日時の精度はファイルシステムの仕様に依存します。例えば，FATファイルシステム上のファイルへの最終アクセス日時，最終修正日時は次のように設定されます。

指定できる日時の範囲は，コマンド実行時のタイムゾーンに関係なく1980年1月1日0時0分0秒〜2038年1月19日3時14分7秒です。

ファイルの最終アクセス日時の時分秒（hhmm.ss）は設定されません。

ファイルの最終修正日時に指定した秒（ss）は2秒単位に繰り上げられて設定されます。

使用例

ファイルを新規に作成します。

$ touch file001

この場合，作成されたファイルの最終アクセス日時と最終修正日時は，コマンドを実行した日時となります。また，ファイルサイズは0で作成されます。

存在するファイルの最終アクセス日時と最終修正日時を-tオプションで指定した日時（2012年5月12日3時49分5秒）に変更します。

$ touch -t 1205120349.05 file001

コマンドを実行すると，ファイルの最終アクセス日時と最終修正日時は-tオプションで指定した日時となります。

存在するファイルの最終アクセス日時だけを-tオプションで指定した日時（2013年11月01日 15時08分0秒）に変更します。

$ touch -a -t 201311011508 file001

コマンドを実行すると，ファイルの最終アクセス日時は-tオプションで指定した日時になります。ファイルの最終修正日時はコマンド実行前のままです。

存在するファイルの最終修正日時だけをMMDDhhmm[YY]形式の設定日時で指定した日時（2013年9月29日23時00分0秒）に変更します。

$ touch -m 0929230013 file001

コマンドを実行すると，ファイルの最終修正日時はMMDDhhmm[YY]形式の設定日時で指定した日時になります。ファイルの最終アクセス日時はコマンド実行前のままです。

複数のファイルに対して，ファイルの最終アクセス日時と最終修正日時を-tオプションで指定した日時へ変更します。-cオプションを指定することで，存在しないファイルは作成しないこととします。次の例では，存在しないファイルはfile002です。

$ touch -c -t 201311011508 file001 file002 file003
$ ls -lT *
-rw-r--r--  1 usr1  grp1  5 Nov  1 15:08:00 2013 file001
-rw-r--r--  1 usr1  rrp1  9 Nov  1 15:08:00 2013 file003

unameコマンド（OSまたはハードウェアの情報を表示する）

形式

【Windows限定】uname［-a］［-m］［-n］［-r］［-s］［-v］［-w］
【UNIX限定】   uname［-a］［-m］［-n］［-r］［-s］［-v］

機能

OS，システムのホスト名，またはハードウェアの情報を標準出力に出力します。

引数

オプションを指定しないで実行した場合は，-sオプションを指定した場合と同じ動作になります。

-a

【Windows限定】

-wオプションを指定しない場合は，次の情報を1行にまとめて順番に表示します。

OS名（常に「Windows」）

ノード名

OSの説明

OSにインストールされている最新のサービスパック

OSのバージョン

マシン（ハードウェア）のタイプ

-wオプションとあわせて指定した場合，次の情報を1行ずつ順番に表示します。

OS名，そのOSが組み込まれているフォルダ，およびそのOSが組み込まれているディスクのパーティション情報

ノード名

OSのリリース（常に「unknown」）

OSのバージョン

マシン（ハードウェア）のタイプ

【UNIX限定】

次の情報を1行にまとめて順番に表示します。

OS名

ノード名

OSのリリース

OSのバージョン

マシン（ハードウェア）のタイプ

-m

マシン（ハードウェア）のタイプを表示します。

-n

ノード名を表示します。

-r

OSのリリースを表示します。Windowsの場合は，常に「unknown」と表示します。

-s

OS名を表示します。

Windowsの場合は，OS名として次の内容を表示します。

-wオプションを指定しない場合は，常に「Windows」と表示します。

-wオプションとあわせて指定した場合は，OS名，そのOSが組み込まれているフォルダ，およびそのOSが組み込まれているディスクのパーティション情報を表示します。

-v

OSのバージョンを表示します。

-w【Windows限定】

このオプションを指定すると，unameコマンドが表示する情報が，JP1/Advanced Shell 10-01以前のバージョンの形式で表示されます。-wオプションを指定した場合の表示内容を次に示します。

各オプションの情報を1行ごとに表示します。

-aオプションと-sオプションによって表示される情報が変わります。詳細については各オプションの説明を参照してください。

また，このオプションだけを指定した場合は，-wオプションと-sオプションをあわせて指定した場合と同じ動作となります。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

Windowsの場合，ファイルおよび標準入力，標準出力をバイナリモードで入出力します。改行コードは変換しません。

Windowsの場合，次に示すオプション以外のオプションでは，Administrators権限を利用して情報を取得しているため，Administrators権限を持つユーザーで使用してください。Administrators権限を持たないユーザーがそれらのオプションを指定してunameコマンドを実行した場合はエラーになります。

-rオプション

-sオプション（-wオプションと一緒に指定しない場合）

Windowsの場合，unameコマンドはWindowsのOSの機能を使用してOSおよびハードウェアの情報を取得しているため，スクリプトを実行している間のPATH環境変数には，Windowsのシステムフォルダのパス情報が含まれている必要があります。そのため，PATH環境変数に別のパス情報を追加したい場合は，次のようにPATH環境変数の情報を変更してください。

例

PATH="${PATH};C:¥¥home¥¥bin"

使用例

オプションを指定しない場合のデフォルトを表示します。

Windowsの場合

C:¥TEMP>%ADSH_OSCMD_DIR%¥uname
Windows

UNIXの場合（Linux上でコマンドを実行した場合）

$ /opt/jp1as/cmd/uname
Linux

-aオプションを指定して，OS環境の詳細な情報をすべて表示します。

Windowsの場合（-wオプションを指定しない場合）

C:¥TEMP>%ADSH_OSCMD_DIR%¥uname -a
Windows MyMachine Microsoft Windows Server 2008 R2 Enterprise Service Pack 1 6.1.7601 x64-based PC

Windowsの場合（-wオプションをあわせて指定した場合）

C:¥TEMP>%ADSH_OSCMD_DIR%¥uname -aw
Microsoft Windows Server 2008 R2 Enterprise|C:¥Windows|¥Device¥Harddisk0¥Partition2
 MyMachine
 unknown
 6.1.7601
 x64-based PC

UNIXの場合（Linux上でコマンドを実行した場合）

$ /opt/jp1as/cmd/uname -a
Linux LINUX1 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007 i686

-mオプションを指定して，マシンおよびハードウェアの名称を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uname -m
x64-based PC

-nオプションを指定して，ノード名を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uname -n
MyMachine

-rオプションを指定して，OSのリリースを表示します。次の例はWindowsの例であり，常に「unknown」が表示されます。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uname -r
unknown

-sオプションを表示して，OS名を表示します。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uname -s
Windows

-vオプションを指定して，OSのバージョンを表示します。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uname -v
6.1.7601

複数のオプションを組み合わせた場合は，-aオプションの表示順に従って，該当する情報を表示します。Windowsの例を次に示します。この例では-v，-sの順にオプションを指定していますが，この場合は-s，-vの順で情報が表示されます。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uname -v -s
Windows 6.1.7601

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uname -p
uname: illegal option -- p
usage: uname [-amnrsvw]

Windowsの場合，Administrators権限を持たないユーザーで，Administrator権限が必要となるオプションを指定してunameコマンドを実行した場合は，次のようにエラーメッセージが出力されます。次の例は，-mオプションを指定した場合の表示内容です。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uname -m
mof ファイルを登録できませんでした。
WMIC.EXE を使用できるのは管理者グループのメンバだけです。
理由:Win32 エラー: アクセスが拒否されました。

unknown

uniqコマンド（ソートされたファイルから重複した行を削除する）

形式

uniq［-c］［-d］［-u］［入力パス名［出力パス名］］

機能

ファイル中の重複した行を1行にして出力します。なお，同一内容の行が連続している場合だけ重複行と見なします。

引数

オプションを省略した場合，-dオプションおよび-uオプションを指定したときと同じ動作となります。重複している行は1行だけ出力し，重複していない行はすべて出力します。

-c

各出力行の先頭に，同一行が続けて出現した回数およびスペースを1つ出力します。回数は4桁で表示します。4桁で表示できない場合は，順次桁数を増やします。回数の後ろには1文字のスペースを表示します。

-d

重複している行を1行だけ表示します。

-u

重複していない行を出力します。

入力パス名

入力対象のファイルを指定します。入力パス名を指定しない，または「-」を指定した場合は標準入力から入力します。

出力パス名

結果を出力するファイルを指定します。出力パス名を指定しない，または「-」を指定した場合は標準出力に出力します。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

入力パス名と出力パス名に同じファイルを指定すると，ファイルは空になります。

比較できる1行の最大バイト数は8192バイトです。

バイナリファイルからの入力およびバイナリデータの出力は，動作を保証しません。

使用例

uniqコマンドを実行した結果表示に使用するファイルの形式を次に示します。

file1.txt

aaaa
aaaaaaa                       →重複している文字列
aaaaaaa                       →重複している文字列
bbbbbbb
bbbbbbbbbbb                   →重複している文字列
bbbbbbbbbbb                   →重複している文字列
bbbbbbbbbbb                   →重複している文字列
bbbbbbbbbbb                   →重複している文字列
bcbcbcbcbcb
ddddddddddddddddddd
dddddddddddddddddddddd
dddddddddddddddddddddddd
ddddddddddddddddddddddddeee   →重複している文字列
ddddddddddddddddddddddddeee   →重複している文字列

コマンドの実行例を次に示します。

オプションを指定しない場合のデフォルトを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uniq file1.txt
aaaa
aaaaaaa
bbbbbbb
bbbbbbbbbbb
bcbcbcbcbcb
ddddddddddddddddddd
dddddddddddddddddddddd
dddddddddddddddddddddddd
ddddddddddddddddddddddddeee

C:¥TEMP>

-cオプションを指定して，同一行が続けて出現した回数と該当する行の内容を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uniq -c file1.txt
   1 aaaa
   2 aaaaaaa
   1 bbbbbbb
   4 bbbbbbbbbbb
   1 bcbcbcbcbcb
   1 ddddddddddddddddddd
   1 dddddddddddddddddddddd
   1 dddddddddddddddddddddddd
   2 ddddddddddddddddddddddddeee

C:¥TEMP>

-dオプションを指定して，重複している行だけを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uniq -d file1.txt
aaaaaaa
bbbbbbbbbbb
ddddddddddddddddddddddddeee

C:¥TEMP>

-uオプションを指定して，重複しない行だけを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uniq -u file1.txt
aaaa
bbbbbbb
bcbcbcbcbcb
ddddddddddddddddddd
dddddddddddddddddddddd
dddddddddddddddddddddddd

C:¥TEMP>

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥uniq -w
uniq: illegal option -- w
usage: uniq [-cdu] [input_file [output_file]]

wcコマンド（ファイルのバイト，行，文字および単語をカウントする）

形式

wc［-c］［-l］［-m］［-w］［パス名 ...］

機能

ファイルのバイト，行，文字または単語をカウントします。入力ファイルの行数・単語数・文字数・バイト数・ファイル名の順序に，オプションに指定された情報だけ表示します。

引数

-c

入力ファイルのバイト数を標準出力に出力します。

-l

入力ファイルの行数を標準出力に出力します。改行コードの数を行数とします。

-m

入力ファイルの文字数を標準出力に出力します。マルチバイト文字も1文字としてカウントします。

-w

入力ファイルの単語数を標準出力に出力します。単語は，スペース，タブおよび改行で区切られた文字列の数とします。

パス名

入力対象とするファイル名を指定します。パス名を指定しない，または「-」を指定した場合は標準入力から入力します。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

ロケールと異なる文字コードの文字は，無効または不完全な文字と見なされます。

-cオプション，-lオプション，-mオプション，-wオプションのどれも指定しなかった場合，-cオプション，-lオプション，-wオプションが指定されたものとします。

オプションの指定順序に関係なく，行数，単語数，マルチバイトの文字数，バイト数，ファイル名の順序で表示します。数値は1文字のスペースと7桁で表示します。7桁で表示できない場合は，順次桁数を増やします。

無効，不完全なマルチバイト，ワイド文字，バイナリデータ，ロケールと異なる文字コードが含まれるファイルを入力するとエラーとなります（wc: binaryfile: Invalid or incomplete multibyte or wide character）。

使用例

オプションを指定しない場合のデフォルトを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥wc a.txt b.txt
       5       5      55 a.txt
       4       4      44 b.txt
       9       9      99 total

-cオプションを指定して，入力ファイルのバイト数を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥wc -c a.txt
      55 a.txt

-lオプションを指定して，入力ファイルの行数を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥wc -l a.txt
       5 a.txt

-mオプションを指定して，入力ファイルの文字数を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥wc -m a.txt
      50 a.txt

-wオプションを指定して，入力ファイルの単語数を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥wc -w a.txt
       5 a.txt

すべてのオプションを指定して，入力ファイルの行数，単語数，文字数およびバイト数を表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥wc -clmw a.txt
       5       5      50      55 a.txt

オプションエラーのメッセージを表示します。

このメッセージは，コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥wc -z
wc: illegal option -- z
usage: wc [-clmw] [file ...]

ファイル内に無効または不完全な文字がある場合にエラーメッセージを表示します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥wc binaryfile
wc: binaryfile: Invalid or incomplete multibyte or wide character

無効または不完全な文字として，次のものがあります。

無効または不完全なマルチバイト，ワイド文字，バイナリデータ

ロケールと異なる文字コードの文字

whichコマンド（外部コマンドのパスを取得する）

形式

which［-a］コマンド名 ...

機能

環境変数PATHに設定されているコマンド検索パスから，実行する外部コマンドのコマンドパスを取得します。取得したコマンドパスは標準出力に出力します。

引数

-a

環境変数PATHに設定されているコマンド検索パスの中から，実行できるすべてのコマンドパスを取得して出力します。

-aオプションを指定しない場合は，最初に取得されたコマンドパスだけを出力します。

コマンド名

コマンドパスを取得したい外部コマンド名を指定します。複数指定できます。

指定した外部コマンドのコマンドパスが見つからなかった場合は，標準エラー出力に外部コマンドのコマンドパスが見つからなかったことを示すメッセージが出力されます。

コマンドパスの検索規則

外部コマンドのコマンドパスは次の規則で検索します。

Windowsの場合

外部コマンドの検索対象パス

環境変数PATHに設定されているコマンド検索パスに対して，外部コマンドを検索します。環境変数PATHに複数のコマンドパスが設定されている場合は，先頭のコマンドパスから順番に検索します。なお，whichコマンドの実行者に外部コマンド格納ディレクトリの読み込み権限がない場合，そのディレクトリはコマンドパスの検索対象にはなりません。

コマンドパスの出力対象となる外部コマンド

whichコマンドの実行者に外部コマンド格納ディレクトリの読み込み権限があればコマンドパスを出力します。外部コマンドの実行権限の有無は判断されません。

コマンドパスの出力対象となる外部コマンドは拡張子が「.com」，「.exe」，「.cmd」，「.bat」の実行ファイルです。

指定した外部コマンドに拡張子が含まれない場合，外部コマンド名に環境変数PATHEXTに定義されている順に拡張子を付けて外部コマンドを検索します。対象となる拡張子は「.com」，「.exe」，「.cmd」，「.bat」です。詳細については，「5.1.11　外部コマンドの指定」を参照してください。

UNIXの場合

外部コマンドの検索対象パス

環境変数PATHに設定されているコマンド検索パスに対して外部コマンドを検索します。環境変数PATHに複数のコマンドパスが設定されている場合は，先頭のコマンドパスから順に検索します。なお，whichコマンドの実行者に外部コマンド格納ディレクトリ（パスを構成するすべてのディレクトリ）の検索権限がない場合，そのディレクトリはコマンドパスの検索対象にはなりません。

コマンドパスの出力対象となる外部コマンド

whichコマンドの実行者に外部コマンドの実行権限があれば，実行できる外部コマンドと判断し，コマンドパスを出力します。外部コマンドの実行権限がない場合，その外部コマンドはコマンドパスの出力対象にはなりません。

引数に指定したコマンド名にパスが含まれている場合

Windowsの場合

whichコマンドの実行者に外部コマンド格納ディレクトリの読み込み権限があればコマンドパス名を出力します。外部コマンドの実行権限の有無は判断されません。

外部コマンド格納ディレクトリの読み込み権限がない場合は外部コマンドのコマンドパスが見つからなかったことを示すメッセージを出力します。

コマンドパスの出力対象となる外部コマンドは拡張子が「.com」，「.exe」，「.cmd」，「.bat」の実行ファイルです。

指定した外部コマンドに拡張子が含まれない場合は，外部コマンド名に環境変数PATHEXTに定義されている順に拡張子を付けます。対象となる拡張子は「.com」，「.exe」，「.cmd」，「.bat」です。

UNIXの場合

whichコマンドの実行者に外部コマンド格納ディレクトリ（パスを構成するすべてのディレクトリ）の検索権限と外部コマンドの実行権限がある場合，引数に指定したコマンド名を出力します。これらの権限がない場合は，外部コマンドのコマンドパスが見つからなかったことを示すメッセージを出力します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了。

外部コマンドのコマンドパスが見つかりませんでした。または，複数の外部コマンドを検索した際，コマンドパスが見つからなかった外部コマンドがありました。

2

エラー終了。

不正なオプションを指定しました。

環境変数PATHが定義されていません。

Windowsの場合，環境変数PATHEXTが定義されていません。

注意事項

環境変数PATHが定義されていない場合はエラー終了します。

Windowsの場合，環境変数PATHEXTが定義されていない場合はエラー終了します。

次の名前を引数のコマンド名に指定した場合，外部コマンドとして検索します。

aliasコマンドで定義したエイリアス

予約語，シェル標準コマンド，シェル拡張コマンド，または関数

引数にパスが含まれているコマンド名を指定した場合，パス名が次の環境設定パラメーターによる変換対象のときは，変換後のパス名が出力されます。

PATH_CONVパラメーター

COMMAND_CONV_ARGパラメーター

Windowsの場合，コマンドパスの検索規則に該当する外部コマンドだけがコマンドパスの出力対象となります。

awkコマンドのsystem関数，およびfindコマンドの-execオプションで指定したコマンドラインで実行するコマンドのパス検索は次のとおりです。

awkコマンドのsystem関数で指定したコマンド

コマンド実行のパス検索規則は，コマンドプロンプトなどのコマンドプロセッサ実行のパス検索規則に従います。

findコマンドの-execオプションで指定したコマンドライン

コマンドライン実行のパス検索規則は，プログラムを実行するWindows APIのパス検索規則に従います。

このため，上記のコマンドに指定したコマンド名を引数に指定したときに出力されるコマンドパスと，実行されるコマンドのパスが異なる場合があります。

使用例

コマンド名pgm01.exeのコマンドパスを取得します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥which pgm01.exe
C:¥Program Files¥Hitachi¥PP001¥pgm01.exe

コマンド名pgm01のコマンドパスを取得します。コマンド名には拡張子を指定していません。

C:¥TEMP>%ADSH_OSCMD_DIR%¥which pgm01
C:¥Program Files¥Hitachi¥PP001¥pgm01.exe

-aオプションを指定して，コマンド名pgm01.exeのすべてのコマンドパスを取得します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥which -a pgm01.exe
C:¥Program Files¥Hitachi¥PP001¥pgm01.exe
C:¥Program Files¥Hitachi¥PP002¥pgm01.exe
C:¥Program Files¥Hitachi¥PP003¥pgm01.exe

コマンド名pgm02のコマンドパスを取得します。なお，コマンド検索パスにpgm02は存在しません。

C:¥TEMP>%ADSH_OSCMD_DIR%¥which pgm02
which: no pgm02 in (C:¥WINDOWS¥system32;C:¥WINDOWS;C:¥Program Files¥Hitachi¥PP001
;C:¥Program Files¥Hitachi¥PP002;C:¥Program Files¥Hitachi¥PP003)

コマンド名pgm01，pgm02，pgm03，pgm04のコマンドパスを取得します。なお，コマンド検索パスにコマンド名pgm02，pgm04は存在しません。

C:¥TEMP>%ADSH_OSCMD_DIR%¥which pgm01 pgm02 pgm03 pgm04
C:¥Program Files¥Hitachi¥PP001¥pgm01.exe
which: no pgm02 in (C:¥WINDOWS¥system32;C:¥WINDOWS;C:¥Program Files¥Hitachi¥PP001
;C:¥Program Files¥Hitachi¥PP002;C:¥Program Files¥Hitachi¥PP003)
C:¥Program Files¥Hitachi¥PP001¥pgm03.exe
which: no pgm04 in (C:¥WINDOWS¥system32;C:¥WINDOWS;C:¥Program Files¥Hitachi¥PP001
;C:¥Program Files¥Hitachi¥PP002;C:¥Program Files¥Hitachi¥PP003)

パスを含むコマンド名を指定して実行します。指定したプログラム名は存在します。

C:¥TEMP>%ADSH_OSCMD_DIR%¥which "C:¥Program Files¥Hitachi¥PP001¥pgm01"
C:¥Program Files¥Hitachi¥PP001¥pgm01.exe

パスを含むコマンド名を指定して実行します。指定したコマンド名は存在しません。

C:¥TEMP>%ADSH_OSCMD_DIR%¥which "C:¥Program Files¥Hitachi¥PP001¥pgm02"
which: no pgm02 in (C:¥Program Files¥Hitachi¥PP001)

8.5　UNIX互換コマンド（スクリプト形式）【Windows限定】

次のUNIX互換コマンドは，JP1/Advanced Shellが提供するサンプルスクリプトファイルを使用して実行します。提供するサンプルスクリプトファイルはWindows限定です。UNIXではOS提供のコマンドを使用してください。

表8‒15　サンプルスクリプトファイルで提供するUNIX互換コマンド

コマンド名

サンプルスクリプトファイル名

機能概要

全コマンド

script_0

ジョブ定義スクリプトに記述されているコマンドの指定を無効にします。

chmod

script_chmod1

ファイルの読み取り専用属性の有効・無効を切り替えます。

script_chmod2

ファイルまたはフォルダに対するパーミッションを数値で設定します。

script_chmod3

ファイルまたはフォルダに対するパーミッションをシンボルまたは数値で設定します。

su

script_su1

実行ユーザーの権限でプログラムを実行します。

who

script_who1

ログインユーザーの情報をログに出力します。

サンプルスクリプトファイルを使うための詳細手順は，「2.6.6(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】」を参照してください。

chmodコマンド（ジョブ定義スクリプトに記述されているchmodコマンドの指定を無効にする）

形式

chmod ［オプション］［モード］［パス名］

このコマンドはサンプルスクリプトファイルscript_0を基に作成します。作成手順については「2.6.6(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】」を参照してください。

機能

ジョブ定義スクリプトに記述されているすべてのchmodコマンドとその引数の指定を無効にします。このコマンドを実行すると，常に終了コード0で正常終了します。

Windowsではログインユーザーごとにアクセス制御する運用とすると，ジョブ定義スクリプトの実行時のアクセス権変更が不要になる場合があります。このような場合，このコマンドを実行することで，ジョブ定義スクリプトのすべてのchmodコマンドの定義を無効にできるため，UNIXからWindowsに移行してきたジョブ定義スクリプトの修正が不要になります。

引数

オプション

指定を無視します。

モード

指定を無視します。

パス名

指定を無視します。

終了コード

終了コード

意味

0

正常終了

注意事項

コマンド置換で引数に指定したコマンドは実行されるため，後続の処理に影響がある場合は，指定を見直してください。

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイルscript_0を基にchmodコマンドが作成されていることを前提とします。

ジョブ定義スクリプトのchmodコマンドの指定を無視します。この例で指定されたchmodコマンドのオプションは実行されません。

chmod go-x test.txt
if [[ $? -ge 1 ]]; then     # chmodの終了コードは必ず0なので，そのまま処理を続行する。
  echo "chmod error." 1>&2
  exit 1
fi

chmodコマンド（ファイルの読み取り専用属性の有効・無効を切り替える）

形式

chmod ［-fhR］ モード パス名

このコマンドはサンプルスクリプトファイルscript_chmod1を基に作成します。作成手順については「2.6.6(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】」を参照してください。

機能

ファイルの読み取り専用属性の有効・無効を切り替えます。

このコマンドは，ファイルの更新を抑止したい場合などに使用します。

引数

-f

指定を無視します。

-h

指定を無視します。

-R

指定を無視します。

モード

モードをシンボルまたは数値で指定して，読み取り専用属性の有効・無効を切り替えます。指定方法を次に示します。これ以外のモードが指定された場合，標準エラー出力へ「chmod: invalid file mode: モード」を出力し，アクセス許可は変更しません。

指定内容

シンボルでの指定

数値での指定

読み取り専用属性を無効にし，書き込みを可能にする場合

（adshscripttool -fmode -s wコマンドの実行結果がAAAまたはRRRの場合に相当）

+wを指定

u，g，oの書き込み権限のモードビットがすべてONになるよう指定（777，666，333，222，733など）

読み取り専用属性を有効にし，書き込みを禁止にする場合

（adshscripttool -fmode -s wコマンドの実行結果がDDDの場合に相当）

-wを指定

u，g，oの書き込み権限のモードビットがすべてOFFになるよう指定（555，444，111，000，511など）

パス名

対象とするファイルを指定します。複数指定することもできます。フォルダは指定できません。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

ファイルの属性の変更権限がない場合，attribコマンドが標準エラー出力にメッセージ「アクセスは拒否されました - パス名」を出力してattribコマンドがエラーとなり，権限を変更できません。実行ユーザーに属性の変更権限を付与して使用してください。

パス名にフォルダを指定した場合，メッセージ「chmod: cannot access [パス名]: change for the directory is not supported」を出力し，フォルダの読み取り専用属性は変更されないで，終了コード1で終了します。

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイルscript_chmod1を基にchmodコマンドが作成されていることを前提とします。

シンボル指定でファイルへの書き込みを禁止します。

chmod -w test.txt

シンボル指定でファイルへの書き込みを許可します。

chmod +w test.txt

数値指定でファイルへの書き込みを禁止します。

chmod 444 test.txt

指定が許可されていないモードを指定します。

chmod -r test.txt

この場合，標準エラー出力には次のように出力されます。

chmod: invalid file mode: -r

chmodコマンド（パーミッションを数値で設定する）

形式

chmod ［-fhR］ モード パス名

このコマンドはサンプルスクリプトファイルscript_chmod2を基に作成します。作成手順については「2.6.6(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】」を参照してください。

機能

既存のACL（Access Control List）を削除して，モードの数値の指定に従ったACLを再設定します。

このコマンドは，次のような設定をしたい場合などにアクセス権を数値で設定します。

「所有者」以外のユーザーの「書き込み」「読み取り」を抑止したい場合

すべてのユーザーの「書き込み」または「読み取り」を許可したい場合

「所有者」を含むすべてのユーザーの「書き込み」を抑止したい場合

引数

-f

指定を無視します。

-h

指定を無視します。

-R

指定を無視します。

モード

モードの指定値と，それによって設定される各ACE（Access Control Entry）のアクセス許可を次に示します。これ以外のモードが指定された場合，標準エラー出力へ「chmod: invalid file mode: モード」を出力し，アクセス許可は変更されません。

モードの指定値

設定されるアクセス許可

777

所有者：F，Everyone：F

766

所有者：F，Everyone：C

755

所有者：F，Everyone：R

744

所有者：F，Everyone：R

733

所有者：F，Everyone：W

722

所有者：F，Everyone：W

700

所有者：F

666

所有者：C，Everyone：C

655

所有者：C，Everyone：R

644

所有者：C，Everyone：R

633

所有者：C，Everyone：W

622

所有者：C，Everyone：W

600

所有者：C

555

所有者：R，Everyone：R

544

所有者：R，Everyone：R

533

所有者：R，Everyone：W

522

所有者：R，Everyone：W

500

所有者：R

444

所有者：R，Everyone：R

433

所有者：R，Everyone：W

422

所有者：R，Everyone：W

400

所有者：R

333

所有者：W，Everyone：W

322

所有者：W，Everyone：W

300

所有者：W

222

所有者：W，Everyone：W

200

所有者：W

（凡例）

表のF，C，R，Wは，caclsコマンドの次のアクセス許可と対応しています。

　F：フルコントロール

　C：変更権限

　R：読み取り権限

　W：書き込み権限

モードでは，読み取り権限と書き込み権限を合わせたもの（モードビット6の場合）を変更権限として定義しています。すべての権限を合わせたもの（モードビット7の場合）をフルコントロールとして定義しています。

モードで，実行権限に相当する指定は無視します。したがって，モードビット5は4と同等，モードビット3は2と同等として定義しています。

パス名

対象とするファイルまたはフォルダを指定します。複数指定することもできます。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

このコマンドを実行すると，既存のACLは削除され，モードの説明にあるACEの設定だけを実施します。必要なアカウントのACEがある場合は，サンプルスクリプト内のcaclsコマンドの定義に追加してください。

「その他のユーザー」のアカウントをEveryoneにしているため，所有者のアクセス権がその他のユーザーのアクセス権より低い場合でも，所有者はEveryoneのアクセス権でアクセスできるようになります。

ファイルおよびフォルダのアクセス許可の変更権限がない場合，caclsコマンドが標準エラー出力にメッセージ「アクセスが拒否されました」を出力してcaclsコマンドがエラーとなり，権限を変更できません。実行ユーザーにアクセス許可の変更権限を付与して使用してください。

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイルscript_chmod2を基にchmodコマンドが作成されていることを前提とします。

指定したファイルに対し，すべてのユーザーを読み取り可能にします。

chmod 444 test.txt

指定が許可されていないモードを指定します。

chmod 611 test.txt

この場合，標準エラー出力には次のように出力されます。

chmod: invalid file mode: 611

chmodコマンド（パーミッションをシンボルまたは数値で設定する）

形式

chmod ［-fhR］ モード パス名

このコマンドはサンプルスクリプトファイルscript_chmod3を基に作成します。作成手順については「2.6.6(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】」を参照してください。

機能

所有者およびEveryone以外のACEを削除して，モードのシンボルまたは数値の指定に従い，アクセス許可を変更または設定します。

このコマンドは，次のような設定をしたい場合などにアクセス権をシンボルまたは数値で設定します。

chmodコマンドのモードがシンボルで指定されたジョブ定義スクリプトをWindowsに移行したい場合

「所有者」またはすべてのユーザーのアクセス権を追加および抑止したい場合

引数

-f

指定を無視します。

-h

指定を無視します。

-R

指定を無視します。

モード

モードの指定値と，それによって設定される各ACEのアクセス許可を次に示します。これ以外のモードが指定された場合，標準エラー出力へ「chmod: invalid file mode: モード」を出力し，アクセス許可は変更しません。

モードの指定値

（括弧内：adshscripttool -fmodeコマンドの実行結果）

設定されるアクセス許可

u+r（A00000000）

所有者：Rを追加

u+rw（AA0000000）

所有者：Cを追加

u+rwx（AAA000000）

所有者：Fを追加

u+w（0A0000000）

所有者：Wを追加

u-rwx（DDD000000）

所有者のACEを削除

u=r（RDD000000）

所有者：Rに置き換え

u=rw（RRD000000）

所有者：Cに置き換え

u=rwx（RRR000000）

所有者：Fに置き換え

u=w（DRD000000）

所有者：Wに置き換え

o+r（000000A00）

Everyone：Rを追加

o+rw（000000AA0）

Everyone：Cを追加

o+rwx（000000AAA）

Everyone：Fを追加

o+w（0000000A0）

Everyone：Wを追加

o-rwx（000000DDD）

EveryoneのACEを削除

o=r（000000RDD）

Everyone：Rに置き換え

o=rw（000000RRD）

Everyone：Cに置き換え

o=rwx（000000RRR）

Everyone：Fに置き換え

o=w（000000DRD）

Everyone：Wに置き換え

+r / ugo+r（A00A00A00）

所有者：R，Everyone：Rを追加

+rw / ugo+rw（AA0AA0AA0）

所有者：C，Everyone：Cを追加

+rwx / ugo+rwx（AAAAAAAAA）

所有者：F，Everyone：Fを追加

+w / ugo+w（0A00A00A0）

所有者：W，Everyone：Wを追加

-rwx / ugo-rwx（DDDDDDDDD）

所有者，EveryoneのACEを削除

=r / ugo=r（RDDRDDRDD）

所有者：R，Everyone：Rに置き換え

=rw / ugo=rw（RRDRRDRRD）

所有者：C，Everyone：Cに置き換え

=rwx / ugo=rwx（RRRRRRRRR）

所有者：F，Everyone：Fに置き換え

=w / ugo=w（DRDDRDDRD）

所有者：W，Everyone：Wに置き換え

777（RRRRRRRRR）

所有者：F，Everyone：Fに置き換え

766（RRRRRDRRD）

所有者：F，Everyone：Cに置き換え

755（RRRRDRRDR）

所有者：F，Everyone：Rに置き換え

744（RRRRDDRDD）

所有者：F，Everyone：Rに置き換え

733（RRRDRRDRR）

所有者：F，Everyone：Wに置き換え

722（RRRDRDDRD）

所有者：F，Everyone：Wに置き換え

700（RRRDDDDDD）

所有者：Fに置き換え

666（RRDRRDRRD）

所有者：C，Everyone：Cに置き換え

655（RRDRDRRDR）

所有者：C，Everyone：Rに置き換え

644（RRDRDDRDD）

所有者：C，Everyone：Rに置き換え

633（RRDDRRDRR）

所有者：C，Everyone：Wに置き換え

622（RRDDRDDRD）

所有者：C，Everyone：Wに置き換え

600（RRDDDDDDD）

所有者：Cに置き換え

555（RDRRDRRDR）

所有者：R，Everyone：Rに置き換え

544（RDRRDDRDD）

所有者：R，Everyone：Rに置き換え

533（RDRDRRDRR）

所有者：R，Everyone：Wに置き換え

522（RDRDRDDRD）

所有者：R，Everyone：Wに置き換え

500（RDRDDDDDD）

所有者：Rに置き換え

444（RDDRDDRDD）

所有者：R，Everyone：Rに置き換え

433（RDDDRRDRR）

所有者：R，Everyone：Wに置き換え

422（RDDDRDDRD）

所有者：R，Everyone：Wに置き換え

400（RDDDDDDDD）

所有者：Rに置き換え

333（DRRDRRDRR）

所有者：W，Everyone：Wに置き換え

322（DRRDRDDRD）

所有者：W，Everyone：Wに置き換え

300（DRRDDDDDD）

所有者：Wに置き換え

222（DRDDRDDRD）

所有者：W，Everyone：Wに置き換え

200（DRDDDDDDD）

所有者：Wに置き換え

（凡例）

表のF，C，R，Wは，caclsコマンドの次のアクセス許可と対応しています。

　F：フルコントロール

　C：変更権限

　R：読み取り権限

　W：書き込み権限

モードでは，読み取り権限と書き込み権限を合わせたもの（モードビット6の場合）を変更権限として定義しています。すべての権限を合わせたもの（モードビット7の場合）をフルコントロールとして定義しています。

モードで，実行権限に相当する指定は無視します。したがって，モードビット5は4と同等，モードビット3は2と同等として定義しています。

パス名

対象とするファイルまたはフォルダを指定します。複数指定することもできます。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

このコマンドを実行すると，所有者およびEveryone以外のACEは削除され，モードの説明にあるACEの設定だけを実施します。必要なアカウントのACEがある場合は，サンプルスクリプト内のcaclsコマンドの定義に追加してください。

「その他のユーザー」のアカウントをEveryoneにしているため，所有者のアクセス権がその他のユーザーのアクセス権より低い場合でも，所有者はEveryoneのアクセス権でアクセスできるようになります。

ファイルおよびフォルダのアクセス許可の変更権限がない場合，caclsコマンドが標準エラー出力にメッセージ「アクセスが拒否されました」を出力してcaclsコマンドがエラーとなり，権限を変更できません。実行ユーザーにアクセス許可の変更権限を付与して使用してください。

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイルscript_chmod3を基にchmodコマンドが作成されていることを前提とします。

その他のユーザーに書き込み権限を追加します。

chmod o+w test.txt

指定が許可されていないモードを指定します。

chmod g-w test.txt

この場合，標準エラー出力には次のように出力されます。

chmod: invalid file mode: g-w

suコマンド（ジョブ定義スクリプトに記述されているsuコマンドの指定を無効にする）

形式

su ［-］ ［ユーザー名］ ［引数...］

このコマンドはサンプルスクリプトファイルscript_0を基に作成します。作成手順については「2.6.6(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】」を参照してください。

機能

ジョブ定義スクリプトに記述されているすべてのsuコマンドとその引数の指定を無効にします。このコマンドを実行すると，常に終了コード0で正常終了します。

UNIXでsuコマンドを使ってサブシステムの起動・停止を実行していたジョブ定義スクリプトをWindowsに移行したあと，Windowsでは別のシステムを利用してサブシステムの起動・停止を実行する運用としたときなどに，ジョブ定義スクリプトに記述されているsuコマンドの処理が不要になる場合があります。このような場合，このコマンドを使用することで，ジョブ定義スクリプトのすべてのsuコマンドの定義を無効にできるため，UNIXからWindowsに移行してきたジョブ定義スクリプトの修正が不要になります。

引数

-

指定を無視します。

ユーザー名

指定を無視します。

引数

指定を無視します。

終了コード

終了コード

意味

0

正常終了

注意事項

コマンド置換で引数に指定したコマンドは実行されるため，後続の処理に影響がある場合は，指定を見直してください。

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイルscript_0を基にsuコマンドが作成されていることを前提とします。

ジョブ定義スクリプトのsuコマンドの指定を無視します。この例で指定されたsuコマンドのオプションは実行されません。

su - ${DBADMIN} -c 'export PDDIR=/home/db/db1; start -q'
if [[ $? -ge 1 ]]; then     # suの終了コードは必ず0なので，そのまま処理を続行する。
  echo "su error." 1>&2
  exit 1
fi

suコマンド（実行ユーザーの権限でプログラムを実行する）

形式

su ［-］ ユーザー名 ｛-c コマンドライン|スクリプトファイルのパス名｝
   ［実行時パラメーター］

このコマンドはサンプルスクリプトファイルscript_su1を基に作成します。作成手順については「2.6.6(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】」を参照してください。

機能

引数に指定されたコマンドを実行します。ユーザー名の指定は無視され，実行ユーザーの権限で実行されます。

既存のジョブ定義スクリプトにsuコマンドが記述されている場合に，ジョブ定義スクリプトを書き換えないでWindowsに移行できます。

引数

-

指定を無視します。

ユーザー名

指定を無視します。

-c コマンドライン

ジョブで実行するコマンドラインを指定します。

コマンドラインには，シェル運用コマンド，UNIX互換コマンドなど，ジョブ定義スクリプトファイルに記述できるコマンドを指定できます。

スクリプトファイルのパス名

実行するスクリプトファイルのパス名を指定します。

実行時パラメーター

コマンドラインまたはスクリプトファイルのパス名の位置パラメーターに格納する値を指定します。スペースを実行時パラメーターとして指定する場合は，その文字列を"（ダブルクォーテーション）で囲んでください。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

実行ユーザーに必要な権限を与えてからこのコマンドを実行してください。

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイルscript_su1を基にsuコマンドが作成されていることを前提とします。

実行ユーザーに必要な権限を与え，引数-cに複数のコマンドを指定して実行します。

# 必要な権限を持ったユーザーからコマンドを実行
su - ${DBADMIN} -c 'export PDDIR=C:¥¥db¥¥db1; start -q'

実行ユーザーに必要な権限を与え，引数にスクリプトファイル名を指定して実行します。

# 必要な権限を持ったユーザーからジョブ定義スクリプトを実行
su - ${DBADMIN} '.¥¥DBSTART.ash'

whoコマンド（ジョブ定義スクリプトに記述されているwhoコマンドの指定を無効にする）

形式

who ［am i］

このコマンドはサンプルスクリプトファイルscript_0を基に作成します。作成手順については「2.6.6(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】」を参照してください。

機能

ジョブ定義スクリプトに記述されているすべてのwhoコマンドとその引数の指定を無効にします。このコマンドを実行すると，常に終了コード0で正常終了します。

UNIXでwhoコマンドを使っていたが，Windowsではその情報が不要となったときなどに，ジョブ定義スクリプトに記述されているwhoコマンドの処理が不要になる場合があります。このような場合，このコマンドを使用することで，ジョブ定義スクリプトのすべてのwhoコマンドの定義を無効にできるため，UNIXからWindowsに移行してきたジョブ定義スクリプトの修正が不要になります。

引数

am i

指定を無視します。

終了コード

終了コード

意味

0

正常終了

注意事項

コマンド置換で引数に指定したコマンドは実行されるため，後続の処理に影響がある場合は，指定を見直してください。

whoコマンド（ログインユーザーの情報をログに出力する）

形式

who ［am i］

このコマンドはサンプルスクリプトファイルscript_who1を基に作成します。作成手順については「2.6.6(2)　スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】」を参照してください。

機能

quser.exeコマンドまたはqwinsta.exeコマンドを起動します。

ジョブ定義スクリプトの実行時にシステムにログインしているユーザーの一覧をログに出力したい場合に指定します。

引数

am i

指定を無視します。

終了コード

終了コード

意味

0

正常終了

0以外

エラー終了（quser.exeコマンドまたはqwinsta.exeコマンドの終了コード）

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイルscript_who1を基にwhoコマンドが作成されていることを前提とします。

実行時のログインユーザーの一覧をログファイル「log.txt」に出力します。

who >>log.txt

9　ジョブ定義スクリプトのコマンドおよび制御文

この章では，ジョブ定義スクリプトファイルに使用する次のコマンドや制御文に関して，記述形式と詳細を説明します。

・シェル標準コマンド

・シェル拡張コマンド

・スクリプト拡張コマンド

・スクリプト制御文

・スクリプト予約語コマンド

9.1　コマンドおよび制御文の記述形式

ジョブ定義スクリプトファイルには，次のコマンドおよび制御文が使用できます。

シェル標準コマンド

シェル拡張コマンド

スクリプト拡張コマンド

スクリプト制御文

スクリプト予約語コマンド

なお，ジョブ定義スクリプトファイルを記述する際は，次の点に注意してください。

行の途中にNULL（"0x00"またはC言語での"¥0"）が混入している場合，ジョブコントローラはその行でNULLが現れる部分までを1行と見なします。その行でNULLのあとにほかの文字列があっても無視されます。不正な実行結果や実行時エラーの要因となるため，NULLを記述しないようにしてください。

（例）

入力行（"0x00"を「¥0」で示します）

echo "test¥0null";echo "test after"

出力例

echo "test

ジョブ定義スクリプトを見やすくするため，またはカバレージ情報が適切に表示されるようにするために，1行にコマンドを1個ずつ記述することを推奨します。「;」を使用して，1行に複数のコマンドを記述することはお勧めしません。

ジョブ定義スクリプトファイルに指定されたコマンドのカバレージ情報を採取する場合は，次の点に注意して記述してください。

1行に記述するコマンドが4個以内の場合は，各コマンドを実行したかどうかの情報を表示できます。

1行に記述するコマンドが32個以内の場合は，ジョブ定義スクリプト全体のコマンド数がすべて実行できたどうかを全体のコマンドで判断できます。

1行に記述するコマンドが32個を超える場合は，33個目以降のコマンドはカバレージ情報を取得しません。ジョブ定義スクリプト内のすべてのコマンドを実行してもC0実行比率が100％になりません。

if文などのスクリプト制御文も，スクリプト制御文全体を1行に記述しないで，キーワード単位で改行することを推奨します。

次に示すキーワードは，単独で1行に記述してください（「fi;fi」のように記述しないでください）。同一の行に記述すると，カバレージ情報が正しく表示されません。

if文の終了を示すfi

doのブロックの終了を示すdone

case文の終了を示すesac

カバレージ情報は，次の内容だけを出力します。

C0情報の場合，行の先頭からC0対象となる最初の4個のコマンド

C1情報の場合，行の先頭から最初の4個の実行パス

1行に複数のコマンドおよび実行パスを記述すると，すべてのカバレージ情報を表示しない場合があります。

例1

・1行に複数のコマンドおよび実行パスを記述した場合

echo 1; echo 2; echo 3; echo 4; echo 5

・複数の行で，コマンドおよび実行パスを記述した場合

echo 1
echo 2
echo 3
echo 4
echo 5

例2

・1行に複数のコマンドおよび実行パスを記述した場合

if true ;then echo 1 ;elif true ;then echo 2 ;elif true ;then echo 3 ;else echo 4 ;fi

・複数の行で，コマンドおよび実行パスを記述した場合

if true
then
  echo 1
elif true
then
  echo 2
elif true
then
  echo 3
else
  echo 4
fi

端末から標準入力へキーボード入力をするコマンドを実行する場合，入力を完了するには次の操作をしてください。

EOFまで入力する場合

Windowsでは［Enter］を入力後にCtrl+Zを入力して，さらに［Enter］を入力します。

UNIXではCtrl+Dを入力します。

1行入力する場合

［Enter］を入力します。

コマンドおよび制御文の記述形式を次に示します。

9.1.1　シェル標準コマンドの記述形式

シェル標準コマンドの記述形式を次に示します。

△₀コマンド名［△₁オプション］…［△₁オプション］［△₁オペランド］

最初にオプションを指定し，次にオペランドを指定します。オペランドとは，オプション名とオプション値のほかにコマンドに指定できる引数のことです。オプションの前にオペランドを指定した場合は，指定内容をすべてオペランドとして処理します。

オプションは「-オプション名［△₁値］」の形式で指定します。オプションを複数指定する場合，指定順序は任意です。

値のないオプションは連続して指定できます（例：「-a -b -c」と「-abc」は同じです）。その場合，最後のオプションには値を指定できます（例：「-abc xyz」の「xyz」は，-cオプションの値となります）。

不当なオプション，または指定できる範囲外の値を指定した場合，エラーになります。

オプション名にはマルチバイト文字は使用できません。

9.1.2　シェル拡張コマンドの記述形式

シェル拡張コマンドの記述形式を次に示します。

△₀コマンド名［△₁オプション］［△₁オペランド］

9.1.3　スクリプト拡張コマンドの記述形式

スクリプト拡張コマンドの記述形式を次に示します。

△₀コマンド名△₁属性値［…△₁属性値］［△₁-属性名△₁属性値［…△₁-属性名△₁属性値］］

スクリプト拡張コマンドのコマンド名は，必ず「#-adsh_」で開始します。

コマンド名のあとに，「属性値」のリストと，「-属性名 属性値」のリストを連続して記載します。

「属性値」のリストは順序に意味があるため，省略できません。「-属性名 属性値」のリストは順不同であり，省略できます。

「属性値」に「-」で開始する文字列を指定すると，「-属性名」の指定と見なされます。このため，「-」を「¥」，「"」，または「'」でエスケープしてください。

スクリプト拡張コマンドと同一のコメントは記述できません。スクリプト拡張コマンドをコメントにする場合は，先頭にもう1つ「#」を書いてください。

すべての記述でダブルクォーテーション「"」，シングルクォーテーション「'」，エスケープ文字「¥」が使用できます。

ただし，スクリプト拡張コマンドではダブルクォーテーションで囲まれた文字列中の「¥」は，直後の文字の種類に関係なくすべてエスケープ文字となります。ダブルクォーテーションで囲まれた文字列に「¥」を指定したい場合は，¥¥と記述してください。

コマンド名，属性名および属性値（予約語の場合）は，すべて大文字と小文字を区別します。

属性値には環境変数名が指定でき，スクリプト起動前に設定していた値で置換できます。環境変数名を記述する場合，{ }で囲む必要があります。環境変数名は「(2)　文字セットの定義」で示す＜環境変数名＞の形式で，255バイト以内で記述します。

スクリプト拡張コマンドは各行の先頭に記述してください。また，コマンド名の後ろから改行コードまでに必ずスペースを指定します。スペース以外が存在すると構文解析エラーになります。

コマンド区切り記号を指定して，同一行の2番目以降にスクリプト拡張コマンドを記述できません。記述すると構文解析エラーになります。

関数内にスクリプト拡張コマンドを記述できません。記述すると構文解析エラーになります。

for文，while文，until文のブロック内および関数定義内に，スクリプト拡張コマンドを記述できません。記述すると，実行前に文法エラーになります。

「.」で呼び出す外部スクリプトの中に，スクリプト拡張コマンドを記述できません。記述するとコメントとして扱われます。

スクリプト拡張コマンドを複数行に分けて記述する場合は，2行目以降を次の形式で記述します。

#-adsh△₁継続指定内容

コマンド名および属性の区切り文字の個所だけ，継続行指定ができます。コマンド名，属性名および属性値の途中で継続行指定はできません。

継続行で文法エラーがある場合，エラーメッセージに表示される行番号は，そのスクリプト拡張コマンドの先頭行の行番号となります。

(1)　制限事項

継続する行を含めて，スクリプト拡張コマンドの1行は8,191バイト以下にしてください。

属性値を複数指定する場合はスペースまたはコンマで区切ります。コンマの間の値は省略できません。

(2)　文字セットの定義

属性値として使用できる文字セットの定義を次の表に示します。

表9‒1　属性値として使用できる文字セットの定義

構文要素

指定できる文字の内容

対象

＜記号名称＞

｛＜英字＞|＜数字＞|@|#|_（アンダースコア）｝+

ジョブ名など

＜環境変数名＞

｛＜英字＞|_（アンダースコア）｝｛＜英字＞|_（アンダースコア）|＜数字＞｝*

ファイル環境変数定義名など

＜パス名＞

OSのファイルパス名規則に従った文字列です。

「¥」はメタキャラクタ（エスケープ文字）として扱うため，Windowsでは次のように記述してください。メタキャラクタについては，「5.1.6　メタキャラクタ」を参照してください。

　指定例：'C:¥test'またはC:¥¥testなど

パス名

＜任意文字列＞

任意の文字による文字列です。

次の範囲での利用を推奨します。

｛＜英字＞|＜数字＞|@|#|_（アンダースコア）｝+

環境変数値など

9.1.4　スクリプト制御文の記述形式

スクリプト制御文の記述形式を次に示します。

△₀制御文［△₁条件］［△₁予約語［△₁処理］］…
　　　　 ［△₁条件］［△₁予約語［△₁処理］］
［△₀制御文（終了）または予約語］

条件，予約語，処理

条件，予約語，処理などを指定します。

9.1.5　スクリプト予約語コマンドの記述形式

スクリプト予約語コマンドの記述形式を次に示します。

△₀コマンド名［△₁オプション］…［△₁オプション］［△₁オペランド］

最初にオプションを指定し，次にオペランドを指定します。オペランドとは，オプション名とオプション値のほかにコマンドに指定できる引数のことです。オプションの前にオペランドを指定した場合は，指定内容をすべて任意名として処理します。

オプションは「-オプション名［△₁値］」の形式で指定します。オプションを複数指定する場合，指定順序は任意です。

値のないオプションは連続して指定できます（例：「-a -b -c」と「-abc」は同じです）。その場合，最後のオプションには値を指定できます（例：「-abc xyz」の「xyz」は，-cオプションの値となります）。

不当なオプション，または指定できる範囲外の値を指定した場合，エラーになります。

オプション名にはマルチバイト文字は使用できません。

9.2　コマンドおよび制御文の一覧

シェル標準コマンド，シェル拡張コマンド，スクリプト拡張コマンド，スクリプト制御文，およびスクリプト予約語コマンドの概要を説明します。

9.2.1　シェル標準コマンドの一覧

シェル標準コマンドには，特殊組み込みコマンドと正規組み込みコマンドがあります。

表9‒2　特殊組み込みコマンドの一覧

コマンド名

機能概要

.

シェルスクリプトを実行します。

:

引数を展開し，終了コード0を返します。

break

繰り返し処理を抜けます。

continue

ループの処理を中断して，ループの先頭に戻ります。

eval

引数を1つにまとめて，コマンドとして実行します。

exec

指定されたコマンド実行して終了します。

exit

シェルを終了します。

export

シェル変数をエクスポートします。

readonly

変数の属性を読み込み専用に変更する，または読み込み専用の変数を表示します。

return

関数またはジョブ定義スクリプトから復帰します。

set

シェルオプションを設定する，配列を作成する，または変数の値を表示します。

shift

実行時パラメーターをシフトします。

trap

シグナルや強制終了要求を受けたときの動作を設定します。

typeset

変数や関数の属性と値を明示的に宣言します。

unset

変数の値と属性の設定を解除します。

表9‒3　正規組み込みコマンドの一覧

コマンド名

機能概要

alias

エイリアスを定義します。

builtin

組み込みコマンドを実行します。

cd

カレントディレクトリを移動します。

command

組み込みコマンドや外部コマンドを実行します。

echo

引数で指定した値を標準出力に出力します。

false

終了コード1を返します。

getopts

引数を解析します。

kill

プロセスにシグナルを送信します。

let

算術式による数値計算を行って，評価します。

print

引数で指定した値を，標準出力に出力します。

pwd

カレントディレクトリのパスを表示します。

read

標準入力から読み込んでシェル変数に格納します。

test

条件式を判定します。

times

シェルが消費したCPU時間を表示します。

true

終了コード0を返します。

ulimit【UNIX限定】

システムリソースの上限を設定し，情報を表示します。

umask【UNIX限定】

ファイルモード作成マスクを設定し，表示します。

unalias

エイリアス定義を無効にします。

wait

プロセスの完了を待ちます。

whence

指定された文字列をコマンドとした場合の解釈を表示します。

9.2.2　シェル拡張コマンドの一覧

シェル拡張コマンドの一覧を次の表に示します。すべて正規組み込みコマンドです。

表9‒4　シェル拡張コマンドの一覧

コマンド名

機能概要

adshecho

ユーザー応答機能で，指定した事象通知メッセージをJP1イベントとして発行します。

adshread

ユーザー応答機能で，指定した応答要求メッセージを応答待ちイベントとして発行します。

adshscripttool【Windows限定】

ジョブ定義スクリプトを作成しやすくするため，情報の取得や出力などを実行します。

9.2.3　スクリプト拡張コマンドの一覧

スクリプト拡張コマンドの一覧およびジョブ内での指定個数の上限値を次の表に示します。

表9‒5　スクリプト拡張コマンドの一覧

コマンド名

機能概要

指定個数の上限値※

#-adsh_file

通常ファイルの割り当ておよび後処理をします。

4,095

#-adsh_file_temp

一時ファイルの割り当ておよび後処理をします。

4,095

#-adsh_job

ジョブ名を宣言します。

1

#-adsh_job_stop

ジョブの打ち切り条件を定義します。

1,023

#-adsh_path_var

パス名を扱うシェル変数を定義します。

1

#-adsh_rc_ignore

常に正常終了するコマンドを定義します。

1,023

#-adsh_script

実行中のジョブ定義スクリプトから外部のジョブ定義スクリプトファイルを呼び出します。

4,095

#-adsh_spoolfile

プログラム出力データファイルの割り当てをします。

ジョブ内：4,095

1つのジョブステップ内：255

ジョブステップ外：255

#-adsh_step

ジョブステップを定義します。#-adsh_step_start，#-adsh_step_endおよび#-adsh_step_errorコマンドがあります。

4,095

注※

ジョブ内の指定個数の上限は，adshexecコマンドの引数に指定したジョブ定義スクリプトファイルに定義されたスクリプトと，そのスクリプトから呼び出される#-adsh_scriptコマンドによる外部スクリプトで指定された個数の合計です。外部スクリプトには，ネストで呼び出しているスクリプトも含みます。

9.2.4　スクリプト制御文の一覧

スクリプト制御文の一覧を次の表に示します。

表9‒6　スクリプト制御文の一覧

制御文

機能概要

case

文字列の内容に応じて，幾つかある処理のうち，1つを実行します。

for

値を順次変化させながら，同じ処理を繰り返し実行します。

if

条件に合わせて分岐することで，各条件に沿った処理を実行します。

until

条件が成立するまで，同じ処理を繰り返し実行します。

while

条件が成立している間，同じ処理を繰り返し実行します。

9.2.5　スクリプト予約語コマンドの一覧

スクリプト予約語コマンドの一覧を次の表に示します。

表9‒7　スクリプト予約語コマンドの一覧

コマンド名

機能概要

time

コマンドの実行時間を表示します。

9.3　シェル標準コマンド

シェル標準コマンドは，次の2つの組み込みコマンドに分類されます。組み込みコマンドはシェル本体に組み込まれたコマンドであり，シェル自身によって実行できます。

特殊組み込みコマンド

コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

正規組み込みコマンド

コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

.コマンド（シェルスクリプトを実行する）

形式

. filename［args］

機能

カレントシェル上でシェルスクリプトを実行します。filenameに指定されたシェルスクリプトをシェル環境で実行します。filenameで指定されたシェルスクリプトのカレントディレクトリは，.（ドット）コマンドを使用したカレントシェルのカレントディレクトリと同じになります。

カレントシェル環境で実行するため，filenameのシェルスクリプトが終了したあとも，filenameのシェルスクリプト内で設定された変数および定義された関数を使用できます。また，filenameのシェルスクリプト開始前に設定された変数および定義された関数を，filenameのシェルスクリプト内で使用できます。ただし，filenameに指定したシェルスクリプト内でスクリプト拡張コマンドは使用できません。スクリプト拡張コマンドが記述されていた場合は，コメントとして扱います。スクリプト拡張コマンドについては，「9.5　スクリプト拡張コマンド」を参照してください。

引数

filename

カレントシェル上で実行するシェルスクリプトのファイル名を指定します。

args

filenameのシェルスクリプト内で使用する位置パラメーターを指定します。argsの指定の有無またはfilename内での位置パラメーターの変更の有無によって，位置パラメーターは次のように値が設定されます。

argsの指定

filename内の位置パラメーターの変更あり

filename内の位置パラメーターの変更なし

あり

filename内の位置パラメーターの値は引数argsに指定した値になります。

filename終了後の位置パラメーターの値は.（ドット）コマンド実行直前の値になります。

左の説明と同じです。

なし

filename内の位置パラメーターの値は.（ドット）コマンド実行直前の値になります。

filename終了後の位置パラメーターの値はfilename内で変更した値になります。

filename内の位置パラメーターの値は.（ドット）コマンド実行直前の値になります。

filename終了後の位置パラメーターの値は.（ドット）コマンド実行直前の値になります。

終了コード

終了コード

意味

0〜255

正常終了

実行したスクリプトの終了コードが設定されます。

0

正常終了

引数filenameを指定しないで実行しました。

1

エラー終了

引数filenameに通常ファイル以外を指定しました。

引数filenameに指定されたファイルを読み込むことができませんでした。

注意事項

このコマンドで指定したシェルスクリプトは，スプールディレクトリのスクリプトイメージファイルには出力されません。実行履歴としてスクリプトイメージファイルに出力したい場合は，#-adsh_scriptコマンドを使用してください。

このコマンドが正常終了した場合，コマンドの実行結果はジョブ実行ログに出力されません。また，ジョブやジョブステップの正常終了またはエラー終了の判定にも使用されません。呼び出した外部スクリプトの実行結果を参照してください。

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

カレントシェル上でシェルスクリプトを実行します。

. ./test.sh

:コマンド（引数を展開する）

形式

: ［arguments］

機能

引数を展開し，終了コード0を返すコマンドです。

例えばif文では，else節やelif節は省略できてもthen節は省略できません。このときthen節には，条件に合致した場合は何もしないことを示す:コマンドを次のように指定します。

if [ 条件式 ]; then
  :                  # 条件式の結果が真の場合，何もしない。
else
  cmd1               # 条件式の結果が偽の場合，cmd1を実行する。
fi

引数

arguments

指定したargumentsは次のように展開されます。

ジョブ定義スクリプトの指定例

set -x
NUMBER=1
: $NUMBER

標準エラー出力への出力結果

+ NUMBER=1
+ : 1                  # 変数NUMBERの展開結果が出力される

そのため，引数argumentsに変数置換を指定することで，変数に値が格納されているか確認し，格納されていない場合は値を代入する処理ができます。

ジョブ定義スクリプトの指定例

STRING01=ABC
: ${STRING01:=DEF}          # 変数STRING01はABCが格納されているため，そのまま
: ${STRING02:=GHI}          # 変数STRING02は未定義のため，GHIが代入される
echo $STRING01 $STRING02    # 標準出力に"ABC GHI"が出力される

ただし，引数argumentsに${variable:?word}または${variable?word}の書式で変数置換が指定されていて，variableに値が格納されていない場合は，終了コード1でエラー終了します。

なお，このコマンドには指定可能なオプションが存在しません。オプションが指定された場合でも無視して処理を実行します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

引数に${variable:?word}の書式による変数置換が指定されていてvariableが定義されていない，またはvariableに値が格納されていません。

引数に${variable?word}の書式による変数置換が指定されていてvariableが定義されていません。

注意事項

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

引数だけを展開します。

: $test

aliasコマンド（エイリアスを定義する）

形式

alias ［-p|-x|+p|+x］［name［=value］...］

機能

エイリアスを定義または定義されているエイリアスを標準出力に出力します。引数を1つも指定しなかった場合は，現在定義されているエイリアスの名称と値を出力します。

引数

-p

定義済みのエイリアスを，「alias エイリアス名=値」の書式で出力します。

-x|+x

エクスポートされたエイリアスを定義または出力します。

+p

定義済みのエイリアスを，「alias エイリアス名」の書式で出力します。

name

定義または出力するエイリアス名を指定します。エイリアスを出力する場合は，定義されているエイリアス名をnameに指定します。

value

nameに指定されたエイリアス名に設定する内容を指定します。エイリアスを定義する場合は，「エイリアス名=値」の書式で指定します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

定義されていないエイリアスを出力しようとしました。

注意事項

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

使用例

定義されているエイリアス（functions）を出力します。

ジョブ定義スクリプトの内容

alias functions='typeset -f'
alias functions

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
functions='typeset -f'

breakコマンド（繰り返し処理を抜ける）

形式

break ［n］

機能

for文やwhile文などの繰り返し処理を，指定した数だけ抜けます。1つも繰り返し処理に含まれていない状態で実行した場合，メッセージを出力し，正常終了します。

引数

n

繰り返し処理を抜ける数を1以上の整数で指定します。

nに指定した数の繰り返し処理を抜けます。nを指定しなかった場合，1段外側の繰り返し処理を抜けます。

nに繰り返し処理の数より大きな値を指定し実行した場合，最上位の繰り返し処理まで抜けた上でメッセージを出力し，正常終了します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

nに0を指定しています。

nに数字以外を指定しています。

nに負の値，またはオプション文字列（-英数字）を指定しています。

注意事項

nに0以下，または2,147,483,647より大きな値を指定すると桁あふれが発生し，あふれた桁を無視した値で動作します。1〜2,147,483,647の範囲内の値を指定してください。

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

繰り返し処理を2段抜けます。

break 2

builtinコマンド（組み込みコマンドを実行する）

形式

builtin ［command ［args ...］］

機能

引数を指定して組み込みコマンドを実行します。

引数

command

実行する組み込みコマンド名を指定します。引数commandを指定しなかった場合，正常終了します。

args

組み込みコマンドの引数を指定します。

終了コード

終了コード

意味

0

正常終了

組み込みコマンドが正常終了しました。

1

エラー終了

引数commandに組み込みコマンド以外を指定した，またはコマンドがエラーで終了しました。

注意事項

このコマンドには指定可能なオプションが存在しません。そのため，引数にオプションを指定した場合，そのオプションを引数commandとして解釈し，ジョブはエラー終了します。

このコマンドの実行結果はジョブ実行ログに出力されません。また，ジョブやジョブステップの正常終了またはエラー終了の判定にも使用されません。呼び出したコマンドの実行結果を参照してください。

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

使用例

builtinコマンドで組み込みコマンドpwdを実行します。

ジョブ定義スクリプトの内容

cd /tmp
builtin pwd

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
/tmp

cdコマンド（カレントディレクトリを移動する）

形式1

cd ［ディレクトリパス］

形式2

cd old new

機能

カレントディレクトリを移動します。移動先を指定する方法として2つの形式が使用できます。

1つ目の形式は，移動先のディレクトリパスを指定する方法です。CDPATH変数が定義されている場合は，定義された位置から移動するディレクトリを特定します。CDPATH変数が定義されていない場合は，カレントのディレクトリから移動するディレクトリを特定します。

2つ目の形式は，カレントディレクトリパス名に含まれる文字列の中で，oldと一致する文字列をnewに置き換えたディレクトリパスに移動します。

引数

ディレクトリパス

移動するディレクトリパスを指定します。

ディレクトリパスを指定しなかった場合は，ユーザーのホームディレクトリ（HOME変数）に移動します。ディレクトリパスにハイフン（-）を指定した場合は，直前の作業ディレクトリ（OLDPWD変数）に移動します。

old

カレントディレクトリパス名に含まれる文字列の中で，置換対象となる文字列を指定します。

new

カレントディレクトリパス名に含まれる文字列oldに対して置換する文字列を指定します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

Windowsの場合，cdコマンドを実行するとディレクトリ区切り文字は「/」から「¥」に変換されます。

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

HOME変数が定義されていない場合，引数を指定しないでcdコマンドを実行するとエラーになります。

ディレクトリパス名にUNC形式の名称は指定できません。

形式2でカレントディレクトリパス名に複数含まれる文字列を置換対象として指定した場合，最初の文字列だけが置換の対象になります。例を次に示します。

（例）カレントディレクトリパス名が/home/user/test/testの場合

cd test tmp

この場合，cdコマンドは/home/user/tmp/tmpではなく，/home/user/tmp/testに移動しようとします。

使用例

/var/logから/var/libに移動します。

ジョブ定義スクリプトの内容

pwd
cd log lib
pwd

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
/var/log
/var/lib
/var/lib

commandコマンド（コマンドを実行する）

形式

【UNIX】

command ［-p］［command ［args ...］］
command ［-v|-V］［-p］［command ［command ...］］

【Windows】

command ［-w］［command ［args ...］］
command ［-v|-V］［command ［command ...］］

機能

コマンドや組み込みコマンドを実行します。

argsを引数としてcommandに指定されたコマンドを実行します。

-vオプションを指定した場合，whenceコマンドと同じコマンドのパス名を標準出力に出力します。-Vオプションを指定した場合，whence -vコマンドと同じコマンドの解釈を標準出力に出力します。-vオプションと-Vオプションを同時に指定した場合は，-Vオプションが有効になります。

出力形式については，「whenceコマンド（文字列をコマンドとした場合の解釈を表示する）」を参照してください。

引数

-p【UNIX限定】

commandに指定されたコマンドを標準パスで検索します。

-w【Windows限定】

Windowsで外部コマンドを実行する場合に次の処理をスキップします。

引数内の"（ダブルクォーテーション）の前の「¥」を「¥¥」に変換する処理

引数内の"（ダブルクォーテーション）の前の「¥」を付与する処理

引数を"（ダブルクォーテーション）で囲む処理

ただし，commandに指定した文字列については，このオプションを指定した場合でも上記の処理を実施します。

-v

commandに指定された文字列をコマンドとして扱った場合のコマンドパスを出力します。

-V

commandに指定された文字列がコマンド，予約語，エイリアス，シェル標準コマンド，シェル拡張コマンドまたは関数かどうかを出力します。

command

実行するコマンド名またはコマンドとして扱う文字列を指定します。引数commandを指定しなかった場合，何も実行しないで正常終了します。

args

commandに指定したコマンドの引数を指定します。

終了コード

-v，または-Vを指定しなかった場合

終了コード

意味

0

正常終了

127

エラー終了

コマンドを特定できません。

上記以外

エラー終了

コマンドの形式が不正か，またはコマンドがエラーで終了しました。

-v，または-Vを指定した場合

終了コード

意味

0

正常終了

1

エラー終了。またはcommandに指定したコマンドのどれかが見つかりませんでした。

注意事項

このコマンドが正常終了した場合，コマンドの実行結果はジョブ実行ログファイルに出力されません。また，ジョブやジョブステップの正常終了またはエラー終了の判定にも使用されません。標準出力および呼び出したコマンドの実行結果を参照してください。

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

使用例

commandコマンドでpwdコマンドを実行します。

ジョブ定義スクリプトの内容

command -p pwd

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
/tmp

continueコマンド（繰り返し処理を中断して繰り返し処理の先頭に戻る）

形式

continue ［n］

機能

for文やwhile文などの繰り返し処理を中断して，繰り返し処理の先頭に戻ります。nには繰り返し処理を中断する数を指定します。1つも繰り返し処理に含まれていない状態で実行した場合，メッセージを出力し，正常終了します。

引数

n

繰り返し処理を中断する数を1以上の整数で指定します。

nに指定した数の繰り返し処理を中断して，繰り返し処理の先頭に戻ります。nを指定しなかった場合，1段分繰り返し処理を中断し，繰り返し処理の先頭に戻ります。

nに繰り返し処理の数より大きな値を指定した場合，最上位の繰り返し処理の先頭に戻った上でメッセージを出力し，正常終了します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

nに0を指定しました。

nに数字以外の値を指定しました。

nに負の数値またはオプション文字列（-英数字）を指定しました。

注意事項

nに0以下，または2,147,483,647より大きな値を指定すると桁あふれが発生し，あふれた桁を無視した値で動作します。1〜2,147,483,647の範囲内の値を指定してください。

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

2段分の繰り返し処理を中断します。

continue 2

echoコマンド（引数で指定した内容を標準出力に出力する）

形式

echo ［-n］［-e|-E］［args ...］

機能

引数で指定した内容を標準出力に出力します。

出力する場合は，¥で始まるエスケープ文字を置き換えます。エスケープ文字を置き換えたときの意味を次の表に示します。

エスケープ文字

意味

¥a

アラート文字（ベル）

¥b

バックスペース文字

¥c

行末の改行を抑止する（¥cの後ろに指定した文字は出力されない）

¥f

フォームフィード文字（改ページ）

¥n

改行文字

¥r

復帰文字

¥t

タブ文字

¥v

垂直タブ文字

¥0nnn※1

1〜3桁の8進数で表されたASCIIコードの文字（0〜7）

¥xnn※2

1〜2桁の16進数で表されたASCIIコードの文字（0〜9，a〜f，A〜F）

¥¥

1つのバックスラッシュ文字

注※1

指定したASCIIコード文字が1桁または2桁の場合，前に0を付けて3桁で指定しても，同じ意味として解釈されます。例えば，次の3つの指定は同じ意味として解釈され，アラート文字（ベル）が3回出力されます。

echo -e "¥07"

echo -e "¥007"

echo -e "¥0007"

注※2

環境設定パラメーターESCAPE_SEQ_ECHO_HEXにYESを指定した場合だけ有効になります。ESCAPE_SEQ_ECHO_HEXパラメーターについては，「7.　環境ファイルで設定するパラメーター」の「ESCAPE_SEQ_ECHO_HEXパラメーター（16進数表記のASCIIコード文字をエスケープ文字として解釈するかを定義する）」を参照してください。

指定したASCIIコード文字が1桁の場合，前に0を付けて2桁で指定しても，同じ意味として解釈されます。例えば，次の2つの指定は同じ意味として解釈され，改行文字が2回出力されます。

echo -e "¥xA"

echo -e "¥x0A"

エスケープ文字を置き換えたい場合は，-eオプションの引数を次の例の2.のように"（ダブルクォーテーション）または'（シングルクォーテーション）で囲んでください。クォーテーションの有無と，-eオプションや-Eオプションの指定によるエスケープ文字の解釈を次の例に示します。

次の例では，標準出力には「ta」と出力されます。

echo -e ¥ta

次の例では，標準出力には「<タブ文字>a」と出力されます。

echo -e "¥ta"

次の例では，標準出力には「ta」と出力されます。

echo -E ¥ta

次の例では，標準出力には「¥ta」と出力されます。

echo -E "¥ta"

コマンドに指定したオプションと引数の解釈

echoコマンドは引数に指定された文字がすべて有効なオプション文字の場合，オプションと解釈します。次のように指定した場合，「eEn」はすべて有効なオプション文字のため，オプションと解釈します。

echo -eEn

しかし，1文字でも無効なオプション文字が指定されていた場合は，引数argsとして解釈します。次のように指定した場合，「a」は無効なオプション文字のため，引数argsと解釈し，「-eEna」を標準出力に出力します。

echo -eEna

また，次のように引数をクォーテーションで囲んだ場合，囲まれた文字列は1つの引数と解釈します。次のように指定した場合，スペースは無効なオプション文字のため，引数argsと解釈し，「-e a」を標準出力に出力します。

echo "-e a"

エスケープ文字の解釈（-eオプションと-Eオプション）

-eオプションと-Eオプションの指定によって，エスケープ文字の解釈は次のようになります。

-eオプションを指定すると，エスケープ文字が解釈されます。

-Eオプションを指定すると，エスケープ文字は解釈されません。

-e，-Eオプションの両方を指定すると，最後に指定したオプションに従って動作します。

-e，-Eオプションのどちらも指定しなかった場合は，環境設定パラメーターESCAPE_SEQ_ECHO_DEFAULTの指定内容に従って動作します。ESCAPE_SEQ_ECHO_DEFAULTパラメーターについては，「7.　環境ファイルで設定するパラメーター」の「ESCAPE_SEQ_ECHO_DEFAULTパラメーター（エスケープ文字関連のオプション省略時のechoコマンドの動作を定義する）」を参照してください。

引数

-n

出力の最後で改行しないで，標準出力に出力します。

-e

エスケープ文字を解釈します。解釈するエスケープ文字は環境設定パラメーターESCAPE_SEQ_ECHO_HEXの指定に従います。エスケープ文字を解釈したい場合は，"（ダブルクォーテーション）または'（シングルクォーテーション）で囲んでください。

-E

エスケープ文字を解釈しません。

args

引数（出力する内容）を指定します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

ASCIIコードの16進数表記でエスケープ文字を指定すると，エスケープ文字を直接指定した場合と同じ結果となります。

例えば次のように指定すると，どちらも「a<タブ文字>b」と出力されます。

echo -e "a¥tb"
echo -e "a¥x09b"

また，次のように指定すると，out.txtにはどちらも「a<改行文字>b」が出力されますが，改行文字はCR+LFになります。【Windows限定】

echo -e "a¥nb" > out.txt
echo -e "a¥x0ab" > out.txt

ASCIIコードの文字列でエスケープ文字を表す場合，ASCIIコードの範囲外の値を指定すると，出力される内容は端末に指定された文字コードに従います。そのため，印字不可能文字の場合，正しく出力されないことがあります。

引数にパス名を指定する場合は，¥がエスケープ文字として置換されないよう，-Eオプションの指定やESCAPE_SEQ_ECHO_DEFAULTパラメーターにNOの指定をした環境で，echoコマンドを実行してください。

例えば次のどのコマンドでも，パス名（d:¥a¥b¥c）は正しく出力されません。

FILE="d:¥¥a¥¥b¥¥c"
echo $FILE
echo "$FILE"
echo "d:¥¥a¥¥b¥¥c"
echo 'd:¥a¥b¥c'

次のコマンドでは，どれもパス名（d:¥a¥b¥c）が正しく出力されます。

FILE="d:¥¥a¥¥b¥¥c"
echo -E $FILE
echo -E "$FILE"
echo -E "d:¥¥a¥¥b¥¥c"
echo -E 'd:¥a¥b¥c'

FILE="d:¥¥¥¥a¥¥¥¥b¥¥¥¥c"
echo $FILE
echo 'd:¥¥a¥¥b¥¥c'
echo d:¥¥¥¥a¥¥¥¥b¥¥¥¥c

使用例

LANG変数を出力します。

ジョブ定義スクリプトの内容

echo $LANG

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
ja_JP.eucJP

evalコマンド（引数を1つにまとめてコマンドとして実行する）

形式

eval ［command [args ...］］

機能

引数を1つにまとめて，コマンドとして実行します。引数として与えられた文字列をそのままコマンドとして実行します。

引数

command

実行するコマンドのコマンド名を指定します。引数commandを指定しなかった場合，何も実行しないで正常終了します。

args

1つにまとめて実行するコマンドの引数を指定します。

終了コード

終了コード

意味

0

正常終了

127

エラー終了

コマンドを特定できません。

上記以外

エラー終了

コマンドの形式が不正か，またはコマンドがエラーで終了しました。

注意事項

このコマンドの実行結果はジョブ実行ログに出力されません。また，ジョブやジョブステップの正常終了またはエラー終了の判定にも使用されません。呼び出したコマンドの実行結果を参照してください。

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

/home/adsh/scriptディレクトリに移動します。

eval cd /home/adsh/script

execコマンド（コマンドを実行して終了する）

形式

exec ［command ［args］...］

機能

指定されたコマンドを実行し，終了します。

引数に外部コマンドを指定した場合，そのコマンドをadshexecコマンドの子プロセスとして実行します。外部コマンドが完了するのを待ってから，一時ファイルの削除など，ジョブの後処理を行います。

入出力リダイレクト記号とリダイレクト先だけを指定すると，入出力リダイレクト記号に従って，入出力先を切り替えます。リダイレクトについては，「5.1.6(8)　入出力リダイレクト」を参照してください。

引数

command

実行するコマンドのコマンド名を指定します。commandに引数を指定しなかった場合，execコマンドは何もしないで，ジョブ定義スクリプトの実行を継続します。

args

実行するコマンドの引数を指定します。

終了コード

終了コード

意味

0

正常終了

127

エラー終了

コマンドを特定できません。

上記以外

エラー終了

コマンドがエラーで終了しました。

注意事項

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

ユーザープログラムUAP01を実行し，ジョブを終了します。

exec UAP01

標準出力先をfile01に切り替えます。

exec > file01

exitコマンド（シェルを終了する）

形式

exit ［n］

機能

シェルを終了します。このコマンドは，終了コードの値とは関係なく，コマンドの構文が正しいかどうかでコマンドの正常終了およびエラー終了を決定します。

引数を指定しない場合は，最後に実行したコマンドの終了コードをこのコマンドの終了コードとして正常終了します。引数に適切な数値を指定して実行した場合は，正常終了します。引数に数字以外の文字など不適切な値を指定して実行した場合は，エラー終了します。エラー終了のとき，コマンドの終了コードは1を返します。

ジョブステップエラーブロック内でこのコマンドを実行したときの動作を次に示します。

引数を指定して正常終了した場合は，引数に指定した値がジョブステップの終了コードになります。

引数を指定しないで正常終了した場合，または引数を指定してエラー終了した場合は，ジョブステップ正常ブロック内で最後に実行したコマンドの終了コードが，ジョブステップの終了コードになります。

引数

n　〜＜符号なし整数＞((0〜255))

シェル終了時の終了コードを指定します。nを指定しなかった場合，最後に実行したコマンドの終了コードを返してシェルを終了します。

nに256以上の値を指定した場合，nの値を256で割った余りを終了コードとして，正常終了します。

nに負の値を指定した場合，指定した値の2の補数を終了コードとして，正常終了します。

終了コード

終了コード

意味

0〜255

正常終了

nまたは最後に実行したコマンドの終了コードを返します。

1

エラー終了

nに数字以外を指定しました。

注意事項

nには負の値および256以上の値も指定できますが，JP1/Advanced Shellでは0〜255の範囲内の値を指定することを推奨します。

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

「&」やコマンド置換など，別プロセスでexitコマンドを実行する場合は，「5.1.7　別プロセスでの実行【UNIX限定】」に示す注意事項もあわせて参照してください。

使用例

終了コード2でシェルを終了します。

exit 2

exportコマンド（シェル変数をエクスポートする）

形式

export ［-p］［name［=value］...］

機能

nameに指定されたシェル変数をエクスポートします。なお，-pオプションとnameを同時に指定した場合，nameのエクスポートが優先されます。

すべてのオプションを指定しないで実行した場合，エクスポートされているすべての変数の変数名を標準出力に出力します。

引数

-p

エクスポートされているすべての変数を「export 変数名=値」の書式で標準出力に出力します。

name

エクスポートする変数の名称を指定します。

Windowsでシェル変数をエクスポートする場合，指定できる変数名は次のように異なります。

VAR_ENV_NAME_LOWERCASEパラメーターにDISABLEを指定した場合

シェル変数名に小文字が含まれているとエクスポートできないため，変数名に含まれる英字はすべて大文字にする必要があります。

英小文字が含まれるシェル変数をエクスポートしようとすると，エラーメッセージを出力し，バッチジョブを終了します。

VAR_ENV_NAME_LOWERCASEパラメーターにENABLEを指定した場合

シェル変数名に小文字が含まれていてもエクスポートできます。

ただし，環境変数は大文字・小文字の区別はなく，最後にエクスポートした同じスペルのシェル変数が最終的な環境変数値となります。また，シェル変数はエクスポートの有無に関係なく，大文字・小文字の相違があれば別々の値を保持します。

nameにはエクスポートする変数名および配列名を複数指定できます。nameに配列名を指定した場合，配列を構成する全要素をエクスポートします。配列の1つの要素を指定した場合も，配列の全要素をエクスポートします。

nameに未作成の変数を指定した場合，変数の作成とエクスポートを同時に行います。ただし，この場合はvalueを指定しないとnameには改行文字が代入され，エクスポートされます。

nameに指定されたシェル変数が読み込み専用属性でかつvalueを指定した場合，エラー終了します。

value

nameに指定された変数に代入する値を指定します。

nameの後ろに=valueを指定した場合，nameへの値の代入とエクスポートを同時に行います。valueを指定しなかった場合，nameに設定されている値でエクスポートされます。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

シェル変数HOMEに"/home/jp1as"を代入してエクスポートします。

export HOME="/home/jp1as"

falseコマンド（終了コード1を返す）

形式

false

機能

終了コード1を返します。

なお，このコマンドには指定可能なオプションが存在しません。オプションが指定された場合でも無視して処理を実行します。

終了コード

終了コード

意味

1

正常終了

常に1を返します。

注意事項

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

このコマンドの実行結果はKNAX6113-Iメッセージに出力されます。

使用例

終了コード1を設定します。

ジョブ定義スクリプトの内容

false
echo $?

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
1

getoptsコマンド（引数を解析する）

形式

getopts optstr name ［args ...］

機能

指定された引数を解析します。

引数

optstr

有効なオプション文字の文字列を指定します。文字の後ろにコロンが続く場合は，そのオプションがオプションの値を持つことを示します。

optstrには，コマンドラインまたはargsに指定された引数の中で，有効なオプション文字とする文字列（-aと-bを有効オプションする場合はab）を指定します。マルチバイト文字は使用できません。

引数がoptstrと一致した場合，nameには一致したオプションの文字を格納します。引数がoptstrと一致しない場合は「?」を格納します。

オプションに値がある場合，オプション文字の後ろに「:」を指定します。「:」を指定すると，一致したオプションの値をOPTARGシェル変数に格納します。getoptsコマンドは，OPTINDシェル変数に設定されている引数インデックス（初期値は1）以降の引数を解析します。例えば，argsに-a 10と指定した場合は-aの位置がインデックス1となります。

name

getoptsコマンドによって一致したオプション文字を格納する変数を指定します。

args

解析対象となる引数を指定します。このオプションを指定しない場合，コマンドラインの引数を解析します。

終了コード

終了コード

意味

0

正常終了

1

正常終了（オプションの終了を検出）

エラー終了

注意事項

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

「&」やコマンド置換など，別プロセスでgetoptsコマンドを実行する場合は，「5.1.7　別プロセスでの実行【UNIX限定】」に示す注意事項もあわせて参照してください。

使用例

-bを有効オプションとして解析します。

ジョブ定義スクリプトの内容

getopts b: name -b 10
echo $name

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
b

killコマンド（シグナルを送信する）

形式

kill ［-s｛signame|signum｝］｛pid|-pid｝...
kill ［-signame|-signum］｛pid|-pid｝...

機能

プロセスにシグナルを送信します。signameまたはsignumに指定したシグナルを，pidに指定したプロセスに送信します。signameまたはsignumを指定しなかった場合は，SIGTERMを送信します。シグナル名称には，シグナル名から先頭の「SIG」を除いた名称を指定してください（例：SIGINTであれば「INT」と指定する）。それぞれのシグナルの仕様については，使用しているOSのマニュアルを参照してください。

引数

-s

送信するシグナルをシグナル番号またはシグナル名称で指定します。

signameまたは-signame

送信するシグナルのシグナル名称をsignameに指定します。

signumまたは-signum

送信するシグナルのシグナル番号をsignumに指定します。

pid

シグナルを送信するプロセスIDを指定します。

-pid

プロセスグループに属するすべてのプロセスへシグナルを送信します。シグナルを送信するプロセスグループのIDをpidに指定します。Windowsの場合，複数のプロセスにシグナルを送るpidに0以下の値を指定できません。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

Windowsの場合，SIGKILL以外のシグナルを指定したときは，エラーになります。

Windowsの場合，SIGKILLを指定するとTerminateProcess()によってプロセスを即時終了します。

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

-signameまたは-signumによる書式でデフォルトのシグナル（SIGTERM）をプロセスグループ（-pid）に送信する場合は，シグナルとして「--」を指定する必要があります。「--」を指定しないと，プロセスグループ（-pid）を-signumと解釈します。例を次に示します。

プロセスグループ14588にデフォルトのシグナル（SIGTERM）を送信します。

kill -- -14588

使用例

UNIXでプロセスID4725にSIGINTを送信します。

kill -INT 4725

WindowsでプロセスID4725を即時終了します。

kill -KILL 4725

letコマンド（数値計算を行って評価する）

形式1

let 算術式［,算術式 ... ］

形式2

((算術式))

機能

算術式による数値計算を行って評価します。

また，letコマンドの代わりに，「((算術式))」と記載することでletコマンドと同様に算術式を計算し，評価できます。

letコマンドは，コンマで区切ると算術式を複数指定できます。複数指定した場合，算術式は左から右へ順に計算します。そのため，コンマで区切って指定した算術式を条件式の判定に使用すると，最後に実行した算術式の結果に従って条件判定をします。また，コンマの前後にスペースが存在すると，算術エラーで終了します。演算を括弧でまとめると，演算の優先順位を変更できます。

算術式の詳細については「5.3　算術演算」，条件判定の詳細については「5.2　条件判定」を参照してください。

終了コード

終了コード

意味

0

正常終了

算術式の値が0以外です。

1

正常終了

算術式の値が0です。

算術式を指定しないで，(( ))を実行しました。

エラー終了

算術式を指定しないで，letコマンドを実行しました。

2

エラー終了

算術エラー（ゼロ除算，算術式不正）です。

注意事項

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

*，&，<，<<，>および>>などの算術演算子はメタキャラクタとして特別な意味を持っています。これらの文字をletコマンドで使用する場合は，メタキャラクタを無効にする必要があります。

例　1を2ビット左シフトした結果を変数RCに設定します。

　ジョブ定義スクリプトの内容

　let "RC=1<<2"
　echo $RC

　実行ジョブのSTDOUTファイルの内容

　********   JOB SCOPE STDOUT    ********
　4

letコマンドには指定できるオプションがありません。そのため，letコマンドの引数に「-英字」を指定すると，オプションではなく変数名として解釈し動作します。

例　引数に「-a」を指定すると「-3」と解釈し，終了コードは0になります。

　ジョブ定義スクリプトの内容

  a=3
  let -a
  echo $?

　実行ジョブのSTDOUTファイルの内容

　********   JOB SCOPE STDOUT    ********
  0

「&」やコマンド置換など，別プロセスでletコマンドを実行する場合は，「5.1.7　別プロセスでの実行【UNIX限定】」に示す注意事項もあわせて参照してください。

使用例

3+4を行ったあとに2を掛けます。

ジョブ定義スクリプトの内容

let "VAR=2*(3+4)"
echo $VAR

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
14

1+2の結果を変数RCに設定します。

ジョブ定義スクリプトの内容

((RC=1+2))
echo $RC

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
3

printコマンド（標準出力に出力する）

形式

print ［-n|-p|-r］［-u［num］］［--］［args］

機能

引数で指定した内容を標準出力に出力します。出力の最後に改行します。

出力する場合は，¥で始まるエスケープ文字を置き換えます。エスケープ文字を置き換えたときの意味を次の表に示します。

エスケープ文字

意味

¥a

アラート文字（ベル）

¥b

バックスペース文字

¥c

行末の改行を抑止する（¥cの後ろに指定した文字は出力されない）

¥f

フォームフィード文字（改ページ）

¥n

改行文字

¥r

復帰文字

¥t

タブ文字

¥v

垂直タブ文字

¥0nnn※

1〜3桁の8進数で表されたASCIIコードの文字（0〜7）

¥¥

1つのバックスラッシュ文字

注※

指定したASCIIコード文字が1桁または2桁の場合，前に0を付けて3桁で指定しても，同じ意味として解釈されます。

-rオプションを指定した場合，エスケープ文字を無視します。

引数

-n

出力の最後で改行しないで，標準出力に出力します。

-p

標準出力ではなく，パイプを使ってバックグラウンドプロセスの標準入力に出力します。

-r

エスケープ文字を無視します。

-u［num］

ファイル識別子numに出力します。numを指定しない場合，1が指定されたものとします。

numでは，出力先のファイル識別子またはpを指定します。numにpを指定した場合，-pオプションを指定したときと同じになります。

--

オプション終端文字です。このオプション以降に指定したオプションは，argsとして解釈します。

args

引数（出力する内容）を指定します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

ASCIIコードの文字列でエスケープ文字を表す時に，ASCIIコードの範囲外の値を指定すると，出力される内容は端末に指定された文字コードに従います。そのため，印字不可能文字の場合，正しく出力されないことがあります。

使用例

改行文字の付いた文字列abcを出力します。

ジョブ定義スクリプトの内容

print "abc¥n"

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
abc

バックグラウンドプロセス（coproc.sh）の標準入力に文字列abcを出力します。

coproc.sh |&
print -p abc

pwdコマンド（カレントディレクトリのパスを出力する）

形式

pwd ［-L|-P］

機能

カレントディレクトリのパスを標準出力に出力します。

引数

オプションをすべて指定しなかった場合は，-Lオプションが指定されたときと同じになります。

-L

カレントディレクトリがシンボリックリンク（実際のファイルパスを格納したファイルを使ってリンクする）を含むパスの場合，シンボリックリンクのパスを出力します。-Lオプションおよび-Pオプションの両方を指定した場合は，最後に指定したオプションに従います。

-P

シンボリックリンクを含まないパスを出力します。-Lオプションおよび-Pオプションの両方を指定した場合は，最後に指定したオプションに従います。

Windowsの場合，-Pオプションを指定しても無視されます。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

Windowsの場合，pwdコマンドを実行するとディレクトリ区切り文字の「/」は「¥」で表示されます。

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

使用例

カレントディレクトリのパスを出力します。

ジョブ定義スクリプトの内容

cd /tmp
pwd

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
/tmp

readコマンド（標準入力から読み込んで変数に格納する）

形式

read ［-p］［-r］［-u［num］］［varname ...］

機能

標準入力から読み込みを行います。標準入力から1行読み取り，読み込んだ内容をvarnameに指定したシェル変数に格納します。

引数

-p

パイプを使用して，バックグラウンドプロセスの出力から読み込みます。

-r

行末に¥があっても，次の行を継続行として読み込みません。

-u［num］

ファイル識別子numから読み込みます。numを指定しない場合，標準入力から読み込みます。

numでは，読み込みを行うファイル識別子またはpを指定します。numにpを指定した場合，-pオプションを指定したときと同じになります。

varname

読み込んだ内容を格納する変数名を指定します。

varnameを複数指定した場合，入力行をIFS変数を区切り文字としてフィールド分割し，分割したフィールドをvarnameに順次格納します（1つ目のvarnameには入力行の最初のフィールドを格納し，2つ目のvarnameには2つ目のフィールドを格納します）。

フィールド数がvarnameに指定した変数よりも多い場合は，最後に指定した変数に残りの全フィールドの値を格納します。

フィールド数が変数よりも少ない場合は，残りの変数に改行文字を格納します。

終了コード

終了コード

意味

0

正常終了

1

正常終了

ファイルの終了（EOF）を検出しました。

エラー終了

上記以外です。

注意事項

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

「&」やコマンド置換など，別プロセスでreadコマンドを実行する場合は，「5.1.7　別プロセスでの実行【UNIX限定】」に示す注意事項もあわせて参照してください。

Windowsの場合，エディタからのデバッグ実行でコンソールまたはコマンドプロンプトから入力などをするときは，ブレークポイントでの停止中や先行コマンドの実行中など，readコマンドが開始する前であってもキー入力が受け付けられます。その結果，入力内容を正しく読み込めなくなるため，readコマンドの開始前にキー入力をしないでください。

readコマンドの開始前にキー入力した内容は，readコマンド開始時に表示されます。その場合は表示内容をすべて削除してから再度入力してください。

使用例

ファイルstring.txtの内容を読み込み，標準出力に出力します。

ジョブ定義スクリプトの内容

while read LINE
do
 echo "$LINE"
done     < string.txt

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
HITACHI
JP1
Advanced Shell

バックグラウンドプロセス（coproc.sh）の標準出力に出力された文字列を変数NAMEに読み込みます。

coproc.sh |&
read -p NAME

readonlyコマンド（変数の属性を読み込み専用に変更する，または読み込み専用の変数を表示する）

形式

readonly ［-p］［name［=value］...］

機能

変数の属性を読み込み専用に変更する，または読み込み専用の変数を表示します。すべてのオプションを指定しないで実行した場合，読み込み専用のすべての変数名を標準出力に出力します。

読み込み専用に変更した変数の属性を再び書き込み可能に変更する場合は，typesetコマンドに+rオプションを指定してください。

引数

-p

読み込み専用属性のすべての変数を「readonly 変数名=値」の書式で標準出力に出力します。ただし，-pオプションとnameを同時に指定した場合，nameの属性を読み込み専用に変更する方が優先されます。

name

属性を読み込み専用に変更する変数の名称を指定します。

nameに指定された変数の属性を読み込み専用に変更します。nameには変数名または配列名を複数指定できます。ただし，nameに関数名を指定しても関数の属性は読み込み専用に変更されないで，関数名と同じ名称の変数が読み込み専用になります。

nameに配列名を指定した場合，配列を構成する全要素を読み込み専用に変更します。配列の1つの要素を指定した場合も配列の全要素を読み込み専用に変更します。

nameに未作成の変数を指定した場合，変数の作成と読み込み専用への属性の変更を同時に実行します。この場合，valueを指定しないとnameには改行文字が代入され，読み込み専用に変更されます。

nameに指定された変数の属性がすでに読み込み専用の場合，何もしないで正常終了します。

value

nameに指定された変数に代入する値を指定します。

nameの後ろに=valueを指定すると，nameへの値の代入と読み込み専用への変更を同時に行います。valueを指定しなかった場合，nameに設定されている値のまま属性を読み込み専用に変更します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

変数testの属性を読み込み専用に変更します。

readonly test

returnコマンド（関数または外部スクリプトから復帰する）

形式

return ［n］

機能

関数または外部スクリプトから復帰し，呼び出し元の処理を継続します。ただし，関数の外かつ外部スクリプトではない位置でこのコマンドを実行すると，シェルを終了します。

このコマンドは，終了コードの値とは関係なく，コマンドの構文が正しいかどうかでコマンドの正常終了およびエラー終了を決定します。

引数を指定しない場合は，最後に実行したコマンドの終了コードをこのコマンドの終了コードとして正常終了します。引数に適切な数値を指定して実行した場合は，正常終了します。引数に数字以外の文字など不適切な値を指定して実行した場合は，エラー終了します。エラー終了のとき，コマンドの終了コードは1を返します。

引数

n　〜＜符号なし整数＞((0〜255))

復帰時の終了コードを指定します。

nを指定しなかった場合，最後に実行したコマンドの終了コードを返して復帰します。

nに256以上の値を指定した場合，nの値を256で割った余りを終了コードとして，正常終了します。

nに負の値を指定した場合，指定した値の2の補数を終了コードとして，正常終了します。

終了コード

終了コード

意味

0〜255

正常終了

nまたは最後に実行したコマンドの終了コードを返します。

1

エラー終了

nに数字以外を指定しました。

注意事項

nには負の値および256以上の値も指定できますが，JP1/Advanced Shellでは0〜255の範囲内の値を指定することを推奨します。

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

「&」やコマンド置換など，別プロセスでreturnコマンドを実行する場合は，「5.1.7　別プロセスでの実行【UNIX限定】」に示す注意事項もあわせて参照してください。

使用例

関数または外部スクリプトから終了コード2で復帰し，呼び出し元の処理を継続します。

return 2

setコマンド（シェルオプションを設定する，配列を作成する，または変数の値を表示する）

形式

set ［-a|+a］［-f|+f］［-u|+u］［-v|+v］［-x|+x］
    ［｛-o|+o｝［opt］］...
    ［｛-A|+A｝name］［--］［val ...］

機能

シェルオプションの設定，配列の作成，または変数の値を表示します。

このコマンドは，シェルオプションの設定と配列の作成を同時に指定できます。同時に指定する場合は，シェルオプション，配列の作成の順に指定してください。配列の作成を先に指定すると，-Aオプション以降の内容をnameおよびvalとして解釈します。

引数

オプションは同時に複数指定できます。同じオプションを複数回指定した場合，最後に指定した内容が設定されます。

オプションを指定しないで実行すると，割り当てられているすべての変数が「変数名=値」の書式で標準出力に出力されます。

-a|+a

-a：allexportオプションを有効にします。

+a：allexportオプションを無効にします。

-f|+f

-f：noglobオプションを有効にします。

+f：noglobオプションを無効にします。

-u|+u

-u：nounsetオプションを有効にします。

+u：nounsetオプションを無効にします。

-v|+v

-v：verboseオプションを有効にします。有効にすると，コマンドや制御文などの区分に関係なく，ファイルから入力した行をすべて出力します。出力する内容を次に示します。

・コメント

・存在しないコマンド

・if文やcase文の条件を満たさないため，実行されないコマンド

・while文やfor文のループに一度も入らないで，実行されなかったコマンド

・run属性によってスキップされたジョブステップ

+v：verboseオプションを無効にします。

-x|+x

-x：xtraceオプションを有効にします。

+x：xtraceオプションを無効にします。

-o|+o

-o：optに指定されたシェルオプションを有効にします。また，現在設定されているシェルオプションの一覧を表示します。

+o：optに指定されたシェルオプションを無効にします。また，現在有効に設定されているシェルオプションをコマンドラインに入力できる書式で表示します。

opt

設定するシェルオプションの名称を指定します。指定できるシェルオプションの名称については，「5.6　シェルオプション」を参照してください。

-A|+A

配列に値を代入する場合に指定します。

-Aオプションを指定し実行すると，nameに指定した配列や変数がすでに存在している場合，nameの内容を消去してから，nameに指定した配列や変数へvalに指定した値を代入して作成します。valに指定した引数の数だけ，配列の要素を作成します。

+Aオプションを指定し実行すると，nameに指定した配列や変数が存在していてもnameの内容は消去しないで，nameに指定した配列や変数へvalに指定した値を代入します。代入する要素数が既存の配列の要素数より少ない場合，代入されない配列要素の値は変更されません。nameに指定した配列や変数がすでに存在しない場合は，-Aオプションを指定した場合と同じ動作となります。

作成できる配列の要素数は2から65,536で，valの個数が1つの場合は配列ではなく変数を作成します。また，複数の配列を同時に作成できません。

name

割り当てる配列の名称を指定します。nameに読み込み専用属性の変数を指定した場合，エラー終了します。

--

オプション終端文字です。このオプション以降に指定したオプションは，valとして解釈します。

val

配列の要素に代入する値を指定します。valだけを指定し実行すると，valに指定された値は位置パラメーターに代入されます。valを複数指定した場合は，左から$1，$2...の順序で代入されます。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

braceexpandオプションとnoglobオプションを同時に指定した場合，noglobオプションが優先的に適用され，ブレース展開は無効になります。

使用例

配列testを作成し，test[0]にa01，test[1]にa02，test[2]にa03を代入します。

set -A test a01 a02 a03

shiftコマンド（実行時パラメーターをシフトする）

形式

shift ［n］

機能

実行時パラメーターをシフトします。実行時パラメーターをシフトした場合，シフトの数だけ先頭から移動します。

引数

n

実行時パラメーターをシフトする数を指定します。nを指定した場合，nに指定した数だけ実行時パラメーターをシフトします。nを指定しなかった場合，引数を1シフトします。nに0を指定すると，実行時パラメーターはシフトされません。nに負の値，または数値以外を指定した場合，エラー終了します。実行時パラメーターの個数より大きい値を指定した場合，エラー終了します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

nに0を指定すると実行時パラメーターはシフトされません。実行時パラメーターをfor文やwhile文を終了するための条件に使用する場合，shiftコマンドの引数に0を指定しないでください。

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

実行時パラメーターを2つシフトします。

shift 2

testコマンド（条件式を判定する）

形式1

test 条件式

形式2

[ 条件式 ]

形式3

[[ 条件式 ]]

機能

条件式を判定します。条件判定の演算子を用いて記述した条件式を判定し，判定結果が真のときは0を返し，判定結果が偽のときは1を返します。条件式を指定しないでtestコマンドおよび[ ]を実行した場合も1を返します。

条件式については，「5.2　条件判定」を参照してください。

終了コード

終了コード

意味

0

正常終了

条件式の判定結果が真です。

1

正常終了

条件式の判定結果が偽です。

2

エラー終了

コマンドがエラー終了しました。

注意事項

「<」および「>」などの演算子はメタキャラクタとして特別な意味を持っています。これらの文字をtestコマンドで使用する場合は，メタキャラクタを無効にする必要があります。

[[ ]]の場合，[[と]]の間にある文字列に対して，ワイルドカードやファイル名置換は適用されません。

例を次に示します。この例では，カレントディレクトリに「test.ash」「hhh」というファイルが存在すると仮定しています。

[[ -f *est.ash ]]　　　　　…(1)
[ -f *est.ash ]　　　　　　…(2)
test -f *est.ash　　　　　 …(3)
[[ -f ?(hhh) ]]　　　　　　…(4)
[ -f ?(hhh) ]　　　　　　　…(5)
test -f ?(hhh)　　　　　　 …(6)

この例の(1)，(4)の場合，[[ ]]で囲まれたワイルドカードは適用されないため，該当するファイルは存在しないと解釈され，終了コードは1となります。

(2)，(3)，(5)，(6)の場合はワイルドカードが適用されるため，条件式の判定結果は真となり，終了コードは0となります。

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

使用例

変数arg1と変数arg2の値が同じかどうか比較します。

test $arg1 -eq $arg2

timesコマンド（シェルが消費したCPU時間を出力する）

形式

times

機能

シェルとシェルから起動したプロセスのCPU時間を標準出力に出力します。次に示す情報を出力します。

シェルが消費したユーザーCPU時間（秒）

シェルが消費したシステムCPU時間（秒）

シェルから起動したプロセスが消費したユーザーCPU時間（秒）の合計

シェルから起動したプロセスが消費したシステムCPU時間（秒）の合計

timesコマンドの出力形式を次の表に示します。

出力形式※

内容

Shell: CPU時間 user CPU時間 system

シェルが消費したCPU時間を，ユーザーCPU時間，システムCPU時間の順に出力します。

Kids: CPU時間 user CPU時間 system

シェルから起動したプロセスが消費したCPU時間を，ユーザーCPU時間，システムCPU時間の順に出力します。

注※

CPU時間は小数点第2位まで出力します。

なお，このコマンドは書式の判定は行わないで，不当なオプションが指定された場合でも無視して処理を実行します。

終了コード

終了コード

意味

0

正常終了

注意事項

Windowsの場合，子プロセスのCPU時間に孫プロセスのCPU時間を含みません。

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

使用例

シェルとシェルから起動したプロセス（psコマンド）のCPU時間を出力します。

ジョブ定義スクリプトの内容

ps > /dev/null
times

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
Shell:     0.00s user     0.01s system
Kids:      0.01s user     0.10s system

trapコマンド（シグナルや強制終了要求を受けたときの動作を設定する）

trapコマンドはUNIX版とWindows版で提供する機能が異なります。UNIX版で提供する機能については，「(1) trapコマンド【UNIX版】」を参照してください。Windows版で提供する機能については，「(2) trapコマンド【Windows版】」を参照してください。

(1) trapコマンド【UNIX版】

形式

trap ［action］［signal ...］

機能

シグナルを受け取ったときの動作を設定します。signalに指定されたシグナルをシェルが受け取ると，actionに指定された動作を実行します。

引数を指定しないで実行した場合，シグナルに設定されている動作を次の形式で標準出力に出力します。

シグナル種別

出力形式

名称が定義されているシグナルの場合

trap -- action "先頭のSIGを除いたシグナル名"

名称が定義されていないシグナルの場合

trap -- action UNKNOWN SIGNAL

1つのシグナル番号に複数の名称が定義されているシグナルに対する動作を次に示します。

【Linux限定】

シグナル名称

別名称

trapコマンドによるactionの設定

SIGSYS

SIGUNUSED

SIGSYS

設定できます

SIGUNUSED

設定できます

注

拡張機能では，SIGUNUSEDではなく，SIGSYSを主なシグナル名称として扱っているため，trapコマンドでもSIGSYSをシグナル名称として扱います。

【AIX限定】

シグナル名称

別名称1

別名称2

trapコマンドによるactionの設定

SIGABRT

SIGLOST

SIGIOT

SIGABRT

設定できます

SIGLOST

設定できます

SIGIOT

設定できます

SIGIO

SIGPOLL

なし

SIGIO

設定できます

SIGPOLL

設定できます

【HP-UX，Solaris限定】

シグナル名称

別名称

trapコマンドによるactionの設定

SIGABRT

SIGIOT

SIGABRT

設定できます

SIGIOT

設定できます

SIGIO

SIGPOLL

SIGIO

設定できます

SIGPOLL

設定できます

また，1つのシグナル番号に複数の名称が定義されているシグナルに対して，trapコマンドでactionを設定した場合，出力するシグナル名はどれか1つのシグナル名になります。

引数

action

指定されたシグナルを受け取ったときの動作を指定します。

actionにハイフンを指定した場合，signalに一致する指定済みのトラップがリセットされ，デフォルトに戻ります。actionを指定しないで，signalにシグナル番号を指定した場合も同様にデフォルトに戻ります。

actionに""を指定した場合，signalに指定されたシグナルを無視（SIG_IGN）します。

ただし，SIGTERMについては，actionに""を指定しても，シグナルを無視（SIG_IGN）しません。

指定した場合，現在設定されているactionを変更しないで，trapコマンドは正常終了します。

signal

trapの対象となるシグナルを指定します。

signalにはシグナル番号またはシグナル名称を指定します。シグナル名称には，シグナル名から先頭の「SIG」を除いた名称を指定してください（例：SIGINTであれば「INT」と指定する）。それぞれのシグナルの仕様については，使用しているOSのマニュアルを参照してください。

なお，SIGTERMを指定した場合の動作は，環境設定パラメーターTRAP_ACTION_SIGTERMの指定に従います。詳細については，「7.　環境ファイルで設定するパラメーター」の「TRAP_ACTION_SIGTERMパラメーター（ジョブコントローラが強制終了要求を受けたときの動作を定義する）」を参照してください。

signalはスペースで区切って複数のシグナルを指定できます。また，signalには0，"EXIT"または"ERR"を指定できます。

signalに0または"EXIT"を指定し，trapコマンドを実行した場合

シェル終了時にactionに指定したコマンドを実行します。

signalに"ERR"を指定し，trapコマンドを実行した場合

trapコマンド以降に実行した次に示すコマンドが0以外の終了コードで完了すると，actionに指定した動作を実行します。

正規組み込みコマンド

typesetコマンド

関数内，および外部スクリプト内で書式不正によってエラーとなったreturnコマンド

AIXの場合，signalにSIGWAITINGは指定できません。SIGWAITINGを指定して実行した場合，エラー終了します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

trapコマンドは0より小さい値を引数signalに指定すると不当なシグナルと判断します。そのため，引数signalを数値で指定する場合は，0〜シグナルの有効範囲内の値を指定してください。

trapコマンドによる動作定義にシェル拡張コマンドadshreadを指定すると，強制終了要求を受けても入力応答待ちとなりジョブが終了しなくなります。TRAP_ACTION_SIGTERMパラメーターのオペランドにTERMを指定した場合，またはAUTOを指定してJP1/AJSからジョブを起動した場合は，trapコマンドによる動作定義にシェル拡張コマンドadshreadを指定しないでください。

trapコマンドによる動作定義にシェル運用コマンドadshjavaを指定して強制終了すると，trapアクション内でJavaのバッチアプリケーションを実行できますが，trapアクション実行中にさらに強制終了すると，adshjavaコマンドは強制終了されません。このため，TRAP_ACTION_SIGTERMパラメーターのオペランドにTERMを指定した場合，またはAUTOを指定してJP1/AJSからジョブを起動した場合はtrapアクション内でadshjavaコマンドは使用しないでください。ユーザー固有の後処理としてJavaのバッチアプリケーションを動かしたい場合，cjexecjobコマンドおよびcjkilljobコマンドを使用してください。

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

引数actionを省略し，引数signalにシグナル番号だけを指定するとtrapコマンドは引数signalに指定されたアクションをリセットしデフォルトに戻ります。しかし，SIGを除いたシグナル名称だけを指定すると，trapコマンドは引数signalに指定されたアクションをリセットしないで終了します。

例：trap 15

→シグナル番号15のアクションをリセットし，デフォルトに戻ります。

例：trap TERM

→アクションをリセットしません。

使用例

INTシグナルを受け取った場合，echoコマンドで'trapped.'を出力します。

trap 'echo trapped.' INT

シグナルに設定されているactionを表示します。

ジョブ定義スクリプトの内容

trap 'echo Hangup.' HUP
trap 'echo trapped.' INT
trap

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
trap -- 'echo Hangup.' HUP
trap -- 'echo trapped.' INT

(2) trapコマンド【Windows版】

形式

trap ［action］［method］

機能

強制終了要求を受けたときの動作を設定します。

TRAP_ACTION_SIGTERMパラメーターにTERMを指定した場合：

強制終了要求をジョブコントローラが受けたときの動作を設定できます。ジョブコントローラはmethodに指定された強制終了要求を受けると，actionに指定された動作を実行します。

methodにTERMでも15でもない強制終了要求を指定したとき，指定したactionが設定されないで，メッセージKNAX6718-Iを出力し，終了コード0を返して終了します。

引数を指定しないで実行した場合，強制終了要求に対して設定されている動作を次の形式で標準出力に出力します。

出力形式

trap -- action "強制終了の方法を示す文字列"

TRAP_ACTION_SIGTERMパラメーターにDISABLEを指定した場合：

メッセージKNAX6710-I を出力して，終了コード0を返して常に正常終了します。強制終了要求に対して処理はしません。

引数

action

強制終了要求を受けたときの動作を指定します。

actionにハイフンを指定した場合，methodに一致する指定済みのactionがリセットされ，methodに対しての動作定義（action）が無効になり，何も設定されていない状態に戻ります。actionを指定しないでmethodに15を指定した場合も同様に，methodに対しての動作定義（action）が無効になり，何も設定されていない状態に戻ります。

actionに""を指定した場合，現在設定されているactionを変更しないで，trapコマンドは正常終了します。

method

trapの対象となる強制終了の方法を指定します。

methodにはTERMまたは15を指定します。

TERMまたは15

TerminateProcessなどによるプロセス即時終了（例：JP1/AJSからの強制終了，taskkillコマンド）。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

「kill -KILL プロセスID」を実行して任意のジョブのadshexec.exeを終了させると，終了させられたジョブの「trap action TERM」で定義されたactionが実行されます。

TRAP_ACTION_SIGTERMパラメーターにTERMを指定した場合，trapコマンドにオプションを指定するとエラーになります。TRAP_ACTION_SIGTERMにTERM以外を指定した場合，trapコマンドにオプションを指定してもエラーになりません。

trapコマンドによる動作定義にシェル拡張コマンドadshreadを指定すると，強制終了要求を受けても入力応答待ちとなり，ジョブが終了しなくなります。TRAP_ACTION_SIGTERMパラメーターのオペランドにTERMを指定した場合，trapコマンドによる動作定義にシェル拡張コマンドadshreadを指定しないでください。

trapコマンドによる動作定義にシェル運用コマンドadshjavaを指定して強制終了すると，Javaのバッチアプリケーションを実行しないで，終了コード1で終了します。TRAP_ACTION_SIGTERMパラメーターのオペランドにTERMを指定した場合，trapコマンドによる動作定義にシェル運用コマンドadshjavaを指定しないでください。ユーザー固有の後処理としてJavaのバッチアプリケーションを動かしたい場合，cjexecjobコマンドおよびcjkilljobコマンドを使用してください。

この特殊組み込みコマンドは，コマンドの構文を誤ってエラー終了すると，コマンドを実行しているシェルが終了します。

引数actionを省略し，引数methodに15を指定すると，trapコマンドはTerminateProcessなどによるプロセス即時終了に指定されたアクションをリセットし，何も設定されていない状態に戻ります。しかし，TERMだけを指定するとtrapコマンドはTerminateProcessなどによるプロセス即時終了に指定されたアクションをリセットしないで終了します。

例：trap 15

→TerminateProcessなどによるプロセス即時終了に指定されたアクションをリセットし，何も設定されていない状態に戻ります。

例：trap TERM

→アクションをリセットしません。

methodに2つ以上の値が指定された場合，その値にTERMまたは15が一回以上含まれるときは，KNAX6718-Iを出力しないで，TERMまたは15に対してactionを設定します。それ以外のmethodに対してはactionを設定しません。

例：「trap date 28 15」を実行した場合，KNAX6718-Iを出力しないで，15に対するactionとしてdateコマンドを設定します。

使用例

強制終了要求を受けた場合，echoコマンドで'trapped.'を出力します。

trap 'echo trapped.' TERM

強制終了要求に対して設定されているactionを表示します。actionを設定するtrapコマンドでmethodに15を指定しても，強制終了の方法にはTERMが出力されます。

ジョブ定義スクリプトの内容

trap 'echo trapped.' 15
trap

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT   ********
trap -- 'echo trapped.' TERM

trueコマンド（終了コード0を返す）

形式

true

機能

終了コード0を返して正常に終了します。

なお，このコマンドには指定可能なオプションが存在しません。オプションが指定された場合でも無視して処理を実行します。

終了コード

終了コード

意味

0

正常終了

常に0を返します。

注意事項

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

このコマンドの実行結果はKNAX6113-Iメッセージに出力されます。

使用例

終了コード0を設定します。

ジョブ定義スクリプトの内容

true
echo $?

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
0

typesetコマンド（変数や関数の属性と値を明示的に宣言する）

形式

typeset ［｛-L|+L｝［n］］［｛-R|+R｝［n］］［｛-Z|+Z｝［n］］
        ［-l|+l|-u|+u］［｛-i|+i｝［n］］［-r|+r|-x|+x］
        ［｛-f|+f｝［-t|+t］［-u］］
        ［-p|+p］
        ［--］［name［=value］...］

機能

変数や関数の属性と値を明示的に宣言します。nameに指定された変数や関数の属性と値を明示的に宣言し，定義します。

このコマンドを関数内で実行すると，関数内で有効なローカル変数として定義します。関数内で有効なローカル変数を定義した場合，関数の完了時に値と属性を回復します。

このコマンドのオプションは文字列書式オプション，属性・型オプション，関数オプション，表示オプションの4種類に分類されます。

引数

オプションをハイフンで指定した場合，指定したオプションは有効に設定されます。オプションをプラスで指定した場合，指定したオプションは無効に設定されます。

［｛-L|+L｝［n］］［｛-R|+R｝［n］］［｛-Z|+Z｝［n］］

-L|+L

文字列書式オプションです。-Lオプションでは，変数の内容に対して左詰めにします。+Lオプションでは，-Lオプションで指定した左詰めにする属性を解除します。

変数に値を代入する際にvalueに指定された内容が領域長よりも短い場合は，valueの最後から領域の終端までスペースを挿入します。valueに指定された内容が領域長よりも長い場合は，valueの先頭から領域長までが代入され，残りは切り捨てになります。

同時に-Zオプションを指定した場合，先行する0の削除もします。同時に-Rオプションを指定した場合，あとに指定した方を設定します。

-Rオプションでnameを定義済みの場合は，右詰めの設定は無効になります。

-R|+R

文字列書式オプションです。-Rオプションでは，変数の内容に対して右詰めにします。+Rオプションでは，-Rオプションで指定した右詰めにする属性を解除します。

変数に値を代入する際にvalueに指定された内容が領域長よりも短い場合は，領域の先頭からvalueの先頭までスペースを挿入します。valueに指定された内容が領域長よりも長い場合は，valueの最後から領域長までが代入され，残りは切り捨てになります。同時に-Lオプションを指定した場合，あとに指定した方を設定します。

-Lオプションでnameを定義済みの場合は，左詰めの設定は無効になります。

-Z|+Z

文字列書式オプションです。-Zオプションでは，変数の内容に対してゼロ詰めにします。+Zオプションでは，-Zオプションで指定したゼロ詰めにする属性を解除します。

-Lオプションが設定されていない場合は右詰めになります。valueに指定された内容の先頭文字が数字の場合は，領域の先頭からvalueの先頭までゼロ詰めになり，数字以外の文字の場合は，領域の先頭からvalueの先頭までスペースを挿入します。

n

nにはvalueの領域長を指定します。nが0，またはnを省略した場合は，valueの長さを領域長にします。nに16385以上を指定した場合は，エラーになります。

［-l|+l|-u|+u］

-l|+l

文字列書式オプションです。-lオプションでは，nameに指定された変数に代入されている英字の大文字を小文字に変換します。変数に代入されている文字列に大文字と小文字が混在している場合，大文字だけを小文字に変換します。同時に-uオプションを指定した場合，あとに指定した方を設定します。

+lオプションでは，-lオプションで指定した変数に代入されている，英字の大文字を小文字に変換する属性を解除します。

-u|+u

文字列書式オプションです。-uオプションでは，nameに指定された変数に代入されている英字の小文字を大文字に変換します。変数に代入されている文字列に大文字と小文字が混在している場合，小文字だけを大文字に変換します。同時に-lオプションを指定した場合，あとに指定した方を設定します。

+uオプションでは，-uオプションで指定した変数に代入されている，英字の小文字を大文字に変換する属性を解除します。

［｛-i|+i｝［n］］［-r|+r|-x|+x］

-i|+i

属性・型オプションです。-iオプションでは，nameに指定された変数の型を整数型として宣言します。valueには代入する値を10進数で指定します。-iで10進数以外の基数を指定した場合，nameに指定された変数の内容の先頭に’基数#’が付加されます。-Zオプションでゼロ詰めをしている場合は，’基数#’の先頭までをゼロ詰めにします。

+iオプションでは，nameに指定された変数の整数型属性を解除します。

n

nには出力時に何進数で表示するかを指定します。nを省略または0を指定し，かつnameが未定義の変数の場合，10進数として扱われます。nを省略または0を指定し，かつnameが定義済みの変数の場合，定義されている基数に従います。nに1や17以上を指定した場合は，エラーになります。

-r|+r

属性・型オプションです。-rオプションでは，nameに指定された変数の属性を読み込み専用にします。属性を読み込み専用にすると，それ以降，変数の値および属性を変更できません。

+rオプションでは，nameに指定された変数の読み込み専用属性を解除します。

-x|+x

属性・型オプションです。-xオプションでは，nameに指定された変数をエクスポートします。+xオプションでは，nameに指定された変数のエクスポートを解除します。

Windowsで変数をエクスポートする場合，指定できる変数名は次のように異なります。

VAR_ENV_NAME_LOWERCASEパラメーターにDISABLEを指定した場合

シェル変数名に小文字が含まれているとエクスポートできないため，変数名に含まれる英字はすべて大文字にする必要があります。

英小文字を含む変数名をnameに指定した場合，エラーメッセージを出力し，バッチジョブを終了します。

VAR_ENV_NAME_LOWERCASEパラメーターにENABLEを指定した場合

シェル変数名に小文字が含まれていてもエクスポートできます。

ただし，環境変数は大文字・小文字の区別はなく，最後にエクスポートした同じスペルのシェル変数が最終的な環境変数値となります。

｛-f|+f｝［-t|+t］［-u］

-f|+f

関数オプションです。-fオプションでは，nameに指定された処理対象を変数ではなく関数として扱います。-fオプションを指定し実行した場合，nameに指定された関数を標準出力に出力します。

+fオプションを指定し実行した場合，関数を出力しません。-fオプションだけを指定し実行した場合，定義されているすべての関数を標準出力に出力します。

-t|+t

関数オプションです。-tオプションでは，nameに指定された関数のトレースモードを有効にします。このオプションは，-fオプションと同時指定された場合に有効になります。

+tオプションでは，nameに指定された関数のトレースモードを無効にします。

-u

関数オプションです。-uオプションでは，nameに指定された関数に対してオートロード機能を有効にします。このオプションは，-fオプションと同時指定された場合に有効になります。

-p|+p

表示オプションです。-pオプションでは，定義されているすべての変数を「typeset 変数名=値」の書式で標準出力に出力します。ただし，-pオプションとnameを同時に指定した場合，nameに指定された変数の属性の宣言が優先されます。

+pオプションでは，定義されているすべての変数を「typeset 変数名」の書式で標準出力に出力します。

オプション指定なし

表示オプションです。すべてのオプションを指定しないで実行した場合，定義されているすべての変数を「typeset 宣言されている属性・型オプションの値 変数名」の書式で標準出力に出力します。ただし，属性・型オプションが宣言されていない場合は変数名を左に詰めて出力します。

nameを指定しないで，オプションだけ指定

表示オプションです。指定したオプションの属性と等しい変数，および関数をすべて出力します。ハイフンで指定した場合，「変数名=値」または関数の内容が標準出力に出力されます。プラスで指定した場合，「変数名」または「関数名」が標準出力に出力されます。

--

オプション終端文字です。このオプション以降に指定したオプションは，val（変数）として解釈します。

name

属性や値を宣言する変数名，配列名，または関数名を複数指定します。

配列名を指定した場合，配列を構成する全要素が対象になります。配列の1つの要素を指定した場合も配列の全要素が対象になります。

nameの後ろに=を指定すると，nameへの値の代入と属性の宣言を同時にできます。

nameに指定された変数の属性が読み込み専用で，値を代入しようとした場合，エラー終了します。

value

nameに代入する値を指定します。valueを指定しなかった場合，nameには改行文字が代入され，属性を変更します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

引数nには，同時に指定する引数ごとに設けられた範囲内の値を指定してください。

マルチバイト文字を含む変数に対して，左詰めまたは右詰めで切り捨てられると，マルチバイト文字を構成する一部のデータが消失することがあります。この場合，文字として不完全なバイト列が代入されることがあります。

引数が指定できるオプションとその引数を1つのハイフンで同時に指定できません。8進数のint型で，かつ右詰め16桁として定義する場合は，「-i8 -R16」と指定します。「-i8R16」のように指定した場合は，エラー終了します。

-fオプションと同時に-xオプションを指定した場合，-xオプションの指定は無視されます。typesetコマンドは-fオプションが指定された場合と同じ動作をします。

使用例

変数numの属性を左に詰めて，10桁の整数型に変更します。

typeset -L10 -i num

関数funcのトレースモードを有効にします。

typeset -ft func

ulimitコマンド（システムリソースの上限を設定する）【UNIX限定】

形式

ulimit ［-H］［-S］［-a］［-c］［-d］［-f］［-l］［-m］
       ［-n］［-p］［-s］［-t］［limit］

機能

システムリソースの上限の設定および情報を標準出力に出力します。指定されたオプションに従って，システムリソースの上限値を設定し，出力します。

出力するリソース上限の出力形式を次の表に示します。

出力形式

内容

time(cpu-seconds) 上限値

CPU時間の上限

file(blocks) 上限値

ファイルサイズの上限

coredump(blocks) 上限値

コアダンプのファイルサイズの上限

data(kbytes) 上限値

データ領域サイズの上限

stack(kbytes) 上限値

スタック領域サイズの上限

lockedmem(kbytes) 上限値

ロックされる物理メモリのメモリサイズの上限

memory(kbytes) 上限値

使用される物理メモリのメモリサイズの上限

nofiles(descriptors) 上限値

ファイルディスクリプタ数の上限

processes 上限値

プロセス数の上限

引数

リソースを示すオプションを複数同時に指定した場合は，あとに指定したオプションが有効になります。

-H

ハードリミットを設定または出力します。-Hと-Sオプションを同時に指定した場合は，あとに指定したオプションが有効になります。

-S

ソフトリミットを設定または出力します。-Hと-Sオプションを同時に指定した場合は，あとに指定したオプションが有効になります。

-a

すべてのリソースの上限値を出力します。

-c

コアダンプのファイルサイズ上限をblock単位で設定または出力します。

-d

データ領域サイズの上限をKB単位で設定または出力します。

-f

シェルまたはシェルから起動したプロセスが書き込むファイルの，ファイルサイズの上限をblock単位で設定または出力します。

-l【Linux限定】

ロックされる物理メモリのメモリサイズの上限をKB単位で設定または出力します。

-m【AIX，HP-UX，Linux限定】

使用される物理メモリのメモリサイズの上限をKB単位で設定または出力します。

-n

オープンされたファイルディスクリプタ数の上限を設定または出力します。

-p【Linux限定】

ユーザー1人が起動できるプロセス数の上限を設定または出力します。

-s

スタック領域サイズの上限をKB単位で設定または出力します。

-t

CPU時間の上限を秒単位で設定または出力します。

limit

変更するリソースの上限値を指定します。unlimitedを指定すると，上限なしで設定します。上限値には任意の数値を指定できますが，実際に有効となる上限値の仕様については，使用しているOSのマニュアルを参照してください。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

このコマンドは次のどちらかに該当する場合，サポートしていないことを示すメッセージKNAX6710-Iを出力し，終了コード0を返して常に正常終了します。

OSがサポートしていないオプションを指定した。

Windows環境で実行した。

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

adshexecコマンドはジョブ定義スクリプトの実行時に実行に必要なファイルを生成するため，ulimitコマンドで指定するファイルサイズの上限値が小さいと，SIGXFSZシグナルを受信する場合があります。

ハードリミットを増加させる場合は，管理者権限が必要です。

設定できるリソースの上限は実行環境やOSごとに異なります。

変更するリソースによっては，設定できない値を指定すると，実行環境やOSによって異なる値が設定される場合があります。

使用例

すべてのリソースの上限値を出力します。

ジョブ定義スクリプトの内容

ulimit -a

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
time(cpu-seconds)    unlimited
file(blocks)         unlimited
coredump(blocks)     0
data(kbytes)         unlimited
stack(kbytes)        10240
lockedmem(kbytes)    32
memory(kbytes)       unlimited
nofiles(descriptors) 1024
processes            4096

umaskコマンド（新規ファイル作成時のアクセス権を設定する）【UNIX限定】

形式

umask ［-S］［mask］

機能

新規ファイル作成時のアクセス権を設定します。maskには設定するファイルモード作成マスクを指定します。maskを指定しないで実行した場合，現在のumask値を標準出力に出力します。

引数

-S

シンボリック形式で値を設定または出力します。

-Sオプションを指定した場合，シンボリック形式でファイルモードの設定および出力をします。-Sオプションを指定しなかった場合，8進数で表したアクセス権の設定および出力をします。指定したアクセス権はファイル作成時に許可しないことを示します。

mask

ファイル作成時のファイルモードのデフォルト値に対するumask値を指定します。maskには数値またはシンボリック形式を指定できます。シンボリック形式で指定する場合，[who][op][perm][, ...]の書式に従って指定します。コンマで区切ると複数指定できます。スペースは使用できません。

who

maskを設定する対象です。次の文字を0個以上指定します。

u：ユーザー（所有者）用のパーミッションを修正します。

g：グループ用のパーミッションを修正します。

o：そのほかのパーミッションを修正します。

a：全対象のパーミッションを修正します(a=ugo)。

指定なし：全対象のパーミッションを修正します(a=ugo)。

op

maskの設定方法です。次の記号を1つ指定します。

+：permをwhoの既存のマスクに追加します。

-：permをwhoの既存のマスクから削除します。

=：whoの既存のマスクをpermで置換します。

perm

ファイル作成時に許可する権限を指定します。次の文字を0個以上指定します。

r：read権限です。

w：write権限です。

x：実行権限です。

u：ユーザー用と同じ権限です。

g：グループ用と同じ権限です。

o：そのほかと同じ権限です。

X：ugoのどれかに実行権限がある場合は，その実行権限になります。ugoのどれにも実行権限がない場合は，権限指定がありません。権限指定がない場合，opが＋または-のときは変更しません。opが=のときは，whoのマスクが解除されます。

s：権限指定がありません。opが＋または-の場合は，変更しません。opが=の場合は，whoのマスクが解除されます。

指定なし：権限指定がありません。opが＋または-の場合は，変更しません。opが=の場合は，whoのマスクが解除されます。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

Windows環境でこのコマンドを実行すると，サポートしていないことを示すメッセージKNAX6710-Iを出力し，終了コード0を返して常に正常終了します。ファイルモード作成マスクは設定しません。

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

#-adsh_file_tempコマンドを使用して作成した一時ファイルのパーミッションは，ファイルの所有者（作成者）の部分だけumask値の指定に従い，グループおよびその他のユーザーのアクセス権限部分は常に0になります。

使用例

ファイル作成時にユーザー以外の全アクセス権限を設定しません。

umask 077

ファイル作成時にユーザー以外のwrite権限を設定しません。

umask u=rwx,go=rx

unaliasコマンド（エイリアス定義を無効にする）

形式

unalias ［-a］name ［name...］

機能

エイリアス定義を無効します。nameには定義を無効にするエイリアスの名称を指定します。スペースで区切ると複数のエイリアスを指定できます。定義されていないエイリアス名称をnameに指定した場合，またはオプションや引数を指定しないで実行した場合は，終了コード1でエラー終了します。

引数

-a

すべてのエイリアス定義を無効にします。

name

定義を無効にするエイリアスを指定します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了。または，nameに指定した名称のどれかがエイリアスとして定義されていません。

注意事項

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

使用例

定義されているエイリアス（functions）を無効にします。

unalias functions

unsetコマンド（変数の値と属性の設定を解除する）

形式

unset ［-f］ name［ name ...］

機能

変数および関数の設定を解除します。nameに指定された変数の設定を解除します。nameは複数指定できます。-fオプションを指定し実行した場合，nameを関数名として扱い，関数の定義を解除します。

引数

-f

nameを関数名として扱い，関数の定義を解除します。

name

対象となる変数名または関数名を指定します。nameに配列名も指定できます。

nameに配列名を指定した場合，配列を構成する全要素の設定を解除します。1つの要素の設定だけを解除する場合は，「配列名［要素番号］」をnameに指定します。

nameに指定した変数の属性が読み取り専用の場合，エラー終了します。未定義の変数名および関数名をnameに指定し実行すると，エラー終了します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了。またはnameに指定した名称のどれかが変数，もしくは関数として定義されていません。

注意事項

このコマンドでLINENO，OPTARG，OPTIND，RANDOM，SECONDSなどのシェル変数の設定を解除すると，再びこれらのシェル変数を定義しても，シェル変数が持つ特殊な意味は失われます。

このコマンドで配列の要素の設定を個別に解除した場合，デバッガでは定義済みの変数として扱います。そのため，unsetコマンドで配列の要素の設定を解除したあとも，デバッガコマンドで表示・設定の対象にできます。

配列を構成する全要素の設定を解除した場合は，デバッガでは未定義の変数として扱うため，デバッガコマンドによる表示・設定の対象にできません。デバッガコマンドによる変数の値の表示・設定については，「6.　ジョブ定義スクリプトのデバッグ」を参照してください。

この特殊組み込みコマンドは，コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

unsetコマンドで変数を解除します。

unset val

unsetコマンドで関数を解除します。

unset -f func

waitコマンド（子プロセスの完了を待つ）

形式

wait ［pid ...］

機能

子プロセスの完了を待ちます。pidには完了を待つ子プロセスのプロセスIDを1つ以上指定します。pidを指定しなかった場合は，実行中のすべての子プロセスの完了を待ちます。数値以外から始まる不当なプロセスIDをpidに指定した場合は，終了コード127で正常終了します。

ただし，次のように数値と数値以外を混在して指定し，かつ先頭が数値の場合，数値として解釈される位置までをプロセスIDと判断し，プロセスの完了を待ちます。

UAP &        # シェル変数!にはUAPを起動したプロセスが格納されます。
wait $!ABC   # waitコマンドはABCの直前までをプロセスIDと解釈し，完了を待ちます。

引数pidを指定した場合，waitコマンドは最後の完了を待ったプロセスのコマンドの終了コードで終了します。例を次に示します。

UAP1 &                    # UAP1は終了コード2
PID1=$!                   #
UAP2 &                    # UAP2は終了コード16
PID2=$!                   #
UAP3 &                    # UAP3は終了コード0
PID3=$!                   #
wait $PID1 $PID2 $PID3    # waitコマンドは終了コード0で終了します

引数

pid

完了を待つ子プロセスのプロセスIDを指定します。

終了コード

終了コード

意味

0

正常終了

127

正常終了

pidに指定された子プロセスを特定できません。

実行中の子プロセス以外のプロセスIDをpidに指定しました。

上記以外

エラー終了

注意事項

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

使用例

プロセスIDが4848の子プロセスの完了を待ちます。

wait 4848

whenceコマンド（文字列をコマンドとした場合の解釈を表示する）

形式

whence ［-p］［-v］ name ［name...］

機能

指定された文字列をコマンドとした場合の解釈を標準出力に出力します。オプションを指定しない場合は次の内容を出力します。

nameに指定された文字列がコマンドのときは，コマンドのパス名を出力します。

nameに指定された文字列がエイリアスのときは，エイリアスの値を出力します。

nameに指定された文字列が予約語，シェル標準コマンド，シェル拡張コマンドまたは関数のときは，nameを出力します。

上記のどれにも該当しない場合は，何も出力しないで終了コード1で終了します。

-pオプションと-vオプションを同時に指定した場合は，nameに指定された文字列をコマンドと解釈して出力します。引数nameを指定しなかった場合は，終了コード1でエラー終了します。

引数

-p

nameに指定された文字列をコマンドとした場合のコマンドパスを出力します。

-v

nameに指定された文字列がコマンド，予約語，エイリアス，シェル標準コマンド，シェル拡張コマンドまたは関数かどうかを出力します。

出力内容を次の表に示します。

項番

出力内容

意味

1

name is a reserved word

nameは予約語です。

2

name is a function

nameは関数です。

3

name is a traced function

nameはトレースモードが有効な関数です。

関数が未定義で，かつ関数のトレースモードが有効な場合は，項番4の内容が出力されます。

4

name is an undefined function

nameは未定義の関数です。

5

name is an extended shell command

nameはシェル拡張コマンドです。

6

name is a shell builtin

nameは組み込みコマンドです。

7

name is a special shell builtin

nameは特殊組み込みコマンドです。

8

name is a shell builtin not supported

nameはJP1/Advanced Shellで提供しないコマンドです。

9

name is パス名

nameはコマンドまたは実行できるファイルです。

10

name is an alias for 'エイリアスの値'

nameはエイリアスです。

11

name is an exported alias for 'エイリアスの値'

nameはエクスポートされたエイリアスです。

12

name not found

nameはコマンド，予約語，エイリアス，シェル標準コマンド，シェル拡張コマンドまたは関数のどれも該当しません。

name

コマンドとして扱う文字列を指定します。引数nameを指定しなかった場合は，終了コード1でエラー終了します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了。または，nameに指定したコマンドのどれかが見つかりません。

注意事項

この正規組み込みコマンドは，コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

使用例

pwdをコマンドとした場合のコマンドパスを出力します。

ジョブ定義スクリプトの内容

whence -p pwd

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
/bin/pwd

9.4　シェル拡張コマンド

シェル拡張コマンドは，JP1/Advanced Shell独自の組み込みコマンドです。組み込みコマンドはシェル本体に組み込まれたコマンドであり，シェル自身によって実行します。

シェル拡張コマンドは，コマンドの構文を誤っても，コマンドを実行しているシェルは終了しません。

adshechoコマンド（指定した事象通知メッセージをJP1イベントとして発行する）

形式

adshecho ［-d］ 事象通知メッセージ

機能

指定された事象通知メッセージをJP1イベントとして発行します。発行されたJP1イベントは，JP1/IM - Viewに表示されます。ただし，ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行した場合，事象通知メッセージを標準出力に表示します。

JP1イベントは，前回のJP1イベントの発行時刻から所定の時間（USERREPLY_JP1EVENT_INTERVALパラメーターで指定）が経過するのを待って発行されます。USERREPLY_JP1EVENT_INTERVALパラメーターについては，「7.　環境ファイルで設定するパラメーター」の「USERREPLY_JP1EVENT_INTERVALパラメーター（JP1イベントの最小発行間隔を指定する）」を参照してください。

引数

-d

デバッグ実行時に事象通知メッセージの出力先を標準出力にします。デバッグ実行以外の場合，指定は無視されます。

「-」で始まる文字列は，すべて有効なオプション文字列が指定されている場合はオプションの指定として扱われます。不当なオプション文字列が指定された「-」で始まる文字列，または「-」で始まらない文字列が指定された場合は，その位置から事象通知メッセージとして扱われます。

事象通知メッセージ　〜＜任意文字列＞((0〜1,023バイト))

JP1イベントとして発行する事象通知メッセージを指定します。

事象通知メッセージの文字コードは，同一ホスト内で稼働するJP1/Baseと合わせてください。文字コードが異なると文字化けします。

指定された事象通知メッセージは，コマンド「echo -E 事象通知メッセージ」の実行時と同様の変換内容がJP1イベントとして発行されます。複数の事象通知メッセージが指定された場合はエラー（KNAX7403-E）となります。

終了コード

終了コード

意味

対処

リトライの可否

0

正常終了

なし。

−

1

続行不可能なエラーが発生

メモリ不足

内部矛盾を検出

システム管理者に連絡してください。

×

4

JP1イベントの処理中にエラーが発生

メッセージに出力されたエラー情報を基に，「11.4.4　ユーザー応答機能で表示されるエラー情報の意味および対処方法」を参照して対処してください。

○

5

JP1イベントの処理中にエラーが発生

メッセージに出力されたエラー情報を基に，「11.4.4　ユーザー応答機能で表示されるエラー情報の意味および対処方法」を参照して対処してください。

×

6

指定されたホストへのJP1イベントの転送に失敗

次の点を確認してください。

JP1/IM - Managerがインストールされているホストに，JP1/Baseがインストールされているか

JP1/IM - ManagerがインストールされているホストのJP1/Baseのイベントサービスが起動しているか

JP1/Advanced Shellがインストールされているホストと，JP1/IM - Managerがインストールされているホストの間の，JP1/Baseのコネクションが確立されているか

○

7

JP1/Baseのライブラリが見つからない

JP1/Advanced Shellがインストールされているホストに，JP1/Baseがインストールされているか確認してください。

JP1/Baseがインストールされていてこの現象が発生した場合は，JP1/Baseを再インストールしてください。

×

8

自ホストのJP1/Baseのイベントサービスの接続に失敗

JP1/Advanced Shellがインストールされているホストで，JP1/Baseのイベントサービスが起動しているか確認してください。

○

10

指定された形式が不正

コマンドの形式を確認してください。

×

128+シグナル番号【UNIX限定】

adshechoコマンドがシグナルを受信して終了

ジョブがシグナルを受信して終了していることを確認してください。

×

200【Windows限定】

adshechoコマンドが強制終了

ジョブが強制終了されていることを確認してください。

×

（凡例）

○：リトライ可

×：リトライ不可

−：対象外

注意事項

このコマンドはバックグラウンド実行しないでください。バックグラウンド実行した場合，流量制御（USERREPLY_JP1EVENT_INTERVALパラメーターで指定）が機能しません。

このコマンドは，ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行する場合を除いて，JP1/BaseやJP1/IMが存在しない環境では実行しないでください。

実行すると次の問題が発生します。

JP1/Advanced Shellが稼働するホストにJP1/Baseがインストールされていない場合，コマンドはエラー終了します。

JP1/Advanced Shellが稼働するホストのJP1/Baseのイベントサービスが稼働していない場合，コマンドはエラー終了します。

HOSTNAME_JP1IM_MANAGERで指定されたホストにJP1/Baseがインストールされていない，またはJP1/Baseのイベントサービスが稼働していない場合，コマンドはエラー終了します。

HOSTNAME_JP1IM_MANAGERで指定されたホストのJP1/IM - Managerが稼働していない場合でも，HOSTNAME_JP1IM_MANAGERで指定されたホストのJP1/BaseのイベントサービスにJP1イベントが到達した時点でJP1イベントの送信に成功したとしてコマンドは動作します。

リトライ可能なエラーでコマンドが終了した場合は，そのコマンドを再実行することで成功する可能性があります。コマンドを再実行したい場合は，「3.8.5　adshechoコマンドまたはadshreadコマンドがエラー終了した場合の対処」に記載しているジョブ定義スクリプトの記述例を参考として，そのコマンドを再実行するようにジョブ定義スクリプトを作成してください。

このコマンドはパイプ記号と組み合わせて実行しないでください。

このコマンドはリダイレクト記号と組み合わせて実行しないでください。

adshreadコマンド（指定した応答要求メッセージを応答待ちイベントとして発行する）

形式

adshread　［-d］　変数名　応答要求メッセージ

機能

指定された応答要求メッセージを応答待ちイベントとして発行します。発行された応答待ちイベントはJP1/IM - Viewに表示され，運用者はJP1/IM - Viewから応答を入力できます。入力された応答は，指定された変数に格納します。

ただし，ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行した場合，応答要求メッセージを標準出力に表示し，応答を標準入力から受け取ります。

JP1イベントは，前回のJP1イベントの発行時刻から所定の時間（USERREPLY_JP1EVENT_INTERVALパラメーターで指定）が経過するのを待って発行されます。USERREPLY_JP1EVENT_INTERVALパラメーターについては，「7.　環境ファイルで設定するパラメーター」の「USERREPLY_JP1EVENT_INTERVALパラメーター（JP1イベントの最小発行間隔を指定する）」を参照してください。

引数

-d

デバッグ実行時に，応答要求メッセージの出力先を標準出力にし，応答を標準入力から受け取ります。デバッグ実行以外の場合，指定は無視されます。

「-」で始まる文字列は，「-」以外の文字で始まる文字列が出現するまでの間，オプションの指定として扱われます。不当なオプションが指定された場合はオプションエラーとなります。

変数名　〜＜環境変数名＞

運用者からの応答内容を格納するシェル変数を指定します。シェル変数は1つしか指定できません。シェル変数を複数指定すると，2つ目以降は応答要求メッセージと解釈されます。

シェル変数が受け取れる文字列は0〜512バイトのASCII文字列です。

ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行し，標準入力からの応答に513バイト以上の文字列が指定された場合，513バイト以降の文字列は無視されます。また，改行を含む文字列が指定された場合，改行以降の文字列は無視されます。

変数に配列を指定する場合は，要素ごとに指定します。配列の要素数は0〜65,535の間で指定できます。

例

通常の変数指定：adshread ans“処理を続行しますか(Y/N)”

配列指定：adshread ans[1] “処理を続行しますか(Y/N)”

指定したシェル変数の属性に対する，このコマンドの実行結果を次の表に示します。

指定したシェル変数の属性

コマンドの実行結果

読み取り専用

KNAX6008-Eを出力して終了します。

数値型

KNAX7404-Eを出力して終了します。

文字列型/文字列型の配列

値を更新して終了します。

存在しない変数

文字型の変数を新規作成し，値を設定して終了します。

変数名が不正

KNAX6003-Eを出力し終了します。

配列の要素数が範囲外の変数

KNAX6007-Eを出力し終了します。

JP1/Advanced Shellで使用できないシェル変数

KNAX6002-Eを出力しジョブが強制終了します。

応答要求メッセージ　〜＜任意文字列＞((0〜1,023バイト))

応答待ちイベントとして発行する応答要求メッセージを指定します。

応答要求メッセージの文字コードは，同一ホスト内で稼働するJP1/Baseと合わせてください。文字コードが異なると文字化けします。

指定された応答要求メッセージは，コマンド「echo -E 応答要求メッセージ」の実行時と同様の変換内容が応答待ちイベントとして発行されます。複数の応答要求メッセージが指定された場合はエラー（KNAX7403-E）となります。

終了コード

終了コード

意味

対処

リトライの可否

0

正常終了

なし。

−

1

次に示す続行不可能なエラーが発生

メモリ不足

変数名として使用できない変数を検出

内部矛盾を検出

変数名として使用できない変数を指定している場合は，変数の指定を変更してください。

問題が解決しない場合は，システム管理者に連絡してください。

×

2

セマフォ（Mutex）・共有メモリの操作でエラーが発生

メッセージに出力されたエラー情報を基に，「11.4.4　ユーザー応答機能で表示されるエラー情報の意味および対処方法」を参照して対処してください。

×

3

共有メモリに空きがない

USERREPLY_WAIT_MAXCOUNTパラメーターの設定を見直してください。

○

4

JP1イベントの処理中にエラーが発生

メッセージに出力されたエラー情報を基に，「11.4.4　ユーザー応答機能で表示されるエラー情報の意味および対処方法」を参照して対処してください。

○

5

JP1イベントの処理中にエラーが発生

メッセージに出力されたエラー情報を基に，「11.4.4　ユーザー応答機能で表示されるエラー情報の意味および対処方法」を参照して対処してください。

×

6

指定されたホストへのJP1イベントの転送に失敗

次の点を確認してください。

JP1/IM - Managerがインストールされているホストに，JP1/Baseがインストールされているか

JP1/IM - ManagerがインストールされているホストのJP1/Baseのイベントサービスが起動しているか

JP1/Advanced Shellがインストールされているホストと，JP1/IM - Managerがインストールされているホストの間の，JP1/Baseのコネクションが確立されているか

○

7

JP1/Baseのライブラリが見つからない

JP1/Advanced Shellがインストールされているホストに，JP1/Baseがインストールされているか確認してください。

JP1/Baseがインストールされていてこの現象が発生した場合は，JP1/Baseを再インストールしてください。

×

8

自ホストのJP1/Baseのイベントサービスの接続に失敗

JP1/Advanced Shellがインストールされているホストで，JP1/Baseのイベントサービスが起動しているか確認してください。

○

10

指定された形式が不正

コマンドの形式を確認してください。

×

128+シグナル番号【UNIX限定】

adshreadコマンドがシグナルを受信して終了

ジョブがシグナルを受信して終了していることを確認してください。

×

200【Windows限定】

adshreadコマンドが強制終了

ジョブが強制終了されていることを確認してください。

×

（凡例）

○：リトライ可

×：リトライ不可

−：対象外

注意事項

このコマンドはバックグラウンド実行しないでください。バックグラウンド実行した場合，流量制御（USERREPLY_JP1EVENT_INTERVALパラメーターで指定）が機能しません。また，運用者からの応答はadshreadコマンドを実行したジョブの指定された変数に格納されません。

このコマンドはパイプを指定して実行しないでください。

このコマンドにリダイレクトで値を受け取る処理を指定しないでください。

ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行する場合を除いて，JP1/BaseやJP1/IMが存在しない環境やユーザー応答機能管理デーモンまたはサービスが起動していない状態では実行しないでください。

実行すると次の問題が発生します。

JP1/Advanced Shellが稼働するホストにJP1/Baseがインストールされていない場合，コマンドはエラー終了します。

JP1/Advanced Shellが稼働するホストのJP1/Baseのイベントサービスが稼働していない場合，コマンドはエラー終了します。

HOSTNAME_JP1IM_MANAGERで指定されたホストにJP1/Baseがインストールされていない，またはJP1/Baseのイベントサービスが稼働していない場合，コマンドはエラー終了します。

HOSTNAME_JP1IM_MANAGERで指定されたホストのJP1/IM - Managerが稼働していない場合でも，HOSTNAME_JP1IM_MANAGERで指定されたホストのJP1/BaseのイベントサービスにJP1イベントが到達した時点でJP1イベントの送信に成功したとしてコマンドは動作します。

ユーザー応答機能管理デーモン・サービスが起動していない場合，コマンドはエラー終了します。

リトライ可能なエラーでコマンドが終了した場合は，そのコマンドを再実行することで成功する可能性があります。コマンドを再実行したい場合は，「3.8.5　adshechoコマンドまたはadshreadコマンドがエラー終了した場合の対処」に記載しているジョブ定義スクリプトの記述例を参考として，そのコマンドを再実行するようにジョブ定義スクリプトを作成してください。

adshreadコマンドが応答要求メッセージの応答待ちの状態で，ジョブを「3.11.1　ジョブの強制終了の方法」で示す以外の方法で即時終了した場合，共有メモリ上に応答要求メッセージの情報が残り，JP1/IM - Viewに応答待ちイベントが滞留したままになることがあります。その場合，adshchmsgコマンドの-dオプションで応答要求メッセージの応答待ち状態をキャンセルするか，ユーザー応答機能管理デーモン・サービスを再起動してください。

TRAP_ACTION_SIGTERMパラメーターでTERMを指定した場合，またはUNIX版でAUTOを指定してJP1/AJSからジョブを起動した場合は，trapコマンドによる動作定義にadshreadコマンドを指定しないでください。

使用例

応答要求メッセージを出力し，運用者からの応答に応じて処理を決定します。

adshread  ans "処理を続行しますか(Y/N)"

if [ "$ans" = "Y" ] ; then
     echo "処理を続行します。"
elif [ "$ans" = "N" ] ; then
     echo "処理を終了します。"
     exit 1
else
     echo "指定以外の応答が入力されました。処理を終了します。"
     exit 1

fi

adshscripttoolコマンド（ジョブ定義スクリプトの作成を支援する）【Windows限定】

形式

adshscripttool -fowner パス名
adshscripttool -fentry パス名
adshscripttool -fmode ［-s ｛u|g|o|r|w|x｝］ モード
adshscripttool -exec ［-m ｛SIMPLE|MINIMUM｝］
              ｛-r コマンドライン|ジョブ定義スクリプトファイルのパス名｝
              ［実行時パラメーター］

機能

ジョブ定義スクリプトを作成しやすくするための情報の取得や出力などを実行します。指定できる引数と用途を次に示します。

引数

実行内容

用途

-fowner

ファイルまたはフォルダの所有者名を出力します。

ファイルまたはフォルダの所有者のアクセス権を変更するために，ファイルまたはフォルダの所有者名を取得したい場合に使用します。

-fentry

ファイルまたはフォルダのACLに登録されているアカウント名の一覧を出力します。

取得したACLのアカウント情報に従って，ジョブ定義スクリプト内のcaclsコマンドやattribコマンドの実行を変更したい場合に使用します。

-fmode

chmodコマンドのモードとして指定されたシンボルまたは数値を解析して，「所有者」「グループ」「その他のユーザー」に対しての権限の変更内容を，ジョブ定義スクリプト中で使用しやすいように9桁の文字列として出力します。

-sオプションと同時に指定すると，-fmodeオプション指定時の出力のうち，ugorwxの指定に対応する桁の文字だけを出力します。

シンボルまたは数値の指定内容に従って，ジョブ定義スクリプト内のcaclsコマンドやattribコマンドの実行を変更したい場合に使用します。

-exec

指定したコマンドラインまたはジョブ定義スクリプトを子孫ジョブとして実行します。

指定したコマンドラインまたはジョブ定義スクリプトを子孫ジョブとして実行したい場合に使用します。

引数

-fowner

ファイルまたはフォルダの所有者名を標準出力に出力します。

出力する所有者名の形式は，「ドメインまたはコンピュータ名¥ユーザー名」または「ユーザー名」となります。

caclsコマンドでCreator Ownerを定義しても，ファイルまたはフォルダの所有者とマッピングされない場合があります。caclsコマンドで所有者名を指定する前に，このオプションを指定してadshscripttoolコマンドを実行し，所有者名を求めておいてください。

-fentry

ファイルまたはフォルダのACLに登録されているアカウント名の一覧を「;（セミコロン）」区切りで標準出力に出力します。

出力するアカウント名の形式は「ドメインまたはコンピュータ名¥ユーザー名」または「ユーザー名」となります。

パス名

対象とするファイルまたはフォルダを指定します。

-fmode

chmodコマンドのモードとして指定されたシンボルまたは数値を解析し，「所有者」「グループ」「その他のユーザー」に対しての権限の変更内容を9桁の文字列として標準出力に出力します。

数値が指定された場合，モードビットONに対応する値をRに，モードビットOFFに対応する値をDに設定します。エラー時は'E'だけを出力して終了します。

-fmodeオプション指定時のadshscripttoolコマンドの実行結果として出力される文字列の意味を桁ごとに次に示します。

左から数えた桁番号

意味

1

所有者の読み込み権限

2

所有者の書き込み権限

3

所有者の実行権限

4

グループの読み込み権限

5

グループの書き込み権限

6

グループの実行権限

7

その他のユーザーの読み込み権限

8

その他のユーザーの書き込み権限

9

その他のユーザーの実行権限

各桁には次の値が設定されます。

値

意味

A

追加（「+」が設定された）

D

削除（「-」が設定された）

R

置き換え（「=」または数値が設定された）

0

指定されていない

E

adshscripttool -fmodeコマンドの実行がエラー終了

-s｛u|g|o|r|w|x｝

-fmodeオプション指定時の出力のうち，出力する桁を次の中から指定します。-fmodeオプションの指定時に指定できます。

u

-fmodeオプション指定時の出力のうち，1〜3桁目に対応します。

g

-fmodeオプション指定時の出力のうち，4〜6桁目に対応します。

o

-fmodeオプション指定時の出力のうち，7〜9桁目に対応します。

r

-fmodeオプション指定時の出力のうち，1，4，7桁目に対応します。

w

-fmodeオプション指定時の出力のうち，2，5，8桁目に対応します。

x

-fmodeオプション指定時の出力のうち，3，6，9桁目に対応します。

モード

8桁の数値またはシンボルを指定します。-fmodeオプションの指定時に指定できます。

数値で指定する場合

8進数で指定します。8進数以外または8進数の07777（10進数の4095）より大きな値が指定されるとエラーとなります。

シンボルで指定する場合

何も指定されていない状態（数値表現での0）に対して設定・追加・削除を設定します。シンボルの指定結果が結果として出力されます。

シンボルとして指定できる内容を次に示します。複数指定する場合は間をコンマ（,）で区切ってください。

シンボル内の順序

指定できる値

1つ目

アクセス権を設定する項目を指定します。複数同時に指定できます。

指定できる項目を次に示します。省略するとすべてのユーザーが仮定されます。

u：所有者

g：グループ

o：その他

a：全ユーザー

2つ目

モードに対する操作を指定します。1つ目のシンボルで指定された項目に対して次の処理をします。

=：アクセス権の設定（上書き）

+：アクセス権の追加

-：アクセス権の削除

設定，追加および削除する値は，3つ目のシンボルで指定します。

3つ目のシンボルに続いて2つ目および3つ目のシンボルを記述できます。3つ目のシンボルは省略できます。

3つ目

設定するアクセス権を指定します。複数同時に指定できます。指定できる値を次に示します。

r：読み取り

w：書き込み

x：実行

省略するとアクセス権を設定する項目を消去します。消去した値を2つ目のシンボルに従って設定，追加および削除します。追加および削除だけでは値は変化しません。

s，t，u，g，oは指定しても無視されます。

-exec

-rオプションに指定したコマンドライン，または指定したジョブ定義スクリプトファイルを子孫ジョブとして実行します。

-m ｛SIMPLE|MINIMUM｝

標準出力，標準エラー出力への出力方式を指定します。-execオプションの指定時に指定できます。簡潔出力モードと最小出力モードについては，「3.4.4　ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止する」を参照してください。

SIMPLE

実行する子孫ジョブを簡潔出力モードで動作します。

MINIMUM

実行する子孫ジョブを最小出力モードで動作します。

子孫ジョブ形式のサンプルスクリプトは最小出力モードで動作します。そのため，子孫ジョブ形式のサンプルスクリプト内でこのコマンドを使用する場合，-mオプションにはMINIMUMの指定を推奨します。

-r コマンドライン

ジョブで実行する内容をコマンドラインに指定します。-execオプションの指定時に指定できます。

-rオプションに指定した内容は，スプールジョブディレクトリにジョブ定義スクリプトファイルとして作成されません。そのため，メッセージなどのジョブ定義スクリプトファイル名の出力個所には，ジョブ定義スクリプトファイルの絶対パスではなく「"-r CMDLINE"」が出力されます。

コマンドラインの指定

コマンドラインには，シェル運用コマンドやUNIX互換コマンドなど，ジョブ定義スクリプトに記載できるコマンドを指定できます。コマンドラインにシェル標準コマンドのpwdコマンドを指定する例を次に示します。

adshscripttool -exec -m MINIMUM -r pwd

また，コマンドセパレータによる複数コマンド記述など，ジョブ定義スクリプトファイルに記述する内容を指定できます。コマンドラインに複数のコマンドを指定する例を次に示します。

adshscripttool -exec -m MINIMUM -r "export DATA=file01 ; pgm001"

コマンドラインにスペースを指定する場合，クォーテーション（「'」または「"」）で囲む必要があります。また，コマンドを実行するシェルによっては，コマンドラインに指定した$，*，;（セミコロン）などのメタキャラクタが展開されるため，クォーテーションで囲むか，エスケープ文字（¥）を使用する必要があります。

子孫ジョブの出力情報

-rオプションを指定した場合，JP1/Advanced Shellが出力するメッセージテキストや，ジョブ定義スクリプトの稼働実績情報には，ジョブ定義スクリプトファイルのパス名として，ジョブ定義スクリプトファイルの絶対パスではなく「"-r CMDLINE"」が出力されます。

位置パラメーターの格納情報

-rオプションのコマンドラインに位置パラメーター$0を指定する場合，$0には「adshexec」が格納されます。

SPOOLJOB_CHILDJOBパラメーターとの関連

-rオプションを指定して実行する場合，SPOOLJOB_CHILDJOBパラメーターにMERGEを指定して実行したときに，ルートジョブのジョブ実行ログに出力される子孫ジョブのジョブ実行ログの開始と終了を表す記号には，ジョブ定義スクリプトファイルの絶対パスではなく次の値が出力されます。SPOOLJOB_CHILDJOBパラメーターにMERGEを指定した時の出力形式は「3.5.1(3)　子孫ジョブのスプールジョブをルートジョブのスプールジョブへマージした場合」を参照してください。

子孫ジョブのJOBLOGの開始を表す記号

「>>>>>> [JOBLOG] "-r CMDLINE"」

子孫ジョブのJOBLOGの終了を表す記号

「<<<<<< [JOBLOG] "-r CMDLINE"」

子孫ジョブの標準エラー出力の開始を表す記号（通常実行時）

「>>>>>> [STDERR] "-r CMDLINE"」

子孫ジョブの標準エラー出力の終了を表す記号（通常実行時）

「<<<<<< [STDERR] "-r CMDLINE"」

子孫ジョブの標準エラー出力および標準出力の開始を表す記号（デバッグ実行時）

「>>>>>> [STDERR,STDOUT] "-r CMDLINE"」

子孫ジョブの標準エラー出力および標準出力の終了を表す記号（デバッグ実行時）

「<<<<<< [STDERR,STDOUT] "-r CMDLINE"」

また，スクリプトイメージファイルに出力されるジョブ定義スクリプトファイル名の部分にも「"-r CMDLINE"」が出力されます。

ジョブ定義スクリプトファイルのパス名　〜＜パス名＞((1〜247バイト))

実行するジョブ定義スクリプトのファイルのパス名を指定します。-execオプションの指定時に指定できます。

実行時パラメーター　〜＜任意文字列＞((1〜1,022バイト))

-rオプションに指定したコマンドラインまたはジョブ定義スクリプトファイルの位置パラメーターに格納する値を指定します。-execオプションの指定時に指定できます。

スペースを実行時パラメーターとして指定する場合は，その文字列を"（ダブルクォーテーション）で囲んでください。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

使用例

-fownerオプションの指定例と，標準出力への出力結果を示します。

ジョブ定義スクリプトの内容

adshscripttool -fowner test.txt

標準出力への出力結果

MYPC¥user1

-fentryオプションの指定例と，標準出力への出力結果を示します。

ジョブ定義スクリプトの内容

adshscripttool -fentry test.txt

標準出力への出力結果

BUILTIN¥Administrators;NT AUTHORITY¥SYSTEM;MYPC¥user1;BUILTIN¥Users

-fmodeオプションに「+w」を指定した例と，標準出力への出力結果を示します。

ジョブ定義スクリプトの内容

adshscripttool -fmode +w

標準出力への出力結果

0A00A00A0

-fmodeオプションに「ug-r」を指定した例と，標準出力への出力結果を示します。

ジョブ定義スクリプトの内容

adshscripttool -fmode ug-r

標準出力への出力結果

D00D00000

-fmodeオプションに「ug-w,u+w」を指定した例と，標準出力への出力結果を示します。

ジョブ定義スクリプトの内容

adshscripttool -fmode ug-w,u+w

標準出力への出力結果

0A00D0000

-fmodeオプションに「655」を指定した例と，標準出力への出力結果を示します。

ジョブ定義スクリプトの内容

adshscripttool -fmode 655

標準出力への出力結果

RRDRDRRDR

-fmodeオプションの指定例と，標準出力への出力結果を示します。この例では-s w指定で「+w」を解析しています。

ジョブ定義スクリプトの内容

adshscripttool -fmode -s w +w

標準出力への出力結果（0A00A00A0の結果のうち，2桁目と5桁目と8桁目の結果を出力）

AAA

-fmodeオプションの指定例と，標準出力への出力結果を示します。この例では-s r指定で「655」を解析しています。

ジョブ定義スクリプトの内容

adshscripttool -fmode -s r 655

標準出力への出力結果（RRDRDRRDRの結果のうち，1桁目と4桁目と7桁目の結果を出力）

RRR

-fmodeオプションの指定例と，標準出力への出力結果を示します。この例では-s uor指定で「655」を解析しています。

ジョブ定義スクリプトの内容

adshscripttool -fmode -s uor 655

標準出力への出力結果（RRDRDRRDRの結果のうち，1桁目と7桁目の結果を出力）

RR

シンボルの解析結果に従ってcaclsコマンドの実行を切り替えるよう，ジョブ定義スクリプトで指定する例を次に示します。

username=`adshscripttool -fowner "$1"`      # 所有者名を取得する
if [[ $? -ge 1 ]]                           # adshscripttool -fownerのエラー処理
then
  echo "adshscripttool -fowner error."
  return 1
fi
modebit=`adshscripttool -fmode $mode`       # モードを解析する(mode=u+w)
case $modebit in                            # modebitに0A0000000が格納されている
  "AA0000000" ) cacls "$1" /E /G $username:C ;;
  "0A0000000" ) cacls "$1" /E /G $username:W ;;     # このcaclsが実行される
          "E" ) echo "adshscripttool -fmode error." # adshscripttool -fmodeのエラー処理
                return 1 ;;
esac

所有者とEveryone以外のACEを削除するよう，ジョブ定義スクリプトで指定する例を次に示します。

IFS=¥;
username=`adshscripttool -fowner "$1"`     # 所有者名を取得する
if [[ $? -ge 1 ]]                          # adshscripttool -fownerのエラー処理
then
  echo "adshscripttool -fowner error."
  return 1
fi
set -A entry `adshscripttool -fentry $1`   # アカウント名一覧を取得
for i in "${entry[@]}"
do
  if ! [[ $i == "$username" || $i == "Everyone" ]]
  then
    cacls "$1" /E /R "$i"                  # 所有者とEveryone以外のACEを削除
  fi
done

数値の解析結果のうち，所有者の定義内容だけに従ってcaclsコマンドの実行を切り替えるよう，ジョブ定義スクリプトで指定する例を次に示します。

username=`adshscripttool -fowner "$1"`     # 所有者名を取得する
if [[ $? -ge 1 ]]                          # adshscripttool -fownerのエラー処理
then
  echo "adshscripttool -fowner error."
  return 1
fi
modebit=`adshscripttool -fmode -s u $mode` # モードを解析する(mode=644)
case $modebit in                           # modebitにRRD------が格納されている
  "RRR" ) cacls "$1" /P $username:F ;;
  "RRD" ) cacls "$1" /P $username:C ;;          # このcaclsが実行される
  "RDD" ) cacls "$1" /P $username:R ;;
  "DRD" ) cacls "$1" /P $username:W ;;
    "E" ) echo "adshscripttool -fmode error."   # adshscripttool -fmodeのエラー処理
          return 1 ;;
esac

コマンドライン「export DBPATH=C:¥¥HOME¥¥DBUSER; start -q」を子孫ジョブとして実行する例を示します。

adshscripttool -exec -m MINIMUM -r 'export DBPATH=C:¥¥HOME¥¥DBUSER; start -q '

ジョブ定義スクリプトファイル「ppstart.ash」を子孫ジョブとして実行する例を示します。

adshscripttool -exec -m MINIMUM ppstart.ash

注意事項

-fownerオプションと-fentryオプションを指定する場合は，対象のファイルまたはフォルダの所有者が実行してください。所有者でない場合，エラーメッセージを出力してエラー終了することがあります。

-fmodeオプションの前に-sオプションは指定できません。指定した場合，コマンドの解析エラーになります。

内部矛盾を検出した場合，実行しているシェルを終了します。内部矛盾以外のエラーの場合，実行しているシェルは終了しないで処理を続行します。

-fentryオプションで各ACEのセキュリティ情報を参照中にエラーになった場合，参照できたACEのアカウント名までの結果を出力し，エラー終了します。

-execオプションで子孫ジョブを実行した場合，ジョブ実行ログに出力されるコマンド名はJP1/Advanced Shellのコマンド（adshexecsubコマンド）となります。

9.5　スクリプト拡張コマンド

スクリプト拡張コマンドとは，ジョブ定義スクリプトファイルに記載する「#-adsh_」で始まるコマンドのことです。

ファイルの作成および環境変数への割り当て，ジョブ定義スクリプトまたはジョブステップ実行後のファイルの後処理や，ジョブ定義スクリプトのジョブ名を宣言できます。また，ジョブステップを定義してジョブの実行を制御したり，スクリプト拡張コマンドを記載した外部のスクリプトを呼び出したりできます。

スクリプト拡張コマンドの終了コードは，環境設定パラメーターのADSHCMD_RC_ERRORパラメーターおよびADSHCMD_RC_SUCCESSパラメーターで変更できます。ただし，次の場合の終了コードは変更できません。

#-adsh_step_endコマンドでジョブステップ正常終了およびジョブステップエラー終了した場合

#-adsh_scriptコマンドで正常終了した場合

環境設定パラメーターについては，「7.　環境ファイルで設定するパラメーター」を参照してください。

#-adsh_fileコマンド（通常ファイルの割り当ておよび後処理を指定する）

形式

#-adsh_file ファイル環境変数定義名 ファイルパス
            ［-chk｛exist|no｝］
            ［-normal｛del|keep｝］［-abnormal｛del|keep｝］

機能

通常ファイルの割り当て，通常ファイルの存在有無の確認および後処理を指定します。通常ファイルの割り当ては，4,095個まで指定できます。

通常ファイルの割り当て，後処理，adshfileコマンドとの機能差については，「5.9.1　通常ファイルの割り当ておよび後処理をする」を参照してください。

このコマンドで割り当てた通常ファイルは，adshfileコマンドで割り当てた通常ファイルとは別に管理され，後処理はadshfileコマンド，#-adsh_fileコマンドの順に実行されます。そのため，両方のコマンドで同じファイルを割り当てると，ファイルの後処理が二重に実行されることになり，エラーが発生する場合があるので注意してください。

引数

ファイル環境変数定義名

〜＜環境変数名＞((1〜31バイト))

割り当てる通常ファイルを識別するキーとなる，ファイル環境変数定義名を指定します。

Windowsの場合，環境設定パラメーターVAR_ENV_NAME_LOWERCASEでENABLEを指定していれば小文字を指定できます。DISABLEを指定していれば小文字は指定できません。

ファイルパス

Windowsの場合　〜＜パス名＞((1〜247バイト))

UNIXの場合　〜＜パス名＞((1〜1,023バイト))

割り当てる通常ファイルのパスを指定します。

相対パスを指定した場合は絶対パスに変換されて実行されます。そのため，絶対パスに変換されたあとのパス長が，OSで規定されているパス長の上限を超えないよう注意してください。OSのパス長の上限を超えると実行時にエラーになります。

-chk｛exist|no｝

割り当てる通常ファイルの存在確認の有無を指定します。指定が省略されている場合，noが指定されたものとします。

exist

ファイルの有無を確認します。

noまたは指定なし

ファイルの有無を確認しません。

-normal｛del|keep｝

該当するジョブステップまたはジョブが正常終了した場合の後処理を指定します。指定が省略されている場合，keepが指定されたものとします。

del

該当するジョブステップまたはジョブ終了後，割り当てた通常ファイルを削除します。

keep

該当するジョブステップまたはジョブ終了後，割り当てた通常ファイルを削除しません。

-abnormal｛del|keep｝

該当するジョブステップまたはジョブがエラー終了した場合の後処理を指定します。指定が省略されている場合，keepが指定されたものとします。

del

該当するジョブステップまたはジョブ終了後，割り当てた通常ファイルを削除します。

keep

該当するジョブステップまたはジョブ終了後，割り当てた通常ファイルを削除しません。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

#-adsh_file_tempコマンド（一時ファイルの割り当ておよび後処理をする）

形式

#-adsh_file_temp ファイル環境変数定義名［ -id 一時ファイル識別名］
                 ［-chk｛create|exist｝］
                 ［-normal｛del|keep｝］

機能

ジョブ定義スクリプト内で一時的に使用するファイルの割り当ておよび後処理を指定します。一時ファイルの割り当ては，4,095個まで指定できます。#-adsh_file_tempコマンドを使った一時ファイルの作成については，「5.9.2　一時ファイルの割り当ておよび後処理をする」を参照してください。

引数

ファイル環境変数定義名

〜＜環境変数名＞((1〜31バイト))

割り当てた一時ファイルを識別するキーとなる，ファイル環境変数定義名を指定します。

Windowsの場合，環境設定パラメーターVAR_ENV_NAME_LOWERCASEでENABLEを指定していれば小文字を指定できます。DISABLEを指定していれば小文字は指定できません。

-id 一時ファイル識別名

〜＜記号名称＞((1〜31バイト))

ジョブステップ内で作成した一時ファイルを後続ジョブステップで使用する場合，使用するファイルを特定するために，一時ファイル識別名を指定します。割り当てた一時ファイルを以降のジョブステップで使用しない場合，指定を省略できます。ジョブステップ外で割り当てる場合は指定できません。

一時ファイル識別名は，作成する一時ファイルごとに一意にしてください。先行ジョブステップで作成済みの一時ファイルと同じ識別名は指定できません。ただし，先行ジョブステップの後処理で削除済みのファイルの識別名は指定できます。

-chk｛create|exist｝

一時ファイルの割り当て方法を指定します。指定が省略されている場合，createが指定されたものとします。

create

割り当てる一時ファイルを新規に作成して割り当てます。JP1/Advanced Shellがファイル名を生成し0バイトファイルを作成します。

exist

先行ジョブステップで作成した一時ファイルを割り当てる場合に指定します。ジョブステップ外で割り当てる場合，および一時ファイル識別名を省略した場合は指定できません。

-normal｛del|keep｝

一時ファイルの後処理を指定します。指定が省略されている場合，delが指定されたものとします。

del

該当するジョブステップまたはジョブ終了後，割り当てた一時ファイルを削除します。

keep

該当するジョブステップ終了時，割り当てた一時ファイルを削除しません。ジョブステップ外で割り当てる場合，および一時ファイル識別名を省略した場合は指定できません。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

#-adsh_jobコマンド（ジョブ名を宣言する）

形式

#-adsh_job ジョブ名

機能

ジョブ定義スクリプトのジョブ名を宣言します。ジョブ名の宣言は，1行目または2行目のどちらかに1個指定できます。

引数

ジョブ名

〜＜記号名称＞((1〜31バイト))

ジョブを識別する情報の1つであるジョブ名を定義します。ジョブ名はジョブ実行ログなどにメッセージとして表示されるほか，JP1/Advanced Shellが作成するファイル名の一部にも使用されます。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

#-adsh_job_stopコマンド（ジョブの打ち切り条件を定義する）

形式

#-adsh_job_stop 終了コード定義［,終了コード定義 ...］

機能

ジョブステップ終了時に，ジョブを打ち切るかどうかを判断する条件を定義します。ジョブの打ち切り条件の定義は，1,023個まで指定できます。

引数

終了コード定義［,終了コード定義］...

ジョブを打ち切ると判断するジョブステップの終了コードの値を定義します。

終了コード定義を「,」で区切って複数指定した場合，どれかの定義を満たしたときにジョブを打ち切ります。終了コード定義は8個まで指定できます。

終了コード定義

〜＜符号なし整数＞((0〜255))

終了コード

終了コードの場合，ジョブを打ち切ります。

終了コード1:終了コード2

終了コード1以上，終了コード2以下の場合，ジョブを打ち切ります。

終了コード:

終了コード以上の場合，ジョブを打ち切ります。

:終了コード

終了コード以下の場合，ジョブを打ち切ります。

:

終了コード定義を無効にし，ジョブが打ち切られない状態にします。終了コードを「,」で区切って複数指定した場合，この形式が含まれている場合は文法エラーになります。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

このコマンドをジョブステップ内に記述した場合，構文解析エラーになります。

ジョブを打ち切った場合，後続ジョブステップのrun属性値に関係なく，後続ジョブ定義スクリプトは一切実行しません。

#-adsh_path_varコマンド（パス名を扱うシェル変数を定義する）

形式

#-adsh_path_var シェル変数名［, ... シェル変数名］

機能

パス名を扱うシェル変数を定義します。環境ファイルにPATH_CONV_ENABLEパラメーターが定義されている場合に有効となります。

#-adsh_path_varコマンドは，次のどれかの場合だけ使用できます。

1行目の「#!任意文字列」の次の行

#-adsh_jobコマンドの次の行

1行目（継続行は指定できる）

このコマンドで指定したシェル変数をパス名の先頭に記述すると，そのパス名中のPATH_CONV_ENABLEパラメーターで定義したパス区切り文字とディレクトリ区切り文字が，実行先のOSのパス区切り文字とディレクトリ区切り文字に変換されます。

次の形式で指定したシェル変数と前方一致する記述を，パス名とみなして変換します。

$シェル変数名

${シェル変数名}

変数名は完全一致で判定されるため，シェル変数名の後ろに英数字または「_（アンダーバー）」が付く場合は，対象のシェル変数ではないと判定されて変換されません。

変換後，変換対象の文字列にPATH_CONV_ENABLEパラメーターで定義されたパス区切り文字またはディレクトリ区切り文字が含まれる場合，その区切り文字はジョブ定義スクリプトの実行先のOSに合わせて変換されます。

PATH_CONV_RULEパラメーターでパス変換ルール1とパス変換ルール2のどちらを選択したかでパスの変換結果が異なります。パス変換ルールについては，「PATH_CONV_RULEパラメーター（パス変換ルールを定義する）【Windows限定】」を参照してください。ジョブ定義スクリプトの変換例は，「2.6.2　パス名を変換する」を参照してください。

引数

シェル変数名

〜＜環境変数名＞((1〜255バイト))

パス名を扱うシェル変数として定義するシェル変数の名称を指定します。シェル変数は255個まで指定できます。定義したシェル変数をジョブ定義スクリプト中で使用する場合，$シェル変数名または${シェル変数名}と記載します。

すでに設定されているシェル変数や，使用できないシェル変数名については，「5.5　シェル変数」を参照してください。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

このコマンドによる変換は行ごとに実施されます。このため，ジョブ定義スクリプト内で行が継続している場合，正しく変換されないことがあります。

例として，ジョブ定義スクリプトに「$DIR1改行コード¥¥bar1¥¥…」と記述し，パス変換ルール1を指定してLinux上で変換した場合を次に示します。

#-adsh_path_var DIR1,DIR2
echo foo > "$DIR1           ←""の途中で改行されているため変換されない。
¥¥bar1¥¥"$DIR2¥¥bar2"bar3"  ←「$DIR2¥¥bar2」が「$DIR2/bar2」に変換される。

同様に，ジョブ定義スクリプトに「$DIR1改行コード/bar1/…」と記述し，パス変換ルール2を指定してWindows上で変換した場合の例を次に示します。

#-adsh_path_var DIR1,DIR2
echo foo > '$DIR1
/bar1/"$DIR2/bar2"bar3'     ←「$DIR2/bar2」が「$DIR2¥¥bar2」に変換される。

コメント内の文字列も変換されます。

SPOOLJOB_CHILDJOBパラメーターにDELETEを指定した場合，子孫ジョブとして実行するジョブ定義スクリプトはスクリプトイメージが出力されません。そのため，子孫ジョブで実行したジョブ定義スクリプトに対して，このコマンドで定義した変換規則に基づいて変換した場合，変換結果は出力されないので注意してください。

パス変換ルール2の場合でも，「"（ダブルクォーテーション）」で囲んだ範囲内に「'（シングルクォーテーション）」を入れ子として指定することはできません。指定するとパス変換の対象となるので注意してください。

#-adsh_rc_ignoreコマンド（常に正常終了するコマンドを定義する）

形式

#-adsh_rc_ignore コマンド名［,コマンド名 ...］

機能

このコマンドに引数として定義したコマンドは，終了コードに関係なく常に正常終了します。その場合，対象コマンドの終了コードはジョブステップの成功または失敗の判定に影響しません。常に正常終了するコマンドの定義は，1,023個まで指定できます。

ただし，コマンドがシグナルを受信して終了した場合は，指定に関係なくコマンドがエラー終了します。定義方法については，「5.8.4(2)　常に正常終了するコマンドを定義する」を参照してください。

このコマンドを指定した個所以降のジョブ定義スクリプト実行で有効となります。ジョブステップ外に指定した場合はジョブ定義スクリプト全体に有効で，ジョブステップ内に指定した場合はジョブステップ内だけで有効です。ジョブステップ内に指定した場合，指定した個所以降からジョブステップ終了まで有効となり，ジョブステップ外に指定した値は一時的に無効になります。また，ジョブステップ内に指定するまではジョブステップ外に指定した値が有効になります。

引数

コマンド名［,コマンド名 ...］

常に正常終了するコマンドを定義します。

コマンド名を「,」で区切って複数指定した場合，指定したすべてのコマンドに対して有効になります。コマンド名は，255個まで指定できます。

コマンド名

Windowsの場合　〜＜パス名＞((1〜247バイト))

UNIXの場合　〜＜パス名＞((1〜256バイト))

コマンド名をベース名で指定します。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

コマンド名をベース名で指定します。ジョブステップ内で実行するコマンド名が重複する場合は，エイリアスやリンクを利用してベース名が重複しないようにしてください。

このコマンドは，ジョブ定義スクリプトファイル中に1,023個まで指定できます。

このコマンドは，スクリプト拡張コマンドに対して指定できません。スクリプト拡張コマンドの終了コードは，必ず0が正常終了で1がエラー終了であり，エラー終了の場合はジョブを続行できないためです。

このコマンドをジョブステップエラーブロックに記載できません。

KNAX6584-Iメッセージを出力してバッチジョブを中断する場合，最後に実行したコマンドに対してはこのコマンドの指定は有効になりません。

この#-adsh_rc_ignoreコマンドを使って「5.1.7　別プロセスでの実行【UNIX限定】」に示す書式で実行されたコマンドを常に正常終了させる場合，文字列を置換する前のコマンド名に対するベース名をコマンドの引数に指定してください。

使用例

grepの終了コードを無視します。

#-adsh_step_start STEP1
  #-adsh_rc_ignore grep
  UAP data|grep "TOTAL:"
#-adsh_step_end

#-adsh_scriptコマンド（実行中のジョブ定義スクリプトから外部のジョブ定義スクリプトファイルを呼び出す）

形式

#-adsh_script ジョブ定義スクリプトファイル名

機能

外部のジョブ定義スクリプトファイルのJP1/Advanced Shell起動時点での内容を，現在実行中のジョブ定義スクリプトファイルに挿入します。実行中のジョブ定義スクリプトから外部のジョブ定義スクリプトファイルの呼び出しは，4,095個まで指定できます。呼び出した外部スクリプトは呼び出し元のジョブ定義スクリプトに展開され，全体を1個のジョブ定義スクリプトとして解析し，実行します。

引数

ジョブ定義スクリプトファイル名

Windowsの場合　〜＜パス名＞((1〜247バイト))

UNIXの場合　〜＜パス名＞((1〜4,096バイト))

展開するジョブ定義スクリプトファイルのパスを指定します。相対パスで指定した場合は，ジョブコントローラ起動時のカレントディレクトリからの相対パスとなります。

終了コード

終了コード

意味

呼び出した外部スクリプト内で最後に終了したコマンドの終了コード

正常終了

1

エラー終了

注

#-adsh_scriptコマンドの正常終了の終了コードは，環境設定パラメーターで変更できません。

注意事項

シェル標準コマンドの.（ドット）コマンドと次の個所が異なります。

.（ドット）コマンドは，ジョブ定義スクリプト実行処理時点での外部スクリプトの内容が実行されます。#-adsh_scriptコマンドは，ジョブ定義スクリプトの解析処理時点での外部スクリプトの内容が実行されます。ジョブ定義スクリプトの解析処理から実行処理の間に外部スクリプトの内容を変更しないでください。

.（ドット）コマンドは外部スクリプト内にスクリプト拡張コマンドが記述されている場合，コメントと見なします。#-adsh_scriptコマンドは，外部スクリプト内にスクリプト拡張コマンドを記述し，実行できます。

#-adsh_scriptコマンドで実行した外部スクリプトから，さらに#-adsh_scriptコマンドを実行する場合，同一の外部スクリプトを2回以上呼び出さないでください。

.（ドット）コマンドで呼び出す外部スクリプトの内容は，スクリプトイメージに出力されません。#-adsh_scriptコマンドで呼び出す外部スクリプトの内容は，スクリプトイメージに出力されます。

.（ドット）コマンドに相対パスで外部スクリプトを指定した場合，環境変数PATHの値を参照してパスを解決します。#-adsh_scriptコマンドに相対パスで外部スクリプトを指定した場合，環境変数PATHの値を参照しないで，adshexec起動時のカレントディレクトリからの相対パスとして解釈します。

.（ドット）コマンドはジョブ内で使用できる数に制限がありません。#-adsh_scriptコマンドは，ジョブ内で使用できる上限数が4,095個です。

.（ドット）コマンドは外部スクリプトへの引数を指定できます。#-adsh_scriptコマンドは，外部スクリプトへの引数を指定できません。

ファイル名として.（ドット）から始まるファイル名を指定しないでください。

ファイル名に予約デバイス名（CONやAUX，NULなど）は使用しないでください。【Windows限定】

ファイル名にNTFSのストリームは使用しないでください。【Windows限定】

このコマンドが正常終了した場合，ジョブやジョブステップの正常終了またはエラー終了の判定には使用されません。呼び出した外部スクリプトの実行結果を参照してください。

#-adsh_spoolfileコマンド（プログラム出力データファイルの割り当てをする）

形式

#-adsh_spoolfile ファイル環境変数定義名

機能

プログラム出力データファイルを割り当てます。

出力ファイルの割り当ては，4,095個まで指定できます。また，1つのジョブステップ内およびジョブステップ外には255個まで指定できます。割り当て方法については，「5.9.3　プログラム出力データファイルの割り当てをする」を参照してください。

引数

ファイル環境変数定義名

〜＜環境変数名＞((1〜31バイト))

割り当てたプログラム出力データファイルを識別するキーとなる，ファイル環境変数定義名を指定します。

Windowsの場合，環境設定パラメーターVAR_ENV_NAME_LOWERCASEでENABLEを指定していれば小文字を指定できます。DISABLEを指定していれば小文字は指定できません。

終了コード

終了コード

意味

0

正常終了

1

エラー終了

注意事項

#-adsh_spoolfileコマンドで割り当てたパス名を利用して，スプールジョブディレクトリ下にディレクトリを生成しないでください。スプールジョブディレクトリ下にディレクトリが生成されていると，adshhkコマンドでスプールジョブの削除に失敗するなどの予期しない障害が発生することがあります。

スプールジョブ作成抑止機能を使用した場合，#-adsh_spoolfileコマンドは使用できません。使用すると，KNAX6385-Eメッセージを出力して終了します。

#-adsh_step_startコマンド，#-adsh_step_errorコマンド，#-adsh_step_endコマンド（ジョブステップを定義する）

形式

#-adsh_step_start
    ［ジョブステップ名］
    ［-successRC 終了コード定義［,終了コード定義 ...］］
    ［-stepVar シェル変数名［,シェル変数名 ...］］
    ［-run｛normal|abnormal|always｝］
    ［-onError｛cont|stop｝］

... ジョブステップ内の処理...（ジョブステップ正常ブロック）

［#-adsh_step_error］

［... ジョブステップエラー時の処理...（ジョブステップエラーブロック）］

#-adsh_step_end

機能

ジョブ定義スクリプトの一部分を，ジョブステップとしてグループ化します。ジョブステップとは，グループ化した一まとまりのコマンド群のことです。ジョブステップの定義は，それぞれ4,095個まで指定できます。

ジョブステップの使用方法については，「5.8.3　ジョブステップを定義する」を参照してください。

ジョブステップ内で実行するコマンドの正常・エラーの判定については，「5.8.8　ジョブ，ジョブステップおよびコマンドの終了コード」を参照してください。

ジョブステップ内でエラーが発生した場合の動作については，「5.8.10　ジョブ実行中にエラーが発生した場合の動作」を参照してください。

引数

ジョブステップ名

〜＜環境変数名＞((1〜31バイト))

ジョブステップを識別する情報の1つであるジョブステップ名を定義します。ジョブステップ名はジョブ実行ログなどにメッセージとして表示されるほか，JP1/Advanced Shellが作成するファイル名の一部にも使用されます。

ジョブステップ名は，ジョブ内で重複できます。

-successRC 終了コード定義［,終了コード定義］...

ジョブステップ正常ブロック内で実行するコマンドが正常終了したと見なす，コマンドの終了コードの値を定義します。定義を「,」で区切って複数指定した場合，どれかの定義を満たした場合に正常終了と見なします。

ただし，ステップ正常ブロック内で実行するコマンドがシグナル終了した場合は，この指定に関係なく，コマンドはエラー終了となります。

ステップ正常ブロック内で実行するコマンドが，successRC属性で定義したコマンドの終了コードに該当しない終了コードを返している場合でも，#-adsh_rc_ignoreコマンドで指定したコマンド名に該当すれば，successRC属性の指定値に関係なく#-adsh_rc_ignoreコマンドの指定が優先されます。

終了コード定義

〜＜符号なし整数＞((0〜255))

終了コード定義は8個まで指定できます。

終了コード

終了コードに合致する場合，正常終了します。

終了コード1:終了コード2

終了コード1以上，終了コード2以下の場合，正常終了します。

終了コード:

終了コード以上の場合，正常終了します。

:終了コード

終了コード以下の場合，正常終了します。

-stepVar シェル変数名［,シェル変数名 ...］

ジョブステップ内だけで有効なシェル変数を宣言します。シェル変数名は，コンマで区切って32個まで指定できます。

シェル変数名

〜＜環境変数名＞((1〜255バイト))

ジョブステップ内だけで有効なシェル変数の名称を指定します。ただし，関数情報配列の名称は指定できません。

-run｛normal|abnormal|always｝

先行ジョブステップや先行ジョブ定義スクリプト中のコマンドの状態によって，そのジョブステップを実行するかどうかを定義します。指定が省略されている場合，normalが指定されたものとします。

normal

先行ジョブステップの中にエラー終了したジョブステップが存在しない場合，または先行ジョブ定義スクリプト中にエラー終了したコマンドが存在しない場合，実行します。

abnormal

先行ジョブステップの中にエラー終了したジョブステップが存在する場合，または先行ジョブ定義スクリプト中にエラー終了したコマンドが存在する場合，実行します。

always

先行ジョブステップや先行ジョブ定義スクリプト中のコマンドの結果に関係なく，常に実行します。

-onError｛cont|stop｝

ジョブステップ正常ブロック内のコマンドがエラー終了したとき，ジョブステップ正常ブロック内の後続ジョブ定義スクリプトを実行しないでジョブステップエラーブロックへジャンプするか，ジョブステップ正常ブロック内の後続ジョブ定義スクリプトを実行するかを定義します。指定が省略されている場合，stopが指定されたものとします。

cont

ジョブステップ正常ブロック内の後続ジョブ定義スクリプトを実行します。

stop

ジョブステップ正常ブロック内の後続ジョブ定義スクリプトを実行しないで，ジョブステップエラーブロック内のジョブ定義スクリプトを実行します。

終了コード

#-adsh_step_start，#-adsh_step_errorの場合

終了コード

意味

0

正常終了

1

エラー終了

#-adsh_step_endの場合

終了コード

意味

ジョブステップ正常ブロック内で最後に終了したコマンドの終了コード

ジョブステップ正常終了

ジョブステップエラー終了

exitコマンドの引数

ジョブステップエラーブロック内で引数を指定したexitコマンドを実行して終了

1

#-adsh_step_end自身のエラー終了

注

#-adsh_step_endコマンドのジョブステップ正常終了およびジョブステップエラー終了の終了コードは，環境設定パラメーターで変更できません。

注意事項

ジョブステップを制御文（if，for，while，until，case）のブロック内に記述する場合は，#-adsh_step_startから#-adsh_step_endまでを同一ブロック内に記述してください。記述しなかった場合は，実行前に文法エラーとなります。

for文，while文，until文のブロック内に，ジョブステップを定義しないでください。これらのブロック内に外部スクリプト展開がある場合，外部スクリプトにジョブステップを含むこともできません。含んだ場合，実行前に文法エラーとなります。

if文，case文のブロック内にはジョブステップを定義できます。ただし，run属性にabnormalまたはalwaysを指定できません。

ジョブステップ内にジョブステップを定義できません。

#-adsh_rc_ignoreコマンドなどを使用して，ジョブステップ正常ブロックで最後に実行したコマンドが0以外で正常終了した場合，ジョブステップが正常終了してもジョブステップの終了コードが0以外となることがあります。

ジョブ定義スクリプト

　#-adsh_rc_ignore cmdA
　#-adsh_step_start S1 -onError cont
　  cmdA    #rc=4となるコマンド
　  cmdA    #rc=4となるコマンド
　#-adsh_step_end

実行ログ

　KNAX6117-I Command cmdA(line=4)  was executed. rc=4 E-Time=0.001s C-Time=0.000s
　KNAX6117-I Command cmdA(line=5)  was executed. rc=4 E-Time=0.026s C-Time=0.000s
　KNAX6597-I ADSH012712.S1 Step succeeded. rc=4 E-Time=0.030s C-Time=0.000s

KNAX6584-Iメッセージを出力してバッチジョブを中断する場合，最後に実行したコマンドに対しては，successRC属性の指定は有効になりません。

ジョブステップ正常ブロック内およびジョブステップエラーブロック内に関数を定義した場合，ジョブステップがrun属性によってスキップされても，定義した関数を使用できます。

使用例

if制御文のブロック内に#-adsh_step_startを指定し，対応する#-adsh_step_endをブロックの外に指定するとエラーになります。

if [[ $a = $b ]]; then
  #-adsh_step_start S1
fi
  #-adsh_step_end

while制御文のブロック内に，ジョブステップを定義するとエラーになります。

while [[ $a = $b ]] do
  #-adsh_step_start S1
  #-adsh_step_end
done

if制御文のブロック内には，ジョブステップを定義できます。

if [[ $a = $b ]]; then
  #-adsh_step_start S1
  #-adsh_step_end
fi

9.6　スクリプト制御文

スクリプト制御文とは，ジョブ定義スクリプトに記述する制御文のことです。

ジョブ定義スクリプトは，制御文に記述された条件式の結果を基に，実行する処理を制御します。制御文を構成する予約語，処理の前には0個以上のスペースおよびタブ文字を挿入できます。

case文（複数処理からの選択）

形式

case 式 in
        パターン1)処理a
                ;;
        パターン2)処理b
                ;;
        ...
        *)処理x
                ;;
esac

機能

文字列の内容に応じて複数ある処理のうち，1つを実行する制御文です。

説明

inはcase文の処理の開始を意味し，esacはcase文の終了を意味します。一致するパターンが存在した場合，「)」から「;;」までに記述されている処理を実行します。1つのパターンは「;;」で区切られ，パターンは複数記述できます。また，*パターンにはどのパターンにも一致しなかった場合の処理を記述します。パターンと一致しているかどうかの判定は，記述された順に行います。式の内容が複数のパターンに一致する場合は，最初に一致したパターンに記述された処理を実行します。

inを「{」，esacを「}」で記述できます。しかし，inの場合はesacを，「{」の場合は「}」を省略できません。それぞれの対応が合わない場合，構文不正でエラー終了します。

パターンには，ワイルドカードによる正規表現の指定ができます。

使用例

パターンの終端を示す「;;」は，処理と同一行に記述できます。

case $cnt in
    0)
        echo "cnt is ZERO" ;;
    *)
        echo "cnt is not ZERO" ;;
esac

パターン内の最後のコマンドがスクリプト拡張コマンドの場合，「;;」はスクリプト拡張コマンドの引数と解釈されるため，改行して記述します。

case $cnt in
    0)
        #-adsh_step_start STEP01
        echo "cnt is ZERO"
        #-adsh_step_end ;;    ←誤り。「;;」の前で改行する。
    *)
        #-adsh_step_start STEP01
        echo "cnt is not ZERO"
        #-adsh_step_end
        ;;
esac

for文（繰り返し実行）

形式1

for 変数［in wordlists］
do
        処理
done

形式2

for 変数［in wordlists］;do
        処理
done

機能

値を順次変化させながら，同じ処理を繰り返し実行する制御文です。

説明

先頭にfor文があり，doとdoneで終わります。ループの回数はwordlistsの要素数で決定します。変数にはwordlistsの各要素が左から順に代入され，doからdoneの間に記述された処理を実行します。wordlistsの各要素をすべて代入し終えると，for文は終了します。

wordlistsの各要素は，「要素1 要素2 ...要素n」のようにスペースで指定します。

wordlistsに変数を指定した場合，指定した変数の値をdoからdoneの間に変更してもfor文の変数に代入される値は変更されません。

wordlistsに「$@」と指定された場合，ジョブ定義スクリプトの引数をwordlistsとして使用します。また，in wordlistsは省略できますが，in wordlistsを省略した場合はwordlistsに「$@」が指定された場合と同じ処理をします。

doを「{」，doneを「}」で記述できます。しかしdoの場合はdoneを，「{」の場合は「}」を省略できません。それぞれの対応が合わない場合，構文不正でエラー終了します。

wordlistsの直後に「;」を付けた場合，継続して記述できます。

使用例

値を変えて表示を3回繰り返します。

for num in 1 2 3
do
    echo "num is $num"
done

if文（条件分岐）

形式1

if 条件1
then
        処理a
［elif 条件2
then
        処理b］
［else
        処理c］
fi

形式2

if 条件1;then
        処理a
［elif 条件2; then
        処理b］
［else
        処理c］
fi

機能

ある条件を指定し，その結果が真(0)か偽（0以外）のどちらかによって処理を分岐します。

説明

if文で開始し，fi文で終了します。条件には任意のコマンドまたは&&，||，( )，{ }などを使用し，複数のコマンドをまとめて指定するコマンドリストを記述します。コマンドまたはコマンドリストの終了コードが0の場合はthen節に進み，0以外の場合はelse節またはelif節に進みます。

elif節およびelse節は省略できますが，thenおよびfiは必ず指定してください。elif節は複数指定できます。ifに対応するthenおよびfiが見つからない場合，構文不正でエラー終了します。

条件の直後に「;」を付けた場合，継続して記述できます。

使用例

値を3と比較して結果を表示します。

if [[ $num -eq 3 ]]
then
    echo "num = 3"
elif [[ $num -lt 3 ]]
then
    echo "num < 3"
else
    echo "num > 3"
fi

until文（条件が成立するまでの繰り返し）

形式1

until 条件
do
        処理
done

形式2

until 条件;do
        処理
done

機能

条件が成立するまで，同じ処理を繰り返し実行する制御文です。

説明

先頭にuntil文があり，doとdoneで終わります。条件には任意のコマンドまたは&&，||，( )，{ }などを使用し，複数のコマンドをまとめて指定するコマンドリストを記述します。条件に記述したコマンドやコマンドリストの実行による終了コードが0になるまで，doからdoneの間に記述された処理を繰り返し実行します。そのため，until文から抜けるには，doからdoneの間の処理で条件が成立するよう状態を変化させる必要があります。また，until文の先頭時点で条件が成立していた場合，処理は一度も実行されることなく終了します。

doおよびdoneは省略できません。doとdoneの対応が合わない場合，構文不正でエラー終了します。

条件の直後に「;」を付けた場合，継続して記述できます。

使用例

0から10になるまで表示を繰り返します。

num=0
until [[ $num -eq 10 ]]
do
    echo "num is $num"
    ((num+=1))
done

while文（条件が成立している間の繰り返し）

形式1

while 条件
do
        処理
done

形式2

while 条件;do
        処理
done

機能

条件が成立している間，同じ処理を繰り返し実行する制御文です。

説明

先頭にwhile文があり，doとdoneで終わります。条件には任意のコマンドまたは&&，||，( )，{ }などを使用し，複数のコマンドをまとめて指定するコマンドリストを記述します。条件に記述したコマンドやコマンドリストの実行による終了コードが0という条件を満たしている間，doからdoneの間に記述された処理を繰り返し実行します。そのため，while文から抜けるには，doからdoneの間の処理で条件が不成立になるよう状態を変化させる必要があります。

doおよびdoneは省略できません。doとdoneの対応が合わない場合，構文不正でエラー終了します。

条件の直後に「;」を付けた場合，継続して記述できます。

使用例

numの値が0から9の間，表示を繰り返します。

num=0
while [[ $num -ne 10 ]]
do
    echo "num is $num"
    ((num+=1))
done

9.7　スクリプト予約語コマンド

スクリプト予約語コマンドとは，ジョブ定義スクリプトで予約語として使用できるコマンドのことです。

timeコマンド（コマンドの実行時間を出力する）

形式

time［-p］［command］

機能

コマンドの実行時間を標準エラー出力に出力します。

commandに指定したコマンドの実行時間を標準エラー出力に出力します。commandを指定しない場合は，シェルの実行時間を出力します。

出力形式を次に示します。

commandを指定した場合

commandの実行時間　commandのユーザーCPU時間　commandのシステムCPU時間

Windowsの場合，「commandのユーザーCPU時間」，「commandのシステムCPU時間」には，孫プロセスのCPU時間は含まれません。

commandを指定しない場合

シェル※のユーザーCPU時間　シェル※のシステムCPU時間

注※　シェルから起動したプロセスも含みます。

Windowsの場合，「シェルのユーザーCPU時間」，「シェルのシステムCPU時間」には，孫プロセスのCPU時間は含まれません。

引数

-p

commandの実行時間，ユーザーCPU時間，システムCPU時間をそれぞれ改行して出力します。

command

実行時間およびCPU時間を出力したいコマンドの名称を指定します。

終了コード

終了コード

意味

commandに指定したコマンドの終了コード

commandを指定しない場合は0

正常終了

注意事項

timeコマンドの結果を標準エラー出力以外のファイルにリダイレクトできません。

このコマンドの実行結果はジョブ実行ログファイルに出力されません。また，ジョブやジョブステップの正常終了またはエラー終了の判定にも使用されません。標準エラー出力に出力される実行時間，および呼び出したコマンドの実行結果を参照してください。

使用例

コマンドの実行時間およびCPU時間を出力します。

ジョブ定義スクリプトの内容

time date

実行ジョブのSTDOUTファイルの内容

********   JOB SCOPE STDOUT    ********
Thu Jul  7 11:06:38 JST 2011

実行ジョブのSTDERRファイルの内容

********   JOB SCOPE STDERR    ********
    0.01s real     0.00s user     0.00s system

第5編　トラブルシューティング編

10　トラブルシューティング

トラブルシューティングとして，対処の手順，ログ情報の種類，必要な資料，資料の採取方法について説明します。

10.1　対処の手順

JP1/Advanced Shellでジョブ定義スクリプトを実行してエラー終了するなどのトラブルが発生した場合は，トラブルが発生したときの現象を確認します。

メッセージが出力されている場合は，メッセージの内容を確認します。各メッセージの出力要因と対処方法については，「11.　メッセージ」を参照してください。また，メッセージの出力要因に応じて，次のように対処してください。

ジョブ定義スクリプトの問題の場合

ジョブ定義スクリプトの問題を指摘するメッセージが出力された場合は，次のことを実施します。

問題の調査・対処

問題の調査結果を基に開発環境でジョブ定義スクリプトを修正し，デバッガで確認します。

運用の実施

再び実行環境で運用を実施します。

システム管理者に連絡する必要がある問題の場合

システム管理者に連絡する必要があるメッセージが出力された場合は，次のことを実施します。

資料の採取

トラブルの要因を調べるために資料の採取が必要です。「10.2　トラブル発生時に採取が必要な資料」を参照して，必要な資料を採取してください。

問題の調査

採取した資料を基に問題の要因を調査し，問題が発生している部分と問題の範囲を切り分けます。

ユーザー応答機能の応答入力ができない場合

問題の調査・対処

「10.1.1　ユーザー応答機能使用時の障害対応」を参照して問題を調査し，対処してください。

10.1.1　ユーザー応答機能使用時の障害対応

応答要求メッセージに対してはJP1/IM - Viewから応答します。ただし，次のケースではJP1/IM - Viewから応答を入力できません。

表10‒1　応答待ちイベントに対して応答が入力できないケース

項番

ケース

ユーザーへの通知

1

JP1/IMから応答を入力した際にJP1/Advanced Shell側でエラーとなり，JP1/IM側で応答の成功/失敗が不明な場合

電文不正メッセージなど。

2

滞留する応答待ちイベントが2,000件を超えて，応答待ちイベントの滞留が解除される場合

JP1/IM - ViewにKAVB0551-Eが表示される。

3

通信障害などでJP1/IMが使用できない場合

JP1/IM - Viewが使用できない状態。

応答要求メッセージは，JP1/Advanced Shellがインストールされているマシン上の共有メモリ上で管理しているため，JP1/Advanced Shellの管理者は，次のコマンドで応答要求メッセージの状況確認や応答ができます。

応答待ち状態にある応答要求メッセージの一覧表示

adshlsmsgコマンドを使用して，運用者からの応答待ち状態にある応答要求メッセージの一覧を表示できます。詳細については，「8.3　シェル運用コマンド」の「adshlsmsgコマンド（障害発生時に，応答要求メッセージの一覧を表示する）」を参照してください。

応答待ち状態にある応答要求メッセージに対する手動応答とキャンセル

adshchmsgコマンドを使用して，運用者からの応答待ち状態にある応答要求メッセージに対して応答を入力またはキャンセルできます。詳細については，「8.3　シェル運用コマンド」の「adshchmsgコマンド（障害発生時に，応答要求メッセージに対して手動で応答する）」を参照してください。

10.1.2　ルートジョブが子孫ジョブより先に終了した場合の注意事項

子孫ジョブからさらに実行する子孫ジョブがある場合，中間のジョブがUNIXのSIGKILLやWindowsのTerminateProcessで即時終了すると，ルートジョブがすべての子孫ジョブの完了を待たないで終了することがあります。そのため，このような即時終了操作は実行しないでください。詳細については，「3.2.3(4)　子孫ジョブからさらに実行する子孫ジョブがある場合の注意事項」を参照してください。

もし，この現象が発生した場合は，関連するルートジョブや子孫ジョブの実行結果を調査してください。なお，即時終了したジョブ以外のすべての子孫ジョブは，スプールジョブディレクトリが削除に失敗して残っているか，削除されていてもJOBLOGの内容が標準エラー出力へ出力されているため，ログは失われません。

10.2　トラブル発生時に採取が必要な資料

トラブルが発生したときに採取が必要な資料を次の表に示します。

表10‒2　トラブルが発生したときに採取が必要な資料

種別

内容

採取する資料

ログ

JP1/Advanced Shellが出力するログ

システム実行ログ

トレースログ

障害情報

システムが採取する障害情報

dumpファイル【Windows限定】

coreファイル【UNIX限定】

スプール情報

スプールを管理する情報

指定の環境ファイルおよびジョブIDファイル。.jobidまたはadsh.jobidのファイル名が該当します。

環境情報

システムの状態

基礎情報

プロセス情報

メモリ使用情報

ファイル情報

ネットワーク使用状況

JP1イベント情報

エラーログ

【UNIX限定】

ユーザー応答機能管理デーモンの情報

ユーザー応答機能管理デーモンの起動・停止に関する情報

ユーザー応答機能管理デーモンの起動ログおよびpidファイル

なお，JP1/Advanced Shellのadshcollectコマンドを使うと必要な資料を一括採取できます。adshcollectコマンドの詳細については，「10.3　資料の採取方法」を参照してください。

種別ごとに必要な資料の詳細を次に示します。なお，環境情報の詳細については，製品の内部情報であるため，記載しません。

10.2.1　ログ

採取が必要なログを次の表に示します。

表10‒3　採取が必要なログ

種類

内容

出力先

システム実行ログ

JP1/Advanced Shellの統括的な実行ログ

環境ファイルのLOG_DIRパラメーター※の指定に従って出力されます。

トレースログ

JP1/Advanced Shellの内部トレースログ

環境ファイルのTRACE_DIRパラメーター※の指定に従って出力されます。

カスタムジョブ，エディタおよび共通コマンドのトレースログは，システムの仕様に従って出力されます。

注※

パラメーターのデフォルト値については，「adshcollectコマンド（資料を採取する）」の「表10-8　環境ファイルのキーワードと指定の関係」を参照してください。

10.2.2　障害情報

採取が必要な障害情報を次の表に示します。障害情報は，保守情報を採取するための定義ファイルにDUMPまたはCOREを指定したときだけ採取されます。

表10‒4　採取が必要な障害情報

種類

内容

出力先

dumpファイル【Windows限定】

ワトソンログなどが採取する障害情報

ワトソン博士などのデバッグツールを起動している場合，出力されます。ワトソン博士の場合，デフォルトでは次のディレクトリに障害情報が出力されます。

共通アプリケーションフォルダ¥Microsoft¥Dr Watson¥drwtsn32.log

coreファイル【UNIX限定】

システムが採取する障害情報

各プロセスのエラー終了時，システムに設定されたcoreファイルの出力先ディレクトリに出力されます。設定がない場合は，adshexec起動時のカレントディレクトリに出力されます。

10.2.3　スプール情報

採取が必要なスプール情報を次の表に示します。

表10‒5　採取が必要なスプール情報

種類

内容

出力先

環境ファイル

JP1/Advanced Shellの定義情報

環境変数ADSH_ENVに作成した環境ファイルのパス

adshcollectコマンドの-eオプションで指定した環境ファイル（カスタムジョブの［実行定義］ダイアログボックスの［ジョブ環境ファイル名］に定義したジョブ環境ファイル，およびエディタの［実行環境の設定］ダイアログボックスのジョブ環境ファイルに定義したジョブ環境ファイル）

スプールディレクトリ下のファイル

スプールに出力したバッチジョブの情報

ジョブIDファイルは，.jobidまたはadsh.jobidが該当します。

10.2.4　ユーザー応答機能管理デーモンの情報【UNIX限定】

採取が必要なユーザー応答機能管理デーモンの情報を次の表に示します。

表10‒6　採取が必要なユーザー応答機能管理デーモンの情報

種類

内容

出力先

起動ログ

ユーザー応答機能管理デーモンの起動ログ

「/opt/jp1as/system」にユーザー応答機能管理デーモンの起動ログが出力されます。

詳細は「2.6.8　ジョブ実行結果とログの出力情報を定義する」を参照してください。

pidファイル

ユーザー応答機能管理デーモンのpidファイル

「/opt/jp1as/system」にユーザー応答機能管理デーモンのpidファイルが出力されます。

pidファイルは次のファイル名が該当します。

物理ホストのユーザー応答機能管理デーモンの場合

adshmd.pid

論理ホストのユーザー応答機能管理デーモンの場合

adshmd_論理ホスト名.pid

10.3　資料の採取方法

JP1/Advanced Shellがエラー終了，無応答になった場合などに，システム管理者が障害調査を実施するためのコアダンプ（coreファイルまたはdumpファイル），ログなどの資料が必要となります。adshcollectコマンドを使用すると，これらの障害調査のための資料を一括して採取できます。

この節では，adshcollectコマンドの使用方法，保守情報を採取するための定義ファイルの設定，および環境ファイルの設定について説明します。adshcollectコマンドで採取する保守情報（資料）は，WindowsとUNIXとで異なる場合があります。

adshcollectコマンド（資料を採取する）

形式

adshcollect 保守情報出力先ディレクトリ ［-f 定義ファイル名］
　　　　　　［-e 環境ファイル名］ ［-h 論理ホスト名］

機能

adshcollectコマンドによって，障害調査のための資料を一括して収集できます。adshcollectコマンドを実行する場合は，Windowsのときはコマンドプロンプトから，UNIXのときはシェルから起動してください。

このコマンドは，障害発生時の障害情報を採取するため，実行ユーザーの権限で実行する必要があります。ただし，ユーザー応答機能の情報を採取する場合は，管理者権限で実行する必要があります。

adshcollectコマンドの使用手順を次に示します。

障害が発生したときの環境ファイルを用意してください。

障害発生後，環境ファイルを変更した場合は，環境ファイルを障害発生時の運用環境に合わせて書き換えてください。障害が発生したときに環境ファイルを使用していなかった場合は，用意は不要です。

注意事項

Windows版の場合，環境ファイルに&（アンパーサンド）が記述されていると，adshcollectコマンドがエラー終了することがあります。

ジョブ環境ファイルに&（アンパーサンド）が記述されている場合は，ジョブ環境ファイルをコピーして，コピーしたジョブ環境ファイルの&（アンパーサンド）を削除してください。さらに手順3で，コピーしたジョブ環境ファイルを-eオプションに指定してください。

システム環境ファイルに&（アンパーサンド）が記述されている場合は，事前にシステム環境ファイルを別のディレクトリにコピーしてバックアップを作成したあと，&（アンパーサンド）を削除してください。

定義ファイルを用意してください。

coreファイルまたはdumpファイルを採取する場合，任意の場所に定義ファイルを作成してください。coreファイルまたはdumpファイルを採取する必要がない場合は，作成は不要です。

adshcollectコマンドを実行します。

次のように引数を指定してadshcollectコマンドを実行してください。

実行時の注意点については「注意事項」を参照してください。

保守情報出力先ディレクトリ

指定したディレクトリに保守情報が作成されるため，次の点に注意してください。

・保守情報の出力先は書き込み可能であり，十分な空き容量があること

・JP1/Advanced Shellで使用しないディレクトリであること

環境ファイル名

手順1で用意した環境ファイルのパスを-eオプションまたは環境変数ADSH_ENVに指定してください。手順1で環境ファイルを用意しなかった場合は，指定は不要です。

定義ファイル名

手順2で用意した定義ファイルのパスを-fオプションに指定してください。手順2で定義ファイルを用意しなかった場合は，指定は不要です。

論理ホスト名

障害が発生したときの環境が論理ホストの場合は，-hオプションに論理ホスト名を指定してください。障害が発生したときの環境が論理ホストではない場合は，指定は不要です。

引数

保守情報出力先ディレクトリ

【Windows限定】

保守情報を格納したファイルを出力先ディレクトリに出力します。ディレクトリの名称は次の形式となります。

ADSHyyyymmddhhmmss

　yyyymmdd：adshcollectコマンドを起動した日付

　hhmmss：adshcollectコマンドを起動した24時間制のローカルタイムでの時刻

Windowsの標準機能にはUNIXのtar相当の機能がないため，保守情報を提供する場合，このファイルをユーザーの圧縮ツールを使用してzipまたはlzh形式などの一般的な形式に圧縮してください。

【UNIX限定】

収集した情報をtarのアーカイブファイルとして出力する場合の，出力先のディレクトリを指定します。また，一時ファイルを必要とする場合は，このディレクトリに作成します。アーカイブファイルの名称は次の形式となります。

ADSHyyyymmddhhmmss.tar

　yyyymmdd：adshcollectコマンドを起動した日付

　hhmmss：adshcollectコマンドを起動した24時間制のローカルタイムでの時刻

保守情報を出力した圧縮ファイルのディスク使用量は次のとおりです。

システム実行ログ，トレースログの容量＋DUMPまたはCOREで指定したファイルの容量※

注※

Windows環境の場合はDUMPファイル，UNIX環境の場合はCOREファイルになります。

-f 定義ファイル名

採取する保守情報が定義された定義ファイルの名称を指定します。絶対パスまたはカレントディレクトリからの相対パスで指定します。設定内容は項目「定義ファイルと環境ファイルの設定」を参照してください。

定義ファイル名の指定は任意です。定義ファイル名の指定がない場合は，DUMP，CORE相当の保守情報を採取しません。

-e 環境ファイル名

このオプションは，環境変数ADSH_ENVに設定したファイルパスと別のファイルパスを指定したい場合に指定します。絶対パスまたはカレントディレクトリからの相対パスで指定します。

このオプションの指定がない場合

環境変数ADSH_ENVに設定したファイルパスを環境ファイル名として扱います。

このオプションと環境変数ADSH_ENVの指定がない場合

システム環境ファイルの内容に従って資料を採取します。

このオプションの指定，環境変数ADSH_ENVの指定，およびシステム環境ファイルがない場合

SPOOL_DIR，LOG_DIRおよびTRACE_DIRはデフォルト値になります。

-h 論理ホスト名

障害情報を採取する論理ホスト名を指定します。指定された論理ホスト名を基に環境ファイルが解析されます。

「-h」だけ指定して引数の論理ホスト名を指定しなかった場合は，JP1_HOSTNAME環境変数から論理ホスト名を取得します。そのときJP1_HOSTNAME環境変数の指定がなければ，usageを出力してエラー終了します。JP1_HOSTNAME環境変数については，マニュアル「JP1/Base 運用ガイド」を参照してください。

定義ファイルと環境ファイルの設定

採取する情報を定義ファイルに定義し，採取情報の出力先を環境ファイルに定義します。

定義ファイルの定義

定義ファイルは，「#-adsh_conf△₁」に続いてキーワードと値をスペースで区切って記述します。値に指定するファイル名はすべて絶対パスで指定します。

定義ファイルのキーワードと内容を次の表に示します。どのキーワードも指定は任意ですが，定義ファイルにはこれらのキーワード以外の内容（例えばコメントなど）は指定できません。また，どのキーワードにも値にワイルドカードは指定できません。

表10‒7　定義ファイルのキーワードと指定の関係

キーワード

指定内容

複数指定

DUMP【Windows限定】

ワトソンログなど，Windowsで採取したいdumpファイルを指定します。ワトソンログについては，Windowsの資料を参照してください。

パスにスペースがある場合は，ダブルクォーテーションで囲んでください。

○

（16個まで）

CORE【UNIX限定】

coreファイルを障害情報として採取する必要があるとき，ファイルを格納しているディレクトリ名を指定します。指定したディレクトリ以下にある，名前の一部に「core」と付いたファイルを一括して採取します。

○

（凡例）

○：指定できます。

環境ファイルの定義

環境ファイルのキーワードと内容を次の表に示します。どのキーワードも指定は任意です。キーワードの指定がない場合は，表の「パス名のデフォルト値」に示す情報を採取します。また，どのキーワードにも値にワイルドカードは指定できません。

表10‒8　環境ファイルのキーワードと指定の関係

キーワード

（環境設定パラメーター）

指定内容

パス名のデフォルト値

複数指定

SPOOL_DIR

スプールルートディレクトリのパス名※

実行環境の場合【Windows限定】

共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASE¥spool

開発環境の場合【Windows限定】

共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASD¥spool

実行環境の場合【UNIX限定】

/var/opt/jp1as/spool

×

LOG_DIR

システム実行ログ出力先ディレクトリのパス名※

実行環境の場合【Windows限定】

共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASE¥log

開発環境の場合【Windows限定】

共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASD¥log

実行環境の場合【UNIX限定】

/opt/jp1as/log

×

TRACE_DIR

トレースログ出力先ディレクトリのパス名※

実行環境の場合【Windows限定】

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASE¥trace

開発環境の場合【Windows限定】

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASD¥trace

実行環境の場合【UNIX限定】

/opt/jp1as/trace

×

（凡例）

×：指定できません。

注※

Windowsのパスにスペースがある場合は，ダブルクォーテーションで囲んでください。

定義ファイルと環境ファイルの指定例

Windowsの場合

定義ファイルの指定例を次に示します。

#-adsh_conf DUMP "C:¥Program Files¥Hitachi¥JP1AS¥JP1ASE¥dump"

環境ファイルの指定例を次に示します。

#-adsh_conf SPOOL_DIR "C:¥Documents and Settings¥All Users¥Documents¥Hitachi¥JP1AS¥JP1ASE¥spool"
#-adsh_conf LOG_DIR "C:¥Documents and Settings¥All Users¥Documents¥Hitachi¥JP1AS¥JP1ASE¥log"
#-adsh_conf TRACE_DIR "C:¥Documents and Settings¥All Users¥Application Data¥Hitachi¥JP1AS¥JP1ASE¥trace"

UNIXの場合

定義ファイルの指定例を次に示します。

#-adsh_conf  CORE  /home/user1/program1

環境ファイルの指定例を次に示します。

#-adsh_conf  SPOOL_DIR  /var/opt/jp1as/spool
#-adsh_conf  LOG_DIR  /opt/jp1as/log
#-adsh_conf  TRACE_DIR  /opt/jp1as/trace

adshcollectコマンドで採取するファイルの一覧

adshcollectコマンドで採取するファイルと最大サイズは，次の表に示すようにWindowsとUNIXで異なります。

表10‒9　adshcollectコマンドで採取するファイルと最大サイズ【Windows限定】

ファイルの種類

ファイル名

最大サイズ

採取

スプール管理ファイル

［環境ファイルのSPOOL_DIR※］¥adsh.jobid

1KB程度

○

システム実行ログ（JP1/Advanced Shell）

［環境ファイルのLOG_DIR※］¥AdshLog.log

［環境ファイルのLOG_DIR※］¥AdshLog_n.log（nは面数）

［環境ファイルのLOG_FILE_SIZE］×(n＋1) MB

○

［環境ファイルのLOG_DIR※］¥AdshLog.conf

1KB程度

○

JP1/Advanced Shell内部処理の実行ログ

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASE¥uxpl¥spool¥uxpllog［n］.txt（nは面数：最大2面）

5MB

○

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASD¥uxpl¥spool¥uxpllog［n］.txt（nは面数：最大2面）

5MB

○

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥misc¥uxpl¥spool¥uxpllog［n］.txt（nは面数：最大2面）

5MB

○

トレースログ

（JP1/Advanced Shell）

［環境ファイルのTRACE_DIR※］¥AdshTrace_［n］.log（nは面数：4面固定）

［環境ファイルのTRACE_FILE_SIZE］×nMB

○

トレースログ（カスタムジョブ）

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASV¥trace¥AdshTrace_1.log

1MB

○

トレースログ（エディタ）

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASD¥adshedit¥trace¥AdshTrace_1.log

1MB

○

トレースログ

（JP1/Advanced Shell，JP1/Advanced Shell - Developer共通コマンド）

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥misc¥trace¥AdshTrace_［n］.log（nは面数）

8MB

○

トレースログ（エディタ独自機能）

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥JP1ASD¥adshedit¥trace¥adshedit.txt

ユーザー環境の設定による

○

dumpファイル

定義ファイルのDUMP以下のdumpファイル

ユーザー環境の設定による

△

環境ファイル

環境変数ADSH_ENVのファイルまたは-eオプションで指定したファイル

1KB程度

△

システム環境ファイル

共通アプリケーションフォルダ¥Hitachi¥JP1AS¥製品名¥conf¥adshrc.ase

1KB程度

△

マシンに設定されているホスト名

システムルートフォルダ¥system32¥drivers¥etc¥hosts

ユーザー環境の設定による

○

マシンに設定されているサービスポート

システムルートフォルダ¥system32¥drivers¥etc¥services

ユーザー環境の設定による

○

環境情報ファイル

ADSHTMPyyyymmddhhmmss.txt

　yyyymmdd：adshcollectコマンドの起動日

　hhmmss：adshcollectコマンドの起動時刻

ユーザー環境の設定による

○

（凡例）

○：adshcollectコマンドによって必ず採取します。

△：adshcollectコマンドのオプション指定時に採取します。

注※

環境ファイルで変更できます。パス名のデフォルト値については，「表10-8　環境ファイルのキーワードと指定の関係」を参照してください。

表10‒10　adshcollectコマンドで採取するファイルと最大サイズ【UNIX限定】

ファイルの種類

ファイル名

最大サイズ

採取

スプール

［環境ファイルのSPOOL_DIR※］/.jobid

1KB程度

○

システム実行ログ

［環境ファイルのLOG_DIR※］/AdshLog.log

［環境ファイルのLOG_DIR※］/AdshLog_［n］.log（nは面数）

［環境ファイルのLOG_FILE_SIZE］×(n＋1) MB

○

［環境ファイルのLOG_DIR※］/AdshLog.conf

1KB程度

○

トレースログ

［環境ファイルのTRACE_DIR※］/AdshTrace_［n］.log（nは面数）

［環境ファイルのTRACE_FILE_SIZE］×nMB

○

coreファイル

定義ファイルのキーワード「CORE」で採取したcoreファイル

ユーザー環境の設定による

△

ユーザー応答機能管理デーモンの情報

/opt/jp1as/system以下の起動ログおよびpidファイル

1KB程度×稼働するユーザー応答機能管理デーモンの数

○

環境ファイル

環境変数ADSH_ENVのファイルまたは-eオプションで指定したファイル

1KB程度

△

システム環境ファイル

/opt/jp1as/conf/adshrc.ase

1KB程度

○

インストール済みの日立製品

/etc/.hitachi/pplistd/pplistd

ユーザー環境の設定による

○

環境変数

AIXまたはLinuxの場合

/etc/environment

HP-UXの場合

/etc/profile

Solarisの場合

/etc/skel/.profile

ユーザー環境の設定による

○

環境情報ファイル

ADSHTMPyyyymmddhhmmss.txt

　yyyymmdd：adshcollectコマンドの起動日

　hhmmss：adshcollectコマンドの起動時刻

ユーザー環境の設定による

○

tarのログ

ADSHTARyyyymmddhhmmss.txt

　yyyymmdd：adshcollectコマンドの起動日

　hhmmss：adshcollectコマンドの起動時刻

1KB程度

○

（凡例）

○：adshcollectコマンドによって必ず採取します。

△：adshcollectコマンドのオプション指定時に採取します。

注※

環境ファイルで変更できます。パス名のデフォルト値については，「表10-8　環境ファイルのキーワードと指定の関係」を参照してください。

注意事項

保守情報出力先ディレクトリには，出力ファイルおよび一時ファイルを作成するため，空き領域を確保してください。また，保守情報出力先ディレクトリは書き込み可能にしてください。

adshcollectコマンドの実行中に強制終了すると，一時ファイルが保守情報出力先ディレクトリに残る場合があります。このような場合は，一時ファイルを手動で削除してください。

【UNIX限定】ユーザー応答機能を使用している場合は，root権限を持つユーザーでadshcollectコマンドを実行してください。root権限を持つユーザー以外で実行した場合は，ユーザー応答機能の情報を採取できません。

【Windows限定】ユーザー応答機能を使用している場合は，Administrators権限を持つユーザーでadshcollectコマンドを実行してください。Administrators権限を持つユーザー以外で実行した場合は，ユーザー応答機能の情報を採取できません。

保守情報出力先ディレクトリのパス，環境ファイルのパス，定義ファイルのパス，SPOOL_DIRのパス，LOG_DIRのパス，TRACE_DIRのパス，DUMPのパス，COREのパスおよびadshcollectコマンド実行時のカレントディレクトリのパスに次の記号を指定しないでください。

& ( ) [ ] { } ^ = ; ! ' + , ` ~ # %

adshcollectコマンドの引数の保守情報出力先ディレクトリ，定義ファイル名，環境ファイル名，論理ホスト名にオプションを指定した場合，そのオプションをディレクトリまたはファイル名，論理ホスト名として解釈します。

11　メッセージ

この章では，JP1/Advanced Shellが出力するメッセージとエラーの詳細について説明します。

11.1　メッセージの形式

JP1/Advanced Shellのメッセージの形式について説明します。

11.1.1　メッセージの出力形式

JP1/Advanced Shellが出力するメッセージの形式を次に示します。

KNAXnnnn-t メッセージテキスト

KNAX

メッセージプリフィックスです。JP1/Advanced Shellのメッセージであることを示します。

nnnn

メッセージ番号を示します。

t

メッセージ種別です。メッセージに対する処置の指標を示します。メッセージ種別には，次の表に示す種類があります。

表11‒1　メッセージ種別

メッセージ種別

種類

意味

E

エラー（Error）

各ライブラリ，コマンドまたはサーバの機能が働かない障害が起きたことを示します。

定義誤り，コマンドの引数の指定誤りによって，動作できないことを示します。

W

警告（Warning）

メッセージ出力後，処理は続けられます。

I

情報（Information）

ユーザーに情報を知らせます。

(1)　ジョブ実行ログに出力されるメッセージの出力形式

メッセージがジョブ実行ログに出力される場合，次のようにメッセージの前に時刻およびジョブ識別子が付加されます。

時刻 ジョブ識別子 KNAXnnnn-t メッセージテキスト

時刻

メッセージを出力した時刻をhh:mm:ssの形式で示します。

ジョブ識別子

メッセージを出力したジョブのジョブ識別子を6桁で示します。6桁に満たない場合は，前方に0を付加して6桁にします。

(2)　メッセージ用ダイアログボックスまたはエラーウィンドウに出力されるメッセージの出力形式

一部のメッセージは，次の図で示すメッセージ用ダイアログボックスまたはエラーウィンドウに出力されることがあります。

メッセージ用ダイアログボックス

図11‒1　メッセージ用ダイアログボックス

メッセージ用ダイアログボックスでは，メッセージの内容によってメッセージの種類がアイコンで表示されます。メッセージ用ダイアログボックスでのアイコンの意味を次の表に示します。

表11‒2　メッセージ用ダイアログボックスでのアイコンの意味

種類

アイコン

意味

ユーザーの対応方法

情報

処理中にユーザーに伝えるべき事象が発生したときに表示されます。

［OK］をクリックします。

質問

処理中にユーザーに問い合わせるべき事象が発生したことを伝え，二者択一の選択肢のどちらを実施するかを問い合わせます。

［はい］または［いいえ］を選択します。

警告

処理中にユーザーに警告すべき事象が発生したことを伝え，二者択一の選択肢のどちらを実施するかを問い合わせます。

［OK］または［キャンセル］を選択します。

エラー

処理中にエラーが発生したときに表示されます。

［OK］をクリックします。

エラーウィンドウ

JP1/Advanced Shellエディタを使用している場合，次の図で示すエラーウィンドウにメッセージが表示されることもあります。

図11‒2　エラーウィンドウ

11.1.2　メッセージの記載形式

出力するメッセージの記載形式を次に示します。

メッセージテキスト中の太字で書かれている部分は，メッセージテキスト内で表示内容が変わる位置を示しています。メッセージIDの右に【Windows限定】または【UNIX限定】が記載されている場合は，おのおのがWindows環境またはUNIX環境だけで表示されます。

メッセージテキスト内に記載しているエラー詳細の意味と対策方法については，「11.4　エラーの詳細」を参照してください。

メッセージはメッセージID順に記載しています。記載形式の例を次に示します。

メッセージID　［【Windows限定】|【UNIX限定】］

メッセージテキスト

メッセージの説明文

(Ｓ)

システムの処置を示します。

(Ｏ)

メッセージが出力された場合の，開発者または運用者の対処を示します。

11.1.3　メッセージ番号の割り当て

JP1/Advanced ShellのメッセージプリフィックスKNAXの後に続く，メッセージ番号の範囲で示されるメッセージの意味を次の表に示します。

表11‒3　メッセージ番号の範囲で示されるメッセージの意味

メッセージ番号

メッセージの意味

0001〜0299

ジョブの基本的な動作に関連するメッセージ

0300〜0399

コマンドの引数に関連するメッセージ

0400〜0699

環境ファイルに関連するメッセージ

0700〜0899

ジョブ実行ログに関連するメッセージ

1600〜1899

領域の割り当てに関連するメッセージ

1900〜2199

ジョブステップの実行に関連するメッセージ

2200〜2499

メッセージの処理に関連するメッセージ

3000〜3999

デーモンに関連するメッセージ

4414〜4429

スプールジョブの操作に関連するメッセージ

5300〜5399

アダプタコマンドに関連するメッセージ

5400〜5499

ユーザー応答コマンドに関連するメッセージ

6000〜6699

バッチジョブの実行制御に関連するメッセージ

6700〜6999

クロスプラットフォームに関連するメッセージ

7000〜7399

開発環境に関連するメッセージ

7400〜7599

ユーザー応答機能に関連するメッセージ

7600〜7799

JP1連携機能に関連するメッセージ

7800〜7999

共通機能に関連するメッセージ

9000〜9999

ライセンス関連メッセージ

11.2　メッセージの出力先

JP1/Advanced Shellが出力するメッセージの出力先を次の表に示します。この表は拡張出力モードのメッセージ出力先を示しています。簡潔出力モードまたは最小出力モードのメッセージ出力先については，表の下の説明を参照してください。

表11‒4　JP1/Advanced Shellが出力するメッセージの出力先（拡張出力モードの場合）

メッセージIDの範囲

メッセージの出力先

stdout

stderr

JOBLOG

システム実行ログ

GUI

KNAX0001-E

−

○

○

○

○

KNAX0004-I

−

−

−

○

−

KNAX0030-E，KNAX0031-E

−

○

−

−

○

KNAX0091-I，KNAX0092-I

−

−

○

○

−

KNAX0098-I

−

○

○

○

−

KNAX0101-E

−

○

○

○

○

KNAX0220-E

−

○

−

○

−

KNAX0235-E〜KNAX0239-E

−

○

−

○

○

KNAX0240-I

−

○

−

○※1

−

KNAX0299-E

−

○

○

○

○

KNAX0300-I

−

○

−

−

−

KNAX0301-E〜KNAX0307-E

−

○

−

−

○

KNAX0308-E〜KNAX0309-I

−

○

−

−

−

KNAX0310-E〜KNAX0336-E

−

○

−

−

○

KNAX0401-E〜KNAX0702-E

−

○

−

−

○

KNAX0703-E

−

○

−

○

○

KNAX0704-E〜KNAX0708-E

−

○

−

−

○

KNAX0719-I

−

○

−

−

−

KNAX0720-E〜KNAX0723-E

−

○

−

−

○

KNAX0724-I

−

○

−

−

−

KNAX0725-E

−

○

−

−

○

KNAX0726-I

−

○

−

−

−

KNAX0727-E，KNAX0728-E

−

○

−

−

○

KNAX0800-E

−

○

−

−

○

KNAX0801-E

−

○

−

−

−

KNAX0802-E

−

○

−

−

○

KNAX0803-E

−

○

○

○

○

KNAX0804-E

−

○

−

−

○

KNAX0805-E

−

○

○

○

○

KNAX1600-I〜KNAX1605-I

−

−

○

−

−

KNAX1632-E

−

−

○

−

○

KNAX1871-E〜KNAX1880-E

−

○

−

−

−

KNAX1890-I

−

−

○

−

−

KNAX1891-E〜KNAX1892-E

−

−

○

−

◎

KNAX1893-W

−

−

○

−

−

KNAX1910-E，KNAX1911-E

−

−

○

○

○

KNAX2201-E〜KNAX2205-E

−

○

−

○

○

KNAX2206-E

−

○

−

−

○

KNAX2207-E

−

○

−

○

○

KNAX2208-E〜KNAX2213-E

−

○

−

−

○

KNAX2214-E，KNAX2400-E

−

○

−

○

○

KNAX2499-E

−

○

−

○

−

KNAX3000-I

○

○※2※3

−

○

−

KNAX3001-I

−

○※2※3

−

○

−

KNAX3002-E

○

○※2※3

−

○

−

KNAX3003-E

−

○※2※3

−

○

−

KNAX3006-I

−

○※2

−

○

−

KNAX3008-W，KNAX3009-E

○

○※2

−

○

−

KNAX3020-E〜KNAX3029-E

−

○※2

−

○

−

KNAX3261-I

−

−

−

○

−

KNAX3400-I〜KNAX3542-W

−

○※2

−

○

−

KNAX3700-I〜KNAX3799-I

○

−

−

−

−

KNAX3998-E，KNAX3999-E

−

○

−

−

−

KNAX4414-E〜KNAX4429-E

−

○※4

−

−

−

KNAX5300-I〜KNAX5372-E

−

○※5

−

○

−

KNAX5380-I，KNAX5381-I

−

−

−

○

−

KNAX5396-I〜KNAX5399-E

−

○

−

−

−

KNAX5407-E〜KNAX5499-E

−

○

−

−

−

KNAX6000-E〜KNAX6071-E

−

−

○

−

◎

KNAX6072-E

−

−

○

−

−

KNAX6075-E〜KNAX6099-E

−

−

○

−

◎

KNAX6100-E

−

○

−

−

◎

KNAX6110-I〜KNAX6127-I

−

−

○

○

−

KNAX6130-E

−

○

○

○

−

KNAX6180-E〜KNAX6183-E

−

○

−

−

−

KNAX6189-I

−

○

−

−

−

KNAX6200-I

−

○

○

○

○

KNAX6201-E

−

○

−

−

−

KNAX6202-E〜KNAX6208-E

−

○

−

−

○

KNAX6209-W

−

○

−

−

−

KNAX6210-E〜KNAX6215-E

−

○

−

○

−

KNAX6219-E

−

○

−

○

○

KNAX6220-I〜KNAX6222-I

−

○

−

○

−

KNAX6223-E〜KNAX6241-E

−

○

−

○

○

KNAX6242-I〜KNAX6243-I

−

○

−

○

−

KNAX6244-E

−

○

−

○

○

KNAX6290-E〜KNAX6298-E

−

−

−

−

○

KNAX6301-E〜KNAX6303-E

−

○

−

−

○

KNAX6304-E

−

−

○

−

○

KNAX6305-E

−

○

−

−

○

KNAX6306-E

−

−

○

−

○

KNAX6307-W

−

−

○

−

−

KNAX6308-E，KNAX6309-E

−

−

○

−

○

KNAX6310-E〜KNAX6319-E

−

−

○

−

◎

KNAX6320-E

−

−

○

−

○

KNAX6321-E

−

−

○

−

◎

KNAX6323-E

−

○

−

−

○

KNAX6324-E〜KNAX6330-E

−

−

○

−

◎

KNAX6332-E

−

−

○

−

○

KNAX6333-E

−

−

○

−

◎

KNAX6380-I

−

○

−

−

−

KNAX6381-E

−

○

−

−

○

KNAX6382-I〜KNAX6385-E

−

○

−

−

−

KNAX6399-E，KNAX6400-E

−

−

○

−

○

KNAX6401-E

−

−

○

−

◎

KNAX6403-E

−

−

○

−

◎

KNAX6404-E

−

−

○

−

○

KNAX6405-E〜KNAX6407-E

−

−

○

−

◎

KNAX6408-E

−

−

○

−

○

KNAX6409-I，KNAX6410-I

−

−

○

−

−

KNAX6411-E〜KNAX6413-E

−

−

○

−

○

KNAX6414-E

−

−

○

−

◎

KNAX6507-I〜KNAX6511-I

−

−

○

○

−

KNAX6512-I

−

○

−

−

−

KNAX6521-E，KNAX6522-E

−

−

○

○

◎

KNAX6530-E，KNAX6531-E

−

−

○

−

◎

KNAX6540-I

−

−

○

○

−

KNAX6541-E，KNAX6542-E

−

−

○

○

○

KNAX6551-E〜KNAX6586-E

−

−

○

○

−

KNAX6587-E

−

○

−

○

−

KNAX6588-E

−

○

−

−

−

KNAX6589-W

−

−

−

○

−

KNAX6590-E

−

−

○

○

○

KNAX6591-E〜KNAX6592-E

−

−

○

○

−

KNAX6593-E

−

○

○

○

○

KNAX6594-E

−

−

○

○

−

KNAX6596-E

−

○

○

○

○

KNAX6597-I

−

○

○

○

−

KNAX6598-E，KNAX6599-E

−

−

○

○

○

KNAX6600-E〜KNAX6646-E

−

○

−

○

−

KNAX6701-W

−

−

○

○

−

KNAX6710-I

−

−

○

−

−

KNAX6711-E，KNAX6712-E

−

−

○

−

◎

KNAX6713-E

−

−

○

○

○

KNAX6714-E，KNAX6715-E

−

−

○

−

◎

KNAX6718-I

−

−

○

−

−

KNAX6750-E〜KNAX6753-E

−

○

−

○

−

KNAX6800-I※6，KNAX6801-I※6

−

−

−

−

−

KNAX6803-I〜KNAX6806-I

−

−

○

−

−

KNAX6810-E〜KNAX6812-E

−

−

○

○

○

KNAX6813-E

−

−

○

−

◎

KNAX6814-E，KNAX6815-E

−

−

○

○

○

KNAX6830-I〜KNAX6832-I

−

−

○

○

−

KNAX6997-E

−

−

○

○

○

KNAX6998-E

−

−

○

○

◎

KNAX6999-E

−

−

○

○

○

KNAX7000-E〜KNAX7004-E

−

○

−

○

○

KNAX7006-W〜KNAX7009-I

−

○

−

○

−

KNAX7010-E

−

○

−

○

○

KNAX7011-I，KNAX7012-W

−

○

−

○

−

KNAX7013-E，KNAX7014-E

−

○

−

○

○

KNAX7015-W

−

○

−

○

−

KNAX7016-E，KNAX7017-E

−

○

−

○

○

KNAX7018-I

−

○

−

○

−

KNAX7019-E〜KNAX7022-E

−

○

−

○

○

KNAX7023-I

−

○

−

○

−

KNAX7024-E

−

○

−

○

○

KNAX7025-I

−

○

−

○

−

KNAX7026-E〜KNAX7029-E

−

○

−

○

○

KNAX7032-I〜KNAX7034-I

−

○

−

○

−

KNAX7035-E

−

○

−

○

○

KNAX7036-I，KNAX7037-I

−

○

−

○

−

KNAX7038-I

−

○

○

○

−

KNAX7039-E，KNAX7040-E

−

○

−

○

○

KNAX7043-I

−

○

−

○

−

KNAX7044-E〜KNAX7046-E

−

○

−

○

○

KNAX7047-I，KNAX7048-I

−

○

−

○

−

KNAX7049-E〜KNAX7052-E

−

○

−

○

○

KNAX7053-I

−

○

−

○

−

KNAX7054-E，KNAX7055-E

−

○

−

○

○

KNAX7056-I，KNAX7057-I

−

○

○

○

−

KNAX7058-I

−

○

−

−

−

KNAX7062-E

−

○

−

○

○

KNAX7063-I，KNAX7064-I

−

○

○

○

−

KNAX7065-I〜KNAX7067-I

−

○

−

○

−

KNAX7068-I

−

○

○

○

−

KNAX7070-E

−

○

−

○

○

KNAX7071-E，KNAX7072-E

−

○

−

○

−

KNAX7073-I

−

○

○

○

−

KNAX7090-W

−

−

−

−

○

KNAX7099-E，KNAX7101-E

−

○

○

○

○

KNAX7102-I，KNAX7103-I

−

−

−

○

−

KNAX7104-E〜KNAX7106-E

−

○

○

○

○

KNAX7107-I

−

−

−

○

−

KNAX7108-E

−

○

○

○

○

KNAX7109-I

−

−

−

○

−

KNAX7110-E

−

○

○

○

○

KNAX7111-I

−

−

−

○

−

KNAX7112-E〜KNAX7116-E

−

○

○

○

○

KNAX7117-I

−

−

−

○

−

KNAX7118-E

−

−

−

−

○

KNAX7119-E

−

○

○

○

○

KNAX7120-W

−

−

−

○

−

KNAX7121-E〜KNAX7125-E

−

○

○

○

○

KNAX7126-I，KNAX7127-E

−

○

○

○

−

KNAX7128-E

−

○

−

○

−

KNAX7400-E〜KNAX7402-E

−

−

○

○

○

KNAX7403-E〜KNAX7405-E

−

−

○

○

◎

KNAX7408-E

−

−

○

○

○

KNAX7420-E

−

○

−

−

−

KNAX7450-I※7

−

−

−

−

−

KNAX7451-I

−

−

○

○

−

KNAX7460-E〜KNAX7465-W

−

−

○

○※8

−

KNAX7470-I

−

−

○

○

−

KNAX7500-I〜KNAX7509-I※7

−

−

−

−

−

KNAX7550-I，KNAX7551-E※9

○

−

−

−

−

KNAX7552-E〜KNAX7556-E※9

−

−

−

−

−

KNAX7560-I，KNAX7561-E※9

○

−

−

−

−

KNAX7600-E〜KNAX7773-E

−

−

−

−

○

KNAX7800-I〜KNAX7880-E

○

−

−

−

−

KNAX7892-I〜KNAX7897-E

−

○

−

−

−

KNAX7900-I

−

−

−

−

○※10

KNAX7901-I

−

○

○※11

○※11

−

KNAX7902-I

−

−

○

○

−

KNAX7999-I

−

○

−

−

−

KNAX9000-E〜KNAX9002-E

−

○

−

−

−

（凡例）

表の「メッセージの出力先」列の意味を次に示します。

表の項目

メッセージの出力先

特記事項

stdout

標準出力

簡潔出力モードまたは最小出力モードの場合，通常実行時のジョブと，デバッグ実行時の子孫ジョブのメッセージの出力は次のようになります。

メッセージ種別I，Wのメッセージは出力されません。

メッセージ種別Eのメッセージは該当の出力先とJOBLOGに出力されます。

デバッグ実行時のルートジョブのメッセージ種別EのメッセージはJOBLOGにも出力されます。

stderr

標準エラー出力

JOBLOG

ジョブ実行ログ

拡張出力モードの場合

デバッグ実行時は，ジョブ実行中に同じメッセージが標準エラー出力にも出力されます。

子孫ジョブの場合はJOBLOGには出力されないで，ジョブ実行完了時に標準エラー出力に出力されます。

簡潔出力モードまたは最小出力モードの場合

メッセージ種別Eのメッセージは標準エラー出力にも出力されます。

システム実行ログ

システム実行ログ

メッセージ出力時のジョブの状態によっては，この出力先にメッセージが出力されないことがあります。

GUI

メッセージ用ダイアログボックスまたはエラーウィンドウ

なし

ただし，簡潔出力モードまたは最小出力モードの場合も，次のメッセージは出力されます。

KNAX0240-I（ADSH_JOBRC_FATALの値を適用したことを示すメッセージ）

KNAX0300-I（usage）

KNAX0309-I（バージョン表示）

シグナル受信で出力するメッセージ（ただし，通常実行時の最小出力モードではシグナル受信で出力されるメッセージの一部は出力抑止される）

◎：GUIのメッセージでJP1/Advanced Shellエディタのエラーウィンドウで行番号を付けて出力します。ただし，メッセージの行番号が省略される場合については出力しません。

○：出力します。

−：出力しません。

注※1

CUIデバッグ実行時にだけ出力されます。

注※2

起動ログに出力されます。

注※3

syslogに次の内容で出力されます。

ファシリティ：LOG_USER

レベル：LOG_NOTICE

注※4

adshhkコマンドの引数で指定したログファイルのオープン中は，標準エラー出力ではなく，指定したログファイルに出力されます。

注※5

アダプタコマンドの出力は，JP1/IM - Viewの画面に出力されます。

注※6

スクリプトイメージファイルに出力します。

注※7

JP1イベントが発行されます。

注※8

adshechoコマンドまたはadshreadコマンドの実行時に出力されます。

注※9

イベントログに出力されます。

注※10

GUIからヘルプを選択した場合に起動するWebブラウザに表示されます。

注※11

CUIデバッグ実行時，およびGUIデバッグ実行時には，この出力先には出力されません。

11.2.1　メッセージに出力される行番号に関する注意事項

メッセージKNAX6000-E〜KNAX6100-E，KNAX6710-I〜KNAX6712-E，KNAX6998-Eに出力される，行番号に関する注意事項です。

複数行にまたがったコマンド置換でコマンドエラーが発生した場合，コマンド置換の最終行番号がエラー行番号としてメッセージに出力されます。

（例）次のような記述の場合，unsetコマンドでエラーが発生しても，エラー行番号は3行目となります。

1: `unset
2:  echo pwd
3:  `

外部スクリプトの構文解析でエラーが発生した場合，エラーメッセージに出力されるジョブ定義スクリプトファイル名は外部スクリプト呼び出し元のジョブ定義スクリプト名になります。また，行番号は外部スクリプト呼び出し元の行番号となります。

trapコマンドのaction実行中に構文エラーまたはコマンドエラーが発生すると，trapコマンドの行番号がエラー行番号としてメッセージに出力されます。

（例1）複数行にまたがっているケース。エラー行番号は1行目となります。

1: trap 'pwd
2: unset
3: date' INT

（例2）関数を呼び出すケース。エラー行番号は4行目となります。

1: func1() {
2:  unset
3: }
4: trap func1 INT

11.3　メッセージの一覧

JP1/Advanced Shellが出力するメッセージと対処方法について説明します。

KNAX0001-E

Memory shortage. DETAIL=保守情報

メモリ不足が発生しました。

保守情報は，8桁の16進数で表示します。保守情報は，システムの内部状態を示す情報です。このメッセージは，エラー通知の出力先に出力されますが，エラー発生のタイミングによって一部の出力先にだけ出力されます。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。システム管理者は，メモリ見積もりを見直してください。

KNAX0004-I

Jobid=JP1/Advanced Shellのジョブ識別子, JP1NBQSQueueName=環境変数値, JP1JobID=JP1ジョブ番号

起動したバッチジョブのJP1/AJSのジョブ情報とJP1/Advanced Shellのジョブ識別子を表示します。

JP1/Advanced Shellのジョブ識別子

JP1/Advanced Shellがバッチジョブに付与したジョブ識別子

環境変数値

バッチジョブのJP1NBQSQueueName環境変数の値

JP1のジョブ番号

バッチジョブのJP1/Advanced Shellが与えたJP1ジョブ番号

(Ｓ)

処理を続行します。

KNAX0030-E　【Windows限定】

An error occurred while starting adshexec. function="関数名",error code=エラーコード,reason="エラー詳細"

ジョブコントローラの開始処理中にエラーが発生しました。関数名，エラーコードおよびエラー詳細を示します。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。システム管理者は，関数名，エラーコードおよびエラー詳細からエラーの原因を取り除いて，バッチジョブを再実行します。

KNAX0031-E　【Windows限定】

An error occurred while completing adshexec process. function="関数名",error code=エラーコード,reason="エラー詳細"

ジョブコントローラの終了処理中にエラーが発生しました。関数名，エラーコードおよびエラー詳細を示します。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。システム管理者は，関数名，エラーコードおよびエラー詳細からエラーの原因を取り除いて，バッチジョブを再実行します。

KNAX0091-I

ジョブ名 Job started.

ジョブ名で示すバッチジョブを開始しました。

(Ｓ)

処理を続行します。

KNAX0092-I

ジョブ名.ジョブステップ名 Step started.

ジョブ名で示すバッチジョブに定義された，ジョブステップ名で示すジョブステップを開始しました。

(Ｓ)

処理を続行します。

KNAX0098-I

ジョブ名 Job ended. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

ジョブ名で示すバッチジョブが終了しました。

終了コード

バッチジョブの実行結果を示す終了コード。

終了コードの詳細は，adshexecコマンドの終了コードに関する説明を参照してください。

なお，このメッセージの出力後にadshexecコマンドの後処理でエラーが発生した場合，このメッセージで示す終了コードとadshexecコマンドの終了コードとが異なる場合があります。adshexecコマンドの最終的な終了コードは，KNAX7999-Iに出力されます。

実行時間

バッチジョブの開始から終了までの実時間の合計（秒単位）。OSのAPIを使って取得した参考値です。

CPU時間

バッチジョブの開始から終了までのCPU時間の合計（秒単位）。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。

KNAX0101-E

ジョブ名 An error occurred during execution of job.

ジョブ名で示すバッチジョブを実行中にエラーが発生しました。

(Ｓ)

処理を続行します。

(Ｏ)

一緒に出力されるほかのメッセージを参照してエラーの原因を取り除き，バッチジョブを再実行します。

KNAX0220-E

Environment variable "環境変数名" is not specified.

環境変数名で示す環境変数が指定されていません。

環境変数名が「JP1_HOSTNAME」の場合，論理ホスト運用で論理ホスト名が明示指定されていないとき，JP1/AJS以外から起動されているおそれがあります。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡して環境変数の値を見直してください。

KNAX0235-E

The value specified for the environment variable "環境変数名" is invalid.

環境変数名で示す環境変数の値が不当です。

環境変数名

環境変数名

(Ｓ)

処理を終了します。

(Ｏ)

環境変数の値を見直してください。問題が解決しない場合は，システム管理者に連絡してください。

KNAX0236-E

String size of environment variable "環境変数名" value is invalid.

環境変数名で示す環境変数の値が長過ぎます。

(Ｓ)

処理を終了します。

(Ｏ)

環境変数の値を見直してください。問題が解決しない場合は，システム管理者に連絡してください。

KNAX0237-E

Environment variable "環境変数名" value is missing.

環境変数名で示す環境変数の値が空文字です。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡して環境変数の値を見直してください。

KNAX0238-E

Invalid char is included in environment variable "環境変数名" value.

環境変数名で示す環境変数の値に使用できない文字が含まれています。

(Ｓ)

処理を終了します。

(Ｏ)

環境変数の値を見直してください。問題が解決しない場合は，システム管理者に連絡してください。

KNAX0239-E

Scope of environment variable "環境変数名" value is invalid.

環境変数名で示す環境変数の値が範囲外です。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡して環境変数の値を見直してください。

KNAX0240-I

環境変数名 was applied. value=環境変数値

環境変数名で示す環境変数の設定が適用されました。

環境変数値

適用された環境変数の値

(Ｓ)

処理を続行します。

KNAX0299-E

Internal error occurred. Detail=保守情報

メモリ確保で内部矛盾が発生しました。

このメッセージは，エラー通知の出力先に出力されますが，エラー発生のタイミングによって一部の出力先にだけ出力されます。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。

KNAX0300-I

Usage: コマンド名 コマンド引数

コマンド名およびコマンド引数で示すコマンドの指定が誤っています。

(Ｓ)

処理を終了します。

(Ｏ)

コマンドを正しく指定して実行します。

KNAX0301-E

Option "オプション名" value is not specified.

オプション名の指定値が誤っています。

(Ｓ)

処理を中断します。

(Ｏ)

オプションを正しく指定します。

KNAX0302-E

Option "オプション名" was unknown.

不正なオプション名を指定しています。

(Ｓ)

処理を中断します。

(Ｏ)

オプション名を正しく指定します。

KNAX0303-E

SCRIPT file name is not specified.

ジョブ定義スクリプトファイル名が指定されていません。

(Ｓ)

処理を中断します。

(Ｏ)

ジョブ定義スクリプトファイル名を指定して再入力します。

KNAX0305-E

Option 引数 is invalid.

引数で示すコマンドの引数が不正です。

(Ｓ)

処理を中断します。

(Ｏ)

引数を正しく指定して再入力します。

KNAX0306-E

Option "オプション名" value is invalid.

オプション名で示すオプションの値が誤っています。

(Ｓ)

処理を中断します。

(Ｏ)

オプションを正しく指定して再入力します。

KNAX0307-E

The option is not specified.

必要なオプションが指定されていません。

(Ｓ)

処理を終了します。

(Ｏ)

必要なオプションを指定して再入力します。

KNAX0308-E

Option "オプション名1" and "オプション名2" cannot be specified at the same time.

オプション名1で示すオプションとオプション名2で示すオプションは，同時に指定することはできません。

(Ｓ)

処理を中断します。

(Ｏ)

オプションを正しく指定して再入力します。

KNAX0309-I

プログラム名 version is バージョン文字列.

プログラム名で示すコマンドのバージョンをバージョン文字列に示します。

(Ｓ)

処理を終了します。

KNAX0310-E

Too many operands.

指定したオペランドが多過ぎます。

(Ｓ)

処理を中断します。

(Ｏ)

オペランドを正しく指定します。

KNAX0311-E

One or more necessary options for コマンド名 are missing.

コマンド名で示すコマンド処理に必要なオプション，パラメーターが不足しています。

(Ｓ)

処理を終了します。

(Ｏ)

必要なオプション，パラメーターを指定して再入力します。

KNAX0336-E

String size of option "オプション名" value is invalid.

オプション名の指定値の長さが正しくありません。次の原因が考えられます。

オプション名の指定値の長さが長過ぎます。

オプション名の指定値の長さが0です。

(Ｓ)

処理を中断します。

(Ｏ)

オプションを正しく指定して再入力します。

KNAX0401-E

Config file open failed. reason="エラー詳細"

エラー詳細で示す原因によって，環境ファイルのオープンに失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細を基に環境ファイルが読み込めるように，権限などの問題がないかどうかを確認します。問題が解決しない場合は，システム管理者に連絡します。

KNAX0402-E

Config file read error. reason="エラー詳細"

エラー詳細で示す原因によって，環境ファイルの読み込みに失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細を基に環境ファイルが読み込めるように，権限などの問題がないかどうかを確認します。問題が解決しない場合は，システム管理者に連絡します。

KNAX0403-E

Config file name too long.

環境ファイルのファイル名が長過ぎます。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイル名の指定に問題がないかどうかを確認します。

KNAX0406-E

Failed to get host name. reason="エラー詳細"

エラー詳細で示す原因によって，ホスト名の取得時にエラーが発生しました。UNIXの場合，ホスト名が255文字より多いと，このメッセージが出力されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡して，ネットワーク上のホスト名を確認します。

KNAX0407-E

"ファイル名" is not an ordinary file.

ファイル名で示すファイルは通常のファイルではありません。

(Ｓ)

処理を終了します。

(Ｏ)

ファイルを確認します。

KNAX0410-E

An error occurred when parsing the file "ファイル名", refer to the message above.

ファイル名で示す環境ファイルの解析でエラーが発生しました。エラーの内容はこのメッセージの前に出力されているメッセージを参照してください。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルの誤りを修正してください。

KNAX0411-E

Line size exceeds limits. line=行番号

行番号で示す，環境ファイルの行が長すぎます。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0431-E

Parameter name is invalid. line=行番号

環境ファイルの行番号で示す行に不当なパラメーター名が見つかりました。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0432-E

Parameter value of "パラメーター名" is invalid. line=行番号

環境ファイルの行番号で示すパラメーターに不当な値が見つかりました。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0433-E

Parameter value of "パラメーター名" is missing. line=行番号

環境ファイルの行番号で示すパラメーターに値が設定されていません。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0434-E

Parameter "パラメーター名" is specified multiple. line=行番号

環境ファイルの行番号で示すパラメーターが重複して定義されています。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0435-E

Number of parameter "パラメーター名" exceed limit. line=行番号

環境ファイルの行番号で示すパラメーターが定義できる上限を超えています。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0436-E

String size of parameter "パラメーター名" value is invalid. line=行番号

環境ファイルの行番号で示すパラメーターの指定値が長過ぎます。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0437-E

Value scope of parameter "パラメーター名" value is invalid. line=行番号

環境ファイルの行番号で示すパラメーターの指定値が範囲外です。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0438-E

Wrong char is included in parameter "パラメーター名" value. line=行番号

環境ファイルの行番号で示すパラメーターの指定値に不当な文字が含まれています。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0439-E

Directory "パラメーター名" must be specified in absolute path. line=行番号

環境ファイルの行番号のパラメーター名で示すファイルパスが絶対パスで指定されていません。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0441-E

Directory of "パラメーター名" is not exist. line=行番号

環境ファイルの行番号で示すパラメーターで指定したディレクトリはありません。

UNIXの場合，シグナルの受信が原因でこのメッセージが出力されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直すか，または動作環境をチェックしてください。

KNAX0442-E

Parameter value of "パラメーター名" is not directory. line=行番号

環境ファイルの行番号で示すパラメーターで指定した値はディレクトリではありません。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0444-E

There are too many value for "パラメーター名". line=行番号

環境ファイルの行番号で示すパラメーターで指定したオペランドは多過ぎます。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0445-E

Default directory of "パラメーター名" does not exist: "ディレクトリ名"

デフォルトのディレクトリがありません。

UNIXの場合，シグナルの受信が原因でこのメッセージが出力されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

動作環境を見直してください。

KNAX0446-E

Default directory of "パラメーター名" is not valid directory: "ディレクトリ名"

デフォルトのディレクトリ名がディレクトリではありません。

(Ｓ)

処理を終了します。

(Ｏ)

動作環境を見直してください。

KNAX0449-E

The required directory "ディレクトリ名" does not exist.

必須のディレクトリ名がありません。

UNIXの場合，シグナルの受信が原因でこのメッセージが出力されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直すか，または動作環境を見直してください。

KNAX0450-E

The required directory "ディレクトリ名" is not valid directory.

必須のディレクトリ名はディレクトリではありません。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直すか，または動作環境を見直してください。

KNAX0451-E　【Windows限定】

An error occurred while getting a default directory: "パラメーター名"

デフォルトのディレクトリ名を求める処理でエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

動作環境を見直してください。

KNAX0456-E　【Windows限定】

Parameter value of "パラメーター名" is specified multiple. line=行番号

パラメーター名で指定した値が重複して定義されています。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0458-E

The combination of parameters are invalid. line=行番号

パラメーターの組み合わせが正しくありません。次の原因が考えられます。

phost_startパラメーターとphost_endパラメーターの組み合わせが正しくない。

lhost_startパラメーターとlhost_endパラメーターの組み合わせが正しくない。

パラメーターの指定順を誤っている。

開始のパラメーターの指定があるが，終了のパラメーターの指定がない。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0459-E

The order of operand is wrong. parameter name="パラメーター名" line=行番号

オペランドの指定順序に誤りがあるか，または同じオペランドを複数回指定しています。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0471-E

パラメーター名 is different from system environment file. filename="ファイル名"

ファイル名の環境ファイルで指定されたパラメーター名のパラメーターの指定値が，システム環境ファイルの指定値と異なります。

システム環境ファイルでデフォルト値を指定している場合，ジョブ環境ファイルで異なる値を指定するとエラーになります。システム環境ファイルで指定したシステム実行ログおよびトレースの設定は変更できません。

ジョブ環境ファイルで明示指定していない場合はエラーになりません。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを見直してください。

KNAX0472-E

Error occurred. ("関数名", "エラー詳細", 保守情報)

環境ファイルの解析処理で，予期しないエラーが発生しました。

関数名

内部の関数名

エラー詳細

障害内容を示す文字列

保守情報

保守コード

(Ｓ)

処理を終了します。

(Ｏ)

障害を取り除いて再実行してください。障害が取り除けない場合は，システム管理者に連絡してください。

KNAX0473-W

A redundant parameter "パラメーター名" is specified in 環境ファイル種別.

環境ファイル種別で示すファイルに，冗長なパラメーターが指定されています。

生じる問題点は各パラメーターの説明を参照してください。

該当のパラメーターは環境ファイル種別には指定しないことを推奨します。

環境ファイル種別

ジョブ環境ファイル

(Ｓ)

処理を実行します。

(Ｏ)

生じる問題が許容できない場合は，該当するパラメーターの指定を削除してください。

KNAX0474-E

The value "パラメーター値" for the parameter "パラメーター名" cannot be specified for the current execution method of a batch job. filename="ファイル名"

ファイル名で示す環境ファイルに，現在のジョブ起動方法では指定できない値を指定しています。

パラメーター値

指定できないパラメーター値

パラメーター名

エラーとなったパラメーター名

ファイル名

エラーとなったパラメーターを指定した環境ファイル

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルに設定したパラメーターの内容を見直してください。

KNAX0700-E

Could not create the job directory. reason=エラー詳細

スプールルートディレクトリの下にバッチジョブ用のディレクトリを作成できません。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。システム管理者は環境ファイルのスプールルートディレクトリの指定，またはスプールディレクトリ自体に異常がないか見直してください。

KNAX0701-E

"ファイル名" open failed. reason=エラー詳細

スプールジョブディレクトリ内のファイル名で示されるファイルのオープンに失敗しました。または，出力用コンソールのオープンに失敗しました。

出力用コンソールの場合，ファイル名はCONOUT$となります。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。システム管理者はスプールジョブディレクトリ，またはスプールジョブディレクトリ内のファイルに異常がないか見直してください。

KNAX0702-E

Joblog file I/O error. reason=エラー詳細

スプールジョブディレクトリ内のジョブ実行ログファイルの書き込みに失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。システム管理者はスプールジョブディレクトリ，またはスプールジョブディレクトリ内のファイルに異常がないか見直してください。

KNAX0703-E

"ファイル名" does not exist.

スプールジョブディレクトリ内にファイル名で示されるファイルがありません。

(Ｓ)

処理を終了します。

(Ｏ)

ファイル名を見直してください。

KNAX0704-E

Failed to get the current date.

日付の取得に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。

KNAX0706-E

Failed to create "ファイルパス". reason=エラー詳細

ファイルパスの作成に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。システム管理者はスプールジョブディレクトリ，またはスプールジョブディレクトリ内のファイルに異常がないか見直してください。

KNAX0708-E

Number of JOBLOG files exceeded limits.

割り当てられるJOBLOGファイル数の上限を超えました。次の原因が考えられます。

スプールディレクトリ下にスプールジョブが大量に残っていて，ジョブ識別子の空きが少ない。

ジョブ内で子孫ジョブを大量に起動している。

(Ｓ)

処理を終了します。

(Ｏ)

不要なスプールジョブを削除してジョブを再実行してください。または，不当に大量の子孫ジョブを起動していないか，ジョブ定義スクリプトを見直してください。

KNAX0719-I

STEP ステップ番号,ジョブステップ名,出力先の内容

このメッセージのあとに，ジョブステップの出力先を出力します。

(Ｓ)

処理を続行します。

KNAX0720-E

Failed to open jobid file. reason=エラー詳細

ジョブIDファイルのオープンに失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。システム管理者は環境ファイルのスプールディレクトリの指定，スプールディレクトリ自体，またはスプールディレクトリ内のファイルに異常がないか見直してください。

KNAX0721-E

Jobid file I/O error. reason=エラー詳細

ジョブIDファイルの入出力に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。システム管理者は環境ファイルのスプールディレクトリの指定，スプールディレクトリ自体，またはスプールディレクトリ内のファイルに異常がないか見直してください。

KNAX0722-E

Failed to allocate Jobid.

ジョブ固有のジョブ識別子を付与できません。スプールジョブディレクトリがこれ以上作成できない場合，このメッセージが出力されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。システム管理者は前後に出力されたメッセージから原因を取り除いて再実行してください。または，不要なスプールジョブディレクトリを削除して，再実行してください。

KNAX0723-E

Failed to lock jobid file. reason=エラー詳細

ジョブIDファイルを排他しようとして，失敗しました。

SPOOL_DIRパラメーターにNFS上のディレクトリを指定すると，このメッセージを出力してエラーとなることがあります。SPOOL_DIRパラメーターには，NFS上のディレクトリを指定しないでください。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。システム管理者は環境ファイルのスプールディレクトリの指定，スプールディレクトリ自体，またはスプールディレクトリ内のファイルに異常がないか見直してください。

KNAX0724-I

Jobid was assigned. Jobid=ジョブ識別子

ジョブ識別子を割り当てました。

ルートジョブの環境ファイルのSPOOLJOB_CHILDJOBパラメーターにオペランドとしてMERGEを指定して起動された子孫ジョブの場合は出力されません。

(Ｓ)

処理を続行します。

KNAX0725-E

API error occurred. ("API名称","原因", "保守情報")

APIでエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

原因に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。

KNAX0726-I

Child jobid was assigned. Jobid=ジョブ識別子

子孫ジョブのジョブ識別子を割り当てました。

(Ｓ)

処理を続行します。

KNAX0727-E

Failed to lock joborder file. reason=エラー詳細

子孫ジョブ起動順序管理ファイルを排他しようとしましたが，失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。

システム管理者は，スプールジョブディレクトリ，またはスプールジョブディレクトリ内のファイルに異常がないかどうかを見直してください。

KNAX0728-E

Format of joborder file is invalid.

子孫ジョブ起動順序管理ファイルの形式不正を検出しました。

(Ｓ)

処理を終了します。

(Ｏ)

子孫ジョブ起動順序管理ファイルを不当に更新していないか見直してください。問題が解決しない場合は，システム管理者に連絡してください。

システム管理者は，スプールジョブディレクトリ，またはスプールジョブディレクトリ内のファイルに異常がないかどうかを見直してください。

KNAX0800-E

Failed to create the {.sysout | sysout.ini}. reason=エラー詳細

スプールジョブ管理ファイルを作成しようとして，失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。システム管理者はスプールジョブディレクトリ，またはスプールジョブディレクトリ内のファイルに異常がないか見直してください。

KNAX0801-E

The .sysout lock error. reason=エラー詳細

スプールジョブ管理ファイルを排他しようとして，失敗しました。

SPOOL_DIRパラメーターにNFS上のディレクトリを指定すると，このメッセージを出力してエラーとなることがあります。SPOOL_DIRパラメーターには，NFS上のディレクトリを指定しないでください。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。システム管理者はスプールジョブディレクトリ，またはスプールジョブディレクトリ内のファイルに異常がないか見直してください。

KNAX0802-E

The {.sysout | sysout.ini} open failed. reason=エラー詳細

スプールジョブ管理ファイルをオープンしようとして，失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。システム管理者はスプールジョブディレクトリ，またはスプールジョブディレクトリ内のファイルに異常がないか見直してください。

KNAX0803-E

The {.sysout | sysout.ini} I/O error. reason=エラー詳細

スプールジョブ管理ファイルで入出力エラーが発生しました。

このメッセージは，エラーの通知先に出力しますが，エラー発生のタイミングによって，一部の出力先にだけ出力されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細に示される原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡してください。システム管理者はスプールジョブディレクトリ，またはスプールジョブディレクトリ内のファイルに異常がないか見直してください。

KNAX0804-E

Failed to get the current time used for STARTTIME in the {.sysout | sysout.ini}.

スプールジョブ管理ファイルのSTARTTIMEに使用する現在時刻の取得に失敗しました。

(Ｓ)

処理を続行します。

(Ｏ)

システム管理者に連絡します。

KNAX0805-E

Failed to get the current time used for ENDTIME in the {.sysout | sysout.ini}.

スプールジョブ管理ファイルのENDTIMEに使用する現在時刻の取得に失敗しました。

(Ｓ)

処理を続行します。

(Ｏ)

システム管理者に連絡します。

KNAX1600-I

ジョブ名 Job allocated.

ジョブ名で示すバッチジョブのファイルが割り当てられました。

(Ｓ)

処理を続行します。

KNAX1601-I

ジョブ名.ジョブステップ名 Step allocated.

ジョブ名とジョブステップ名で示すジョブステップのファイルが割り当てられました。

(Ｓ)

処理を続行します。

KNAX1604-I

ファイルパス is deleted.

後処理指定値によってファイルパスに示すファイルを削除しました。

(Ｓ)

処理を続行します。

KNAX1605-I

ファイルパス is not deleted due to "エラー詳細".

後処理指定値によってファイルパスを削除しようとしましたが，エラー詳細に示すエラーが発生しました。

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列。

(Ｓ)

処理を続行します。

KNAX1632-E

Length of environment variable value exceeded the limit. (environment variable name=環境変数名)

環境変数名で示す名称の環境変数を設定しようとして，値の長さがJP1/Advanced Shellで定められた上限値を超えました。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルで指定した環境変数値を修正して，バッチジョブを再実行します。

KNAX1871-E

コマンド名: Failed in regularization of the file name. ("関数名","原因","保守情報")

コマンド名で示すコマンドで，指定されたファイルパスを絶対パスに変換して正規化する処理中にエラーが発生しました。

関数名が_fullpathの場合，コマンドで指定したパス名が長過ぎる場合に発生することがあります（このとき原因はInvalid argumentとなることがあります）。

原因

表示される内容とその意味を次に示します。

原因

意味

Path name contains invalid multibyte character(s)

【UNIX限定】パス名に不当なマルチバイト文字が存在します。コマンドに指定したファイルパスの指定を見直してください。

Path name contains too many components

【UNIX限定】パス名の構成要素が4,096を超えました。コマンドに指定したファイルパスを見直してください。

File name too long

【UNIX限定】絶対パスへ変換したあとのファイルパス名長が上限を超えました。ファイルパスの指定を見直してください。

errnoから求めたエラー理由

メモリ不足が発生しました。

その他OSのAPI実行時にエラーが発生しました（getcwd，_fullpathでエラー）。

【Windows限定】関数名が「_fullpath」，原因が「Invalid argument」の場合は，絶対パスへ変換したあとのファイルパス名長が上限を超えたことが考えられます。この場合は，コマンドに指定したファイルパスの指定を見直してください。

保守情報

内部情報

(Ｓ)

処理を終了します。

(Ｏ)

関数名と原因を基にエラー要因を取り除いて，コマンドを再実行してください。エラー要因を取り除けない場合はシステム管理者に連絡してください。

KNAX1872-E

コマンド名: File path is invalid. ("ファイルパス","原因","保守情報")

コマンド名で示すコマンドの処理中に，指定したファイルパスのチェックでエラーが発生しました。コマンドに指定したファイルパスが使用できるか見直してください。

原因

システムが通知するエラー理由が表示されます。

保守情報

内部情報

(Ｓ)

処理を終了します。

(Ｏ)

エラー要因を取り除いて，コマンドを再実行してください。

エラー要因を取り除けない場合はシステム管理者に連絡してください。

KNAX1873-E

コマンド名: File path is already allocated directory. ("ファイルパス","保守情報")

コマンド名で示すコマンドで指定したファイルパスはディレクトリです。

ファイルパスには通常のファイルを指定してください。

保守情報

内部情報

(Ｓ)

処理を終了します。

(Ｏ)

エラー要因を取り除いて，コマンドを再実行してください。

KNAX1875-E

コマンド名: An error occurred. ("原因","保守情報")

コマンド名で示すコマンドの処理中に予期しないエラーが発生しました。

原因

表示される内容とその意味を次に示します。

原因

意味

Exceeded path name buffer

【UNIX限定】パス名を格納する領域が不足しました。

An error occurred in _time64 function

【Windows限定】時刻を求める処理でエラーが発生しました。

An error occurred in clock_gettime function

【UNIX限定】時刻を求める処理でエラーが発生しました。

An error occurred in nanosleep function

【UNIX限定】待ち処理でエラーが発生しました。

Invalid argument

引数が不正です。

保守情報

内部情報

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX1877-E

コマンド名: Environment variable is invalid. ("環境変数名","保守情報")

環境変数名に示す環境変数が存在しません。または，設定値の文字列長が0バイト以下です。

保守情報

内部情報

(Ｓ)

処理を終了します。

(Ｏ)

該当する環境変数を変更していないかジョブ定義スクリプトを確認してください。または，コマンドをJP1/Advanced Shell以外で起動していないか確認してください。

原因が不明の場合はシステム管理者に連絡してください。

KNAX1878-E

コマンド名: I/O error occurred. ("ファイルパス","原因","保守情報")

割り当て管理ファイルの入出力でエラーが発生しました。

ファイルパス

割り当て管理ファイルのファイルパス名が表示されます。

原因

表示される内容とその意味を次に示します。

原因

意味

Is not a regular file

通常ファイルではありません。

File was replaced

オープン処理中にファイルが置き換わりました。

api名 error : エラー詳細

api名で示すAPIの処理で，エラー詳細に示すエラーが発生しました。

エラー詳細はAPIでセットされるエラー情報です。

保守情報

内部情報

(Ｓ)

処理を終了します。

(Ｏ)

エラー要因を取り除いて再実行してください。

原因が不明の場合はシステム管理者に連絡してください。

KNAX1879-E

コマンド名: The number of the file exceeded limit. ("保守情報")

登録できるファイル数の上限である64個を超えました。

保守情報

内部情報

(Ｓ)

処理を終了します。

(Ｏ)

登録するファイルの数が上限数を超えないよう，ジョブ定義スクリプトを見直してください。

KNAX1880-E

コマンド名: The command cannot be executed with the current setting of the environment setting parameter. parameter="環境設定パラメーター"

メッセージに表示されたコマンドは，現在の環境設定パラメーターの設定では使用できません。

コマンド名

コマンド名

環境設定パラメーター

要因となった環境設定パラメーターとその値

(Ｓ)

処理を終了します。

(Ｏ)

実行したコマンドは使用しないでください。このコマンドを使用したい場合は，環境設定パラメーターの指定を見直してください。

KNAX1890-I

File is deallocated as "処理指定値". path=ファイルパス

ファイルパスに示すファイルを処理指定値に従って解放しました。

処理指定値

正常時・異常時のファイルの後処理の指定内容として，次のどちらかが表示されます。

del：削除する

keep：削除しない

(Ｓ)

処理を続行します。

KNAX1891-E

I/O error occurred in deallocation of the file. ("ファイルパス","原因","保守情報")

ファイルの後処理実行中に，割り当て管理ファイルの入出力でエラーが発生しました。

ファイルパス

割り当て管理ファイルのファイルパス名が表示されます。

原因

表示される内容とその意味を次に示します。

原因

意味

Is not a regular file

通常ファイルではありません。

File was replaced

オープン処理中にファイルが置き換わりました。

api名 error : エラー詳細

api名で示すAPIの処理で，エラー詳細に示すエラーが発生しました。

エラー詳細はAPIでセットされるエラー情報です。

保守情報

内部情報

(Ｓ)

ジョブは終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX1892-E

An error occurred in deallocation of the file. ("原因","保守情報")

予期しないエラーが発生しました。

原因

表示される内容とその意味を次に示します。

原因

意味

An error occurred in time64 function

【Windows限定】時刻を求める処理でエラーが発生しました。

An error occurred in clock_gettime function

【UNIX限定】時刻を求める処理でエラーが発生しました。

An error occurred in nanosleep function

待ち処理でエラーが発生しました。

保守情報

内部情報

(Ｓ)

ジョブは終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX1893-W

The invalid entry in a file was skipped. ("ファイルパス","保守情報")

割り当て管理ファイル中に無効なエントリが存在したため，adshfileコマンドの後処理をスキップしました。該当するジョブのadshfileコマンドで指定したファイルの後処理が実行されていないおそれがあります。

ファイルパス

割り当て管理ファイルのファイルパス名が表示されます。

保守情報

内部情報

(Ｓ)

処理を続行します。

(Ｏ)

adshfileコマンドで削除を指定したファイルが残っている場合，必要に応じて手作業で削除してください。

KNAX1910-E

Invalid C-Time.

C-Timeの計算結果が不当な結果となりました。

(Ｓ)

ジョブ実行ログへ出力する時刻を0とし，バッチジョブは続行します。

(Ｏ)

システム管理者に連絡します。

KNAX1911-E

Invalid E-Time.

E-Timeの計算結果が不当な結果となりました。

(Ｓ)

ジョブ実行ログへ出力する時刻を0とし，バッチジョブは続行します。

(Ｏ)

システム管理者に連絡します。

KNAX2201-E

The message is too long. msgid=メッセージ番号

メッセージ番号（KNAXに続く番号）で示すメッセージは，テキストが長いためすべてのテキストを出力できません。

(Ｓ)

処理を続行します。

(Ｏ)

バッチジョブの動作に問題がないかどうかを確認します。必要な場合，ジョブ定義スクリプトを修正します。

KNAX2202-E

Output to JOBLOG failed. msgid=メッセージID

メッセージIDで示すメッセージは，ジョブ実行ログへの出力を失敗しました。

(Ｓ)

処理を続行します。

(Ｏ)

システム管理者に連絡します。スプールジョブディレクトリのアクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2204-E

Output to stdout failed. msgid=メッセージID

メッセージIDで示すメッセージは，標準出力への出力に失敗しました。

(Ｓ)

処理を続行します。

(Ｏ)

システム管理者に連絡します。標準出力の出力先のアクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2205-E

Output to stderr failed. msgid=メッセージID

メッセージIDで示すメッセージは，標準エラー出力への出力に失敗しました。

(Ｓ)

処理を続行します。

(Ｏ)

システム管理者に連絡します。標準エラー出力の出力先のアクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2206-E

Output to log failed. msgid=メッセージID

メッセージIDで示すメッセージは，システム実行ログへの出力に失敗しました。

(Ｓ)

処理を続行します。

(Ｏ)

システム管理者に連絡します。環境ファイルのシステム実行ログに対する指定，またはシステム実行ログディレクトリのアクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2207-E

Output to trace failed. msgid=メッセージID

メッセージIDで示すメッセージは，トレースへの出力に失敗しました。

(Ｓ)

処理を続行します。

(Ｏ)

システム管理者に連絡します。環境ファイルのトレースに対する指定，またはトレースディレクトリのアクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2208-E

Initialization of log failed. code=保守情報, reason=エラー原因

システム実行ログの初期化に失敗しました。

LOG_DIRパラメーターにNFS上のディレクトリを指定すると，このメッセージを出力してエラーとなることがあります。LOG_DIRパラメーターには，NFS上のディレクトリを指定しないでください。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。環境ファイルのシステム実行ログに対する指定，またはシステム実行ログディレクトリのアクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2209-E

Initialization of trace failed. code=保守情報

トレースの初期化に失敗しました。

TRACE_DIRパラメーターにNFS上のディレクトリを指定すると，このメッセージを出力してエラーとなることがあります。TRACE_DIRパラメーターには，NFS上のディレクトリを指定しないでください。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。環境ファイルのトレースに対する指定，またはトレースディレクトリのアクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2211-E

The file size or the number of files used by trace is invalid.

トレースの設定に誤りがあります。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。環境ファイルのトレースに対する指定を見直してください。

KNAX2213-E

The file path used by trace is invalid.

トレースの出力先の指定に誤りがあります。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。環境ファイルのトレースに対する指定，またはトレースディレクトリのアクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2214-E

Failed to get the current time.

現在時刻の取得に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。

KNAX2400-E

Initialization is not completed. output=出力先, msgid=メッセージID, dest=保守情報1, setDest=保守情報2

メッセージIDに示すメッセージを出力しましたが，初期化されていないため出力できません。

(Ｓ)

処理を続行します。

(Ｏ)

システム管理者に連絡します。

KNAX2499-E

Message id "メッセージ番号" is not defined.

メッセージ番号で示すメッセージはマニュアルにありません。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。

KNAX3000-I

The adshmd started.

ユーザー応答機能管理デーモンが起動しました。

(Ｓ)

処理を続行します。

KNAX3001-I

The adshmd stopped.

ユーザー応答機能管理デーモンが停止しました。

(Ｓ)

処理を終了します。

KNAX3002-E

An attempt to start adshmd failed.[詳細メッセージ]

ユーザー応答機能管理デーモンの起動に失敗しました。

このメッセージは，エラー通知として出力できる出力先に出力されますが，エラー発生のタイミングによっては，一部の出力先にだけ出力されることがあります。syslogへの出力時には，[詳細メッセージ]にユーザー応答機能管理デーモンに関連するメッセージ（メッセージ番号3000〜3999）のメッセージテキストが付与されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

エラーの原因を取り除き，ユーザー応答機能管理デーモンを再実行してください。

KNAX3003-E

Error was detected while stopping the adshmd.[詳細メッセージ]

ユーザー応答機能管理デーモンがエラー終了しました。または，終了処理中にエラーが発生しました。syslogへの出力時には，[詳細メッセージ]にユーザー応答機能管理デーモンに関連するメッセージ（メッセージ番号3000〜3999）のメッセージテキストが付与されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

エラーの原因を取り除き，ユーザー応答機能管理デーモンを再実行してください。

KNAX3006-I

The adshmd will now start.(pid=PID,uid=UID,gid=GID,username=ユーザー名)

ユーザー応答機能管理デーモンが起動を開始しました。

(Ｓ)

処理を終了します。

KNAX3008-W

The old pid was PID.

前回，ユーザー応答機能管理デーモンがエラー終了したときのプロセスID（PID）を表示します。

(Ｓ)

処理を続行します。

KNAX3009-E

The adshmd could not start because another one is already running.

ユーザー応答機能管理デーモンはすでに起動しています。

このメッセージは，エラー通知として出力できる出力先に出力されますが，エラー発生のタイミングによって，一部の出力先にだけ出力されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

必要に応じて起動中のユーザー応答機能管理デーモンを終了し，再起動します。

KNAX3020-E

An error occurred during file processing. (機能名 error 対象名 - エラー詳細)

ユーザー応答機能管理デーモンでファイル操作エラーが発生しました。

機能名，対象名，およびエラー詳細は，エラー情報を示します。

このメッセージは，エラー通知として出力できる出力先に出力されますが，エラー発生のタイミングによって，一部の出力先にだけ出力されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査してエラーの原因を取り除き，ユーザー応答機能管理デーモンを再実行します。

KNAX3023-E

An error occurred during signal processing. (機能名 error 対象名 - エラー詳細)

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。

機能名，対象名，およびエラー詳細は，エラー情報を示します。

このメッセージは，エラー通知として出力できる出力先に出力されますが，エラー発生のタイミングによっては，一部の出力先にだけ出力されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査してエラーの原因を取り除き，ユーザー応答機能管理デーモンを再実行します。

KNAX3024-E

An error occurred during signal processing. (機能名 error 対象名)

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。

機能名，および対象名は，エラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査してエラーの原因を取り除き，ユーザー応答機能管理デーモンを再実行します。

KNAX3025-E

An error occurred during signal processing. (機能名 error - エラー詳細)

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。

機能名，およびエラー詳細は，エラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査してエラーの原因を取り除き，ユーザー応答機能管理デーモンを再実行します。

KNAX3026-E

An error occurred during signal processing. (機能名 error)

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。

機能名は，エラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査してエラーの原因を取り除き，ユーザー応答機能管理デーモンを再実行します。

KNAX3027-E

An error occurred during process processing. (機能名 error 対象名 - エラー詳細)

ユーザー応答機能管理デーモンでプロセスエラーが発生しました。

機能名，対象名，およびエラー詳細は，エラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査してエラーの原因を取り除き，ユーザー応答機能管理デーモンを再実行します。

機能名はシステムの関数名を示します。システム関数のエラーメッセージからエラーの原因を調査してください。

KNAX3029-E

An error occurred. (機能名 error - エラー詳細)

ユーザー応答機能管理デーモンでシステム関数エラーが発生しました。

機能名，およびエラー詳細は，エラー情報を示します。

このメッセージは，エラー通知として出力できる出力先に出力されますが，エラー発生のタイミングによっては，一部の出力先にだけ出力されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査してエラーの原因を取り除き，ユーザー応答機能管理デーモンを再実行します。

KNAX3261-I

The adshmd received a signal.(シグナル名)

ユーザー応答機能管理デーモンがシグナル名で示す終了要求のシグナルを受信しました。

(Ｓ)

処理を続行します。

KNAX3400-I

The specified parameters in the configuration file were correct.

環境ファイルのチェックが正常に終了しました。

(Ｓ)

処理を続行します。

KNAX3402-E

The specified parameters in the configuration file were incorrect.

環境ファイルのチェックでエラーが発生しました。

エラーの内容はこのメッセージの前に出力されているメッセージを参照してください。

(Ｓ)

処理を終了します。

(Ｏ)

エラーの原因を取り除きます。

KNAX3508-I

Response request is cancelled. (ジョブ識別子, 行番号, ホスト名)

ユーザー応答機能管理デーモンがadshreadコマンドによる応答要求メッセージをキャンセルしました。

ジョブ識別子

JP1/Advanced Shellがバッチジョブに付与したジョブ識別子

行番号

adshreadコマンドを発行したジョブ定義スクリプトの行番号

ホスト名

ユーザー応答機能管理デーモンが稼働しているホストの名称

(Ｓ)

処理を続行します。

KNAX3522-E

An error occurred during shared memory processing. (機能名 error - エラー詳細)

ユーザー応答機能管理デーモンで共有メモリエラーが発生しました。

機能名，およびエラー詳細は，エラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査してエラーの原因を取り除き，ユーザー応答機能管理デーモンを再実行してください。

機能名はシステムの関数名を示します。システム関数のエラーメッセージからエラーの原因を調査してください。

KNAX3542-W

対象名 already exists.

ユーザー応答機能管理デーモンに-fオプションが指定されたため，すでに作成されている共有メモリまたはセマフォを初期化して使用します。

対象名は，Shared memory objectまたはNamed semaphoreです。

(Ｓ)

すでに作成されている共有メモリまたはセマフォを初期化して処理を続行します。

KNAX3700-I

The adshmd will now start.

ユーザー応答機能管理デーモンを起動します。

(Ｓ)

処理を続行します。

KNAX3701-I

The adshmd will now stop.

ユーザー応答機能管理デーモンを終了します。

(Ｓ)

処理を続行します。

KNAX3703-E

The adshmd is not running.

ユーザー応答機能管理デーモンが動作していません。

(Ｓ)

処理を終了します。

(Ｏ)

ユーザー応答機能管理デーモンが起動されているかどうかを確認してください。

KNAX3709-E

The adshmd could not start because another one is already running.

ユーザー応答機能管理デーモンはすでに動作しています。

(Ｓ)

処理を終了します。

(Ｏ)

必要に応じて起動中のユーザー応答機能管理デーモンを終了し，再起動してください。

KNAX3710-I

The adshmd is running.

ユーザー応答機能管理デーモンは動作しています。

(Ｓ)

処理を終了します。

KNAX3711-I

The adshmd is not running.

ユーザー応答機能管理デーモンは動作していません。

(Ｓ)

処理を終了します。

KNAX3799-I

Usage コマンド名 [-h LogicalHostName] {start [reuse]|stop|status|conftest [EnvironFile]|help}

adshmdctlコマンドの使用方法を表示します。

(Ｓ)

処理を終了します。

KNAX3998-E

An error occurred during adshmd signal handler processing.

ユーザー応答機能管理デーモンでシグナルハンドラがエラー終了しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX3999-E

The adshmd ended abnormally because of an unexpected exception.

ユーザー応答機能管理デーモンがエラー終了しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX4414-E

Size of the spool directory path is invalid. filename="ファイル名" line=行番号

指定したスプールディレクトリのパス名の長さが正しくありません。

ファイル名

対象リストファイル名

行番号

エラーが発生した対象リストファイルの行番号

(Ｓ)

後続行の指定の処理を継続します。

(Ｏ)

対象リストファイルに指定したスプールディレクトリ名に誤りがないかどうかを見直して再実行します。

KNAX4415-E

Data format error. filename="ファイル名" line=行番号

対象リストファイルの記述形式が正しくありません。または，コマンドの引数に日数の指定がないときに対象リストファイルに日数の指定がありません。

ファイル名

対象リストファイル名

行番号

エラーが発生した対象リストファイルの行番号

(Ｓ)

後続行の指定の処理を継続します。

(Ｏ)

対象リストファイルの指定が正しいかどうかを見直します。または，コマンドの引数に日数を指定します。

KNAX4416-E

Over max line size. filename="ファイル名" line=行番号

対象リストファイルの1行の上限を超えています。

ファイル名

対象リストファイル名

行番号

エラーが発生した対象リストファイルの行番号

(Ｓ)

処理を中断します。

(Ｏ)

対象リストファイルの指定が正しいかどうかを見直します。

KNAX4417-E

File was swapped. filename="ファイル名"

オープン前とオープン後でファイルの実体が異なります。

ファイル名

ファイル名

(Ｓ)

該当するファイルの処理は中断します。

(Ｏ)

ファイルに異常がないかどうかを確認します。

KNAX4418-E

Not file. filename="ファイル名"

ファイルは通常のファイルでありません。

ファイル名

ファイル名

(Ｓ)

該当するファイルの処理は中断します。

(Ｏ)

ファイルに異常がないかどうかを確認します。

KNAX4419-E

I/O error. path="パス名" error="エラー詳細"

ファイルの入出力処理で障害が発生しました。

パス名

パス名

このメッセージが出力される理由の一つとして，スプールのディレクトリの下に，ユーザーが独自に作成したファイルやディレクトリなど，JP1/Advanced Shellが認識できないファイルが存在する可能性があります。

(Ｓ)

該当するパスに対する処理を中断します。

(Ｏ)

該当するパスに異常がないかどうかを確認します。

KNAX4420-E

Fatal error. error="エラー詳細,内部情報"

予期しない障害が発生しました（ログファイルまたはトレースファイルのオープン処理に失敗，時刻処理で障害発生）。

(Ｓ)

スプールジョブ処理時はそのスプールジョブの処理を中断します。そのほかの場合はコマンドを終了します。

(Ｏ)

動作環境に問題ないかどうかを確認します。

KNAX4422-E

Not specify the {target-list-file | report-file | log-file}.

コマンドに必須のオペランドが指定されていません。

target-list-file

対象リストファイル

report-file

レポートファイル

log-file

ログファイル

(Ｓ)

コマンドを終了します。

(Ｏ)

必須のオペランドを指定してコマンドを再実行します。

KNAX4423-E

Invalid days.

コマンドに指定した日数の形式が正しくありません。

(Ｓ)

コマンドを終了します。

(Ｏ)

正しく指定してコマンドを再実行します。

KNAX4424-E

Unable to get the date for the start of the job execution. Spool job was not deleted. path="スプールジョブディレクトリ名"

バッチジョブの実行開始日付が求まらないため，スプールジョブは削除されていません。スプールジョブを管理するファイルが破壊されている場合があります。

スプールジョブディレクトリ名

異常があったスプールジョブディレクトリ名

(Ｓ)

該当するスプールジョブは削除しないで，処理を続行します。

(Ｏ)

必要な場合，手作業で該当するスプールジョブを削除します。

KNAX4425-E

The spool directory is currently being used by other process. path="スプールジョブディレクトリ名"

スプールジョブディレクトリ名で示すスプールディレクトリは，別のプログラムで使用中のため処理できませんでした。

(Ｓ)

該当するスプールジョブを処理しないで，処理を続行します。

(Ｏ)

時間を置いて，該当するスプールディレクトリが別のプログラムで処理中でないことを確認し，再実行してください。

KNAX4427-W

The invalid spool job directory was skipped.

不当なスプールジョブディレクトリが存在しましたが，そのディレクトリは処理をスキップしました。

実行が完了したジョブのスプールジョブディレクトリ名が，次の形式になっていません。

ジョブ識別子-ジョブ名

ジョブ識別子-

このメッセージは，スプールディレクトリ下に次の条件に該当する不当な名称のディレクトリまたはファイルが存在した場合に出力されます。

名称の長さが5バイト以下である。

名称の7バイト目が「-」でない。

名称のジョブ名部分が32バイト以上である。

ただし，JP1/Advanced Shellが管理するファイル（UNIXでは.jobid，Windowsではadsh.jobid）は該当しません。また，ジョブ識別子だけ（名称の長さが6バイト）の場合は実行中のジョブのため，該当しません。

(Ｓ)

処理を継続します。

(Ｏ)

不当なディレクトリまたはファイルは手作業で削除してください。

KNAX4428-I

Spool job was removed. path="パス名"

スプールジョブを削除しました。

パス名

スプールジョブディレクトリ名

(Ｓ)

処理を継続します。

KNAX4429-E

The error occurred.

コマンド実行中にエラーが発生しました。

(Ｓ)

処理を継続します。

(Ｏ)

ログファイル，レポートファイルまたは標準エラー出力に出力されたメッセージを見て，エラー内容を確認します。必要に応じて障害を取り除いてコマンドを再実行します。

KNAX5300-I

Usage: コマンド名 [-jbspglogicalhost LogicalHostName]

アダプタコマンドの引数が誤っています。

(Ｓ)

処理を終了します。

KNAX5301-E

Option "オプション名" value is not specified.

アダプタコマンドのオプションの指定値が誤っています。

オプション名

アダプタコマンドのオプション名

(Ｓ)

処理を終了します。

KNAX5305-E

Option 引数 is invalid.

アダプタコマンドに不正な引数を指定しました。

引数

アダプタコマンドのオプション名

(Ｓ)

処理を終了します。

KNAX5308-E

An API error occurred. (保守情報 error - エラー詳細)

アダプタコマンドでAPIエラーが発生しました。

保守情報およびエラー詳細はエラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

保守情報がsem_openの場合は，次のどちらかの環境不正が考えられます。

ユーザー応答機能管理デーモン・サービスが起動されていない。

ユーザー応答機能管理デーモン・サービスを起動してください。

起動できない要因が判明している場合は，その要因を取り除いて再起動してください。

起動できない要因が不明な場合は，システム管理者に連絡してください。

ユーザー応答機能管理サービスが登録されていない（Windowsの場合）。

サービスの登録手順に従ってユーザー応答機能管理サービスを登録し起動してください。

サービスが登録できないか，登録はできたが起動ができない場合は，要因が判明しているときはその要因を取り除き，登録または起動してください。

登録できない，または起動できない要因が不明な場合，システム管理者に連絡してください。

保守情報がsem_open以外の場合は，システム管理者に連絡してください。

KNAX5309-E

An internal error occurred.

内部エラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX5323-E

An error occurred during signal processing. (機能名 error 対象名- エラー詳細)

アダプタコマンドでシグナルエラーが発生しました。

機能名，対象名，およびエラー詳細はエラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX5340-E

There is no execute permission for the コマンド名 command.

アダプタコマンドに対する実行権限がありません。

このコマンドは，Administrators権限のユーザーで実行する必要があります。

(Ｓ)

処理を終了します。

(Ｏ)

アダプタコマンドは，JP1/Baseのプラグインサービスから起動されるプログラムです。プラグインサービスとして起動されてこのメッセージが出力された場合は，JP1/Baseの設定を見直してください。

KNAX5350-E

The request header is invalid.

アダプタコマンドに渡されるリクエストヘッダが不正です。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX5360-E

The request data is invalid.

アダプタコマンドに渡されるリクエストデータが不正です。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX5361-E

Failed to get the identifier.

アダプタコマンドに渡されるリクエストデータ中のインジケータの取得に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX5362-E

Non-ASCII character is found in a response.

JP1/IM - Viewの［応答入力］画面から応答入力した内容にASCII文字以外のデータが含まれています。

(Ｓ)

処理を終了します。

(Ｏ)

応答入力の内容にASCII文字列を指定して再度応答してください。

KNAX5371-E

The userreply function is busy.

JP1/Advanced Shellの処理がビジーです。

(Ｓ)

処理を終了します。

(Ｏ)

時間を置いて再度応答要求メッセージに応答してください。

KNAX5372-E

A message is not found.

応答要求メッセージが存在しません。次の要因が考えられます。

ユーザー応答機能管理デーモン・サービスが起動していません。

JP1/Baseの論理ホストに関する設定に誤りがあります。

なお，adshchmsgコマンドで応答待ちメッセージに代理応答した場合，タイミングによってはこのメッセージが出力されることがあります。この場合，対処は不要です。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX5380-I

Received data from JP1: 受信データ

ユーザー応答機能で，JP1からメッセージを受信しました。

(Ｓ)

処理を続行します。

KNAX5381-I

Sent status info to JP1: 送信データ

ユーザー応答機能で，JP1にメッセージを送信しました。

(Ｓ)

処理を続行します。

KNAX5396-I

adshuserreply.adapter completed because signal is detected.

アダプタコマンドが終了シグナルを受信して終了しました。

(Ｓ)

処理を終了します。

KNAX5397-I

Signal handler processing completed.

アダプタコマンドがシグナルを受信しました。

(Ｓ)

処理を終了します。

(Ｏ)

coreが出力されています。システム管理者に連絡してください。

KNAX5398-E

An error occurred during adshuserreply.adapter signal handler processing.

アダプタコマンドがシグナルを受信しましたが，シグナルハンドラの処理でエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX5399-E

The adshuserreply.adapter ended abnormally because of an unexpected exception.

アダプタコマンドがエラー終了しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX5407-E

Non-ASCII character is found in a response.

adshchmsgコマンドの-rオプション（応答内容）にASCII文字以外を指定しています。

(Ｓ)

処理を終了します。

(Ｏ)

adshchmsgコマンドの-rオプションにASCII文字列を指定して，再度応答してください。

KNAX5409-E

No valid response request was found.

adshchmsgコマンドで，-nオプションに指定した応答要求メッセージ番号に対する応答入力，または，応答要求メッセージのキャンセルを行おうとしましたが，指定された応答要求メッセージは存在しません。

(Ｓ)

処理を終了します。

(Ｏ)

次の点を確認してください。

-nオプションに指定した応答要求メッセージ番号に誤りがないか。

-nオプションに指定した応答要求メッセージ番号がadshlsmsgコマンドで表示されているか。

なお，指定した番号に誤りがなく，adshlsmsgコマンドを実行しても表示されない場合は，すでに応答入力が行われている可能性があります。

KNAX5410-E

An API error occurred. (保守情報 error - エラー詳細)

adshchmsgコマンドまたはadshlsmsgコマンドで，APIエラーが発生しました。

保守情報およびエラー詳細はエラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

保守情報がsem_openの場合は，次のどちらかの環境不正が考えられます。

ユーザー応答機能管理デーモン・サービスが起動されていない。

ユーザー応答機能管理デーモン・サービスを起動してください。

起動できない要因が判明している場合は，その要因を取り除いて再起動してください。

起動できない要因が不明な場合は，システム管理者に連絡してください。

ユーザー応答機能管理サービスが登録されていない（Windowsの場合）。

サービスの登録手順に従ってユーザー応答機能管理サービスを登録し起動してください。

サービスが登録できないか，登録はできたが起動ができない場合は，要因が判明しているときはその要因を取り除き，登録または起動してください。

登録できない，または起動できない要因が不明な場合，システム管理者に連絡してください。

保守情報がsem_open以外の場合は，システム管理者に連絡してください。

KNAX5423-E

An error occurred during signal processing. (機能名 error 対象名 - エラー詳細)

adshchmsgコマンドまたはadshlsmsgコマンドで，シグナルエラーが発生しました。

機能名，対象名，およびエラー詳細はエラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査して原因を取り除き，再度実行してください。

KNAX5424-E

An error occurred during signal processing. (機能名 error 対象名)

adshchmsgコマンドまたはadshlsmsgコマンドで，シグナルエラーが発生しました。

機能名および対象名はエラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査して原因を取り除き，再度実行してください。

KNAX5425-E

An error occurred during signal processing. (機能名 error - エラー詳細)

adshchmsgコマンドまたはadshlsmsgコマンドで，シグナルエラーが発生しました。

機能名およびエラー詳細はエラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査して原因を取り除き，再度実行してください。

KNAX5426-E

An error occurred during signal processing. (機能名 error)

adshchmsgコマンドまたはadshlsmsgコマンドで，シグナルエラーが発生しました。

機能名はエラー情報を示します。

(Ｓ)

処理を終了します。

(Ｏ)

エラー情報を調査して原因を取り除き，再度実行してください。

KNAX5429-E

An internal error occurred. (保守情報)

adshchmsgコマンドまたはadshlsmsgコマンドで，内部エラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX5440-E

There is no execute permission for the コマンド名 command.

コマンド名で示すコマンドに対する実行権限がありません。

このコマンドは，Administrators権限のユーザーで実行する必要があります。

(Ｓ)

処理を終了します。

(Ｏ)

Administrators権限のユーザーで実行してください。

KNAX5498-E

An error occurred during コマンド名 signal handler processing.

adshchmsgコマンドまたはadshlsmsgコマンドのシグナルハンドラの処理で，エラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX5499-E

The コマンド名 ended abnormally because of an unexpected exception.

adshchmsgコマンドまたはadshlsmsgコマンドがエラー終了しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX6000-E

Builtin command "コマンド名" is not supported.[ filename="ファイル名" line=行番号]

JP1/Advanced Shellではサポートしない組み込みコマンドを指定しました。

コマンド名

JP1/Advanced Shellではサポートしない組み込みコマンド名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

エラーとなった個所を見直し，ジョブ定義スクリプトを修正します。

KNAX6001-E

Shell option "シェルオプション名" is not supported.[ filename="ファイル名" line=行番号]

JP1/Advanced Shellではサポートしないシェルオプションを指定しました。

シェルオプション名

JP1/Advanced Shellではサポートしないシェルオプション名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

エラーとなった個所を見直し，ジョブ定義スクリプトを修正します。

KNAX6002-E

Specified variable "シェル変数名" is unusable.[ filename="ファイル名" line=行番号]

JP1/Advanced Shellでは使用できないシェル変数名を指定しました。

シェル変数名

JP1/Advanced Shellでは使用できないシェル変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

エラーとなったシェル変数名を別のシェル変数名に修正します。

KNAX6003-E

"変数名" is not an identifier.[ filename="ファイル名" line=行番号]

変数名に不当な文字が指定されています。

変数名

不当と判断した変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所がシェル拡張コマンド，正規組み込みコマンド，およびtypesetコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

エラーとなった変数名を別の変数名に修正します。

KNAX6004-E

"不当な値または数値以外の値" is bad number.[ filename="ファイル名" line=行番号]

次のどれかの要因が考えられます。

整数型の変数に文字を代入しようとしました。

数値を指定しなければならない引数に文字を指定しました。

数値として不当な値を指定しました。

不当な値または数値以外の値

不当と判断した値または数値以外の値

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンド，およびtypesetコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

エラーとなった個所が代入式の場合，代入する変数の属性，または代入する値を見直し，ジョブ定義スクリプトを修正します。コマンドの場合，引数に指定した内容を見直し，ジョブ定義スクリプトを修正します。

KNAX6005-E

Too many arguments.[ filename="ファイル名" line=行番号]

コマンドに指定した引数が多過ぎます。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

エラーとなった個所のコマンドの引数を見直し，ジョブ定義スクリプトを修正します。

KNAX6006-E

Bad substitution.[ filename="ファイル名" line=行番号]

置換の指定が誤っています。または，cdコマンドの引数に，"カレントディレクトリパス名"に含まれない文字列を指定しています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所がcdコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

エラーとなった個所の変数置換，コマンド置換または引数の指定を見直し，ジョブ定義スクリプトを修正します。

KNAX6007-E

"配列名" subscript out of range.[ filename="ファイル名" line=行番号]

配列の要素番号が範囲外です。

配列名

指定された配列名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所がシェル拡張コマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

配列の要素番号を0から65535までの範囲で指定するようにジョブ定義スクリプトを修正してください。

環境設定パラメーターVAR_SHELL_FUNCINFOにTYPE_AまたはTYPE_Bを指定している場合は，関数のネストが配列の要素数の上限を超えているため，環境設定パラメーターVAR_SHELL_FUNCINFOにNONEを指定するか，ジョブ定義スクリプトを修正してください。

KNAX6008-E

"変数名" is read only.[ filename="ファイル名" line=行番号]

読み込み専用属性の変数に値を代入しようとしました。

変数名

指定された変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が次のどれかのコマンドの場合，各コマンドの終了コードを設定し処理を継続します。

シェル拡張コマンド

正規組み込みコマンド

typesetコマンド

配列として定義した変数をtypesetコマンドで読み込み専用属性に設定した状態で，同一変数に要素番号を指定しないで値を代入するよう指定した場合，このエラーが発生し代入処理は実行されません。ただし，代入式は終了コード0を設定し処理を継続します。

それ以外の場合，処理を終了します。

(Ｏ)

エラーとなった個所の変数の属性または変数名を見直し，ジョブ定義スクリプトを修正してください。

KNAX6009-E

"オプション" is unknown option.[ filename="ファイル名" line=行番号]

コマンドに不当なオプションを指定しました。

オプション

コマンドに指定されたオプション

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所がシェル拡張コマンド，正規組み込みコマンド，およびtypesetコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

コマンドに指定しているオプションの内容を見直し，ジョブ定義スクリプトを修正します。

KNAX6010-E

"シェルオプション" is bad option.[ filename="ファイル名" line=行番号]

setコマンドで不当なシェルオプションを指定しました。

シェルオプション

指定されたシェルオプション

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

setコマンドに指定しているオプションの内容を見直し，ジョブ定義スクリプトを修正します。

KNAX6011-E

"シグナル番号または名称" is bad signal.[ filename="ファイル名" line=行番号]

不当なシグナル番号または名称を指定しました。

シグナル番号または名称

指定されたシグナル番号または名称

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

コマンドに指定しているシグナル番号またはシグナル名称を見直し，ジョブ定義スクリプトを修正します。

KNAX6012-E

"マスク" is bad mask.[ filename="ファイル名" line=行番号]

不当なマスクを指定しました。

マスク

指定されたマスク

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

コマンドに指定しているマスクの内容を見直し，ジョブ定義スクリプトを修正します。

KNAX6013-E

Bad limit - エラー詳細.[ filename="ファイル名" line=行番号]

エラー詳細で示すエラーが発生したため，上限値の変更に失敗しました。

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6014-E

Specified variable "変数名" is not set.[ filename="ファイル名" line=行番号]

nounsetシェルオプションを有効にした状態で，値が設定されていない変数を指定しました。

変数名

指定された変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

nounsetシェルオプションの設定が必要であるかどうかを見直します。必要な場合，変数を使用するときに値を代入するようジョブ定義スクリプトを修正します。

KNAX6015-E

Argument is not specified.[ filename="ファイル名" line=行番号]

引数が必要な組み込みコマンドに対して，引数を指定しないで実行しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

エラーとなった個所のコマンドの指定内容を見直し，ジョブ定義スクリプトを修正します。

KNAX6016-E

"オプション" requires argument.[ filename="ファイル名" line=行番号]

オプションの値を指定しないでコマンドを実行しました。

オプション

指定されたオプション

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

エラーとなった個所のコマンドの指定内容を見直し，ジョブ定義スクリプトを修正します。

KNAX6017-E

"項目名" unexpected.[ filename="ファイル名" line=行番号]

制御文の指定が誤っています。

項目名

構文不正となった項目名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6018-E

"項目名" unmatched.[ filename="ファイル名" line=行番号]

制御文で必要な項目名の対応が誤っています。

項目名

構文不正となった項目名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6019-E

Unexpected EOF.[ filename="ファイル名" line=行番号]

制御文の指定が誤っています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6020-E

"ディレクトリパス" is bad directory.[ filename="ファイル名" line=行番号]

不当なディレクトリパスが指定されました。

ディレクトリパス

指定されたディレクトリパス

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

ディレクトリを移動しないで処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6021-E

Too many <<'s.[ filename="ファイル名" line=行番号]

ヒアドキュメントでリダイレクトの指定が誤っています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6022-E

Too many redirections.[ filename="ファイル名" line=行番号]

リダイレクトで使用しているファイル識別子が多過ぎます。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6023-W

Cannot {break|continue}.[ filename="ファイル名" line=行番号]

ループ外でbreakコマンドまたはcontinueコマンドを実行しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6024-E

"関数名" is invalid function name.[ filename="ファイル名" line=行番号]

関数の定義で不当な関数名を指定しました。

関数名

指定された関数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6025-E

"ファイル名，コマンド名または関数名" is not found.[ filename="ファイル名" line=行番号]

特定できないファイル名，コマンド名または関数名を指定しました。

ファイル名，コマンド名または関数名

指定されたファイル名，コマンド名または関数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が.（ドット）コマンドの場合，処理を終了します。それ以外の場合，処理を継続します。

(Ｏ)

指定したファイル名，コマンド名および関数名が正しいかどうかを見直し，ジョブ定義スクリプトを修正します。

KNAX6026-E

"コマンド名" cannot execute - エラー詳細.[ filename="ファイル名" line=行番号]

エラー詳細で示すエラーが発生したため，指定されたコマンドが実行できません。

コマンド名

指定されたコマンド名

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

指定されたコマンドを実行しないで処理を継続します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6027-W

Specified value in the {break|continue} command is more than number of loop nests ループのネスト数.[ filename="ファイル名" line=行番号]

break，continueコマンドの引数に指定した値がループのネスト数よりも多いです。

ループのネスト数

ループの処理を抜けたとき（breakコマンド）またはループの処理を中断して先頭に戻ったとき（continueコマンド）のループのネスト数

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

ループのネスト数分だけbreakコマンドまたはcontinueコマンドを実行し，処理を継続します。

(Ｏ)

breakコマンドまたはcontinueコマンドの引数を見直し，ジョブ定義スクリプトを修正します。

KNAX6028-E

"コマンド名" is not a builtin.[ filename="ファイル名" line=行番号]

builtinコマンドに組み込みコマンド以外のコマンドを指定しました。

コマンド名

指定されたコマンド名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

builtinコマンドに指定したコマンドの引数を見直し，ジョブ定義スクリプトを修正します。

KNAX6029-E

Coprocess already exists.[ filename="ファイル名" line=行番号]

バックグラウンドプロセスがすでに実行されています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6030-E

Cannot change directory. ディレクトリパス名 - エラー詳細.[ filename="ファイル名" line=行番号]

ディレクトリを移動できません。

ディレクトリパス名

指定されたディレクトリパス名

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

ディレクトリを移動しないで処理を継続します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6031-E

Shell variable HOME is not set.[ filename="ファイル名" line=行番号]

シェル変数HOMEが設定されていないため，ディレクトリを移動できません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

ディレクトリを移動しないで処理を継続します。

(Ｏ)

シェル変数HOMEにホームディレクトリを指定し，ジョブ定義スクリプトを再実行します。

KNAX6032-E

Shell variable OLDPWD is not set.[ filename="ファイル名" line=行番号]

シェル変数OLDPWDが設定されていないため，ディレクトリを移動できません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

ディレクトリを移動しないで処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6033-E

Don't know current directory.[ filename="ファイル名" line=行番号]

カレントディレクトリを特定できないため，ディレクトリを移動できません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

ディレクトリを移動しないで処理を継続します。

(Ｏ)

ジョブ定義スクリプトを再実行します。

KNAX6034-E

No coprocess.[ filename="ファイル名" line=行番号]

バックグラウンドプロセスがない状態で実行しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6035-E

"ファイル識別子" is invalid file descriptor - エラー詳細.[ filename="ファイル名" line=行番号]

不当なファイル識別子を指定しています。

ファイル識別子

指定されたファイル識別子

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6036-E

Arguments must be process ids "プロセスID".[ filename="ファイル名" line=行番号]

プロセスIDに不当な値を指定しています。

プロセスID

指定されたプロセスID

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

正規組み込みコマンドの場合，処理を継続します。特殊組み込みコマンドの場合，処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6037-E

Missing options argument.[ filename="ファイル名" line=行番号]

オプションを指定しないでgetoptsコマンドを実行しています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6038-E

Missing name argument.[ filename="ファイル名" line=行番号]

nameを指定しないでgetoptsコマンドを実行しています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6039-E

Nothing to shift.[ filename="ファイル名" line=行番号]

コマンドラインの引数の数よりも指定された引数の方が大きい状態でshiftコマンドを実行しています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

shiftコマンドに指定した引数，またはコマンドライン引数の数を見直し，必要な場合，ジョブ定義スクリプトを修正します。

KNAX6040-E

Missing ].[ filename="ファイル名" line=行番号]

"]"の対応が誤っています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6041-E

Specified conditional expression is invalid.[ filename="ファイル名" line=行番号]

指定されたtestコマンドまたは条件式に誤りがあります。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

testコマンドの場合，処理を継続します。条件式の場合，処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6042-E

Readonly variable is specified in the expression.[ filename="ファイル名" line=行番号]

読み込み専用属性の変数を算術式に指定しています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

算術式は処理しないで処理を継続します。

(Ｏ)

算術式で使用している変数の属性を見直し，ジョブ定義スクリプトを修正します。

KNAX6043-W

Command to execute in another process is not specified.[ filename="ファイル名" line=行番号]

別プロセスで実行するコマンドが指定されていません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6044-E

Function definition file "関数名" is not found in FPATH directory.[ filename="ファイル名" line=行番号]

FPATHシェル変数にディレクトリが指定されていません。または，FPATHシェル変数に指定されたディレクトリに関数定義ファイルが見つかりません。

関数名

関数名

ファイル名

スクリプトファイル名

行番号

エラーが発生したスクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

関数定義ファイルを格納したディレクトリがFPATHシェル変数に指定されているか確認してください。

指定されている場合は，実行しようとした関数名が正しいか，FPATHシェル変数に指定されたディレクトリ内に実行しようとした関数の関数定義ファイルが存在するかを確認してください。

KNAX6045-E

Cannot open function definition file "関数名".[ filename="ファイル名" line=行番号]

関数定義ファイルをオープンできません。

関数名

関数名

ファイル名

スクリプトファイル名

行番号

エラーが発生したスクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

FPATHシェル変数に指定されたディレクトリと，実行しようとした関数の関数定義ファイルの権限を確認してください。

KNAX6046-E

Function "関数名" is not defined by "関数定義ファイル名".[ filename="ファイル名" line=行番号]

関数が関数定義ファイル内に定義されていません。

関数名

関数名

関数定義ファイル名

実行しようとした関数を定義する関数定義ファイル名

ファイル名

スクリプトファイル名

行番号

エラーが発生したスクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

実行しようとした関数名と，関数定義ファイルに定義されている関数名が正しいか確認してください。

KNAX6047-E

Specified limit "上限値" is invalid.[ filename="ファイル名" line=行番号]

上限値に不当な値を指定しています。

上限値

指定されたオプション

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

上限値を変更しないで処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6048-E

Exceeds allowable limit.[ filename="ファイル名" line=行番号]

ulimitコマンドでリソースのハードリミットを変更する際に，エラーが発生しました。このメッセージは次のどちらかの場合に出力されます。

ハードリミットを変更する権限があり，かつシステムで設定できない値を指定した。

ハードリミットを変更する権限がなく，かつ設定されているハードリミットを超える値を指定した。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

上限値を変更しないで処理を継続します。ただし，変更するリソースによっては，システムで設定できない値を指定すると，実行環境やOSによって異なる値が設定される場合があります。

(Ｏ)

原因に応じて次のように対処したのち，ジョブ定義スクリプトを再実行します。

ハードリミットを変更する権限があり，かつシステムで設定できない値を指定した場合

ulimitコマンドの引数をシステムで設定できる値に変更してください。

ハードリミットを変更する権限がなく，かつ設定されているハードリミットを超える値を指定した場合

実行ユーザーに管理者権限を割り当て，ulimitコマンドの引数をシステムで設定できる値に変更してください。ハードリミットを減少させる場合は，管理者権限は必要ありません。

KNAX6049-E

Cannot change limit.[ filename="ファイル名" line=行番号]

ulimitコマンドに指定された資源は変更できません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

上限値を変更しないで処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6050-E

"変数名" is null or not set.[ filename="ファイル名" line=行番号]

未作成，または値が設定されていない変数を変数置換に指定しています。

変数名

指定された変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

変数置換に指定した変数名を見直し，必要な場合，ジョブ定義スクリプトを修正します。

KNAX6051-E

Specified "リダイレクト指定内容" is invalid.[ filename="ファイル名" line=行番号]

コマンド置換で指定されたリダイレクト指定内容が誤っています。

リダイレクト指定内容

指定されたリダイレクト指定内容

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6052-E

Cannot open input file "入力ファイル名".[ filename="ファイル名" line=行番号]

コマンド置換で指定された入力ファイルをオープンできません。

入力ファイル名

指定された入力ファイル名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6053-E

Cannot create pipe.[ filename="ファイル名" line=行番号]

パイプの生成に失敗しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

メッセージに出力されたジョブ定義スクリプトファイル名の行番号の内容を見直し，記述に誤りがないかどうかを確認します。また，ジョブ定義スクリプト内でオープンしているファイルの数が多過ぎていないか見直します。記述に誤りがある場合は修正し，ジョブ定義スクリプトを再実行します。

再実行後も問題が解決されない場合は，システム管理者に連絡してください。

KNAX6054-E

Failed to create process.[ filename="ファイル名" line=行番号]

プロセスの生成に失敗しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

メッセージに出力されたジョブ定義スクリプトファイル名の行番号の内容を見直し，記述に誤りがないかどうかを確認します。記述に誤りがある場合は修正し，ジョブ定義スクリプトを再実行します。

再実行後も問題が解決されない場合は，次の要因が考えられます。

実行可能ファイルのパスが見つかりません。

実行可能ファイルが通常ファイルではありません。

実行可能ファイルの構成要素に検索許可がありません。

実行可能ファイルのパス名が長過ぎます。

実行可能ファイルの引数が多過ぎます。または引数の指定が無効です。

指定したファイルが実行可能ではありません。

実行可能ファイルのパス名の変換中に見つかったシンボリックリンクが多過ぎます。

実行中のプロセスの合計が，システムの上限値を超えています。

新しいプロセスを作成するためのスワッピング領域や物理メモリが十分にありません。

オープンするファイル数が多過ぎます。

上記要因を解決した上で，ジョブ定義スクリプトを再実行します。

再実行後も問題が解決されない場合は，システム管理者に連絡してください。

KNAX6055-E

Failed to send the signal. pid=プロセスID signalNo=シグナル番号 - エラー詳細.[ filename="ファイル名" line=行番号]

エラー詳細で示すエラーが発生したため，指定されたプロセスIDのシグナルの送信に失敗しました。

プロセスID

指定されたプロセスID

シグナル番号

送信に失敗したシグナル番号

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6056-W

Specified process id "プロセスID" is invalid and ignored.[ filename="ファイル名" line=行番号]

指定されたプロセスIDは不当な値のため，無視しました。

プロセスID

指定されたプロセスID

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

ジョブ定義スクリプトファイルを修正します。

KNAX6057-E

Cannot allocate memory.[ filename="ファイル名" line=行番号]

メモリ不足が発生しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。システム管理者は，メモリ見積もりを見直してください。

KNAX6058-E

The maximum recursion count for the shell variable ("シェル変数名") exceeds the limit. [filename="ファイル名" line=行番号]

次に示すシェル変数の再帰変換可能回数を超えたため，処理を中止しました。

シェル変数参照時のoffsetに指定した変数の再帰変換可能回数：1,024

シェル変数参照時のlengthに指定した変数の再帰変換可能回数：1,025

シェル変数名

循環参照または再帰的な参照となった変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

指定した変数は，循環参照指定または再帰的な参照指定となっているので，変数の指定値を見直してください。

KNAX6059-E

Too many files open in shell.[ filename="ファイル名" line=行番号]

ジョブ定義スクリプト内でオープンしているファイル数が多過ぎます。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

メッセージに出力されたジョブ定義スクリプトファイル名の行番号の内容を見直し，記述に誤りがないかどうかを確認します。また，ジョブ定義スクリプト内でオープンしているファイルの数が多過ぎていないか見直します。記述に誤りがある場合は修正し，ジョブ定義スクリプトを再実行します。

再実行後も問題が解決されない場合は，システム管理者に連絡してください。

KNAX6061-E

Here document missing.[ filename="ファイル名" line=行番号]

ヒアドキュメントの生成に失敗しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6062-E

Cannot {create|open|delete} temporary file 一時ファイル名 - エラー詳細.[ filename="ファイル名" line=行番号]

エラー詳細で示すエラーが発生したため，一時ファイルを作成，オープン，または削除できません。

一時ファイル名

処理しようとした一時ファイル名

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。ただし，ヒアドキュメントの処理でエラーが発生した場合は，処理を継続します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6063-E

Error writing 書き込み先ファイル名 - エラー詳細.[ filename="ファイル名" line=行番号]

エラー詳細で示すエラーが発生したため，ファイルへの書き込みが失敗しました。

書き込み先ファイル名

書き込みを実行しようとしたファイル名

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6064-E

Failed to generate the temporary variable "変数名または算術式" in the calculating formula.[ filename="ファイル名" line=行番号]

算術式で一時的に使用する変数の作成に失敗しました。

変数名

エラーが発生した算術式に含まれる変数名

算術式

エラーが発生した算術式

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった算術演算をしないで処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6065-E

Invalid "変数名または算術式" is used in the calculating formula.[ filename="ファイル名" line=行番号]

不当な変数を算術式に使用しました。

変数名または算術式

エラーが発生した算術式

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった算術演算をしないで処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6066-E

Format of expression is invalid.[ filename="ファイル名" line=行番号]

算術式の書式が誤っています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった算術演算をしないで処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6067-E

Expression is zero divisor.[ filename="ファイル名" line=行番号]

ゼロ除算を実施しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった算術演算をしないで処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6068-E

A negative value is specified as exponent.[ filename="ファイル名" line=行番号]

算術演算子「**」の指数に負の値が指定されました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった算術演算をしないで処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6070-E

No last job.[ filename="ファイル名" line=行番号]

実行完了待ちが必要なジョブがありません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6071-E

Cannot get current directory - エラー詳細.[ filename="ファイル名" line=行番号]

エラー詳細で示すエラーが発生したため，カレントディレクトリを特定できません。

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

ディレクトリを移動しないで処理を継続します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6072-E

A required option is not specified.[ filename="ファイル名" line=行番号]

必要なオプションが指定されていません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

エラーとなった個所のコマンドのオプションを見直し，ジョブ定義スクリプトを修正してください。

KNAX6075-E

Could not finish (dup) redirection リダイレクト文字: エラー詳細.[ filename="ファイル名" line=行番号]

エラー詳細で示すエラーが発生したため，dupによってファイル識別子を複写できません。

リダイレクト文字

指定されたリダイレクト文字

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6076-E

Arguments changed since last call.[ filename="ファイル名" line=行番号]

getoptsコマンドの実行中に引数の内容が変更されました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を継続します。

(Ｏ)

エラーが発生したジョブ定義スクリプトファイルの行番号の内容を見直し，記述に誤りがないことを確認します。記述が誤っていた場合はジョブ定義スクリプトを修正し，再実行します。

KNAX6077-E

Invalid option specified.[ filename="ファイル名" line=行番号]

オプションの指定が誤っています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6078-E

No closing quote.[ filename="ファイル名" line=行番号]

クォーテーションの対応が誤っています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6079-E

Here document "ラベル" unclosed.[ filename="ファイル名" line=行番号]

ヒアドキュメントで指定したラベルが見つかりません。

ラベル

ヒアドキュメントに指定したラベル

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6080-E

Cannot dup 対象ファイル名 - エラー詳細.[ filename="ファイル名" line=行番号]

エラー詳細で示すエラーが発生したため，ファイル識別子の複写に失敗しました。

対象ファイル名

ファイル識別子の複写に失敗したファイル名

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6081-E

Cannot open 対象ファイル名 - エラー詳細.[ filename="ファイル名" line=行番号]

エラー詳細で示すエラーが発生したため，ファイルのオープンに失敗しました。

対象ファイル名

ファイルのオープンに失敗したファイル名

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6082-E

Cannot create 対象ファイル名 - エラー詳細.[ filename="ファイル名" line=行番号]

エラー詳細で示すエラーが発生したため，ファイルの作成に失敗しました。

対象ファイル名

ファイルの作成に失敗したファイル名

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

エラー詳細を基に原因を取り除きます。必要な場合，ジョブ定義スクリプトを修正します。

KNAX6085-E

Cannot be set to the specified signal "シグナル番号または名称".[ filename="ファイル名" line=行番号]

指定されたシグナルには，トラップを設定できません。

シグナル番号または名称

指定されたシグナル番号またはシグナル名称

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

trapコマンドに指定したシグナル番号またはシグナル名称を見直し，修正します。

KNAX6097-E

The attribute of the specified extended shell variable "変数名" cannot be changed. [filename="ファイル名" line=行番号]

シェル拡張変数の変更できない属性を変更しようとしました。次の要因が考えられます。

シェル拡張変数の読み込み専用属性を解除しようとした。

シェル拡張変数をローカル変数に変更しようとした。

変数名

属性を変更しようとしたシェル拡張変数名

ファイル名

スクリプトファイル名

行番号

エラーが発生したスクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

次のどちらかの方法で対処してください。

エラーとなった個所の変数名，または変更しようとした属性を見直し，ジョブ定義スクリプトを修正してください。

環境設定パラメーターVAR_SHELL_FUNCINFOの指定をNONEに変更して再実行してください。

ジョブ定義スクリプトを再実行しても問題が解決しない場合は，システム管理者に連絡してください。

KNAX6098-E

Error occurred. reason=ソース上の行番号, 障害解析情報 [ filename="ファイル名" line=行番号]

エラーが発生しました。

ソース上の行番号

エラーが発生したソース上の行番号

障害解析情報

障害解析情報

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

エラーとなった個所が正規組み込みコマンドの場合，処理を継続します。それ以外の場合，処理を終了します。

(Ｏ)

メッセージに出力されたジョブ定義スクリプトファイル名の行番号の内容を見直し，記述に誤りがないかどうかを確認します。記述に誤りがある場合は修正し，ジョブ定義スクリプトを再実行します。再実行後も問題が解決されない場合は，システム管理者に連絡します。

KNAX6099-E

Internal error occurred. reason=ソース上の行番号, 障害解析情報 [ filename="ファイル名" line=行番号]

内部エラーが発生しました。

ソース上の行番号

エラーが発生したソース上の行番号

障害解析情報

障害解析情報

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。

KNAX6100-E

Failed to execute the command "コマンド名". rc=終了コード [filename="ファイル名" line=行番号]

コマンドの実行に失敗しました。このメッセージが出力された場合，KNAX7999-Iで出力された終了コードは無効となり，このメッセージで出力された終了コードがジョブの終了コードになります。

コマンド名

実行に失敗したコマンド名

終了コード

ジョブの終了コード

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を終了します。

(Ｏ)

このメッセージの直前に出力されるKNAX6098-Eに従って，エラーとなった要因を解決してからジョブ定義スクリプトを再実行してください。再実行しても問題が解決されない場合は，システム管理者に連絡してください。

KNAX6110-I

Command コマンド名(line=行数) succeeded. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

コマンドが正常終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6111-I

Command コマンド名(line=行数) was executed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

コマンドが終了しました。このメッセージは，終了コードによって成功・失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6112-I

Command コマンド名(line=行数) succeeded. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

コマンドが正常終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6113-I

Command コマンド名(line=行数) was executed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

コマンドが終了しました。このメッセージは，終了コードによって成功・失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6114-I

Command コマンド名(line=行数) succeeded. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

コマンドが正常終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6115-I

Command コマンド名(line=行数) was executed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

コマンドが終了しました。このメッセージは，終了コードによって成功・失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6116-I

Command コマンド名(line=行数) succeeded. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

コマンドが正常終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6117-I

Command コマンド名(line=行数) was executed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

コマンドが終了しました。このメッセージは，終了コードによって成功・失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6120-I

Command コマンド名 for 機能名 succeeded. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で実行されたコマンドが正常終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として，次のどちらかが出力されます。

コマンド置換機能の場合：コマンド置換

trapコマンドのアクションの場合：trapコマンドのアクション

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6121-I

Command コマンド名 for 機能名 was executed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で実行されたコマンドが終了しました。このメッセージは，終了コードによって成功・失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として，次のどちらかが出力されます。

コマンド置換機能の場合：command replace

trapコマンドのアクションの場合：trap action

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6122-I

Command コマンド名 for 機能名 succeeded. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で実行されたコマンドが正常終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として，次のどちらかが出力されます。

コマンド置換機能の場合：command replace

trapコマンドのアクションの場合：trap action

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6123-I

Command コマンド名 for 機能名 was executed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で実行されたコマンドが終了しました。このメッセージは，終了コードによって成功・失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として，次のどちらかが出力されます。

コマンド置換機能の場合：command replace

trapコマンドのアクションの場合：trap action

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6124-I

Command コマンド名 for 機能名 succeeded. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で実行されたコマンドが正常終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として，次のどちらかが出力されます。

コマンド置換機能の場合：command replace

trapコマンドのアクションの場合：trap action

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6125-I

Command コマンド名 for 機能名 was executed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で実行されたコマンドが終了しました。このメッセージは，終了コードによって成功・失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として，次のどちらかが出力されます。

コマンド置換機能の場合：command replace

trapコマンドのアクションの場合：trap action

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6126-I

Command コマンド名 for 機能名 succeeded. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で実行されたコマンドが正常終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として，次のどちらかが出力されます。

コマンド置換機能の場合：command replace

trapコマンドのアクションの場合：trap action

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6127-I

Command コマンド名 for 機能名 was executed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で実行されたコマンドが終了しました。このメッセージは，終了コードによって成功・失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として，次のどちらかが出力されます。

コマンド置換機能の場合：command replace

trapコマンドのアクションの場合：trap action

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間（OSのAPIで取得された参考値）

CPU時間

コマンドのCPU時間（OSのAPIで取得された参考値）

(Ｓ)

処理を続行します。

KNAX6130-E

I/O error occurred on event file. file name="イベントファイルのパス名"

イベントファイルへのジョブ定義スクリプト稼働実績情報の出力で入出力エラーが発生しました。

イベントファイルのパス名

入出力エラーが発生したイベントファイルのパス名

(Ｓ)

処理を続行します。

(Ｏ)

前後のメッセージを参照して，入出力エラーの原因を調査し，解決してください。

KNAX6180-E

adshjava: Command line error. "詳細"

コマンドラインの指定に誤りがあります。メッセージに表示される詳細の表示内容と，その意味を次に示します。

詳細の表示内容

意味

Batch server name is not specified

バッチサーバ名の指定がない。

Batch server name is too long

バッチサーバ名が長過ぎる。

Group name is not specified

グループ名の指定がない。

Group name is too long

グループ名が長過ぎる。

オプション名 option is already specified

オプション名のオプションが複数回指定された。

Can not specify -grp option and -srv option at the same time

バッチサーバ名とグループ名は同時には指定できない。

-java option is not specified

-javaオプションの指定がない。

Nothing after -java option

-javaオプションの後ろに何も指定がない。

(Ｓ)

処理を終了します。

(Ｏ)

コマンドを正しく指定して再実行してください。

KNAX6181-E

adshjava: Internal error occurred. "詳細"

コマンド処理中に継続できないエラーが発生しました。メッセージに表示される詳細の表示内容と，その意味を次に示します。

詳細の表示内容

意味

Execution environment is not correct(内部情報)

adshexecで実行していないなど，実行環境が正しくない。

_time64 error(内部情報)

時刻を求める処理でエラーが発生した。

clock_gettime error : エラー情報(内部情報)

OpenMutex error : エラー情報(内部情報)

排他処理でエラーが発生した。

WaitForSingleObject error : エラー情報(内部情報)

事象発生を待つ処理でエラーが発生した。

CreateProcess error : エラー情報(内部情報)

cjexecjobコマンド，またはcjkilljobコマンドを実行するプロセスの生成時にエラーが発生した。cjexecjobコマンド，またはcjkilljobコマンドのパスの設定に誤りがある場合や，コマンドを実行する権限がないユーザーで実行している場合に，このエラーが発生することがある。

WaitForMultipleObjects error : エラー情報(内部情報)

事象発生を待つ処理でエラーが発生した。

GetExitCodeProcess error : エラー情報(内部情報)

終了コードの取得処理でエラーが発生した。

execvp error : エラー情報(内部情報)

cjexecjobコマンドの起動時にエラーが発生した。cjexecjobコマンドが見つからない場合，またはコマンドを実行する権限がないユーザーで実行している場合に，このエラーが発生することがある。

fork error : エラー情報(内部情報)

プロセスの生成時にエラーが発生した。

waitpid error : エラー情報(内部情報)

プロセスの終了を待つ処理でエラーが発生した。

SetConsoleCtrlHandler error : エラー情報(内部情報)

ハンドラの設定処理に失敗した。

setpgid error : エラー情報(内部情報)

プロセスグループの変更に失敗した。

nanosleep error : エラー情報(内部情報)

処理の遅延処理で失敗した。

SetEvent error : エラー情報(内部情報)

シグナルの通知処理に失敗した。

CreateEvent error : エラー情報(内部情報)

シグナル通知のためのイベントオブジェクトの生成に失敗した。

(Ｓ)

処理を終了します。

(Ｏ)

障害を取り除いて再実行してください。

障害を特定できない場合，または障害を取り除けない場合は，システム管理者に連絡してください。

KNAX6182-E

adshjava: A forced end process failed. "詳細" (エラー番号または終了状態情報)

強制終了処理中に継続できないエラーが発生しました。メッセージに表示される詳細の表示内容とその意味，およびエラー番号または終了状態情報の表示内容を次に示します。

詳細の表示内容

意味

エラー番号または終了状態情報の表示内容

execvp error

cjkilljobコマンドの起動に失敗した。cjkilljobコマンドが見つからない場合，またはコマンドを実行する権限がないユーザーで実行している場合に，このエラーが発生することがある。

エラー番号

fork error

cjkilljobコマンドの起動に失敗した。

エラー番号

waitpid error

cjkilljobコマンドの終了待ち処理に失敗した。

エラー番号

The process of the cjkilljob command was terminated abnormally

cjkilljobコマンドのプロセスがシグナルなどでエラー終了した。

終了状態情報

エラー番号

16進文字列表示のエラー番号を表示します。エラー番号についてはUNIXのerrno定義ファイル（errno.h）を参照してください。

終了状態情報

プロセス終了時に通知された終了状態情報を16進文字列で表示します。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。また，cjkilljobコマンドを実行してJavaのバッチアプリケーションを停止させてください。

KNAX6183-E

adshjava: The process of the コマンド名 command was terminated abnormally. "終了状態情報" (内部情報)

コマンド名で示すコマンドが，シグナルなどでエラー終了しました。

終了状態情報

プロセス終了時に通知された終了状態情報

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。Javaのバッチアプリケーションを停止させる必要がある場合は，cjkilljobコマンドを実行してJavaのバッチアプリケーションを停止させてください。

KNAX6189-I

adshjava: Assigned batch application jobID. "ジョブID"

uCosminexus Application Serverが使用するJavaのバッチアプリケーションのジョブIDを割り当てました。

(Ｓ)

処理を続行します。

KNAX6200-I

Usage: コマンド名 コマンド引数

コマンド引数の文法をコマンド名とともに出力します。

(Ｓ)

処理を終了します。

KNAX6201-E

Option オプション名 value is not specified.

オプション名のオプションの値が指定されていません。

(Ｓ)

処理を終了します。

(Ｏ)

表示されたオプションに対して，値を指定します。

KNAX6202-E

Option オプション名 was unknown.

不明なオプション名が指定されています。

(Ｓ)

処理を終了します。

(Ｏ)

正しいオプションを指定します。

KNAX6203-E

Option "オプション値" value format is invalid.

オプションの値が不正です。オプション値は，指定したオプションの値です。

(Ｓ)

処理を終了します。

(Ｏ)

オプションに対して正しい値を指定します。

KNAX6204-E

Option "オプション名" is specified with other exclusive option.

同時に指定できないオプション名を指定しています。

(Ｓ)

処理を終了します。

(Ｏ)

正しいオプションの組み合わせを指定します。

KNAX6206-E

Asc file name is not specified.

コマンドの引数にascファイルが指定されていません。

(Ｓ)

処理を終了します。

(Ｏ)

コマンドの引数にascファイルを指定します。

KNAX6207-E

Too many operands.

コマンドに余分な引数があります。

(Ｓ)

処理を終了します。

(Ｏ)

コマンドの引数を正しく指定します。

KNAX6208-E

One or more operands are missing.

コマンドの引数が不足しています。

(Ｓ)

処理を終了します。

(Ｏ)

コマンドの引数を正しく指定します。

KNAX6209-W

line number is out of script line number range.

範囲指定の行番号がジョブ定義スクリプトの行番号の範囲外です。

(Ｓ)

範囲指定の行番号を次のように解釈して，処理を続行します。

開始行の行番号がジョブ定義スクリプトの行番号の範囲外である場合，誤りのある範囲指定を無視します。

開始行の行番号がジョブ定義スクリプトの行番号の範囲内で，終了行の行番号がジョブ定義スクリプトの行番号の範囲外である場合，誤りのある終了行の行番号をジョブ定義スクリプトの最大行番号とします。

上記で，誤りのある範囲指定を無視した結果，有効な範囲指定がない場合，先頭部分の見出しの情報だけを出力します。ジョブ定義スクリプトとカバレージ情報は出力しません。

(Ｏ)

正しい行番号を指定します。

KNAX6210-E

Asc file "ファイル名" open failed. reason="エラー詳細"

ファイル名で示すascファイルのオープンでエラーが発生しました。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ascファイルのオープンがエラーとなった理由を調査し，問題を解決してから再度コマンドを実行します。

Windowsの場合，adshexecコマンドのascファイルに，パス名の最後にディレクトリ区切り文字の「¥」があるディレクトリを指定すると，エラー詳細に"No such file or directory"が表示されます。このときは，ディレクトリではなく，ファイル名を指定してください。

KNAX6211-E

Asc file "ファイル名" lock failed. reason="エラー詳細"

ファイル名で示すascファイルをロックできません。

エラー詳細は，ファイルをロックできないエラーの内容を示します。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ascファイルをロックできない原因を調査し，問題を解決してから再度コマンドを実行します。ascファイルをロックできない原因の多くは，ほかのプログラムがascファイルを使用しているためです。

KNAX6212-E

Asc file "ファイル名" read failed. reason="エラー詳細"

ファイル名で示すascファイルの読み込みでエラーが発生しました。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ascファイルの読み込みができない原因を調査し，問題を解決してから再度コマンドを実行します。

KNAX6213-E

Asc file "ファイル名" format is invalid. detail=保守情報

ファイル名で示すascファイルの形式不正を検出しました。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ファイル名に示すascファイルを削除し，新規にカバレージ情報を採取します。ascファイルを不当に更新していないかを確認します。確認事項に問題がなく，同じ現象が発生する場合は，ファイル名に示すascファイルを保存し，製品の提供元に問い合わせてください。

KNAX6214-E

Asc file "ファイル名" update failed. reason="エラー詳細"

ファイル名で示すascファイルの更新でエラーが発生しました。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ascファイルの読み込みができない原因を調査し，問題を解決してから再度コマンドを実行します。

KNAX6215-E

Asc file "ファイル名" unlock failed. reason="エラー詳細"

ファイル名で示すascファイルのロックを解除しようとしたときにエラーが発生しました。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ascファイルのロックを解除しようとしたときにエラーが発生した原因を調査し，問題を解決します。

KNAX6219-E

Script "ジョブ定義スクリプト名" and asc file "ascファイル名" have different script data.

次に示すジョブ定義スクリプトが異なるため，ascファイル名で示すascファイルにカバレージ情報を継続蓄積できません。

ジョブ定義スクリプト名で示すジョブ定義スクリプト

ascファイル名で示すascファイルのカバレージ情報を採取したときのジョブ定義スクリプト

(Ｓ)

処理を終了します。

(Ｏ)

次のどちらかの対処を実施してください。

ascファイル名で示すascファイルにカバレージ情報を継続蓄積する場合

ascファイル名で示すascファイルにカバレージ情報を採取したときのジョブ定義スクリプトファイルを使用します。

ascファイル名で示すascファイルにカバレージ情報を継続蓄積しない場合

ascファイル名で示すascファイルのカバレージ情報が不要な場合は，adshexecコマンドに-fオプションを指定します。すでに採取しているカバレージ情報を破棄し，新規にカバレージ情報を格納します（初回蓄積）。

ascファイル名で示すascファイルのカバレージ情報が必要な場合は，adshexecコマンドの-oオプションで，出力先のascファイルを指定します。指定するascファイルが出力先にないことが必要です。

KNAX6220-I

Merging two asc files is started. Output file "ファイル名"

カバレージ情報のマージ処理を開始します。

ファイル名は，マージ結果を格納するascファイルのファイル名です。

(Ｓ)

処理を続行します。

KNAX6221-I

Main file="ファイル名1" sub file="ファイル名2"

ファイル名1は，ベースascファイルです。

ファイル名2は，マージascファイルです。

(Ｓ)

処理を続行します。

KNAX6222-I

Merging two asc files ended. Output file "ascファイル名"

カバレージ情報のマージ処理が終了しました。

ascファイル名は，マージ結果を格納したascファイルのファイル名です。

(Ｓ)

処理を続行します。

KNAX6223-E

Two asc files "ファイル名1" and "ファイル名2" have different script data.

ファイル名1とファイル名2のascファイルでは，カバレージ情報を採取した場合のジョブ定義スクリプトの内容が異なります。

ファイル名1は，ベースascファイルです。

ファイル名2は，マージascファイルです。

(Ｓ)

処理を終了します。

(Ｏ)

同一のジョブ定義スクリプトファイルで採取したascファイルを，adshcvmergコマンドのベースascファイル，マージascファイルに指定します。

KNAX6225-E

Internal error occurred. detail=保守情報

処理で内部矛盾を検出しました。

(Ｓ)

処理を終了します。

(Ｏ)

保守情報とともに，製品の提供元に問い合わせます。

KNAX6226-E

Nest of control statement exceeded limit.

スクリプト制御文の，すべてを合わせたネストが深過ぎます。

(Ｓ)

処理を終了します。

(Ｏ)

カバレージ情報を採取する必要がある場合，スクリプト制御文のすべてを合わせたネストが深くならないように，ジョブ定義スクリプトを変更します。

KNAX6227-E

The version of "バージョン" do not match.

ascファイルのバージョン番号が，コマンドがサポートしているバージョン番号と異なります。

バージョンは，バージョン番号を示します。

(Ｓ)

処理を終了します。

(Ｏ)

コマンドがサポートしているバージョンのascファイルを指定します。

KNAX6228-E

Failed to get the time information. reason="エラー詳細"

日時の取得でエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

日時の取得が失敗した原因を調査し，対策します。日時の取得にはtime関数を使用しています。

KNAX6229-E

Failed to get the information of "ファイル名". reason="エラー詳細"

ファイル名で示すファイルの情報取得でエラーが発生しました。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ファイルの情報取得でエラーが発生した原因を調査し，問題を解決します。ファイルに対してアクセス権限がない場合が多いです。

KNAX6231-E

Merge asc file is the same as base asc file.

マージascファイルがベースascファイルと同一のファイルです。

(Ｓ)

処理を終了します。

(Ｏ)

マージascファイルとベースascファイルは，カバレージ情報のマージが必要な異なるファイルを指定します。

KNAX6232-E

Failed to get the user name.

コマンド実行しているユーザーのユーザー名を取得できません。

(Ｓ)

処理を終了します。

(Ｏ)

コマンドを実行しているユーザーのユーザー名が取得できない原因を調査し，問題を解決します。UNIXの場合，/etc/passwdにコマンドを実行しているユーザーのユーザー名が登録されていない可能性があります。

KNAX6233-E

"ファイル名" already exists.

ファイル名で示すファイルがすでにあります。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ファイル名で示すファイルがすでにあるため，処理を実行できません。ファイル名を変更するか，またはファイルを削除します。

KNAX6236-E

"ファイル名" is not regular file.

ファイル名で示すファイルは通常のファイルではありません。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ファイル名で示すファイルの種別を確認します。

KNAX6237-E

Script file is the same as ファイル種別.

ascファイル（コマンドが作成するascファイルを含みます）のパス名がジョブ定義スクリプトファイルのパス名と重複しました。

ファイル種別

ジョブ定義スクリプトファイルのパス名と重複したascファイル

"asc file"：省略，または指定されたascファイルのパス名が重複しました。

"temporary asc file"：一時ascファイルのパス名が重複しました。

"backup asc file"：バックアップascファイルのパス名が重複しました。

(Ｓ)

処理を終了します。

(Ｏ)

ascファイルのパス名を明示的に指定して，ジョブ定義スクリプトファイルのパス名とは異なるパス名にします。ascファイルのパス名を明示的に指定している場合，明示的に指定しているascファイルのパス名を変更して，ジョブ定義スクリプトファイルのパス名と異なるパス名にします。

KNAX6238-E

Asc file "ファイル名" rename failed. reason="エラー詳細"

ファイル名で示すascファイルの名称変更処理でエラーが発生しました。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ascファイルの名称変更処理でエラーが発生した原因を調査し，問題を解決します。コマンドの実行中にファイル名に示すファイルを書き込み保護の設定や，アクセス権限の変更を行った可能性があります。

KNAX6239-E

Asc file "ファイル名" remove failed. reason="エラー詳細"

ファイル名で示すascファイルの削除処理でエラーが発生しました。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ascファイルの削除処理でエラーが発生した原因を調査し，問題を解決します。コマンドの実行中に書き込み保護となっているか，またはアクセス権限のないファイル名に示すファイルが作成された可能性があります。

KNAX6240-E

Asc file "ファイル名" seek failed. reason="エラー詳細"

ファイル名で示すascファイルの位置づけ処理でエラーが発生しました。

ファイル名には，コマンドで指定したascファイルだけでなく，コマンドが一時的に作成するascファイルのファイル名も出力します。

(Ｓ)

処理を終了します。

(Ｏ)

ascファイルの位置づけ処理でエラーが発生した原因を調査し，問題を解決します。

KNAX6241-E

Input asc file is the same as output asc file.

adshcvmergコマンドで，出力ascファイルと入力ascファイル（ベースascファイルまたはマージascファイル）に同じファイルを指定しています。

(Ｓ)

処理を終了します。

(Ｏ)

出力ascファイルは，入力ascファイルと異なるファイルを指定します。

KNAX6242-I

Asc file "ファイル名" has been updated.

adshexecコマンドで，ascファイルのカバレージ情報が更新されました。ファイル名は，更新したascファイルのパス名です。

(Ｓ)

処理を続行します。

KNAX6243-I

Asc file "ファイル名" is restored from backup asc file.

adshexecコマンドで，ascファイルをバックアップascファイルから回復しました。ファイル名は，回復したascファイルのパス名です。

(Ｓ)

処理を続行します。

KNAX6244-E

Asc file "ファイル名" truncate failed. reason="エラー詳細"

ファイル名で示すascファイルの初期化処理でエラーが発生しました。

Windowsの場合，_chsize関数で発生したエラーです。

UNIXの場合，ftruncate関数で発生したエラーです。

(Ｓ)

処理を終了します。

(Ｏ)

ascファイルの初期化処理でエラーが発生した原因を調査し，問題を解決します。

KNAX6290-E

カバレージ情報表示プログラムの設定が不当です。詳細コード＝保守情報

表示プログラムを起動するプログラムの設定が誤っています。

(Ｓ)

処理を終了します。

(Ｏ)

保守情報とともに，製品の提供元に問い合わせてください。

KNAX6291-E

カバレージ情報表示プログラムの起動に失敗しました。エラー詳細＝エラー詳細

カバレージ情報表示プログラムの起動に失敗しました。エラー詳細は，起動できない理由を示しています。

(Ｓ)

処理を終了します。

(Ｏ)

起動ができない原因を調査し，問題を解決します。

KNAX6292-E

"ファイル名" is not regular file.

ファイル名で示すファイルは通常のファイルではありません。

(Ｓ)

処理を終了します。

(Ｏ)

ファイル名で示すファイルの種別を確認します。

KNAX6293-E

Failed to get the information of "ファイル名". reason="エラー詳細"

ファイル名で示すファイルの情報取得でエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

ファイルの情報取得でエラーが発生した原因を調査し，問題を解決します。主な原因として，ファイルに対してアクセス権限がないことが考えられます。

KNAX6294-E

View file "ファイル名" open failed. reason="エラー詳細"

カバレージ情報表示プログラムで使用するファイルのオープンでエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

カバレージ情報表示プログラムで使用するファイルのオープンがエラーとなった理由を調査し，問題を解決してからカバレージ情報の表示を実行します。

KNAX6295-E

Failed to execute the coverage view program. (reason=エラー詳細)

エラー詳細に示す原因によって，カバレージ表示プログラムの実行が失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細の原因を取り除いて再実行します。問題が解決しない場合は，システム管理者に連絡します。

KNAX6296-E

Coverage view file "ファイル名" update failed. reason="エラー詳細"

ファイル名で示すカバレージ情報表示プログラムで使用するファイルの更新でエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

カバレージ情報表示プログラムで使用するファイルの書き込みができない原因を調査し，問題を解決してから再度コマンドを実行します。

KNAX6297-E

Failed to get the Temp directory. reason="エラー詳細"

一時ディレクトリ情報取得でエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

一時ディレクトリ情報取得でエラーが発生した原因を調査し，問題を解決します。

KNAX6298-E

カバレージ情報の表示でエラーが発生。　応答コード＝"エラー詳細"

カバレージ情報の表示でエラーが発生しました。応答コードとして表示される内容については，adshcvshowコマンドの終了コードの説明を参照してください。

(Ｓ)

処理を終了します。

(Ｏ)

カバレージ情報の表示で発生したエラーの原因を調査し，問題を解決してください。エラー発生時のメッセージがカバレージ情報蓄積ファイルに保存されている場合があります。

なお，ジョブ定義スクリプトを実行していない場合は，応答コードに6が設定されます。カバレージ情報はジョブ定義スクリプトを実行したあとに表示してください。

KNAX6301-E

Coverage option is specified in batch coverage mode.

一括してカバレージ情報を採取してバッチジョブを実行している場合，-tオプションを指定したadshexecコマンドを実行しました。

(Ｓ)

実行を中断します。

(Ｏ)

-tオプションの指定を削除してバッチジョブを再実行します。

KNAX6302-E

Asc file name size is exceeded limits for batch coverage function.

一括してカバレージ情報を採取する場合，使用するascファイル名の長さが上限を超えました。

ascファイル名は環境ファイルで指定したascファイル名の規則で生成する場合に，生成したファイル名の長さが上限値を超えています。

(Ｓ)

実行を中断します。

(Ｏ)

環境ファイルの指定と実行するジョブ定義スクリプト名を見直してください。

KNAX6303-E

Failed to duplicate file descriptors. filename="ファイル名" error="エラー詳細"

ファイル名のファイル識別子の複写に失敗しました。

ファイル名

ジョブ定義スクリプトのファイル名

エラー詳細

エラーの詳細

(Ｓ)

実行を中断します。

(Ｏ)

エラーの要因を取り除いてバッチジョブを再実行します。

KNAX6304-E

Initialization failed.

JP1/Advanced Shellの初期化処理に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルが正しいかどうかを確認します。

KNAX6305-E

Can not confirm the existence of a script file. filename="ファイル名" error="エラー詳細"

ジョブ定義スクリプトファイルの存在を確認できません。

ファイル名

ジョブ定義スクリプトのファイル名

エラー詳細

エラーの詳細

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルが正しいかどうかを確認します。

KNAX6306-E

Can not read script file. filename="ファイル名" func=関数名 error="エラー詳細"

ジョブ定義スクリプトファイルの読み込みに失敗しました。

ファイル名

ジョブ定義スクリプトのファイル名

関数名

エラーが発生した関数名

エラー詳細

エラーの詳細

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルが正しいかどうかを確認します。

KNAX6307-W

Line is truncated because line size limit is exceeded. filename="ファイル名" line=行番号

表示処理で使用するジョブ定義スクリプトの1行に指定できる上限を超えています。超えた部分は切り捨てて表示します。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(Ｓ)

超えた部分は切り捨てて表示し，処理を続行します。

(Ｏ)

ジョブ定義スクリプトファイルを修正します。

KNAX6308-E

Script file is empty. filename="ファイル名"

ジョブ定義スクリプトファイルには何もありません。

ファイル名

ジョブ定義スクリプトのファイル名

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルを修正します。

KNAX6309-E

SCRIPT file in spool I/O error. reason="エラー詳細"

スプールのジョブ定義スクリプトファイルの出力に失敗しました。

エラー詳細

エラーの詳細

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルを修正します。

KNAX6310-E

"項目名" is incorrect. filename="ファイル名" line=行番号

スクリプト拡張コマンドに指定した項目名は正しくありません。

項目名

スクリプト拡張コマンドのオプション名または位置オペランド名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6311-E

"項目名" is not specified. filename="ファイル名" Line=行番号

スクリプト拡張コマンドに項目名が指定されていません。

項目名

スクリプト拡張コマンドのオプション名または位置オペランド名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6312-E

"オプション名" value is incorrect. filename="ファイル名" line=行番号

スクリプト拡張コマンドのオプション名に指定した値が不正です。

オプション名

スクリプト拡張コマンドのオプション名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6313-E

"オプション名" given multiple. filename="ファイル名" line=行番号

スクリプト拡張コマンドのオプション名を複数指定しています。

オプション名

スクリプト拡張コマンドのオプション名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6314-E

"文字列" is not complete descriptions. filename="ファイル名" line=行番号

スクリプト拡張コマンドの文字列で示す記述は完結していません。ダブルクォーテーションまたはシングルクォーテーションの指定が閉じていないか，¥の直後にエスケープする文字がない可能性があります。

文字列

スクリプト拡張コマンドの記述

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6315-E

"コマンド名" order in the commands is incorrect. filename="ファイル名" line=行番号

次のどれかの要因が考えられます。

スクリプト拡張コマンドの指定位置が不正です。

スクリプト拡張コマンドはほかのコマンドとの組み合わせが不正です。

スクリプト拡張コマンドが先頭に記述されていません。

コマンド名

スクリプト拡張コマンド名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

構文解析時ではなく実行時にエラーが検出された場合は，行番号が0となることがあります。実行時にエラーが検出される例としては，コマンド置換の書式としてスクリプト拡張コマンドを使用した場合などがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6316-E

The instruction length limit is exceeded. filename="ファイル名" line=行番号

スクリプト拡張コマンドの長さが上限値を超えました。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6317-E

Incorrect specification of continuation lines. filename="ファイル名" line=行番号

継続行の指定が不正です。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6318-E

Instruction given is incorrect. "コマンド名" filename="ファイル名" line=行番号

不当なスクリプト拡張コマンド名が指定されました。

コマンド名

スクリプト拡張コマンド名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6319-E

"項目名" number limit is exceeded. filename="ファイル名" line=行番号

項目名を指定できる上限値を超えました。

項目名

スクリプト拡張コマンド，オプション名または引数

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6320-E

Script file error. filename="ファイル名" function=関数名 error="エラー詳細"

ジョブ定義スクリプトファイルでエラーが発生しました。

ファイル名

ジョブ定義スクリプトのファイル名

関数名

エラーが発生した関数名

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6321-E

In this position, "-run {abnormal|always}" can not be specified. filename="ファイル名" line=行番号

ここでは指定できないオプションを指定しています。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6323-E

export command failed. line=行番号

exportパラメーターの指定が不正です。または，環境変数を設定できません。

行番号

環境ファイルの行番号

エラーの要因として次のどれかが考えられます。

環境変数名，環境変数値の長さが上限を超えています。

PATH環境変数にパスを追加している場合，子孫ジョブでは二重にパスが追加されるため，上限を超えていないか注意が必要です。

環境変数名が不正です。

「¥」「"」「'」の組み合わせが正しくありません。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを修正します。

KNAX6324-E

Can not convert to realpath. before filename="変換前ファイル名" error="エラー詳細" filename="ファイル名" line=行番号

変換前ファイル名を絶対パスに変換できません。

変換前ファイル名

変換前のファイル名

エラー詳細

エラーの詳細

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6325-E

Step across the block. filename="ファイル名" line=行番号

ブロック内または関数定義内のジョブステップが終了しないまま，ブロックまたは関数定義が終了しました。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6326-E

Not defined the start of the step. filename="ファイル名" line=行番号

ジョブステップの開始定義がありません。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6327-E

Step nested definitions. filename="ファイル名" line=行番号

ジョブステップの定義が階層になっています。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6328-E

"コマンド名" nested definitions. filename="ファイル名" line=行番号

コマンド名の定義が階層になっています。

コマンド名

スクリプト拡張コマンドのコマンド名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6329-E

The instruction has been changed from the first script. filename="ファイル名" line=行番号

スクリプト拡張コマンドが途中から変更されている可能性があります。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトが途中で変更されないことを確認して再実行します。

KNAX6330-E

The script called recursively. filename="ファイル名" line=行番号

ジョブ定義スクリプトを再帰的に呼び出しています。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6332-E

The step has not closed, but the script finished.

ジョブ定義スクリプトが終了しましたが，閉じていないジョブステップがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6333-E

Can not confirm the existence of "ファイル名". error="エラー詳細" filename="ジョブ定義スクリプトファイル名" line=行番号

ファイル名の存在が確認できません。

エラー詳細

エラーの詳細

ジョブ定義スクリプトファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6380-I

Job name will be added to spool job directory. spool job directory="スプールジョブディレクトリ"

ルートジョブのスプールジョブディレクトリにジョブ名を付加します。

スプールジョブディレクトリ

変更後のスプールジョブディレクトリの名称

(Ｓ)

処理を続行します。

KNAX6381-E

Failed to change the name of the spool job directory. error="エラー詳細" jobid="ジョブ識別子" jobname=ジョブ名

スプールジョブディレクトリの名称の変更処理が失敗しました。スプールジョブディレクトリはジョブ識別子のままです。次の原因が考えられます。

変更後の名称のスプールジョブディレクトリがすでに存在しています。

Windowsでは，子孫プロセスを生成する外部コマンドを実行するジョブを強制終了した場合，孫以下のプロセスが同時に256個以上存在すると，エラー詳細がPermission deniedでこのメッセージが出力されることがあります。

エラー詳細

エラーの詳細

ジョブ識別子

ジョブ識別子

ジョブ名

ジョブ名

(Ｓ)

処理を続行します。

(Ｏ)

スプールジョブディレクトリを参照する場合は，同時に出力されるKNAX6382-Iで示すスプールジョブディレクトリを参照してください。

スプールジョブディレクトリを削除する場合は，adshhkコマンドではなく手動で削除してください。

KNAX6382-I

Spool job directory is stored unchanged. spool job directory="スプールジョブディレクトリ"

スプールジョブディレクトリの名称変更処理が失敗したため，スプールジョブディレクトリに保管しました。

スプールジョブディレクトリ

変更前のスプールジョブディレクトリの名称

(Ｓ)

処理を続行します。

KNAX6383-E　【UNIX限定】

Failed in the modification of the permission of spool job. ("パス名","機能名","エラー詳細")

パス名で示すスプールジョブのディレクトリまたはファイルのパーミッション変更処理に失敗しました。

機能名

OSのAPI名

エラー詳細

errnoで示されるエラーの詳細

(Ｓ)

機能名がchmodの場合は処理を継続します。それ以外は処理を終了します。

(Ｏ)

原因を調査して対策します。また，このスプールジョブのディレクトリまたはファイルのパーミッションは，chmodコマンドを実行して変更します。

KNAX6385-E

This extended script command cannot be used with the current environment setting parameter. command name="コマンド名" parameter="環境設定パラメーター" filename="ファイル名" line=行番号

メッセージに表示された拡張スクリプトコマンドは，現在の環境設定パラメーターの設定では使用できません。

コマンド名

エラーとなった拡張スクリプトコマンドの名称

環境設定パラメーター

要因となった環境設定パラメーター名と値

ファイル名

ジョブ定義スクリプトファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合，その継続行の行番号ではなく，スクリプト拡張コマンドの先頭行を示すことがあります。

(Ｓ)

処理を終了します。

(Ｏ)

実行したコマンドは使用しないでください。このコマンドを使用したい場合は環境設定パラメーターの指定を見直してください。

KNAX6399-E

Fatal error. 関数, 行番号

予期しない障害が発生しました。

関数

関数名

行番号

行番号

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。

KNAX6400-E

File_env "ファイル環境変数定義名" failed to allocate.

ファイル環境変数定義名で示すファイルの割り当てに失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルを見直してください。

KNAX6401-E

File_env "ファイル環境変数定義名" does not exist. file path=ファイルパス

ファイル環境変数定義名で指定したファイルパスのファイルがありません。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルを見直してください。

KNAX6403-E

Temp ID "一時ファイル識別名" is already defined.

一時ファイル識別名と同じ識別名のファイルがすでに定義されています。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルを見直してください。

KNAX6404-E

File_env "ファイル環境変数定義名" putenv failed.

ファイル環境変数定義名で示す環境変数の作成に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルを見直してください。

KNAX6405-E

File_env "ファイル環境変数定義名" file does not exist.

ファイル環境変数定義名で示すファイルがありません。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルを見直してください。

KNAX6406-E

File_env "ファイル環境変数定義名" stat error. reason="エラー詳細"

ファイル環境変数定義名で示すファイルをstat関数で確認しようとした際，エラー詳細で示すエラーが発生しました。

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルを見直してください。

KNAX6407-E

File name of File_env "ファイル環境変数定義名" is already allocated directory.

ファイル環境変数定義名で示すディレクトリはすでにあります。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルを見直してください。

KNAX6408-E

File_env "ファイル環境変数定義名" create error. reason="エラー詳細"

ファイル環境変数定義名で示すファイルを作成しようとした場合，エラー詳細で示すエラーが発生しました。

エラー詳細

エラーの詳細。errnoで表されるエラー情報文字列

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトファイルを見直してください。

KNAX6409-I

File ファイル環境変数定義名 is allocated as "処理指定値". path=ファイルパス(ファイル存在有無表示)

ファイル環境変数定義名で示すファイル定義で，処理指定値に従ってファイルパスで示すファイルを割り当てました。

処理指定値

コマンドに応じて次の内容が表示されます。

#-adsh_fileコマンドまたは#-adsh_file_tempコマンドの場合

-chkの指定値

#-adsh_spoolfileコマンドの場合

spoolfile

ファイル存在有無表示

通常ファイルの場合だけ出力されます。ファイルが存在する場合はexistを，ファイルが存在しない場合はnot existを出力します。

(Ｓ)

処理を続行します。

KNAX6410-I

File ファイル環境変数定義名 is deallocated as "処理指定値". path=ファイルパス

ファイル環境変数定義名で示すファイル定義で，処理指定値に従ってファイルパスで示すファイルを解放しました。

処理指定値

コマンドに応じて次の内容が表示されます。

#-adsh_fileコマンドまたは#-adsh_file_tempコマンドの場合

正常時・異常時のファイルの後処理の指定内容として，次のどちらかが表示されます。

del：削除する

keep：削除しない

#-adsh_spoolfileコマンドの場合

spoolfile

(Ｓ)

処理を続行します。

KNAX6411-E

File env "ファイル環境変数定義名" cannot set shell variable. detail=保守情報

ファイル環境変数定義名で示すシェル変数の設定に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

ファイル環境変数定義名で示すシェル変数が読み込み専用に設定されている可能性があるため，ジョブ定義スクリプトファイルを見直してください。見直して問題のない場合は，システム管理者に連絡してください。

KNAX6412-E

Cannot get shell variable. detail=保守情報

シェル変数の取得に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX6413-E

File_env "ファイル環境変数定義名" cannot be restored to former shell variable. detail=保守情報

ファイル環境変数定義名で示すシェル変数を元の値に回復できないか，または元の値の定義がなかった場合に現在の定義を削除できません。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX6414-E

Failed in regularization of the file name. name=API名称 reason="原因" detail=保守情報 filename="スクリプトファイル名" line=行番号

スクリプト拡張コマンド#adsh_fileコマンドで指定したファイルパスの正規化処理でエラーが発生しました。

API名称

エラーが発生したAPI名称

原因

エラー内容。出力される内容と意味を次の表に示します。

項番

出力内容

意味

1

errnoで表されるエラー情報文字列

UNIXまたはWindowsのマニュアルを参照してください。

2

Path name contains invalid multibyte character(s)

パス名に不当なマルチバイト文字が含まれています。

3

Path name contains too many components

パス構成要素が多過ぎます（構成要素が4,096個を超えました）。

スクリプトファイル名

スクリプトファイルのファイル名

行番号

スクリプトの行番号

(Ｓ)

処理を終了します。

(Ｏ)

原因を参照してエラーの原因を取り除きます。問題が解決しない場合はシステム管理者に連絡してください。

KNAX6507-I

ジョブ名.ジョブステップ名 Step was skipped because of run attribute.

#-adsh_stepで始まるジョブステップ定義コマンドのrun属性で指定した条件が成立したため，ジョブ名で示すバッチジョブに定義された，ジョブステップ名で示すジョブステップをスキップしました。

(Ｓ)

処理を続行します。

KNAX6508-I

ジョブ名.ジョブステップ名 Step was skipped because previous step or command ended abnormally.

先行のジョブステップまたはコマンドがエラー終了したため，ジョブ名で示すバッチジョブに定義された，ジョブステップ名で示すジョブステップをスキップしました。

(Ｓ)

処理を続行します。

KNAX6509-I

ジョブ名.ジョブステップ名 Step was not executed because of script context.

ジョブ名で示すバッチジョブに定義されたジョブステップ名で示すジョブステップは，if制御文などによるジョブ定義スクリプトの制御で実行されていません。

(Ｓ)

処理を続行します。

KNAX6510-W

adshexec cannot set shell variable シェル変数名 because this variable is readonly. filename="ファイル名" line=行番号

ジョブコントローラがファイル名で示すファイル中の行番号で示すコマンドの実行中にシェル変数名で示すシェル変数を設定しようとしましたが，読み取り専用属性のため設定できません。

(Ｓ)

処理を続行します。

(Ｏ)

ジョブ定義スクリプトファイルを見直し，シェル変数名で示すシェル変数の使用方法に誤りがあれば修正します。

KNAX6511-I

Value of step local variable PATH is passed from outside the step. stepname=ジョブステップ名

ジョブステップ名のジョブステップに指定されたジョブステップ内で有効なシェル変数PATHは，ジョブステップの外で定義されたシェル変数PATHから値を引き継ぎます。

(Ｓ)

処理を続行します。

KNAX6512-I

adshexec start by custom job.

ジョブコントローラがJP1/Advanced ShellのカスタムジョブからJP1/AJSによって起動されました。

(Ｓ)

処理を続行します。

KNAX6521-E

Command コマンド名(line=行数) failed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

コマンドがエラーで終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

行数

コマンドが記述されているジョブ定義スクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

コマンドのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。エラーとなったコマンドがジョブステップ内のコマンドの場合，次のように動作します。

ジョブステップのonError属性がstopの場合，ジョブステップ正常ブロックの後続処理は実行しないでジョブステップエラーブロックを実行します。

ジョブステップのonError属性がcontの場合，ジョブステップ正常ブロックの後続処理を実行します。

ただし，コマンドの実行結果によってジョブを中断する必要がある場合は，上記の動作とならないでKNAX6584-Iを出力して処理を終了します。

(Ｏ)

コマンドの実行結果を確認し，エラーとなった原因を取り除きます。

KNAX6522-E

Command コマンド名(line=行数) ended abnormally because the command received a signal. rc=終了コード signalNo=シグナル番号 E-Time=実行時間s C-Time=CPU時間s

コマンドがシグナルによってエラー終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

行数

コマンドが記述されているジョブ定義スクリプトの行数

終了コード

コマンドの終了コード

シグナル番号

コマンドが受信したシグナル番号

実行時間

コマンドの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

コマンドのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。エラー終了したコマンドがジョブステップ内のコマンドである場合，次のとおり動作します。

ジョブステップのonError属性がstopの場合，ジョブステップ正常ブロックの後続処理は実行しないでジョブステップエラーブロックを実行します。

ジョブステップのonError属性がcontの場合，ジョブステップ正常ブロックの後続処理を実行します。

(Ｏ)

コマンドの実行結果を確認し，エラーとなった原因を取り除きます。

KNAX6530-E

It is a combination of the option that cannot be specified. filename="ファイル名" line=行番号

オプションの有無およびオプションの値の組み合わせに誤りがあります。

ファイル名

ジョブ定義スクリプトファイル名

行番号

ジョブ定義スクリプトの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6531-E

A specified upper bound of "項目名" that can be specified in the スコープ is exceeded. filename="ファイル名" line=行番号

項目名が指定できる上限値を超えました。

項目名

スクリプト拡張コマンド名

スコープ

jobまたはstep

ファイル名

ジョブ定義スクリプトファイルのファイル名

行番号

ジョブ定義スクリプトの行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6540-I

Another process script(line=行番号) succeeded. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

コマンドのグループ化などによって別プロセスで実行したジョブ定義スクリプトが正常終了しました。

行番号

別プロセスで実行したジョブ定義スクリプトが記述されているジョブ定義スクリプトの行番号

終了コード

実行したジョブ定義スクリプトの終了コード

実行時間

実行したジョブ定義スクリプトの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

実行したジョブ定義スクリプトのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。

KNAX6541-E

Another process script(line=行番号) failed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

コマンドのグループ化などによって別プロセスで実行したジョブ定義スクリプトがエラー終了しました。

行番号

別プロセスで実行したジョブ定義スクリプトが記述されているジョブ定義スクリプトの行番号

終了コード

別プロセスで実行したジョブ定義スクリプトの終了コード

実行時間

別プロセスで実行したジョブ定義スクリプトの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

別プロセスで実行したジョブ定義スクリプトのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。別プロセスで実行してエラー終了したジョブ定義スクリプトがジョブステップ内のジョブ定義スクリプトである場合，次のように動作します。

ジョブステップのonError属性がstopの場合，ジョブステップ正常ブロックの後続処理は実行しないでジョブステップエラーブロックを実行します。

ジョブステップのonError属性がcontの場合，ジョブステップ正常ブロックの後続処理を実行します。

(Ｏ)

別プロセスで実行してエラー終了したジョブ定義スクリプトの実行結果を確認し，エラーとなった原因を取り除きます。

KNAX6542-E

Another process script(line=行番号) ended abnormally because the script received a signal. rc=終了コード signalNo=シグナル番号 E-Time=実行時間s C-Time=CPU時間s

コマンドのグループ化などによって別プロセスで実行したジョブ定義スクリプトがシグナルによってエラー終了した。

行番号

別プロセスで実行したジョブ定義スクリプトが記述されているジョブ定義スクリプトの行番号

終了コード

別プロセスで実行したジョブ定義スクリプトの終了コード

シグナル番号

別プロセスで実行したジョブ定義スクリプトが受信したシグナル番号

実行時間

別プロセスで実行したジョブ定義スクリプトの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

別プロセスで実行したジョブ定義スクリプトのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。別プロセスで実行してエラー終了したジョブ定義スクリプトがジョブステップ内のジョブ定義スクリプトである場合，次のように動作します。

ジョブステップのonError属性がstopの場合，ジョブステップ正常ブロックの後続処理は実行しないでジョブステップエラーブロックを実行します。

ジョブステップのonError属性がcontの場合，ジョブステップ正常ブロックの後続処理を実行します。

(Ｏ)

別プロセスで実行してエラー終了したジョブ定義スクリプトの実行結果を確認し，異常となった原因を取り除きます。

KNAX6551-E

Command コマンド名 for 機能名 failed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で実行されたコマンドがエラー終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

機能名

コマンドを実行した機能名。次のどちらかが出力されます。

command replace：コマンド置換機能

trap action：trapコマンドのアクション

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

コマンドのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。エラーとなったコマンドがジョブステップ内のコマンドの場合，次のとおり動作します。

ジョブステップのonError属性がstopの場合，ジョブステップ正常ブロックの後続処理は実行しないでジョブステップエラーブロックを実行します。

ジョブステップのonError属性がcontの場合，ジョブステップ正常ブロックの後続処理を実行します。

ただし，コマンドの実行結果によってバッチジョブを中断する必要がある場合は，上記の動作とならないでKNAX6584-Iを出力して処理を終了します。

(Ｏ)

コマンドの実行結果を確認し，エラーとなった原因を取り除きます。

KNAX6552-E

Command コマンド名 for 機能名 ended abnormally because the command received a signal. rc=終了コード signalNo=シグナル番号 E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で実行されたコマンドがシグナルによってエラー終了しました。

コマンド名

実行したコマンド名。OSが定める最大パス長を超える場合，最大パス長で打ち切られます。

機能名

コマンドを実行した機能名。次のどちらかが出力されます。

command replace：コマンド置換機能

trap action：trapコマンドのアクション

終了コード

コマンドの終了コード

シグナル番号

コマンドが受信したシグナル番号

実行時間

コマンドの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

コマンドのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。エラー終了したコマンドがジョブステップ内のコマンドの場合，次のとおり動作します。

ジョブステップのonError属性がstopの場合，ジョブステップ正常ブロックの後続処理は実行しないでジョブステップエラーブロックを実行します。

ジョブステップのonError属性がcontの場合，ジョブステップ正常ブロックの後続処理を実行します。

(Ｏ)

コマンドの実行結果を確認し，エラーとなった原因を取り除きます。

KNAX6560-I

Another process script for 機能名 succeeded. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で，コマンドのグループ化などによって別プロセスで実行したジョブ定義スクリプトが正常終了しました。

機能名

コマンドを実行した機能名。次のどちらかが出力されます。

command replace：コマンド置換機能

trap action：trapコマンドのアクション

終了コード

実行したジョブ定義スクリプトの終了コード

実行時間

実行したジョブ定義スクリプトの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

実行したジョブ定義スクリプトのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。

KNAX6561-E

Another process script for 機能名 failed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で，コマンドのグループ化などによって別プロセスで実行したジョブ定義スクリプトがエラー終了しました。

機能名

コマンドを実行した機能名。次のどちらかが出力されます。

command replace：コマンド置換機能

trap action：trapコマンドのアクション

終了コード

別プロセスで実行したジョブ定義スクリプトの終了コード

実行時間

別プロセスで実行したジョブ定義スクリプトの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

別プロセスで実行したジョブ定義スクリプトのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。別プロセスで実行してエラー終了したジョブ定義スクリプトがジョブステップ内のジョブ定義スクリプトの場合，次のとおり動作します。

ジョブステップのonError属性がstopのとき，ジョブステップ正常ブロックの後続処理は実行しないでジョブステップエラーブロックを実行します。

ジョブステップのonError属性がcontのとき，ジョブステップ正常ブロックの後続処理を実行します。

(Ｏ)

別プロセスで実行してエラー終了したジョブ定義スクリプトの実行結果を確認し，エラーとなった原因を取り除きます。

KNAX6562-E

Another process script for 機能名 ended abnormally because the script received a signal. rc=終了コード signalNo=シグナル番号 E-Time=実行時間s C-Time=CPU時間s

機能名で示す機能で，コマンドのグループ化などで別プロセスで実行したジョブ定義スクリプトがシグナルの受信によってエラー終了しました。

機能名

コマンドを実行した機能名。次のどちらかが出力されます。

command replace：コマンド置換機能

trap action：trapコマンドのアクション

終了コード

別プロセスで実行したジョブ定義スクリプトの終了コード

シグナル番号

別プロセスで実行したジョブ定義スクリプトが受信したシグナル番号

実行時間

別プロセスで実行したジョブ定義スクリプトの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

別プロセスで実行したジョブ定義スクリプトのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。別プロセスで実行してエラー終了したジョブ定義スクリプトがジョブステップ内のジョブ定義スクリプトの場合，次のとおり動作します。

ジョブステップのonError属性がstopのとき，ジョブステップ正常ブロックの後続処理は実行しないでジョブステップエラーブロックを実行します。

ジョブステップのonError属性がcontのとき，ジョブステップ正常ブロックの後続処理を実行します。

(Ｏ)

別プロセスで実行してエラー終了したジョブ定義スクリプトの実行結果を確認し，異常となった原因を取り除きます。

KNAX6571-I

子孫ジョブ名 Child job started. parent jobname=親プロセスのジョブ名, parent jobid=親プロセスのジョブ識別子

親プロセスのジョブ名，親プロセスのジョブ識別子で示すジョブから起動した，子孫ジョブ名で示す子孫ジョブを開始しました。

(Ｓ)

処理を続行します。

KNAX6572-I

Config-job file of child job 子孫ジョブ名 is "ジョブ環境ファイル名".

子孫ジョブ名で示す子孫ジョブは，ジョブ環境ファイル名で示すジョブ環境ファイルを使用します。

(Ｓ)

処理を続行します。

KNAX6578-I

子孫ジョブ名 Child job ended. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

子孫ジョブ名で示す子孫ジョブが終了しました。

終了コード

子孫ジョブの実行結果を示す終了コード。

終了コードの詳細は，adshexecコマンドの終了コードに関する説明を参照してください。

なお，このメッセージの出力後にadshexecコマンドの後処理でエラーが発生した場合，このメッセージで示す終了コードとadshexecコマンドの終了コードとが異なるときがあります。adshexecコマンドの最終的な終了コードは，親のジョブのJOBLOGに出力されます。

実行時間

子孫ジョブの開始から終了までの実時間の合計（秒単位）。OSのAPIを使って取得した参考値です。

CPU時間

子孫ジョブの開始から終了までのCPU時間の合計（秒単位）。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。

KNAX6584-I

Job is stopped because the command that stops script was executed.

ジョブ定義スクリプトの実行を停止するコマンドが実行されたため，バッチジョブの実行を中断しました。後続ジョブステップ・後続のジョブ定義スクリプトは実行しません。run属性がabnormalやalwaysのジョブステップについても実行しません。

また，この場合，実行したコマンドに対しては，#-adsh_rc_ignoreコマンドの指定，および#-adsh_step_startコマンドのsuccessRC属性の指定は有効になりません。

このメッセージは，次のどれかの場合に出力されます。

exitコマンドを実行して，ジョブ定義スクリプトが即時終了した場合

関数外かつ外部スクリプトでない位置でのreturnコマンドを実行して，ジョブ定義スクリプトが即時終了した場合

execコマンドの引数に実行可能なコマンドを指定して実行し，スクリプトが終了した場合

特殊組み込みコマンドのエラー，およびJP1/Advanced Shellで処理を続行できないと判断されるエラーが発生した場合（ただし，typesetコマンドのエラー，関数内または外部スクリプト内で実行したreturnコマンドのエラーを除く）

(Ｓ)

バッチジョブの実行は中断します。

(Ｏ)

エラーが原因でバッチジョブの実行が中断された場合は，障害を取り除いてバッチジョブを再実行します。

KNAX6585-I

Job is stopped because #-adsh_job_stop command applied.

ジョブステップの終了コードが#-adsh_job_stopコマンドで指定した条件を満たしているため，バッチジョブの実行を中断しました。

(Ｓ)

処理を終了します。

(Ｏ)

問題が発生している場合，ジョブステップの実行結果を参照して原因を取り除き，バッチジョブを再実行します。

KNAX6586-E

Job is stopped because an error which cannot continue the script occurred.

ジョブ定義スクリプトの実行を継続できないエラーが発生したため，バッチジョブの実行を中断しました。後続ジョブステップ・後続のジョブ定義スクリプトは実行しません。run属性がabnormalやalwaysのジョブステップについても実行しません。

(Ｓ)

ジョブの実行を中断します。

(Ｏ)

エラーの原因を取り除いてジョブを再実行します。

KNAX6587-E

Number of child job exceeds limit.

起動された子孫ジョブの数が上限値を超えました。

(Ｓ)

処理を終了します。

(Ｏ)

1つのルートジョブの中で起動する子孫ジョブ（子孫ジョブから起動する子孫ジョブを含む）の数が9,999,999個以下になるように，ジョブ定義スクリプトファイルを見直してください。

KNAX6588-E

API error occurred. name=API名称, reason=エラー詳細

API名称で示すAPIの呼び出しで，エラー詳細に示すエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

原因および一緒に出力されるほかのメッセージを参照してエラーの原因を取り除きます。問題が解決しない場合，システム管理者に連絡します。

KNAX6589-W

API error occurred. Job will continue processing. name=API名称, reason=原因, detail=保守情報

API名称で示すAPIの呼び出しで，原因に示すエラーが発生しましたが，ジョブを続行します。次の原因が考えられます。

API名称がCreateFileの場合，標準入力，標準出力，および標準エラー出力が使用できない環境でadshexecコマンドが実行された可能性があります。

API名称がisattyの場合，標準入力が使用できない環境でadshexecコマンドが実行された可能性があります。

(Ｓ)

処理を続行します。

(Ｏ)

ジョブの動作に問題が発生していない場合，対処は不要です。問題が発生している場合，エラーの原因を取り除き，バッチジョブを再実行します。問題が解決しない場合は，システム管理者に連絡します。

KNAX6590-E

An error occurred in 機能名. detail=保守情報

機能名で示す機能が失敗しました。

機能名

エラーが発生した関数の機能名。次のどれかが出力されます。

シェル変数の取得に関する機能の場合：get variable

シェル変数の設定に関する機能の場合：set variable

シェル変数の設定削除に関する機能の場合：unset variable

外部スクリプトの関する機能の場合：run external script

ジョブ定義スクリプトの終了コード関する機能の場合：set rc

ファイルオープンに関する機能の場合：open file

(Ｓ)

エラーが発生した機能に応じて，処理を続行，または終了します。

(Ｏ)

システム管理者に連絡します。

KNAX6591-E

adshexec ended abnormally because of termination request signal. signalNo=シグナル番号

ジョブ実行中にシグナル番号で示す終了要求シグナルを受信したため，ジョブコントローラが強制終了しました。

(Ｓ)

ジョブコントローラは起動中の子孫プロセスを強制終了し，ファイルの削除などの必要な後処理を実行してから終了します。

(Ｏ)

ジョブが強制終了されていることを確認します。

KNAX6592-E

adshexec ended abnormally because of termination request control signal. ctrlType=制御種別

ジョブ実行中に制御種別で示す制御信号を受信したため，ジョブコントローラが強制終了しました。制御種別には，次のどれかの文字列が出力されます。

CTRL＋C信号を受け取った場合：CTRL＋C

CTRL＋BREAK信号を受け取った場合：CTRL＋BREAK

ユーザーがコンソールを閉じた場合（CTRL＋Cの受信時）：CLOSE EVENT

(Ｓ)

ジョブコントローラは起動中の子孫プロセスを強制終了し，ファイルの削除などの必要な後処理を実行してから終了します。

(Ｏ)

ジョブが強制終了されていることを確認します。

KNAX6593-E

adshexec received terminate request.

ジョブコントローラが強制終了の要求を受け取りました。

(Ｓ)

ジョブコントローラは起動中の子孫プロセスを強制終了し，ファイルの削除などの必要な後処理を実行してから終了します。

(Ｏ)

バッチジョブが強制終了されていることを確認します。

KNAX6594-E

adshexec ended abnormally because of operation for terminating process.

TerminateProcessなどのプロセス終了の操作によって，ジョブコントローラが強制終了しました。

(Ｓ)

ジョブコントローラは起動中の子孫プロセスを強制終了し，ファイルの削除などの必要な後処理を実行してから終了します。

(Ｏ)

バッチジョブが強制終了されていることを確認します。

KNAX6596-E

ジョブ名.ジョブステップ名 Step failed. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

ジョブステップがエラーで終了しました。

ジョブ名

ジョブ名

ジョブステップ名

ジョブステップ名

終了コード

ジョブステップの終了コード

実行時間

ジョブステップの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

ジョブステップのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行し，後続ジョブステップの中でrun属性がabnormalまたはalwaysのジョブステップだけを実行します。ただし，次の場合はシェルを終了します。

ジョブ定義スクリプトの実行を停止するコマンドが実行されたため，KNAX6584-Iを出力した場合

上記以外でジョブ定義スクリプトの実行を停止するエラーが発生した場合

(Ｏ)

ジョブステップ内の各コマンドの実行結果を確認し，エラーとなった原因を取り除きます。

KNAX6597-I

ジョブ名.ジョブステップ名 Step succeeded. rc=終了コード E-Time=実行時間s C-Time=CPU時間s

ジョブステップが正常に終了しました。

ジョブ名

ジョブ名

ジョブステップ名

ジョブステップ名

終了コード

ジョブステップの終了コード

実行時間

ジョブステップの実行時間。OSのAPIを使って取得した参考値です。

CPU時間

ジョブステップのCPU時間。OSのAPIを使って取得した参考値です。

(Ｓ)

処理を続行します。

KNAX6598-E

API error occurred. name=API名称, reason=原因, detail=保守情報

API名称で示すAPI呼び出しで，原因に示すエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

原因および一緒に出力されるほかのメッセージを参照してエラーの原因を取り除きます。問題が解決しない場合，システム管理者に連絡してください。

KNAX6599-E

Internal error occurred. reason=原因, detail=保守情報

原因に示す内部エラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX6600-E

Function error. 関数名([引数,…]) rc=リターンコード, errno=エラー番号, internal info=(保守情報)

関数名で示す関数でエラーが発生しました。

関数名

エラーが発生した関数（プラットフォームが提供している関数）

引数

関数の引数。出力されない場合もあります。

リターンコード

関数の戻り値

エラー番号

エラー内容を示すグローバル変数errnoの値。10進数です。

(Ｓ)

処理を続行するかどうかは状況に依存します。このメッセージに続いて出力されるメッセージを参照してください。

(Ｏ)

メッセージ内容を基に原因を調査し，解決してください。

KNAX6601-E

Internal error occurred. detail=保守情報.

処理中に内部矛盾を検出しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX6602-E

I/O error occurred on stdout.

標準出力stdoutへの出力時に入出力エラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

このメッセージの前後に出力されたメッセージの内容を基に，標準出力の入出力エラーの原因を調査し，問題を解決してください。

KNAX6603-E

It failed to get the current date.

現在の日付を取得できませんでした。

(Ｓ)

処理を終了します。

(Ｏ)

このメッセージの前後に出力されたメッセージの内容を基に，エラーの原因を調査し，問題を解決してください。

KNAX6604-E　【Windows限定】

Function error. 関数名([引数,…]) rc=リターンコード, last error code=システムエラーコード, internal info=(保守情報)

関数名で示す関数でエラーが発生しました。

関数名

エラーが発生した関数名（プラットフォームが提供している関数）

引数

関数の引数で障害調査用の情報

必ず出力されるとは限りません。また，すべての引数が出力されるとは限りません。

リターンコード

関数の戻り値

システムエラーコード

エラー内容を示すLastError()の戻り値

(Ｓ)

処理はこのメッセージの前後に出力されたメッセージに依存します。

(Ｏ)

このメッセージの前後に出力されたメッセージの内容を基に，エラーの原因を調査し，問題を解決してください。

KNAX6605-E

Time conversion failed. time=日時

日時を内部表現に変換するときにエラーが発生しました。

日時

内部表現に変換できなかった日時

(Ｓ)

処理を終了します。

(Ｏ)

コマンドが解釈した結果の日時が，次に示す範囲に収まる日時を指定します。

この日時の範囲はUTCで示した日時です。

1970年1月1日 00:00:00〜2038年1月19日 03:14:07

ただし，プラットフォームによっては，この範囲であってもエラーになることがあります。

KNAX6610-E

Option "オプション名" was unknown.

不明なオプションが指定されています。

オプション名

不明なオプション名

(Ｓ)

処理を終了します。

(Ｏ)

正しいオプションを指定してください。

KNAX6611-E

Option "オプション名" value is not specified.

オプション名で示すオプションの値が指定されていません。

(Ｓ)

処理を終了します。

(Ｏ)

出力されたオプションに対して，値を指定してください。

KNAX6612-E

Option "オプション値" value is invalid.

オプションの値が正しくありません。

オプション値

指定されたオプションの値

(Ｓ)

処理を終了します。

(Ｏ)

オプションに対して正しい値を指定してください。

KNAX6613-I

Start time is YYYY-MM-DD hh:mm:ss+hhmm.

　または

Start time is none.

「YYYY-MM-DD hh:mm:ss+hhmm」に，コマンドが解釈した「ジョブの実行開始日時の下限」を示します。「+hhmm」はローカルタイム - UTCの時差の時分による表現です。

「none」は，開始日時が指定されていないことを示します。

(Ｓ)

処理を続行します。

KNAX6614-I

End time is YYYY-MM-DD hh:mm:ss+hhmm.

　または

End time is none.

「YYYY-MM-DD hh:mm:ss+hhmm」に，コマンドが解釈した「ジョブの実行開始日時の上限」を示します。「+hhmm」はローカルタイム - UTCの時差の時分による表現です。

「none」は，終了日時が指定されていないことを示します。

(Ｓ)

処理を続行します。

KNAX6615-E

Time range is invalid. Start time and End time are reversed.

ジョブの実行開始日時の下限と上限が逆転しています。

(Ｓ)

処理を終了します。

(Ｏ)

ジョブの実行開始日時の上限（adshevtoutコマンドの-eオプションで指定）が，ジョブの実行開始日時の下限（adshevtoutコマンドの-sオプションで指定）よりあとになるよう指定してください。

KNAX6616-E

Too many operands.

コマンドに余分な引数があります

(Ｓ)

処理を終了します。

(Ｏ)

コマンドの引数を正しく指定してください。

KNAX6632-E

Spool directory is not found. directory name="スプールディレクトリ名".

スプールディレクトリが見つかりません。

スプールディレクトリ名

参照しようとしたディレクトリ

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルで指定したスプールディレクトリが正しいか確認してください。

KNAX6633-E

Spool directory is not read. directory name="スプールディレクトリ名".

スプールディレクトリを参照できません。

スプールディレクトリ名

参照しようとしたディレクトリ

(Ｓ)

処理を終了します。

(Ｏ)

コマンドを実行するユーザーにスプールディレクトリを参照する権限があるか，確認してください。

KNAX6634-E

Initialization failed.

adshevtoutコマンドの初期化処理でエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

このメッセージより先に出力されたメッセージを参照して問題を解決してください。

KNAX6635-E

Spool directory lock error. directory name="スプールディレクトリ名"

スプールを参照するための排他制御でエラーが発生しました。

スプールディレクトリ名

参照しようとしたディレクトリ

(Ｓ)

処理を終了します。

(Ｏ)

次の内容を確認してください。

環境ファイルで指定したスプールディレクトリが正しいか。

スプールディレクトリを参照または更新できるアクセス権限があるか。

ロックファイルを作成，参照，または更新できるか。

KNAX6636-E

Spool directory can not be accessed because other command is accessing. directory name="スプールディレクトリ名"

ほかのコマンドがスプールにアクセスしているため，スプールを参照できませんでした。

スプールディレクトリ名

参照しようとしたディレクトリ

(Ｓ)

処理を終了します。

(Ｏ)

adshhkコマンドを実行していない状態で，コマンドを再実行してください。

KNAX6640-I

Event file is skipped due to no access permission. file name="イベントファイルのパス名".

コマンドを実行したユーザーにはイベントファイルへの参照権限がないため，イベントファイルの参照をスキップしました。

イベントファイルのパス名

スキップしたイベントファイルのパス名

(Ｓ)

処理を続行します。

KNAX6644-E

Event file is failed to read. file name="イベントファイルのパス名"

イベントファイルの読み込み時に入出力エラーが発生しました。

イベントファイルのパス名

入出力エラーが発生したイベントファイルのパス名

(Ｓ)

入出力エラーが発生したイベントファイルの処理を中止し，別のイベントファイルの処理を続行します。

(Ｏ)

このメッセージの前後に出力されたメッセージの内容を基に，イベントファイルの入出力エラーの原因を調査し，問題を解決してください。

KNAX6645-W

Event file is not supported by this command. file name="イベントファイルのパス名", Event file version=バージョン番号

イベントファイルは，このコマンドでサポートしていないバージョンのイベントファイルです。

イベントファイルのパス名

イベントファイルのパス名

バージョン番号

イベントファイルのバージョン番号

(Ｓ)

出力したイベントファイルを参照しないで，別のイベントファイルの処理を続行します。

(Ｏ)

イベントファイルを作成したJP1/Advanced Shellのバージョンに対応するコマンドを実行してください。

KNAX6646-E

Event file is corrupted. file name="イベントファイルのパス名"

イベントファイルが壊れています。

イベントファイルのパス名

壊れていると判断したイベントファイルのパス名

(Ｓ)

壊れていると判断したイベントファイルの処理を中止し，別のイベントファイルの処理を続行します。

(Ｏ)

イベントファイルを不当に更新していないか確認してください。原因が確認できない場合は，システム管理者に連絡してください。

KNAX6701-W

Cannot use job object.

ジョブオブジェクトを使用できません。バッチジョブを強制終了したとき，子プロセスが作成したプロセスについてはTerminateProcess関数によるプロセス終了を行いません。

(Ｓ)

処理を継続します。

KNAX6710-I

Builtin command "コマンド名" [with option "オプション名"] is not supported on the current platform. It returns "終了コード".[filename="ファイル名" line=行番号]

現在のプラットフォームではサポートされていない組み込みコマンド（または組み込みコマンドのオプション）を指定して実行しようとしました。または，環境設定パラメーターTRAP_ACTION_SIGTERMにDISABLEを指定した環境でtrapコマンドを実行しようとしました。

コマンド名

組み込みコマンド名

オプション名

組み込みコマンドに指定されたオプション名

終了コード

組み込みコマンドの終了コード

ファイル名

ジョブ定義スクリプトファイル名

行番号

組み込みコマンドを実行しようとした行の行番号

(Ｓ)

終了コードに示す値を組み込みコマンドの終了コードとして処理を継続します。

KNAX6711-E

Builtin command "コマンド名" [with option "オプション名"] is not supported on the current platform. Job failed.[ filename="ファイル名" line=行番号]

現在のプラットフォームではサポートされていない組み込みコマンド（または組み込みコマンドのオプション）を指定して実行しようとしました。

コマンド名

組み込みコマンド名

オプション名

組み込みコマンドに指定されたオプション名

ファイル名

ジョブ定義スクリプトファイル名

行番号

組み込みコマンドを実行しようとした行の行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6712-E

Specified variable "シェル変数名" cannot be exported because the name is not in all capital letters on the current platform.[ filename="ファイル名" line=行番号]

現在のプラットフォームでは，名前がすべて大文字でない変数はエクスポートできません。

シェル変数名

エクスポートしようとしたシェル変数の名前

ファイル名

ジョブ定義スクリプトファイル名

行番号

exportコマンドを実行しようとした行の行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6713-E

The required directory "ディレクトリ名" does not exist.

現在のプラットフォームで，JP1/Advanced Shellに必須のディレクトリが存在しません。

ディレクトリ名

存在しないディレクトリのディレクトリ名

(Ｓ)

処理を終了します。

(Ｏ)

セットアップの手順を見直してください。

KNAX6714-E

Background execution is not supported.[ filename="ファイル名" line=行番号]

現在のプラットフォームでは，バックグラウンドでジョブ定義スクリプトを実行できません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

バックグラウンドで実行しようとした行の行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6715-E

Subshell execution is not supported.[ filename="ファイル名" line=行番号]

現在のプラットフォームでは，サブシェルでジョブ定義スクリプトを実行できません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

サブシェルで実行しようとした行の行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを修正します。

KNAX6718-I

The trap action was not set because an unsupported termination method was specified in the trap command.[filename="ファイル名" line=行番号]

trapコマンドに未サポートの強制終了方法を指定したため，アクションが設定されません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

組み込みコマンドを実行しようとした行の行番号

(Ｓ)

処理を継続します。

KNAX6750-E

File or directory "パス名" does not exist.

パス名で示すファイルまたはディレクトリがありません。

(Ｓ)

処理を継続します。

(Ｏ)

パス名に指定したファイルまたはディレクトリが正しいか見直してください。

KNAX6751-E

Failed to get the ACL informations. path="パス名", reason=原因

パス名で示すファイルまたはディレクトリのACLの情報の取得に失敗しました。

(Ｓ)

処理を継続します。

(Ｏ)

adshscripttoolコマンドの実行ユーザーが，パス名に指定したファイルまたはディレクトリの所有者であるか確認してください。所有者でない場合，所有者で実行してください。

KNAX6752-E

Format of mode is invalid.

adshscripttoolコマンドの-fmodeオプションに指定したモードの書式に誤りがあります。

(Ｓ)

処理を継続します。

(Ｏ)

モードの指定を見直してください。

KNAX6753-E

adshscripttool: Command line error. "詳細"

コマンドラインの指定に誤りがあります。メッセージに表示される詳細の表示内容と，その意味を次に示します。

詳細の表示内容

意味

The option is not specified

必要なオプションが指定されていません。

Path name is not specified

パス名が指定されていません。

Mode is not specified

モードが指定されていません。

-s option value is not specified

-sオプションの値が指定されていません。

-s option must not be specified first

-sオプションを先頭に指定することはできません。

-s option value is invalid

-sオプションの値が間違っています。

Path name is specified more than once

パス名を複数指定することはできません。

Mode is specified more than once

モードを複数指定することはできません。

An empty character string is specified in path name

パス名に空文字列が指定されました。

An empty character string is specified in mode

モードに空文字列が指定されました。

An empty character string is specified in -s option value

-sオプションの値に空文字列が指定されました。

(Ｓ)

処理を継続します。

(Ｏ)

コマンドを正しく指定して再実行してください。

KNAX6800-I

Path convert rule matched.[ filename="ファイル名" line=行番号] rule_str="パス名1" : "パス名2"

パス名1からパス名2に置換する変換規則に合致しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

パスの変換規則に合致した行の行番号

(Ｓ)

処理を継続します。

KNAX6801-I

Path convert rule matched.[ filename="ファイル名" line=行番号] rule_var="シェル変数名"

パスを扱うシェル変数による変換規則に合致しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

パスの変換規則に合致した行の行番号

シェル変数名

パス名を扱うシェル変数の名前

(Ｓ)

処理を継続します。

KNAX6803-I

Access path convert rule matched.[ filename="ファイル名" line=行番号] rule_str="パス名1":"パス名2"

パス名1からパス名2に置換する変換規則に合致しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

PATH_CONV_ACCESSパラメーターの変換規則に合致した行の行番号

(Ｓ)

処理を継続します。

KNAX6804-I

Command arg convert rule matched.[ filename="ファイル名" line=行番号] rule_str="引数1":"引数2"

引数1から引数2に置換する変換規則に合致しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

COMMAND_CONV_ARGパラメーターの変換規則に合致した行の行番号

(Ｓ)

処理を継続します。

KNAX6805-I

Access path in 機能名 convert rule matched. rule_str="パス名1":"パス名2"

機能名で示す機能を実行している時に，パス名1からパス名2に置換する変換規則に合致しました。

機能名

変換規則に合致した機能名。次のどちらかが出力されます。

コマンド置換機能の場合：command replace

trapコマンドのアクションの場合：trap action

(Ｓ)

処理を継続します。

KNAX6806-I

Command arg in 機能名 convert rule matched. rule_str="引数1":"引数2"

機能名で示す機能を実行している時に，引数1から引数2に置換する変換規則に合致しました。

機能名

変換規則に合致した機能名。次のどちらかが出力されます。

コマンド置換機能の場合：command replace

trapコマンドのアクションの場合：trap action

(Ｓ)

処理を継続します。

KNAX6810-E

Directory delimiter is invalid.

PATH_CONV_ENABLEパラメーターで指定したディレクトリ区切り文字が不正です。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを修正します。

KNAX6811-E

Path delimiter is invalid.

PATH_CONV_ENABLEパラメーターで指定したパス区切り文字が不正です。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを修正します。

KNAX6812-E

Invalid path is specified. path="パス名"

PATH_CONVパラメーターで指定したパスが不正です。

パス名

PATH_CONVパラメーターで指定したパス名

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを修正します。

KNAX6813-E

Line size limit is exceeded.[ filename="ファイル名" line=行番号]

ジョブ定義スクリプトの1行の上限を超えました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

上限を超えた行の行番号

(Ｓ)

処理を終了します。

(Ｏ)

ジョブ定義スクリプトを見直します。

KNAX6814-E

Invalid argument is specified. arg="引数"

COMMAND_CONV_ARGパラメーター，またはPATH_CONV_ACCESSパラメーターで指定した引数が不正です。

引数

COMMAND_CONV_ARGパラメーター，またはPATH_CONV_ACCESSパラメーターで指定した引数

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを修正します。

KNAX6815-E

Argument is not specified.

COMMAND_CONV_ARGパラメーター，またはPATH_CONV_ACCESSパラメーターの引数が指定されていません。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを修正します。

KNAX6830-I

CHILDJOB_PGM rule matched. cmdline="コマンドライン"

CHILDJOB_PGMパラメーターによる子孫ジョブ実行の読み替え規則に合致しました。または，adshscripttool -execコマンドを実行して子孫ジョブを実行しました。

コマンドライン

読み替えるコマンドのコマンドライン

(Ｓ)

処理を継続します。

KNAX6831-I

CHILDJOB_SHEBANG rule matched. script="スクリプト名" shebang="シェバン"

CHILDJOB_SHEBANGパラメーターによる子孫ジョブ実行の読み替え規則に合致しました。

スクリプト名

子孫ジョブとして実行するスクリプトファイルのファイル名

シェバン

子孫ジョブとして実行するスクリプトファイルの1行目に記述した，#!で始まる行

(Ｓ)

処理を継続します。

KNAX6832-I

CHILDJOB_EXT rule matched. script=スクリプト名

CHILDJOB_EXTパラメーターによる子孫ジョブ実行の読み替え規則に合致しました。

スクリプト名

子孫ジョブとして実行するスクリプトファイルのファイル名

(Ｓ)

処理を継続します。

KNAX6997-E

API error occurred. name=API名称 reason=原因

API名称で示すAPI呼び出しで，原因で示すエラーが発生しました。

API名称が「AssignProcessToJobObject」であり，原因が「Access is denied.」の場合は，ジョブ定義スクリプト中から子孫ジョブではなくルートジョブとしてジョブコントローラを呼び出している，またはジョブオブジェクトを使用するJP1/Advanced Shell以外のプログラムからジョブコントローラを呼び出している可能性があります。

(Ｓ)

処理を終了します。ただし，API名称が「AssignProcessToJobObject」の場合は，処理を継続します。

(Ｏ)

ジョブ定義スクリプト中から子孫ジョブではなくルートジョブとしてジョブコントローラを呼び出している場合

子孫ジョブとしてジョブコントローラを呼び出してください。

ジョブオブジェクトを使用するJP1/Advanced Shell以外のプログラムからジョブコントローラを呼び出している場合

ジョブコントローラはジョブの強制終了時に，孫以下のプロセスを強制終了しないで終了します。ジョブコントローラを呼び出しているプログラムの仕様も確認し，強制終了時の動作に問題がなければエラーに対する対処は不要です。問題があるときは，システム管理者に連絡してください。

上記以外の場合

原因を参照してエラーの原因を取り除きます。問題が解決しないときは，システム管理者に連絡してください。

KNAX6998-E

cannot allocate memory.[ filename="ファイル名" line=行番号]

メモリ不足が発生しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生した行の行番号

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。システム管理者は，メモリ見積もりを見直してください。

KNAX6999-E

Internal error occurred. reason="原因" detail="保守情報"

内部エラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。

KNAX7000-E

Input is too long.

入力文字列が長過ぎます。

(Ｓ)

処理を続行します。

(Ｏ)

入力文字列長を見直して再度入力します。

KNAX7001-E

Specified command "コマンド名" does not exist.

コマンド名で示すデバッガのコマンドがありません。

(Ｓ)

処理を続行します。

(Ｏ)

正しいコマンド名を再度入力します。

KNAX7002-E

Too many arguments are specified.

引数の指定が多過ぎます。

(Ｓ)

処理を続行します。

(Ｏ)

正しい引数を指定してコマンドを再実行します。

KNAX7003-E

Command "コマンド名" does not take any arguments.

コマンド名で示すデバッガコマンドは引数を取りません。

(Ｓ)

処理を続行します。

(Ｏ)

正しい引数を指定してコマンドを再実行します。

KNAX7004-E

Command "コマンド名" requires argument (引数詳細).

コマンド名で示すデバッガのコマンドは引数詳細で示す引数を取ります。

(Ｓ)

処理を続行します。

(Ｏ)

正しい引数を指定してコマンドを再実行します。

KNAX7006-W

Restart the script from the beginning? (y or n)

ジョブ定義スクリプトを最初から再実行するかどうかを確認します。

(Ｓ)

処理を続行します。

(Ｏ)

再実行する場合，yを入力します。再実行しない場合，nを入力します。

KNAX7007-I

Starting the script: ジョブ定義スクリプトのパス名 引数

ジョブ定義スクリプトの実行を開始します。

(Ｓ)

処理を続行します。

KNAX7008-I

The script was not restarted.

ジョブ定義スクリプトを再実行しませんでした。

(Ｓ)

処理を続行します。

KNAX7009-I

Kill the script being debugged? (y or n)

デバッグ中のジョブ定義スクリプトを終了するかどうかを確認します。

(Ｓ)

処理を続行します。

(Ｏ)

終了する場合，yを入力します。終了しない場合，nを入力します。

KNAX7010-E

The script is not running.

ジョブ定義スクリプトが実行していません。

(Ｓ)

処理を続行します。

(Ｏ)

ジョブ定義スクリプトを実行中にコマンドを再実行します。

KNAX7011-I

Command "コマンド名" was not executed.

コマンド名で示すデバッガのコマンドは実行されませんでした。

(Ｓ)

処理を続行します。

KNAX7012-W

The script is running. Exit the debugger? (y or n)

ジョブ定義スクリプト実行中にデバッガを終了するかどうかを確認します。

(Ｓ)

処理を続行します。

(Ｏ)

終了する場合，yを入力します。終了しない場合，nを入力します。

KNAX7013-E

File "ファイル名" is not parsed.

ファイル名で示すジョブ定義スクリプトファイルは解析されていません。

(Ｓ)

処理を続行します。

(Ｏ)

正しいファイル名を指定してコマンドを再実行します。または，ジョブ定義スクリプトファイル内の外部スクリプト呼び出しに#-adsh_scriptコマンドを使用します。

KNAX7014-E

Number of breakpoints and watchpoints exceeds the limit.

ブレークポイントとウォッチポイントの番号が上限を超えました。

(Ｓ)

処理を続行します。

(Ｏ)

デバッガを再起動してからコマンドを再実行します。

KNAX7015-W

Breakpoint cannot be set at line "行番号". Setting breakpoint at next available line.

行番号に示す行にはブレークポイントを設定できません。次に設定できる行にブレークポイントを設定します。

(Ｓ)

処理を続行します。

KNAX7016-E

Breakpoint cannot be set at line "行番号". Next available line does not exist.

行番号に示す行にはブレークポイントを設定できません。次に設定できる行がありません。

(Ｓ)

処理を続行します。

(Ｏ)

正しい行番号を指定してコマンドを再実行します。

KNAX7017-E

File "ファイル名" does not exist.

ファイル名で示すファイルはありません。

(Ｓ)

処理を続行します。

(Ｏ)

正しいファイル名を指定してコマンドを再実行します。

KNAX7018-I

Breakpoint "ブレークポイント番号": filename="ファイル名" line=行番号

ブレークポイントの情報を表示します。ファイル名はベース名で表示します。

(Ｓ)

処理を続行します。

KNAX7019-E

Line "行番号" does not exist.

行番号で示す行はありません。

(Ｓ)

処理を続行します。

(Ｏ)

正しい行番号を指定してコマンドを再実行します。または，行を移動してからコマンドを再実行します。

KNAX7020-E

Specified function "関数名" is not defined.

関数名で示す関数は定義されていません。

(Ｓ)

処理を続行します。

(Ｏ)

正しい関数名を指定してコマンドを再実行します。

KNAX7021-E

Specified jobstep "ジョブステップ名" is not defined.

ジョブステップ名で示すジョブステップは定義されていません。

(Ｓ)

処理を続行します。

(Ｏ)

正しいジョブステップ名を指定してコマンドを再実行します。

KNAX7022-E

Specified variable "変数名" is invalid.

変数名で示す変数名が不正です。

(Ｓ)

処理を続行します。

(Ｏ)

正しい変数名を指定してコマンドを再実行します。

KNAX7023-I

Watchpoint "ウォッチポイント番号": variable "変数名"

ウォッチポイントの情報を表示します。

(Ｓ)

処理を続行します。

KNAX7024-E

Specified range "番号範囲" is invalid.

番号範囲で示すブレークポイント・ウォッチポイント番号の範囲が不正です。

(Ｓ)

処理を続行します。

(Ｏ)

正しい番号範囲を指定してコマンドを再実行します。

KNAX7025-I

Delete all breakpoints and watchpoints? (y or n)

すべてのブレークポイントとウォッチポイントを削除するかどうかを確認します。

(Ｓ)

処理を続行します。

(Ｏ)

削除する場合，yを入力します。削除しない場合，nを入力します。

KNAX7026-E

Breakpoints and watchpoints are not defined.

ブレークポイントとウォッチポイントがどちらも設定されていないため，ブレークポイントとウォッチポイントを削除できません。

(Ｓ)

処理を続行します。

(Ｏ)

必要な場合，ブレークポイントまたはウォッチポイントを設定した状態でコマンドを再実行します。

KNAX7027-E

Breakpoint or watchpoint "番号" is not defined.

番号で示すブレークポイントまたはウォッチポイントが設定されていません。

(Ｓ)

処理を続行します。

(Ｏ)

正しい番号を指定してコマンドを再実行します。

KNAX7028-E

Breakpoints and watchpoints do not exist in the range "番号範囲".

番号範囲で示す範囲にブレークポイントとウォッチポイントがありません。

(Ｓ)

処理を続行します。

(Ｏ)

正しい番号範囲を指定してコマンドを再実行します。

KNAX7029-E

Specified argument "引数" is invalid.

引数で示すコマンドの引数が不正です。

(Ｓ)

処理を続行します。

(Ｏ)

引数の指定方法を見直してコマンドを再実行します。

KNAX7032-I

Stop in the script "ジョブ定義スクリプト名".

ジョブ定義スクリプト名に示すジョブ定義スクリプトの中で実行を停止しました。

(Ｓ)

処理を続行します。

KNAX7033-I

Stop in the external script "ジョブ定義スクリプト名".

ジョブ定義スクリプト名に示す外部スクリプトの中で実行を停止しました。

(Ｓ)

処理を続行します。

KNAX7034-I

Continuing the script.

ジョブ定義スクリプトを継続して実行します。

(Ｓ)

処理を続行します。

KNAX7035-E

Command "コマンド名" cannot be executed in the outermost place.

コマンド名で示すデバッガコマンドは最も外側では実行できません。

(Ｓ)

処理を続行します。

(Ｏ)

関数内で停止している状態でコマンドを再実行します。

KNAX7036-I

Run till exit of current function.

現在の関数の終わりまで実行します。

(Ｓ)

処理を続行します。

KNAX7037-I

Exit the current function? (y or n)

現在の関数を終了するかどうかを確認します。

(Ｓ)

処理を続行します。

(Ｏ)

終了する場合，yを入力します。終了しない場合，nを入力します。

KNAX7038-I

Sending signal "シグナル名" to the script.

シグナル名で示すシグナルをジョブ定義スクリプトに送信します。

(Ｓ)

処理を続行します。

KNAX7039-E

Specified signal number "シグナル番号" does not exist.

シグナル番号で示すシグナルはありません。

(Ｓ)

処理を続行します。

(Ｏ)

正しいシグナル番号を指定してコマンドを再実行します。

KNAX7040-E

Specified signal "シグナル名" does not exist.

シグナル名で示すシグナルはありません。

(Ｓ)

処理を続行します。

(Ｏ)

正しいシグナル名を指定してコマンドを再実行します。

KNAX7043-I

Script stopped because signal "シグナル名"(Stop=Yes) received before.

受信時にジョブ定義スクリプトを停止するシグナル名で示すシグナルを受信したため，ジョブ定義スクリプトが停止しました。

(Ｓ)

処理を続行します。

KNAX7044-E

Command "コマンド名" requires subcommand.

コマンド名で示すデバッガのコマンドはサブコマンドを必要とします。

(Ｓ)

処理を続行します。

(Ｏ)

サブコマンドを指定してコマンドを再実行します。

KNAX7045-E

Specified "コマンド名" command "サブコマンド名" is invalid.

コマンド名で示すデバッガのコマンドのサブコマンド名が不正です。

(Ｓ)

処理を続行します。

(Ｏ)

正しいサブコマンド名を指定してコマンドを再実行します。

KNAX7046-E

Specified variable "変数名" is not defined.

変数名で示す変数が定義されていません。

(Ｓ)

処理を続行します。

(Ｏ)

正しい変数名を指定してコマンドを再実行します。

KNAX7047-I

Breakpoints and watchpoints are not defined.

ブレークポイントとウォッチポイントがどちらも設定されていません。

(Ｓ)

処理を続行します。

(Ｏ)

必要な場合，ブレークポイントまたはウォッチポイントを設定した状態でコマンドを再実行します。

KNAX7048-I

Working directory: ディレクトリパス名

ディレクトリパス名で示すディレクトリパスに作業ディレクトリを移動しました。

(Ｓ)

処理を続行します。

KNAX7049-E

Working directory cannot be changed. (reason=エラー詳細)

エラー詳細で示す原因によって，作業ディレクトリを移動できません。

(Ｓ)

処理を続行します。

(Ｏ)

エラー詳細の原因を取り除いてコマンドを再実行します。

KNAX7050-E

Symbol "&" cannot be specified in arguments of command "コマンド名".

コマンド名で示すデバッガのコマンドの引数に&を指定できません。

(Ｓ)

処理を続行します。

(Ｏ)

バックグラウンド実行以外の目的で&を使用する場合，¥&と指定してください。

KNAX7052-E

Type of assignment value is invalid.

変数の型と代入する値の型とが異なっています。

(Ｓ)

処理を続行します。

(Ｏ)

変数の型と代入する値の型を見直してコマンドを再実行します。

KNAX7053-I

Usage: コマンド名 引数

コマンド名で示すデバッガコマンドの使用方法を表示します。

(Ｓ)

処理を続行します。

KNAX7054-E

Specified variable "変数名" is read-only.

変数名で示す変数は読み込み専用です。

(Ｓ)

処理を続行します。

(Ｏ)

変数の属性を見直してからコマンドを再実行します。

KNAX7055-E

Breakpoint has already been set at line "行番号".

行番号に示す行にはブレークポイントがすでに設定されています。

(Ｓ)

処理を続行します。

(Ｏ)

必要があれば，ブレークポイントを削除したあと，コマンドを再実行します。または，異なる行番号を指定してコマンドを再実行します。

KNAX7056-I

Value of variable "変数名" was changed to 数値.

変数名に示す変数の値が数値に変更されました。

数値

setコマンドの代入式の右辺に記述した数値，または右辺に記述した変数の値（数値）を示します。

(Ｓ)

処理を続行します。

KNAX7057-I

Value of variable "変数名" was changed to "文字列".

変数名に示す変数の値が文字列に変更されました。

文字列

setコマンドの代入式の右辺に記述した文字列，または右辺に記述した変数の値（文字列）を示します。

(Ｓ)

処理を続行します。

KNAX7058-I

Debugger received signal "シグナル名".

デバッガがシグナル名に示すシグナルを受信しました。

(Ｓ)

処理を続行します。

KNAX7062-E

Specified variable "変数名" has no value.

変数名に示す変数が値を持っていません。

(Ｓ)

処理を続行します。

(Ｏ)

値を持つ変数名を指定してコマンドを再実行します。

KNAX7063-I

Command "コマンド名" request was received in running.

ジョブ定義スクリプト実行中にコマンド名に示すコマンドの要求を受け付けました。

(Ｓ)

バッチジョブをキャンセルします。

(Ｏ)

必要があれば，再実行します。

KNAX7064-I

Cancel request from editor was received.

エディタからのキャンセル要求を受け付けました。

(Ｓ)

バッチジョブをキャンセルします。

(Ｏ)

必要があれば，再実行します。

KNAX7065-I

Jobsteps are not defined.

ジョブステップが定義されていません。

(Ｓ)

処理を続行します。

(Ｏ)

必要があれば，ジョブ定義スクリプトにジョブステップを定義したあと，コマンドを再実行します。

KNAX7066-I

Functions are not defined.

関数が定義されていません。

(Ｓ)

処理を続行します。

(Ｏ)

必要があれば，ジョブ定義スクリプトに関数を定義したあと，コマンドを再実行します。または，関数の定義が有効になってからコマンドを再実行します。

KNAX7067-I

Variables are not defined.

変数が定義されていません。

(Ｓ)

処理を続行します。

(Ｏ)

必要があれば，ジョブ定義スクリプトに変数を定義したあと，コマンドを再実行します。または，変数の定義が有効になってからコマンドを再実行します。

KNAX7068-I

Commands are skipped until end of function.

関数の終わりまでコマンドをスキップします。

(Ｓ)

処理を続行します。

KNAX7070-E

Watchpoint has already been set for variable "変数名".

変数名に示す変数にはウォッチポイントがすでに設定されているため，新たなウォッチポイントは設定されません。

(Ｓ)

処理を続行します。

(Ｏ)

必要があれば，ウォッチポイントを削除したあと，コマンドを再実行します。または，異なる変数名を指定してコマンドを再実行します。

KNAX7071-E

Breakpoint cannot be set because of エラー要因.

エラー要因に示す要因でデバッガがジョブ定義スクリプトの実行を停止しているため，ブレークポイントを設定できません。

エラー要因

次のどちらかが出力されます。

trap action：trapのアクションを実行中に停止している

EOF：EOFで停止している

(Ｓ)

処理を続行します。

(Ｏ)

エラー要因を解決した上でコマンドを再実行します。または，適切な引数を指定してコマンドを再実行します。

KNAX7072-E

Line cannot be listed because of エラー要因.

エラー要因に示す要因でデバッガがジョブ定義スクリプトの実行を停止しているため，ソースファイル行の内容を表示できません。

エラー要因

次のどちらかが出力されます。

trap action：trapのアクションを実行中に停止している

EOF：EOFで停止している

(Ｓ)

処理を続行します。

(Ｏ)

エラー要因を解決した上でコマンドを再実行します。または，適切な引数を指定してコマンドを再実行します。

KNAX7073-I

A request to execute a trap action was received from the editor. parameter value="パラメーター値"

エディタからトラップアクションの実行要求を受け付けました。

パラメーター値

環境設定パラメーターTRAP_ACTION_SIGTERMに指定した値です。

環境設定パラメーターTRAP_ACTION_SIGTERMにDISABLEを指定している場合，またはtrapコマンドによるアクションの定義がない場合，このメッセージが出力されてもtrapコマンドのアクションは実行されません。

(Ｓ)

処理を続行します。

KNAX7090-W

One or more error information exist.

上限を超えて表示できないエラー情報が1つ以上あります。

(Ｓ)

処理を続行します。

(Ｏ)

値を持つ変数名を指定してコマンドを再実行します。

KNAX7099-E

Debugger ended abnormally.

デバッガがエラー終了しました。

(Ｓ)

処理を終了します。

(Ｏ)

このメッセージとともに出力されるほかのメッセージを参照して原因を取り除き，再実行してください。問題が解決しない場合は，システム管理者に連絡してください。

KNAX7101-E

Failed to create debugger child process. (reason=エラー詳細)

エラー詳細に示す原因で，デバッガの子プロセスの生成が失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細の原因を取り除いて再実行してください。問題が解決しない場合は，システム管理者に連絡してください。

KNAX7102-I

The debugger child process was created. (pid=プロセスID)

デバッガの子プロセスを生成しました。

(Ｓ)

処理を続行します。

KNAX7103-I

The debugger child process ended. (pid=プロセスID)

デバッガの子プロセスが終了しました。

(Ｓ)

処理を続行します。

KNAX7104-E

Failed to open log file in debugger.

デバッガでジョブ定義スクリプトを実行したときに，ログファイルのオープン処理に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラーの原因を取り除いて再実行してください。問題が解決しない場合は，システム管理者に連絡してください。

KNAX7105-E

Failed to move to debugger work directory. (reason=エラー詳細)

エラー詳細に示す原因で，デバッガの作業ディレクトリへの移動に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細の原因を取り除いて再実行します。

KNAX7106-E

Failed to move to script work directory. (reason=エラー詳細)

エラー詳細に示す原因で，ジョブ定義スクリプトの作業ディレクトリへの移動に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細の原因を取り除いて再実行します。

KNAX7107-I

Received signal in input debugger command.

デバッガのコマンド入力中にシグナルを受信しました。

(Ｓ)

処理を終了するシグナルのときは終了し，処理を継続するシグナルのときは継続します。

(Ｏ)

必要があれば，再実行します。

KNAX7108-E

Failed to input debugger command.

デバッガのコマンドの入力に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

一緒に出力されるほかのメッセージを参照してエラーの原因を取り除いて再実行します。

KNAX7109-I

EOF was input with debugger command.

デバッガのコマンドでEOFが入力されました。

(Ｓ)

処理を終了します。

KNAX7110-E

Failed to open DBG file "ファイルパス". (reason=エラー詳細)

エラー詳細に示す原因で，ファイルパスに示すファイルのオープン処理に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細の原因を取り除いて再実行します。

KNAX7111-I

DBG file "ファイルパス" parsing start.

ファイルパスで示すファイルの解析を開始します。

(Ｓ)

処理を継続します。

KNAX7112-E

DBG file "ファイルパス" format is invalid. DETAIL=保守情報

ファイルパスで示すファイルのフォーマットが不正でした。保守情報は不正があった内部データの位置や不正の要因を示す情報です。

(Ｓ)

処理を終了します。

(Ｏ)

再実行します。必要があれば，システム管理者に連絡します。

KNAX7113-E

Failed to "OSのAPI名". (reason=エラー詳細)

エラー詳細に示す原因で，API名の処理に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細の原因を取り除いて再実行してください。問題が解決しない場合は，システム管理者に連絡してください。

KNAX7114-E

Failed to wait the debugger child process. (reason=エラー詳細)

エラー詳細に示す原因で，デバッガの子プロセスのウェイト処理に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細の原因を取り除いて再実行してください。問題が解決しない場合は，システム管理者に連絡してください。

KNAX7115-E

Failed to execute the exec command process. (reason=エラー詳細)

エラー詳細に示す原因によって，execコマンドプロセスの実行が失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細の原因を取り除いて再実行してください。問題が解決しない場合は，システム管理者に連絡してください。

KNAX7116-E

Disk free space is low.

ディスクの空き容量が不足しています。

(Ｓ)

処理を終了します。

(Ｏ)

ディスクの空き容量を増やし，再実行します。

KNAX7117-I

DBG file "ファイルパス" parsing ended normally.

ファイルパスに示すDBGファイルの解析が終了しました。

(Ｓ)

処理を続行します。

KNAX7118-E

Failed to create console.

コンソールの作成に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

再実行します。再実行しても発生する場合，システム管理者に連絡します。

KNAX7119-E

Failed to duplicate file descriptor.

ファイルディスクリプタの複製に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

再実行します。再実行しても発生する場合，システム管理者に連絡します。

KNAX7120-W

Parent process received SIGCHLD, but child process had no change.

親プロセスはSIGCHLDを受信しましたが，子プロセスの状態は変化しません。

(Ｓ)

処理を続行します。

KNAX7121-E

Failed to create the exec command process. (reason=エラー詳細)

エラー詳細に示す原因によって，execコマンドのプロセス生成に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細の原因を取り除いて再実行してください。問題が解決しない場合は，システム管理者に連絡してください。

KNAX7122-E

Failed to wait the exec command process. (reason=エラー詳細)

エラー詳細に示す原因によって，execコマンドのプロセスのウェイト処理に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

エラー詳細の原因を取り除いて再実行してください。問題が解決しない場合は，システム管理者に連絡してください。

KNAX7123-E

Failed to get value of variable "変数名". detail=保守情報

変数名に示す変数の値の取得に失敗しました。すべての変数を取得しようとした場合，変数名に<All variables>と示します。

システムのメモリが不足している場合，このメッセージが出力されることがあります。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX7124-E

Failed to set value of variable "変数名". detail=保守情報

変数名に示す変数の値の設定に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。

KNAX7125-E

Failed to get information of function "関数名". detail=保守情報

関数名に示す関数の情報の取得に失敗しました。すべての関数を取得しようとした場合，関数名に<All functions>と表示します。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。

KNAX7126-I

Error insertion mode is set to {"on" | "off"}.

エラー注入モードを設定しました。

on

エラー注入モードを有効にしました。

off

エラー注入モードを無効にしました。

(Ｓ)

処理を終了します。

KNAX7127-E

Error insertion mode could not be modified.

エラー注入モードを一度有効にしてジョブ定義スクリプトを再開しているため，エラー注入モードの再設定に失敗しました。

(Ｓ)

処理を続行します。

(Ｏ)

ジョブ定義スクリプトを最後まで実行するか，または再実行する必要があります。

KNAX7128-E

Failed to remove the DBG file. (filename=ファイルパス, reason=エラー詳細)

エラー詳細に示す原因によって，デバッガのDBGファイルを削除できません。

ファイルパス

DBGファイルのファイルパス

エラー詳細

エラー詳細

(Ｓ)

処理を続行します。

(Ｏ)

不要なファイルをrmコマンドなどで削除してください。

KNAX7400-E

The number of response message exceeds the limit.

adshreadコマンドで応答要求メッセージの出力数が上限を超えました。

(Ｓ)

処理を繰り返します。

(Ｏ)

USERREPLY_WAIT_MAXCOUNTパラメーターの設定を見直してください。

KNAX7402-E

An error occurred during shared memory processing. (errinfo=エラー情報,function=保守情報)

adshreadコマンドで応答要求メッセージの処理中に，共有メモリの操作でエラーが発生しました。

エラー情報

エラーが発生したAPI が出力する状態コード

保守情報

エラーが発生したAPI名

(Ｓ)

処理を続行します。

(Ｏ)

エラー情報を確認して対処してください。エラー情報については，「11.4.4　ユーザー応答機能で表示されるエラー情報の意味および対処方法」を参照してください。

KNAX7403-E

Number of parameters is invalid. filename="ファイル名" line=行番号

adshechoコマンドまたはadshreadコマンドの引数の数が不当です。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を続行します。

(Ｏ)

ジョブ定義スクリプトファイルを修正してください。

KNAX7404-E

Invalid variable type for "変数名". filename="ファイル名" line=行番号

adshreadコマンドに指定した変数が数値型です。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を続行します。

(Ｏ)

ジョブ定義スクリプトファイルを修正してください。

KNAX7405-E

Specified message is too long. filename="ファイル名" line=行番号

adshechoコマンドに指定した事象通知メッセージ，またはadshreadコマンドに指定した応答要求メッセージが長過ぎます。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(Ｓ)

処理を続行します。

(Ｏ)

ジョブ定義スクリプトファイルを修正してください。

KNAX7408-E

Internal error occurred. (Detail=保守情報)

adshechoコマンドまたはadshreadコマンド処理で内部エラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX7420-E

Non-ASCII character is found in a response. Please re-enter a response.

標準入力から応答入力した内容にASCII文字以外が指定されました。

(Ｓ)

処理を続行します。

(Ｏ)

応答入力の内容にASCII文字を指定して再度応答してください。

KNAX7450-I

adshexecが応答要求をキャンセルしました。(ジョブ識別子, 行番号, ホスト名)

ジョブコントローラが強制終了を受け付けたため，adshreadコマンドによる応答要求メッセージをキャンセルしました。

ジョブ識別子

JP1/Advanced Shellがバッチジョブに付与したジョブ識別子

行番号

adshreadコマンドを発行したジョブ定義スクリプトの行番号

ホスト名

サービスまたはデーモンが稼働しているホストの名称

(Ｓ)

処理を終了します。

KNAX7451-I

Response request is cancelled. (ジョブ識別子, 行番号, ホスト名)

ジョブコントローラが終了要求を受け付けたため，adshreadコマンドによる応答要求メッセージをキャンセルしました。

ジョブ識別子

JP1/Advanced Shellがバッチジョブに付与したジョブ識別子

行番号

adshreadコマンドを発行したジョブ定義スクリプトの行番号

ホスト名

サービスまたはデーモンが稼働しているホストの名称

(Ｓ)

処理を終了します。

KNAX7460-E

An error occurred during JP1Event processing. （errinfo=エラー情報,function= 保守情報）

JP1イベントの発行に失敗しました。

エラー情報

エラーが発生したAPIが出力する状態コード

保守情報

エラーが発生したAPI名

(Ｓ)

処理を続行します。

(Ｏ)

エラー情報を確認して対処してください。エラー情報については，「11.4.4　ユーザー応答機能で表示されるエラー情報の意味および対処方法」を参照してください。

KNAX7461-E

An error occurred during JP1Event processing. (errinfo=エラー情報,function=open_sender,host=ホスト名)

JP1イベントの発行に失敗しました。

エラー情報

エラーが発生したAPIが出力する状態コード

ホスト名

JP1/Advanced Shellが稼働するバッチ業務サーバのホスト名

(Ｓ)

処理を続行します。

(Ｏ)

エラー情報を確認して対処してください。エラー情報については，「11.4.4　ユーザー応答機能で表示されるエラー情報の意味および対処方法」を参照してください。

KNAX7462-E

An error occurred during JP1Event processing. (errinfo=エラー情報, function=保守情報,dest=JP1/IM - Managerが稼働している運用管理サーバのホスト名,seqno=発行元イベントDB内通し番号)

JP1イベントの発行に失敗しました。

エラー情報

エラーが発生したAPIが出力する状態コード

保守情報

event_send（イベント送信）またはcheck_arrival（イベント到達確認）

JP1/IM - Managerが稼働している運用管理サーバのホスト名

システム環境ファイルのHOSTNAME_JP1IM_MANAGERパラメーターで指定したホスト名。HOSTNAME_JP1IM_MANAGERパラメーターの指定を省略した場合は，JP1/Advanced Shell が稼働するバッチ業務サーバの物理ホスト名。

発行元イベントDB内通し番号

JP1/Baseの発行元イベントDB内通し番号

(Ｓ)

処理を続行します。

(Ｏ)

エラー情報を確認して対処してください。エラー情報については，「11.4.4　ユーザー応答機能で表示されるエラー情報の意味および対処方法」を参照してください。

ただし，このメッセージが表示された場合でも，JP1/IM - Viewにイベントが到達している可能性があります。到達したイベントが応答待ちイベントの場合は，手動で応答待ちイベントの滞留を解除してください。

KNAX7464-E

Failed to transmission of JP1Event. （function= check_arrival, dest= 転送先ホスト名, seqno= 発行元イベントDB内通し番号）

自ホストのJP1/BaseからJP1/IM - Managerが稼働しているホストのJP1/Baseに対してJP1イベントの転送に失敗しました。

転送先ホスト名

システム環境ファイルのHOSTNAME_JP1IM_MANAGERパラメーターで指定したホスト名

発行元イベントDB内通し番号

JP1/Baseの発行元イベントDB内通し番号

(Ｓ)

処理を続行します。

(Ｏ)

次の点を確認してください。

JP1/IM - Managerが稼働しているホストにJP1/Baseがインストールされているか。

JP1/IM - Managerが稼働しているホストでJP1/Baseのイベントサーバが起動しているか。

自ホストとJP1/IM - Managerが稼働しているホストの間で，JP1/Baseのコネクションが確立されているか。

ただし，このメッセージが表示された場合でも，JP1/IM - Viewにイベントが到達している可能性があります。到達したイベントが応答待ちイベントの場合は，手動で応答待ちイベントの滞留を解除してください。

KNAX7465-W

Transferring JP1 Event.(function= check_arrival,dest=転送先ホスト名,seqno=発行元イベントDB内通し番号)

JP1/Baseが，HOSTNAME_JP1IM_MANAGERで指定されたホストにJP1イベントを転送中です。

転送先ホスト名

システム環境ファイルのHOSTNAME_JP1IM_MANAGERパラメーターで指定したホスト名

発行元イベントDB内通し番号

JP1/Baseの発行元イベントDB内通し番号

(Ｓ)

処理を続行します。

KNAX7470-I

Data flow control has been performed.(wait=待ち時間)

JP1イベント発行のための流量制御をします。

待ち時間

流量制御のためにJP1イベントの発行を遅らせた時間（ミリ秒）

(Ｓ)

処理を続行します。

KNAX7500-I

adshmdが起動しました。

ユーザー応答機能管理デーモンが起動しました。

(Ｓ)

処理を続行します。

KNAX7501-I

adshmdが終了しました。

ユーザー応答機能管理デーモンが終了しました。

(Ｓ)

処理を続行します。

KNAX7502-E

adshmdが起動できません。

ユーザー応答機能管理デーモンの起動に失敗しました。

(Ｓ)

処理を終了します。

(Ｏ)

原因を取り除いて，再起動してください。

KNAX7503-E

adshmdでエラーが発生しました。

ユーザー応答機能管理デーモンでエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

原因を取り除いて，再起動してください。

KNAX7508-I

プログラム名が応答要求をキャンセルしました。 (ジョブ識別子, 行番号, ホスト名)

adshreadコマンドによる応答要求メッセージをキャンセルしました。

プログラム名

応答要求メッセージをキャンセルしたサービス名またはデーモン名

ジョブ識別子

JP1/Advanced Shellがバッチジョブに付与したジョブ識別子

行番号

adshreadコマンドを発行したジョブ定義スクリプトの行番号

ホスト名

サービスまたはデーモンが稼働しているホストの名称

(Ｓ)

処理を続行します。

KNAX7509-I

adshchmsgが応答要求をキャンセルしました。 (ジョブ識別子, 行番号, ホスト名)

adshchmsgコマンドの-nオプションで指定した応答要求メッセージ番号の応答要求メッセージをキャンセルしました。

ジョブ識別子

JP1/Advanced Shellがバッチジョブに付与したジョブ識別子

行番号

adshreadコマンドを発行したジョブ定義スクリプトの行番号

ホスト名

サービスまたはデーモンが稼働しているホストの名称

(Ｓ)

処理を続行します。

KNAX7550-I

Service installed successfully.

AdshmSvcDサービスまたはAdshmSvcEサービスの登録に成功しました。

(Ｓ)

処理を続行します。

KNAX7551-E

Service installed unsuccessfully. (API=保守情報, Error code =エラーコード)

AdshmSvcDサービスまたはAdshmSvcEサービスの登録に失敗しました。

(Ｓ)

処理を中止します。

(Ｏ)

すでにAdshmSvcDサービスまたはAdshmSvcEサービスが登録されていることが原因である場合は，このメッセージは無視してかまいません。

adshmsvcdコマンドまたはadshmsvceコマンドを実行してこのメッセージが出力された場合は，不当なオプションが指定されたおそれがあるため，オプションの指定内容を見直してください。

それ以外の場合は，システム管理者に連絡してください。

KNAX7552-E

[AdshmSvcD | AdshmSvcE] initialization error. (API=保守情報,Error code=エラーコード)

AdshmSvcDサービスまたはAdshmSvcEサービスの初期化処理で，エラーが発生しました。

(Ｓ)

処理を中止します。

(Ｏ)

保守情報がjhs_env_conf_readConfigの場合，システム環境ファイルの内容が不正な場合があるため，内容を見直してください。

保守情報がjhs_env_conf_readConfig以外の場合およびシステム環境ファイルの内容が正しい場合は，システム管理者に連絡してください。

KNAX7553-E

Failed to API名. (Error code=エラーコード)

AdshmSvcDサービスまたはAdshmSvcEサービスの処理中に，Mutexの生成またはオープンに失敗しました。

(Ｓ)

処理を中止します。

(Ｏ)

AdshmSvcDサービスまたはAdshmSvcEサービスを起動するアカウントに対し，サーバの管理者権限を持つユーザーが指定されていないと，このエラーが発生する場合があります。

指定誤りの場合は修正して再実行してください。誤りでない場合はシステム管理者に連絡してください。

KNAX7556-E

Logical host name is too long.

サービスの登録で指定された論理ホスト名が長過ぎます。

(Ｓ)

サービスの登録処理を中止します。

(Ｏ)

適切な論理ホスト名を指定してコマンドを再度実行してください。

KNAX7560-I

Service setup successfully.

AdshmSvcDサービスまたはAdshmSvcEサービスの設定処理に成功しました。

(Ｓ)

処理を続行します。

KNAX7561-E

Service setup unsuccessfully. (API=保守情報, Error code=エラーコード)

AdshmSvcDサービスまたはAdshmSvcEサービスの設定処理が失敗しました。ユーザー応答機能の設定が誤っている場合，このメッセージが出力されることがあります。

(Ｓ)

処理を中止します。

(Ｏ)

システム管理者に連絡してください。システム管理者はユーザー応答機能の設定を見直してください。

KNAX7600-E

JP1/AJS - Viewから起動してください。

JP1/AJS - Viewが起動したカスタムジョブ定義プログラムの起動情報が不正です。

(Ｓ)

処理を終了します。

(Ｏ)

次に示すどちらかの対策をします。

カスタムジョブ定義情報が不正な場合があるため，カスタムジョブを再定義します。

JP1/AJS - Viewのバージョンが，前提バージョンであることを確認します。

KNAX7601-E

JP1/AJS - Viewから取得した起動情報の形式が不正です。

JP1/AJS - Viewが起動したカスタムジョブ定義プログラムの起動情報が不正です。

(Ｓ)

処理を終了します。

(Ｏ)

次に示すどちらかの対策をします。

カスタムジョブ定義情報が不正な場合があるため，カスタムジョブを再定義します。

JP1/AJS - Viewのバージョンが，前提バージョンであることを確認します。

KNAX7602-E

JP1/Advanced Shellのカスタムジョブ登録を正しく行ってください。

JP1/AJS - Viewのカスタムジョブ登録で設定した内容が不正です。

(Ｓ)

処理を終了します。

(Ｏ)

次に示すどちらかの対策をします。

カスタムジョブ登録情報を確認します。

JP1/Advanced Shell - Custom Jobを再インストールして，定義プログラムを新しくします。

KNAX7603-E

JP1/Advanced Shellの定義プログラムの内容が不正です。

JP1/AJS - Viewのカスタムジョブ登録で設定した定義プログラムの内容が不正です。

(Ｓ)

処理を終了します。

(Ｏ)

次に示すどちらかの対策をします。

JP1/AJS - Viewのカスタムジョブ登録で設定した定義プログラムの内容を確認します。

JP1/Advanced Shell - Custom Jobを再インストールして，定義プログラムを新しくします。

KNAX7604-E

定義項目名に不正な文字が入力されています。

ジョブ定義画面の定義項目名で示すフィールドに不正な文字が入力されました。

(Ｓ)

処理を中断し，入力画面に戻ります。

(Ｏ)

定義項目名で示すフィールドに入力されている不正な文字を削除します。

KNAX7605-E

定義項目名を入力してください。

ジョブ定義画面の定義項目名で示す，入力が必須のフィールドの指定が省略されました。

(Ｓ)

処理を中断し，入力画面に戻ります。

(Ｏ)

定義項目名で示すフィールドに値を入力してください。

KNAX7606-E

登録済みの定義情報が不正です。

登録済みの定義情報が不正です。

(Ｓ)

処理を中断します。ジョブの定義は変更されていません。

(Ｏ)

次に示すどれかの対策をします。

JP1/AJS - Viewのジョブネットエディタ上で作成したジョブを作り直し，再実行します。

ajsdefineコマンドおよびJP1/AJS - Definition Assistantでジョブを定義した場合は，指定できる文字の種別や文字列の長さを見直してジョブを作り直し，再実行します。

JP1/AJS - Viewのバージョンが，前提バージョンであることを確認します。

KNAX7607-E

JP1/Advanced Shellの定義情報を登録できません。(error code = エラーコード)

JP1/AJSにジョブの定義を登録できません。

(Ｓ)

処理を中断します。ジョブの定義は変更されていません。

(Ｏ)

次に示すどちらかの対策をします。

JP1/AJS - Viewのジョブネットエディタ上で作成したジョブを作り直し，再実行します。

JP1/AJS - Viewのバージョンが，前提バージョンであることを確認します。

KNAX7608-E

JP1/Advanced Shellの定義情報を登録できません。(error code = エラーコード) / (reason = エラー詳細)

JP1/AJSにジョブ定義を登録できません。

(Ｓ)

処理を中断します。ジョブの定義は変更されていません。

(Ｏ)

次に示すどちらかの対策をします。

JP1/AJS - Viewのジョブネットエディタ上で作成したジョブを作り直し，再実行します。

JP1/AJS - Viewのバージョンが，前提バージョンであることを確認します。

KNAX7609-E

前回登録したJP1/Advanced Shellの定義情報を取得できません。(error code = エラーコード)

前回登録したJP1/Advanced Shellの定義情報を取得できません。

(Ｓ)

処理を中断します。ジョブ定義は変更されていません。

(Ｏ)

次に示すどちらかの対策をします。

JP1/AJS - Viewのジョブネットエディタ上で作成したジョブを作り直し，再実行します。

JP1/AJS - Viewのバージョンが，前提バージョンであることを確認します。

KNAX7610-E

入力情報の取り消し処理に失敗しました。(reason = エラー詳細)

入力した情報の破棄が失敗しました。

(Ｓ)

処理を中断します。ジョブの定義は破棄されていません。

(Ｏ)

次に示すどちらかの対策をします。

JP1/AJS - Viewのジョブネットエディタ上で作成したジョブを作り直し，再実行します。

JP1/AJS - Viewのバージョンが，前提バージョンであることを確認します。

KNAX7611-E

論理エラーが発生しました。(関数ID)

JP1/Advanced Shellの定義で，内部的な論理エラーが発生しました。

(Ｓ)

処理を中断します。

(Ｏ)

システム管理者に連絡します。

KNAX7750-E

論理エラーが発生しました。(関数ID) / (reason = エラー詳細)

メッセージ出力処理で，内部的な論理エラーが発生しました。

(Ｓ)

処理を中断します。

(Ｏ)

システム管理者に連絡します。

KNAX7770-E

ヘルプファイルの起動に失敗しました。(error code = エラーコード)

ヘルプファイルの起動に失敗しました。

(Ｓ)

元の画面に戻ります。

(Ｏ)

エラーコードに示されるShellExecute関数の終了コードを調べ，適切に処置します。

KNAX7771-E

ヘルプファイルが見つかりません。(file name = ファイル名)

ヘルプファイルが見つかりません。

(Ｓ)

元の画面に戻ります。

(Ｏ)

JP1/Advanced Shell - Custom Jobの修復インストールを試みます。

KNAX7772-E

ヘルプファイルの起動に失敗しました。(reason = エラー詳細)

ヘルプファイルの起動に失敗しました。

(Ｓ)

元の画面に戻ります。

(Ｏ)

JP1/Advanced Shell - Custom Jobの修復インストールを試みます。

KNAX7773-E

ヘルプファイルの起動に失敗しました。

ヘルプファイルの起動に失敗しました。

(Ｓ)

元の画面に戻ります。

(Ｏ)

JP1/Advanced Shell - Custom Jobの修復インストールを試みます。

KNAX7800-I

adshcollect:RAS completed collection of ファイル名

　採取したファイル名

　採取したファイル名

　…

採取したファイル名をまとめてtarファイル（ファイル名）を作成しました。

(Ｓ)

処理を終了します。

(Ｏ)

作成されたファイルをシステム管理者に渡してください。

KNAX7801-I

adshcollect:RAS completed collection of ファイル名

　採取したファイル名

　採取したファイル名

　…

採取したファイル名の内容をまとめてファイル名のファイルを作成しました。

(Ｓ)

処理を終了します。

(Ｏ)

作成されたファイルをユーザーの圧縮ツールを使用して圧縮し，システム管理者に渡してください。

KNAX7802-E

Usage: adshcollect Directory [-f FileName] [-e FileName] [-h LogicalHostName]

　　　Directory : Specify output directory

　　　-f FileName : Specify a config file

　　　-e FileName : Specify an environment file

　　　-h LogicalHostName : Specify a logical host

オプションの設定が誤っています。

(Ｓ)

処理を終了します。

(Ｏ)

オプションを正しく設定し，再実行します。

KNAX7803-E

adshcollect:RAS error:出力先ディレクトリ(Permission denied).

出力先ディレクトリにアクセス権限がありません。

(Ｓ)

処理を終了します。

(Ｏ)

出力先ディレクトリにアクセス権を付与するか，別のディレクトリを指定して再実行します。

KNAX7804-E

adshcollect:RAS error:出力先ディレクトリ(not found or not a directory).

出力先ディレクトリがないかまたはディレクトリではありません。

(Ｓ)

処理を終了します。

(Ｏ)

正しい出力先を指定して再実行します。

KNAX7805-E

adshcollect:RAS error:定義ファイル名(not found or not a file).

定義ファイル名がないかまたはファイルではありません。

(Ｓ)

処理を終了します。

(Ｏ)

正しい定義ファイルを指定して再実行します。

KNAX7806-E

adshcollect:RAS error:定義ファイル名(Permission denied).

定義ファイル名にアクセス権限がありません。

(Ｓ)

処理を終了します。

(Ｏ)

定義ファイルへのアクセス権限を設定して再実行します。

KNAX7807-E

adshcollect:RAS error:環境ファイル名(not found or not a file).

環境ファイル名がないか，またはファイルではありません。

(Ｓ)

処理を終了します。

(Ｏ)

正しい環境ファイルを指定して再実行します。

KNAX7808-E

adshcollect:RAS error:環境ファイル名(Permission denied).

環境ファイル名にアクセス権限がありません。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルへのアクセス権限を設定して再実行します。

KNAX7809-E

adshcollect:RAS error:定義ファイル名("キーワード" Syntax Error).

定義ファイル中に不正なキーワードが指定されました。

(Ｓ)

処理を終了します。

(Ｏ)

定義ファイルを正しく設定して再実行します。

KNAX7810-E

adshcollect:RAS error:指定値(not found or not a file).

定義ファイルのキーワードの指定値がないか，またはファイルではありません。

(Ｓ)

処理を終了します。

(Ｏ)

定義ファイルを正しく設定して再実行します。

KNAX7811-W

adshcollect:RAS error:指定値(Permission denied).

定義ファイルのキーワードの指定値にアクセス権限がありません。

(Ｓ)

処理を継続します。

(Ｏ)

指定値にアクセス権を付与するか，または別の値を指定して再実行します。

KNAX7812-E

adshcollect:RAS error:指定値(not found or not a directory).

定義ファイルの指定値が存在しないか，またはディレクトリではありません。

(Ｓ)

処理を終了します。

(Ｏ)

定義ファイルを正しく設定して再実行します。

KNAX7813-E

adshcollect:RAS error:指定値(not found or not a directory).

環境ファイルの必須キーワードの指定値がないか，またはディレクトリではありません。

(Ｓ)

処理を終了します。

(Ｏ)

環境ファイルを正しく設定して再実行します。

KNAX7814-E

adshcollect:RAS error:指定値(Permission denied).

環境ファイルのキーワードの指定値にアクセス権限がありません。

(Ｓ)

処理を終了します。

(Ｏ)

指定値にアクセス権を付与するか，または別の値を指定して再実行します。

KNAX7880-E

Failed to "OSのAPI名". (reason=エラー詳細)

エラー詳細に示す原因で，OSのAPIの処理に失敗しました。

(Ｓ)

OSのAPI名が"dladdr"以外の場合，処理を終了します。"dladdr"の場合は処理を続行します。

(Ｏ)

OSのAPI名が"dladdr"以外の場合，システム管理者に連絡します。エラー詳細の原因を取り除いて再実行します。

KNAX7892-I

adshexec received abnormal signal.

ジョブコントローラに対するプログラム異常通知シグナルを受け取りました。

(Ｓ)

処理を続行します。

KNAX7893-I

adshexec received signal "シグナル名".

ジョブコントローラに対するシグナル名に示すシグナルを受け取りました。このメッセージは，JP1/Advanced Shellが実行の制御に必要なシグナルを受信した場合に出力されます。

(Ｓ)

処理を続行します。

KNAX7894-E

adshexec is ended because of terminate request of second times.

ジョブコントローラに対する2回目のSIGTERMのシグナルを受け取りました。

(Ｓ)

ジョブコントローラは，即時に終了します。一時ファイルの削除やファイルの後始末などの後処理を行いません。

(Ｏ)

必要に応じてバッチジョブで作成された資源の後処理をしてください。

KNAX7895-E

adshexec ended abnormally.

ジョブコントローラがエラー終了しました。

(Ｓ)

ジョブコントローラは，即時に終了します。一時ファイルの削除やファイルの後始末などの後処理を行いません。

(Ｏ)

必要に応じてバッチジョブで作成された資源の後処理をしてください。

KNAX7896-I

adshexec received terminate request.

ジョブコントローラに対する終了要求を受け取りました。

(Ｓ)

後処理をして，終了します。デバッグ実行で停止中の場合，ジョブ定義スクリプトを再実行してから後処理をして，終了します。

KNAX7897-E

Fatal error occurred in 保守情報.

adshexecコマンドの重大なエラーが発生しました。

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡します。

KNAX7900-I

マニュアルは組み込まれていません。

マニュアルのインストールメディアからHTMLファイルと画像ファイルをコピーしてください。

マニュアルのインストールメディアからインストール先ディレクトリへマニュアルをコピーしていません。

(Ｓ)

［閉じる］ボタンを押すまでWebブラウザを開いた状態となります。

(Ｏ)

［閉じる］ボタンを押してWebブラウザを閉じ，マニュアルに記載された手順に従ってマニュアルのインストールメディアからインストール先ディレクトリへマニュアルをコピーしてください。

KNAX7901-I

adshexec waits for all asynchronous processes at the end of the job.

ジョブコントローラは，ジョブ終了時にすべての非同期実行プロセスをwaitします。

このメッセージは，ルートジョブの環境ファイルのSPOOLJOB_CHILDJOBパラメーターにMERGEを指定して起動された子孫ジョブの場合は出力されません。

(Ｓ)

処理を続行します。

KNAX7902-I

adshexec will run in 入力モード.

ジョブコントローラは，入力モードで示すモードで動作します。

入力モード

ジョブコントローラの入力モードとして次のどちらかが出力されます。入力モードについての詳細は，「3.1.2(2)　ジョブの入力モード」を参照してください。

出力内容

意味

tty stdin mode

端末入力モード。標準入力が端末に関連づけられています。

non-tty stdin mode

非端末入力モード。標準入力が端末に関連づけられていません。

(Ｓ)

処理を続行します。

KNAX7999-I

JP1/Advanced Shell ended. rc=終了コード

ルートジョブのジョブコントローラが終了コードで示す終了コードでバッチジョブを終了しました。

(Ｓ)

処理を続行します。

KNAX9000-E

The validity period for a product expired. program=コマンド名

ライセンスの有効期限が過ぎました。

コマンド名

エラーが発生したコマンド名

(Ｓ)

処理を終了します。

(Ｏ)

引き続き使用する場合は，製品版をインストールしてください。

KNAX9001-E

Failed to authenticate the product. (コマンド名, 内部情報)

ライセンスの認証処理に失敗しました。

コマンド名

エラーが発生したコマンド名

内部情報

エラーの内容を示す内部情報

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

KNAX9002-E

An error occurred. detail=コマンド名, adshhlicauth error, rc=終了コード

ライセンスの認証処理で予期しないエラーが発生しました。

コマンド名

エラーが発生したコマンド名

終了コード

エラーの内容を示す内部情報

(Ｓ)

処理を終了します。

(Ｏ)

システム管理者に連絡してください。

11.4　エラーの詳細

メッセージテキストに表示されるエラー詳細の内容について，Windowsの場合，UNIXの場合，JP1/Advanced Shell固有の場合に分けて説明します。

11.4.1　エラーの詳細（Windowsの場合）

JP1/Advanced Shellが出力するメッセージは，Cランタイムの関数およびWin32(R) APIのエラー情報を含む場合があります。

JP1/Advanced Shellの環境で発生しやすい，代表的なCランタイム関数のエラー情報に対する原因と対策（Windowsの場合）を次の表に示します。表にないエラーおよびWin32 APIのエラー情報については，使用しているWindowsのマニュアルを参照してください。

表11‒5　Cランタイム関数のエラー情報に対する原因と対策（Windowsの場合）

ニモニック

エラーの詳細

原因

対策

ENOENT

No such file or directory

ファイルまたはディレクトリが見つかりません。

ファイルの存在を確認してください。

EIO

Input/Output error

入出力エラーが発生しました。

Windowsまたはハードウェアの情報に従ってください。

ENXIO

No such device or address

ファイルに対するアクセス権がありません。

デバイスがあるか，またはデバイスを有効にしているかを確認してください。デバイスを有効にしていない場合は，有効にしてください。それ以外の原因の場合は，使用しているWindowsのマニュアルを参照してください。

E2BIG

Arg list too long

処理プログラムの引数または環境変数用の領域が不足しています。

処理プログラムの引数を確認します。

exportパラメーターなどによる環境変数の設定やファイル管理機能のスクリプト拡張コマンドの使用方法を見直し，不要な環境変数の設定を削除します。

EAGAIN

Resource temporarily unavailable

プロセスの数が多過ぎるか，または一時的なメモリ不足が発生しています。

再実行してもエラーが発生する場合は，不要なプロセスを停止させてください。

ENOMEM

Not enough space

次の原因が考えられます。

スワップ領域または仮想メモリの不足のため，プロセスを新しく生成できません。

プロセスの数が多過ぎるか，または一部のプロセスが大量のメモリを消費しています。

次の対策を実施します。

スワップ領域または仮想メモリが足りない場合は，拡張してください。拡張できない場合は，不要なプロセスを停止させてください。

一部のプロセスが大量のメモリを消費している場合は，該当するプロセスをいったん停止できないかどうかを検討してください。

EACCES

Permission denied

次の原因が考えられます。

アクセス権限が不正です。

JP1/Advanced Shellのコマンドの引数として，ファイルを指定する場所にディレクトリを指定しました。

次の対策を実施します。

ファイルに対するアクセス権限が正しいかどうかを確認してください。

JP1/Advanced Shellのコマンドの引数を見直し，ファイルを指定する場所にディレクトリを指定していないかどうかを確認してください。

CHILDJOB_SHEBANGパラメーターを指定している場合，パラメーターの指定値，および，実行しようとしたファイルの先頭の「#! 実行プログラムパス」を確認してください。

EFAULT

Bad address

アクセスできない領域に書き込みをしようとしました。書き込みをしようとしたディスクが切り離された場合があります。

系切り替えに伴うディスクの切り替え中の場合は，問題ないので無視してください。

誤ってディスクを切り離してしまった場合は，該当するファイルをバックアップから回復するか，または初期化してから使用してください。

上記以外の場合は，システム管理者に連絡してください。

EEXIST

File exists

作成しようとしたファイルはすでにあります。

ファイル名を変更して再実行します。既存のファイルが不要の場合，削除してから再実行してください。

EINVAL

Invalid argument

メモリ管理情報の不正を検知しました。

システム管理者に連絡してください。

ENFILE

Too many open files in system

ファイルのオープン数がシステムの上限を超えました。

システム全体で使用中のファイルの数を確認し，不要なファイルを閉じてください。

EMFILE

Too many open files

該当するプロセスでオープンしているファイル数が多過ぎます。

システム管理者に連絡してください。

EFBIG

File too large

ファイルの大きさがシステム制限値を超えました。

使用するファイルサイズを見直してください。

ENOSPC

No space left on device

ファイルシステムに十分な空き領域がありません。

空き領域を確保してください。

11.4.2　エラーの詳細（UNIXの場合）

JP1/Advanced Shellの環境で発生しやすいエラーの詳細に対する原因と対策を次の表に示します。表にないエラーについては，使用しているUNIXのマニュアルを参照してください。

JP1/Advanced Shellの環境で発生しやすいエラーの内容だけを記載しています。記載されていないエラーの詳細については，メッセージで表示されたエラー番号（errno）に該当するニモニックを使用しているUNIXのerrno定義ファイル（errno.h）を調べてください。

表11‒6　エラーの詳細に対する原因と対策（UNIXの場合）

ニモニック

エラーの詳細

原因

対策

ENOENT

No such file or directory

ファイルまたはディレクトリが見つかりません。

ファイルの存在を確認してください。

EIO

I/O error

入出力エラーが発生しました。

UNIXまたはハードウェアの情報に従ってください。

ENXIO

No such device or address

ファイルに対するアクセス権がありません。

デバイスがあるか，またはデバイスを有効にしているかを確認してください。デバイスを有効にしていない場合は，有効にしてください。それ以外の原因の場合は，使用しているUNIXのマニュアルを参照してください。

E2BIG

Arg list too long

処理プログラムの引数または環境変数用の領域が不足しています。

処理プログラムの引数を確認します。

exportパラメーターなどによる環境変数の設定やファイル管理機能のスクリプト拡張コマンドの使用方法を見直し，不要な環境変数の設定を削除します。

EAGAIN

Resource temporarily unavailable

プロセスの数が多過ぎるか，または一時的なメモリ不足が発生しています。

再実行してもエラーが発生する場合は，不要なプロセスを停止させてください。

ENOMEM

Not enough space

次の原因が考えられます。

スワップ領域または仮想メモリの不足のため，プロセスを新しく生成できません。

プロセスの数が多過ぎるか，または一部のプロセスが大量のメモリを消費しています。

次の対策を実施します。

スワップ領域または仮想メモリが足りない場合は，拡張してください。拡張できない場合は，不要なプロセスを停止させてください。

一部のプロセスが大量のメモリを消費している場合は，該当するプロセスをいったん停止できないかどうかを検討してください。

EACCES

Permission denied

アクセス権限が不正です。

ファイルに対するアクセス権限が正しいかどうかを確認してください。

EFAULT

Bad address

アクセスできない領域に書き込みをしようとしました。書き込みをしようとしたディスクが切り離された場合があります。

系切り替えに伴うディスクの切り替え中の場合は，問題ないので無視してください。

誤ってディスクを切り離してしまった場合は，該当するファイルをバックアップから回復するか，または初期化してから使用してください。

上記以外の場合は，システム管理者に連絡してください。

EEXIST

File exists

作成しようとしたファイルはすでにあります。

ファイル名を変更して再実行します。既存のファイルが不要の場合，削除してから再実行してください。

EINVAL

Invalid argument

メモリ管理情報の不正を検知しました。

システム管理者に連絡してください。

ENFILE

File table overflow

ファイルのオープン数がシステムの上限を超えました。

UNIXのカーネルパラメーターの，システムでオープンできるファイル最大数（maxuproc×nofiles）の指定値を大きくしてください。

EMFILE

Too many open files

該当するプロセスでオープンしているファイル数が多過ぎます。

UNIXのカーネルパラメーターの，プロセスでオープンできるファイル数の最大値（nofiles）を大きくしてください。

EFBIG

File too large

ファイルの大きさがシステム制限値を超えました。

使用するファイルサイズを見直してください。

ENOSPC

No space left on device

ファイルシステムに十分な空き領域がありません。

空き領域を確保してください。

ENAMETOOLONG

File name too long

ファイル名の長さが長過ぎます。

ファイル名の長さを見直してください。

11.4.3　エラーの詳細（JP1/Advanced Shell固有の場合）

JP1/Advanced Shellが固有に出力するエラーの詳細に対する原因と対策を次の表に示します。

表11‒7　エラーの詳細に対する原因と対策（JP1/Advanced Shell固有の場合）

メッセージID

エラーの詳細

原因

対処

KNAX4419-E

Over max line size

1行のサイズが上限を超えています。

行のサイズを見直し，上限以内で記述します。

KNAX4420-E

Can not get application data folder name

共通アプリケーションフォルダが見つかりません。

実行環境に問題がないか確認します。

Can not get common documents folder name

共有ドキュメントフォルダが見つかりません。

実行環境に問題がないか確認します。

KNAX6035-E

illegal file descriptor name

指定されたファイル識別子が1桁の数字でありません。

ファイル識別子の指定を見直します。

bad file descriptor

オープンしていないファイルや，ほかのプロセスによって操作が禁止されているファイルに対するファイル識別子を指定しました。

ファイル識別子をオープンしているかを確認します。オープンしている場合は，ほかのプロセスによるロックなどで操作が禁止されていないかを確認します。

fd not open for writing

書き込みでオープンされていないファイル識別子への書き込みを指定しました。

ファイル識別子の指定を見直します。

fd not open for reading

読み込みでオープンされていないファイル識別子に読み込みを指定しました。

ファイル識別子の指定を見直します。

no coprocess

バックグラウンドプロセスへのファイル識別子を指定しましたが，バックグラウンドプロセスが存在しませんでした。

バックグラウンドプロセスを起動しているか，またはすでに終了していないかを見直します。

KNAX6305-E

Is not a regular file

指定のファイルは通常ファイルではありません。

ファイルの指定を見直します。

KNAX6333-E

Is not a regular file

指定のファイルは通常ファイルではありません。

ファイルの指定を見直します。

KNAX6588-E

Error in signal handler

シグナルハンドラの処理でエラーが発生しました。

実行環境に異常がないか見直します。

11.4.4　ユーザー応答機能で表示されるエラー情報の意味および対処方法

ユーザー応答機能の使用時に，次のメッセージに出力されるエラー情報の意味と，その際の対処を説明します。なお，ユーザー応答機能の情報をadshcollectコマンドで採取する場合は，管理者権限で実行する必要があります。

KNAX7402-E

KNAX7460-E

KNAX7461-E

KNAX7462-E

(1)　KNAX7402-Eメッセージの詳細情報に表示されるエラー情報の意味および対処方法

表11‒8　KNAX7402-Eメッセージの詳細情報に表示されるエラー情報の意味および対処方法

エラー番号

意味

対処

1

未実装のAPIが呼び出されました。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

2

共有メモリの参照に失敗しました。

ユーザー応答機能管理デーモン・サービスが起動していないおそれがあります。

【運用者】

ジョブ環境ファイルの設定が正しいか確認してください。SPOOL_DIRパラメーターはジョブ環境ファイルには指定できません。

また，マシンの管理者権限を持つユーザーに連絡し，次の点を確認してください。

ユーザー応答機能管理デーモン・サービスが起動しているか

環境ファイルの設定が正しいか

【マシンの管理者権限を持つユーザー】

次の点を確認してください。

ユーザー応答機能管理デーモン・サービスが起動しているか

環境ファイルの設定が正しいか

SPOOL_DIRパラメーターはシステム環境ファイルだけに指定し，ジョブ環境ファイルには指定できません。

システム環境ファイルの変更後にユーザー応答機能管理デーモン・サービスを再起動しているか

問題が解決しない場合は，システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

3

空きメモリ領域が不足しています。

システム管理者に連絡してください。

システム管理者はメモリを見積もり直す必要があります。

4

不正な引数が渡されました。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

5

データの不整合を検出しました。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

6

サポートしていない文字エンコーディングが指定されました。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

7

アンダーフローが発生しました。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

8

オーバーフローが発生しました。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

9

APIの呼び出し順序が間違っています。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

10

オブジェクトなどの内部状態に不整合が発生しました。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

11

リソースへのアクセスが拒否されました。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，書き込み権限があることを確認してください。

12

指定されたファイルが存在しません。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，書き込み権限があることを確認してください。

13

ファイルをオープンできません。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，書き込み権限があることを確認してください。

14

ファイルに対するメモリマッピングを作成できません。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，書き込み権限があることを確認してください。

15

ファイルからの読み込み処理でエラーが発生しました。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，読み込み権限があることを確認してください。

16

ファイルへの書き込み処理でエラーが発生しました。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，書き込み権限があることを確認してください。

17

ファイルのシーク処理でエラーが発生しました。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，書き込み権限があることを確認してください。

18

ファイルへのフラッシュ処理でエラーが発生しました。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，書き込み権限があることを確認してください。

19

ファイルのリネーム処理でエラーが発生しました。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，書き込み権限があることを確認してください。

20

ファイルのコピー処理でエラーが発生しました。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，書き込み権限があることを確認してください。

21

ファイルの削除処理でエラーが発生しました。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，書き込み権限があることを確認してください。

22

ディレクトリの作成に失敗しました。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイルに，書き込み権限があることを確認してください。

23

プロセス間のロックに失敗しました。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

24

ユーザープログラムによって無効にされた機能を利用しようとしました。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

25

ユーザープログラムによって禁止されているため，上書きできません。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

400

パラメーターが不正です。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

404

adshchmsgコマンドによって応答要求メッセージが削除されたか，または共有メモリを参照できません。

運用者はマシンの管理者権限を持つユーザーに連絡して，次の点を確認してください。

adshchmsgコマンドの-dオプションで応答要求メッセージを削除したか

ユーザー応答機能管理デーモン・サービスが起動しているか

マシンの管理者権限を持つユーザーは，ユーザー応答機能管理デーモン・サービスが起動していることを確認してください。問題が解決しない場合は，システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

409

同一PIDから応答要求メッセージが出力されました。

マルチスレッドで同時に応答要求メッセージが出力されたことが考えられます。

アプリケーションを見直してください。

503

応答待ちイベントの出力数が上限を超えました。

USERREPLY_WAIT_MAXCOUNTパラメーターの値を見直してください。

(2)　KNAX7460-E，KNAX7461-E，KNAX7462-Eメッセージの詳細情報に表示されるエラー情報の意味および対処方法

表11‒9　KNAX7460-E，KNAX7461-E，KNAX7462-Eメッセージの詳細情報に表示されるエラー情報の意味および対処方法

エラー番号

意味

対処

10

パラメーターが不正です。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

11

関数発行の順序が不正です。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

30

指定属性は登録済みです。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

32

登録できる拡張属性数を超えています。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

33

登録できる拡張属性の合計サイズを超えています。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

40

イベントサービスに接続できません。

自ホストのJP1/Baseのイベントサービスの起動を確認してください。

43

入出力エラーです。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

50

JP1/Baseのライブラリが見つかりません。

JP1/Baseをインストールして，ジョブを再実行してください。

51

メモリが不足しています。

システム管理者に連絡してください。

システム管理者はメモリを見積もり直す必要があります。

52

ファイルオープン数が限界です。

システム管理者に連絡してください。

システム管理者はオープンできるfd数を見積もり直す必要があります。

60

JP1イベントが初期化処理されていません。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

70

システムエラーです。

システム管理者に連絡してください。

システム管理者は，「10.　トラブルシューティング」に従って資料を採取し，トラブルの回避および対処を実施してください。

付録

付録A　カバレージ情報を取得する対象

カバレージ情報にはC0情報およびC1情報があります。カバレージ情報を取得する対象について説明します。

なお，次の項目については，カバレージ情報を取得しません。

条件式

算術演算

変数

付録A.1　カバレージ情報を取得するコマンド

次のコマンドを使用した場合，カバレージ情報を取得するかどうかについて説明します。

シェル標準コマンド

シェル拡張コマンド

スクリプト拡張コマンド

その他のコマンド

(1)　シェル標準コマンド

(a)　特殊組み込みコマンド

表A‒1　カバレージ情報を取得する特殊組み込みコマンド

項目

C0

C1

.（ドット）コマンド

○

×

:（コロン）コマンド

○

×

breakコマンド

○

×

continueコマンド

○

×

evalコマンド

○

×

execコマンド

○

×

exitコマンド

○

×

exportコマンド

○

×

readonlyコマンド

○

×

returnコマンド

○

×

setコマンド

○

×

shiftコマンド

○

×

trapコマンド

○

×

typesetコマンド

○

×

unsetコマンド

○

×

（凡例）

○：カバレージ情報を取得して表示します。

×：カバレージ情報を取得しません。

(b)　正規組み込みコマンド

表A‒2　カバレージ情報を取得する正規組み込みコマンド

項目

C0

C1

aliasコマンド

○

×

builtinコマンド

○

×

cdコマンド

○

×

commandコマンド

○

×

echoコマンド

○

×

falseコマンド

○

×

getoptsコマンド

○

×

killコマンド

○

×

letコマンド

○

×

printコマンド

○

×

pwdコマンド

○

×

readコマンド

○

×

testコマンド

○

×

timesコマンド

○

×

trueコマンド

○

×

ulimitコマンド

○

×

umaskコマンド

○

×

unaliasコマンド

○

×

waitコマンド

○

×

whenceコマンド

○

×

（凡例）

○：カバレージ情報を取得して表示します。

×：カバレージ情報を取得しません。

(2)　シェル拡張コマンド

表A‒3　カバレージ情報を取得するシェル拡張コマンド

項目

C0

C1

adshechoコマンド

○

×

adshreadコマンド

○

×

adshscripttoolコマンド

○

×

（凡例）

○：カバレージ情報を取得して表示します。

×：カバレージ情報を取得しません。

(3)　スクリプト拡張コマンド

表A‒4　カバレージ情報を取得するスクリプト拡張コマンド

項目

C0

C1

#-adsh_fileコマンド

○

×

#-adsh_file_tempコマンド

○

×

#-adsh_jobコマンド

○

×

#-adsh_job_stopコマンド

○

×

#-adsh_path_varコマンド

○

×

#-adsh_rc_ignoreコマンド

○

×

#-adsh_scriptコマンド

○

×

#-adsh_spoolfileコマンド

○

×

#-adsh_step_startコマンド

○

○※1

#-adsh_step_errorコマンド

○

○※2

#-adsh_step_endコマンド

○

×

（凡例）

○：カバレージ情報を取得して表示します。

×：カバレージ情報を取得しません。

注※1

C1に表示する情報の詳細については，「3.10.4(3)(e)　#-adsh_step_startコマンドの場合」を参照してください。

注※2

C1に表示する情報の詳細については，「3.10.4(3)(f)　#-adsh_step_errorコマンドの場合」を参照してください。

(4)　その他のコマンド

JP1/Advanced Shell以外のコマンド（OSのコマンド，ユーザーが作成したコマンドなど）を使用した場合に，カバレージ情報を取得するかどうかを次の表に示します。

表A‒5　カバレージ情報を取得するその他のコマンド

項目

C0

C1

その他のコマンド

○

×

（凡例）

○：カバレージ情報を取得して表示します。

×：カバレージ情報を取得しません。

付録A.2　カバレージ情報を取得する制御文

制御文を使用した場合に，カバレージ情報を取得するかどうかを次の表に示します。

表A‒6　カバレージ情報を取得する制御文

項目

C0

C1

if

×

○

ifの条件

○

×

then

×

×

elif

×

○

elifの条件

○

×

else

×

○

fi

×

△

for

×

○

変数

×

×

in

×

×

ワードリスト

×

×

do

×

×

done

×

○

while

×

○

whileの条件

○

×

until

×

○

untilの条件

○

×

case

×

×

式

×

×

パターン)

×

○

*)

×

○

;;

×

×

esac

×

△

（凡例）

○：カバレージ情報を取得して表示します。

△：次の場合にカバレージ情報を取得して表示します。

　fi：else節を指定していない場合

　esac：*パターンを指定していない場合。*パターンとは，case文でどのパターンにも一致しなかった場合のパターンです。

×：カバレージ情報を取得しません。

付録A.3　カバレージ情報を取得する関数

関数を呼び出す場合に，カバレージ情報を取得するかどうかを次の表に示します。関数を定義する場合は，カバレージ情報を取得しません。

表A‒7　カバレージ情報を取得する関数の呼び出し

項目

C0

C1

関数名の呼び出し

○

×

functionの実行

×

×

関数名の実行

×

×

( )の部分の実行

×

×

{で始まる処理の実行

×

×

コマンドおよび制御文の実行

○

△

}で終わる処理の実行

×

×

（凡例）

○：カバレージ情報を取得して表示します。

△：実行する制御文にC1情報がある場合は，カバレージ情報を取得して表示します。

×：カバレージ情報を取得しません。

付録A.4　カバレージ情報を取得するメタキャラクタ

メタキャラクタの中では，コマンドセパレータの場合だけカバレージ情報を取得します。カバレージ情報を取得するコマンドセパレータを次の表に示します。

表A‒8　カバレージ情報を取得するコマンドセパレータ

項目

C0

C1

cmd_1;cmd_2

○

×

cmd_1&&cmd_2

○

×

cmd_1||cmd_2

○

×

（凡例）

○：カバレージ情報を取得して表示します。

×：カバレージ情報を取得しません。

なお，メタキャラクタを使用した次の機能では，カバレージ情報を取得しません。

コメント

行継続

変数置換

コマンド置換

ファイル名置換

リダイレクト

ヒアドキュメント

コマンドのグループ化

その他のメタキャラクタ

付録A.5　カバレージ情報を取得するシェル変数の動作

次の表で示すように，シェル変数に値を代入する場合，カバレージ情報を取得します。

表A‒9　カバレージ情報を取得するシェル変数の動作

項目

C0

C1

シェル変数=値

○

×

（凡例）

○：カバレージ情報を取得して表示します。

×：カバレージ情報を取得しません。

付録B　各バージョンの変更内容

各バージョンの変更内容をマニュアルの版ごとに説明します。

付録B.1　3021-3-133-30での変更内容

JP1/Advanced Shell 10-50，およびJP1/Advanced Shell - Developer 10-50に対応したマニュアルの変更内容です。

適用OSとしてWindows 8.1およびWindows Server 2012 R2を追加した。

UNIX互換コマンドでwhoコマンド（スクリプト形式）を使用できるようにした。また，chmodコマンドとsuコマンドのサンプルスクリプトファイルのファイル名を変更した【Windows限定】。

次に示すUNIX互換コマンドを使用できるようにした。

dirname

expand

getopt

stat

また，次に示すUNIX互換コマンドにオプションを追加した。

cut

date

diff

expr

ls

ジョブ実行時にスプールジョブディレクトリが作成されない設定ができるようにした（スプールジョブ作成抑止機能）。これに伴って次の環境設定パラメーターを追加した。

SPOOLJOB_CREATEパラメーター

AIXおよびHP-UXで，文字コードUTF-8を使用できるようにした。

次に示すUNIX互換コマンドに，ロングオプション形式のオプションを使用できるようにした。

cut

date

diff

ls

CHILDJOB_SHEBANGパラメーターのデフォルト定義に合致するジョブ定義スクリプトを子孫ジョブとして実行できるようにした。これに関連して次の機能を追加した。

JOBLOG_SUPPRESS_MSGパラメーターの抑止対象メッセージに，子孫ジョブ関連のメッセージを追加した。

サンプルスクリプトファイルの実行方法を関数形式から子孫ジョブ形式へ変更した。

出力するメッセージの種類を最小限に抑止できる出力モード（最小出力モード）を追加した。これに伴って次の環境設定パラメーターにオペランドを追加した。

OUTPUT_MODE_CHILDパラメーター

OUTPUT_MODE_ROOTパラメーター

また，次のコマンドにオプションを追加した。

adshexecコマンド

adshscripttoolコマンド

配列の添え字の上限数を1,023から65,535へ変更した。

ジョブを実行するadshexecコマンドに，シェルを直接記述できるようにした。

環境変数名に小文字を使用できるようにした。これに伴って次の環境設定パラメーターを追加した【Windows限定】。

VAR_ENV_NAME_LOWERCASEパラメーター

変数置換で部分文字列展開できるようにした。

複数の配列要素を一度に作成する指定方法を追加した。

ジョブが実行中の関数の情報を配列（関数情報配列）へ格納できるようにした。これに伴って次の環境設定パラメーターを追加した。

VAR_SHELL_FUNCINFOパラメーター

変数の値の文字列長および配列の要素数への変数置換の書式で，置換される変数値の長さの単位を指定できるようにした。これに伴って次の環境設定パラメーターを追加した。

VAR_SHELL_GETLENGTHパラメーター

adshscripttoolコマンドの-rオプションにジョブ内容を直接指定した場合に，ジョブ定義スクリプトファイル名として出力される内容を変更した。

メッセージを追加した。

KNAX0235-E，KNAX0474-E，KNAX1880-E，KNAX6058-E，KNAX6072-E，KNAX6097-E，KNAX6385-E，KNAX7128-E

メッセージの説明を変更した。

KNAX0411-E，KNAX0441-E，KNAX0445-E，KNAX0449-E，KNAX1873-E，KNAX5407-E，KNAX6007-E，KNAX6008-E，KNAX6022-E，KNAX6226-E，KNAX6241-E，KNAX6382-I，KNAX6997-E，KNAX7450-I，KNAX7451-I，KNAX7901-I，KNAX7902-I

メッセージテキストを変更した。

KNAX9000-E，KNAX9001-E

メッセージを削除した。

KNAX0020-E，KNAX0304-E，KNAX0338-E，KNAX0705-E，KNAX2210-E，KNAX2212-E，KNAX6230-E，KNAX6384，KNAX6402-E，KNAX6415-E，KNAX6513-W，KNAX6514-W，KNAX6651-I，KNAX6652-E，KNAX6759-E，KNAX7005-E，KNAX7554-E，KNAX7555-E，KNAX7582-E

付録B.2　3021-3-133-20での変更内容

JP1/Advanced Shell 10-10，およびJP1/Advanced Shell - Developer 10-10に対応したマニュアルの変更内容です。

適用OSとしてSolaris 11を追加した。

次に示すUNIX互換コマンドを使用できるようにした。

chmod

su

これに伴って，ジョブ定義スクリプトの作成を支援する次のシェル拡張コマンドを追加した【Windows限定】。

adshscripttool

ファイルの動的管理をサポートした。

これに伴って次のコマンドを追加した。

adshfile

次に示すUNIX互換コマンドを使用できるようにした。

basename

egrep

paste

touch

which

また，egrepコマンドの追加に伴って，grepコマンドに-hオプションを追加した。

2GBを超えるファイルを一部使用できるようにした。

Windows版でファイル名やパス名をUNC形式で指定できるようにした（一部のコマンドおよびファイルを除く）。

環境変数一覧の記載を追加した。

ジョブ定義スクリプトのパス変換に次の機能を追加した。

「''」で囲まれていない個所全体の変換を選択できるようにした【Windows限定】。

相対パスの変換ができるようにした。

これに伴って次の環境設定パラメーターを追加した【Windows限定】。

PATH_CONV_RULE

次のシェル変数を追加し，コマンドの格納フォルダを変数指定できるようにした。

ADSH_DIR_BIN

ADSH_DIR_CMD

スプールジョブディレクトリへの標準出力と標準エラー出力への出力を抑止できるようにした（簡潔出力モード）。

これに伴って次の環境設定パラメーターを追加した。

OUTPUT_MODE_CHILD

OUTPUT_MODE_ROOT

また，adshexecコマンドにオプションを追加した。

子孫ジョブのジョブ実行ログをルートジョブのジョブ実行ログへマージできるようにした。

これに伴って次の環境設定パラメーターを追加した。

SPOOLJOB_CHILDJOB

UNIX版でパイプ「|」で接続したコマンドのうち，最後のコマンドの実行を別プロセスとカレントプロセスのどちらにするか選択できるようにした。

これに伴って次の環境設定パラメーターを追加した。

PIPE_CMD_LAST

シェルオプションxtraceの有効化をadshexecコマンドとJP1/Advanced Shellエディタでも設定できるようにした。

これによって，ジョブ定義スクリプトを修正しなくても実行コマンドおよびその引数を標準エラー出力へ出力できるようにした。

C1実行率が100%にならない場合の対処として，次の方法でデバッグ時にエラーをシミュレートできるようにした。

Windows版のJP1/Advanced Shellエディタにメニュー［エラー注入モード］を追加した。

UNIX版にjoberrmodeコマンドとinfo statusコマンドを追加した。

エスケープ文字としてASCIIコードの16進数表記を使用できるようにした。

また，echoコマンドでエスケープ文字の解釈を指定しなかった場合の動作を環境設定パラメーターで設定できるようにした。

これに伴って次の環境設定パラメーターを追加した。

ESCAPE_SEQ_ECHO_DEFAULT

ESCAPE_SEQ_ECHO_HEX

算術演算子に累乗演算子「**」を追加した。

コマンドの終了コードに対し，正常終了となるしきい値を設定できるようにした。

これに伴って次の環境設定パラメーターを追加した。

CMDRC_THRESHOLD_DEFINE

CMDRC_THRESHOLD_USE_PRESET

unameコマンドで，Administrators権限がなくてもWindows OSと判断できるようにした。これに伴って，-wオプションを追加した【Windows限定】。

メッセージの出力先を変更した。

KNAX6590-E，KNAX7400-E，KNAX7402-E，KNAX7403-E，KNAX7404-E，KNAX7405-E，KNAX7408-E

メッセージを追加した。

KNAX0708-E，KNAX0725-E〜KNAX0728-E，KNAX1871-E〜KNAX1873-E，KNAX1875-E，KNAX1877-E〜KNAX1879-E，KNAX1890-I〜KNAX1893-W，KNAX6056-W，KNAX6068-E，KNAX6384-E，KNAX6572-I，KNAX6587-E，KNAX6750-E〜KNAX6753-E，KNAX6759-E，KNAX7126-I，KNAX7127-E

メッセージの説明を変更した。

KNAX0336-E，KNAX0724-I，KNAX6048-E，KNAX6409-I，KNAX6410-I，KNAX6584-I，KNAX6830-I，KNAX7901-I

JP1/Advanced Shell 10-01，およびJP1/Advanced Shell - Developer 10-01に対応したマニュアルの変更内容です。

ジョブ続行不可でエラー終了するケースに対し，終了コードを定義できるようにした。

これに伴って次の環境変数を追加した。

ADSH_JOBRC_FATAL

UNIXでスプールジョブのディレクトリまたはファイルのパーミッションを変更できるようにした。

これに伴って次の環境設定パラメーターを追加した。

PERMISSION_SPOOLJOB_DIR

PERMISSION_SPOOLJOB_FILE

ジョブ実行ログの標準エラー出力への出力内容を限定できる機能を追加した。

これに伴って次の環境設定パラメーターを追加した。

JOBEXECLOG_PRINT

メッセージの出力先を変更した。

KNAX0236-E，KNAX0238-E

メッセージを追加した。

KNAX0237-E，KNAX0239-E，KNAX0240-I，KNAX0459-E，KNAX6383-E

付録B.3　3021-3-133-10での変更内容

JP1/Advanced Shell 10-00-01，およびJP1/Advanced Shell - Developer 10-00-01に対応したマニュアルの変更内容です。

適用OSとしてWindows Server 2012およびWindows 8を追加した。

クラスタシステムでの運用に関する記述を追加した。

付録B.4　3021-3-133での変更内容

JP1/Advanced Shell 10-00，およびJP1/Advanced Shell - Developer 10-00に対応したマニュアルの変更内容です。

適用OSの追加に伴い，HP-UX環境，Solaris環境の説明を追加した。

適用OSの変更に伴い，AIX環境の説明を変更した。

Windows，Linux，AIX，HP-UX環境で，Javaで作成したバッチアプリケーションをuCosminexus Application Serverと連携して実行できるようにした。これに伴って次のコマンドを追加した。

adshjavaコマンド

JP1/IMと連携して，事象通知メッセージまたは応答要求メッセージをJP1イベントとして発行し，その応答を受け取る機能を追加した（ユーザー応答機能）。これに伴い，論理ホストに関する記述を追加した。

また，次のダイアログボックスに設定項目を追加した。

［実行定義］ダイアログボックス

［実行環境の設定］ダイアログボックス

また，次のパラメーターおよびコマンドを追加した。

HOSTNAME_JP1IM_MANAGERパラメーター

JOBLOG_SUPPRESS_MSGパラメーター

USERREPLY_DEBUG_DESTINATIONパラメーター

USERREPLY_JP1EVENT_INTERVALパラメーター

USERREPLY_WAIT_MAXCOUNTパラメーター

adshchmsgコマンド

adshlsmsgコマンド

adshmdctlコマンド

adshmsvceコマンド

adshmsvcdコマンド

adshechoコマンド

adshreadコマンド

lhost_startパラメーター

lhost_endパラメーター

phost_startパラメーター

phost_endパラメーター

システム環境ファイルを追加した。これに伴って，既存の「環境ファイル」の表記を「ジョブ環境ファイル」へ変更した。

また，「環境ファイル」はシステム環境ファイルとジョブ環境ファイルの総称とした。

環境ファイルに設定するexportコマンドの表記を「exportパラメーター」へ変更した。

ジョブ定義スクリプトファイルに，子孫ジョブとして実行する拡張子や，パスの読み替えを定義する機能を追加した。これに伴って次のパラメーターを追加した。

CHILDJOB_EXTパラメーター

CHILDJOB_PGMパラメーター

ジョブ定義スクリプト稼働実績情報を出力できるようにした（JP1/Advanced Shell - Developerは対象外）。これに伴って次のパラメーターおよびコマンドを追加した。

EVENT_COLLECTパラメーター

adshevtoutコマンド

また，この機能の追加に伴い，adshhkコマンドのスプールジョブの記述を変更した。

メッセージを追加した。

KNAX0220-E，KNAX0410-E，KNAX0458-E，KNAX0471-E，KNAX0472-E，KNAX0473-W，KNAX3000-I，KNAX3001-I，KNAX3002-E，KNAX3003-E，KNAX3006-I，KNAX3008-W，KNAX3009-E，KNAX3020-E，KNAX3023-E，KNAX3024-E，KNAX3025-E，KNAX3026-E，KNAX3027-E，KNAX3029-E，KNAX3261-I，KNAX3400-I，KNAX3402-E，KNAX3508-I，KNAX3522-E，KNAX3542-W，KNAX3700-I，KNAX3701-I，KNAX3703-E，KNAX3709-E，KNAX3710-I，KNAX3711-I，KNAX3799-I，KNAX3998-E，KNAX3999-E，KNAX4425-E，KNAX5300-I，KNAX5301-E，KNAX5305-E，KNAX5308-E，KNAX5309-E，KNAX5323-E，KNAX5340-E，KNAX5350-E，KNAX5360-E，KNAX5361-E，KNAX5362-E，KNAX5371-E，KNAX5372-E，KNAX5380-I，KNAX5381-I，KNAX5396-I，KNAX5397-I，KNAX5398-E，KNAX5399-E，KNAX5407-E，KNAX5409-E，KNAX5410-E，KNAX5423-E，KNAX5424-E，KNAX5425-E，KNAX5426-E，KNAX5429-E，KNAX5440-E，KNAX5498-E，KNAX5499-E，KNAX6045-E，KNAX6046-E，KNAX6100-E，KNAX6110-I，KNAX6111-I，KNAX6112-I，KNAX6113-I，KNAX6114-I，KNAX6115-I，KNAX6116-I，KNAX6117-I，KNAX6120-I，KNAX6121-I，KNAX6122-I，KNAX6123-I，KNAX6124-I，KNAX6125-I，KNAX6126-I，KNAX6127-I，KNAX6130-E，KNAX6180-E，KNAX6181-E，KNAX6182-E，KNAX6183-E，KNAX6189-I，KNAX6290-E，KNAX6291-E，KNAX6292-E，KNAX6293-E，KNAX6294-E，KNAX6295-E，KNAX6296-E，KNAX6297-E，KNAX6298-E，KNAX6600-E，KNAX6601-E，KNAX6602-E，KNAX6603-E，KNAX6604-E，KNAX6605-E，KNAX6610-E，KNAX6611-E，KNAX6612-E，KNAX6613-I，KNAX6614-I，KNAX6615-E，KNAX6616-E，KNAX6632-E，KNAX6633-E，KNAX6634-E，KNAX6635-E，KNAX6636-E，KNAX6640-I，KNAX6644-E，KNAX6645-W，KNAX6646-E，KNAX6830-I，KNAX6831-I，KNAX6832-I，KNAX7400-E，KNAX7402-E，KNAX7403-E，KNAX7404-E，KNAX7405-E，KNAX7408-E，KNAX7420-E，KNAX7450-I，KNAX7451-I，KNAX7460-E，KNAX7461-E，KNAX7462-E，KNAX7464-E，KNAX7465-W，KNAX7470-I，KNAX7500-I，KNAX7501-I，KNAX7502-E，KNAX7503-E，KNAX7508-I，KNAX7509-I，KNAX7550-I，KNAX7551-E，KNAX7552-E，KNAX7553-E，KNAX7554-E，KNAX7555-E，KNAX7556-E，KNAX7560-I，KNAX7561-E，KNAX7582-E，KNAX7902-I

メッセージを削除した。

KNAX6060-E，KNAX6520-I，KNAX6523-I，KNAX6550-I，KNAX6553-I，KNAX6716-W，KNAX6717-I

メッセージの説明を変更した。

KNAX0020-E，KNAX0098-I，KNAX0406-E，KNAX0433-E，KNAX0700-E，KNAX0701-E，KNAX0702-E，KNAX0706-E，KNAX0720-E，KNAX0721-E，KNAX0722-E，KNAX0723-E，KNAX0800-E，KNAX0801-E，KNAX0802-E，KNAX0803-E，KNAX2202-E，KNAX2204-E，KNAX2205-E，KNAX2206-E，KNAX2207-E，KNAX2208-E，KNAX2209-E，KNAX2213-E，KNAX6003-E，KNAX6007-E，KNAX6008-E，KNAX6009-E，KNAX6035-E，KNAX6044-E，KNAX6054-E，KNAX6062-E，KNAX6209-W，KNAX6232-E，KNAX6323-E，KNAX6578-I，KNAX6803-I，KNAX6804-I，KNAX6810-E，KNAX6811-E，KNAX6812-E，KNAX6814-E，KNAX6815-E，KNAX7099-E，KNAX7101-E，KNAX7104-E，KNAX7113-E，KNAX7114-E，KNAX7115-E，KNAX7121-E，KNAX7122-E，KNAX7123-E，KNAX7802-E，KNAX7901-I，KNAX7999-I

マニュアルの章を記載内容で分類し，編タイトルを付加した。

追加した編タイトルと，その編に含まれる章は次のとおり。

編タイトル

編に含まれる章

第1編　概要編

1章

第2編　構築編

2章

第3編　運用編

3章〜6章

第4編　リファレンス編

7章〜9章

第5編　トラブルシューティング編

10章〜11章

また，マニュアルの章タイトルを次のように変更した。

旧版（3020-3-S35-30）の章タイトル

新版（3021-3-133）の章タイトル

4.　エディタの操作

4.　ジョブ定義スクリプトの作成（エディタを使用する場合）【Windows限定】

5.　ジョブ定義スクリプトの文法

5.　ジョブ定義スクリプトの作成（シェルで記述する場合）

7.　環境ファイルで設定するパラメーターとコマンド

7.　環境ファイルで設定するパラメーター

付録B.5　3020-3-S35-30での変更内容

JP1/Advanced Shell 09-51-01，およびJP1/Advanced Shell - Developer 09-51-01に対応したマニュアルの変更内容です。

WindowsおよびLinuxで，UNIX環境のファイルパス「/dev/null」をWindows環境の「nul」へ変換する機能の追加に伴い，次に示す説明を追加・変更した。

環境設定パラメーターPATH_CONV_ACCESSを追加した（前版で記載していたパラメーターACCESS_PATH_CONVの名称を変更）。

環境設定パラメーターCOMMAND_CONV_ARGを追加した（前版で記載していたパラメーターCOMMAND_ARG_CONVの名称を変更）。

Windows環境およびLinux環境で環境設定パラメーターCHILDJOB_SHEBANGを使用できるようにした。

WindowsおよびLinuxで，ジョブ定義スクリプトの標準入力と標準出力ができるようにした。これに伴って次の説明を追加・変更した。

子孫ジョブの用語定義および動作に関する記述を修正した。

OUTPUT_STDOUTパラメーターを追加した。

adshexecコマンドに-sオプションを追加し，ルートジョブの標準出力の出力先を指定できるようにした。

adshhkコマンドに終了コードを追加した。

次に示す機能は提供しないため，記述を削除した。

CHILDJOB_EXTパラメーター

EXEC_FORMAT_EXTパラメーター

メッセージを追加した。

KNAX0308-E，KNAX6571-I，KNAX6578-I，KNAX6594-E，KNAX6805-I，KNAX6806-I，KNAX7901-I

メッセージの説明を変更した。

KNAX0098-I，KNAX4419-E，KNAX4427-W，KNAX6053-E，KNAX6054-E，KNAX6059-E，KNAX6380-I，KNAX6803-I，KNAX6804-I，KNAX6814-E，KNAX6815-E，KNAX7999-I

付録B.6　3020-3-S35-20での変更内容

JP1/Advanced Shell 09-51，およびJP1/Advanced Shell - Developer 09-51に対応したマニュアルの変更内容です。

業務への応用例の説明を追加した。

ジョブ定義スクリプトをWindowsとUNIXで使用できるようにするための次の機能の説明を追加，変更した。

ファイルの入出力時にファイルパスを変換する

コマンド実行時に引数を変換する

また，上記の機能の追加に伴って次の環境設定パラメーターを追加した。

ACCESS_PATH_CONVパラメーター

COMMAND_ARG_CONVパラメーター

EXEC_FORMAT_EXTパラメーター

子孫ジョブを起動できるようにするための説明を追加した。

また，子孫ジョブのサポートに伴って次の環境設定パラメーターを追加した。

CHILDJOB_EXTパラメーター

CHILDJOB_SHEBANGパラメーター

デバッグ中にエディタからカバレージ情報を表示できるようにした。

次のUNIX互換コマンドを追加した。

awk，cut，diff，expr，find，head，sed，sort，split，tail，uniq，wc

AIX環境でJP1/Advanced Shellが動作するようになり，次の説明を追加，変更した。

実行環境の前提プログラムの説明

LANG環境変数の説明

CD-ROM媒体を使ったインストール

シェル変数ENVの説明

シェルの設定の説明

異なるプラットフォーム間でのカバレージ情報の相互運用

シグナル受信時の動作

signalコマンドの注意事項

trapコマンドのsignalの説明

用語解説の.envファイルの説明

前提条件に次の説明を追加した。

JP1/Advanced Shellを使用するときのエンコーディング

ローカルタイムの設定

ジョブコントローラ起動時にシェル変数ENVを読み込む機能を追加した。また，このサポートに伴って次の環境設定パラメーターを追加した。

KSH_ENV_READパラメーター

ジョブ定義スクリプトの文法で次の説明および使用例を追加，変更した。

変数の値の参照，配列，関数，メタキャラクタ，変数置換，ファイル名置換，算術展開，リダイレクト，パイプ，別プロセスでの実行，パターンマッチング

コマンドの終了コードについての説明を追加した。

ジョブ実行中にエラーが発生した場合の動作についての説明を追加した。

ジョブ定義スクリプトでの注意事項を追加した。

デバッグ時のコマンドで使用例を追加，変更した。

set，cd

次の特殊組み込みコマンドおよびスクリプト予約語コマンドで注意事項，および使用例を追加，変更した。

.（ドット）コマンド，:（コロン）コマンド，breakコマンド，continueコマンド，evalコマンド，execコマンド，exitコマンド，exportコマンド，readonlyコマンド，returnコマンド，setコマンド，shiftコマンド，trapコマンド，typesetコマンド，unsetコマンド，timeコマンド

次の正規組み込みコマンドで注意事項，および使用例を追加，変更した。

aliasコマンド，builtinコマンド，cdコマンド，commandコマンド，echoコマンド，falseコマンド，getoptsコマンド，killコマンド，letコマンド，printコマンド，pwdコマンド，readコマンド，testコマンド，timesコマンド，trueコマンド，ulimitコマンド，umaskコマンド，unaliasコマンド，waitコマンド，whenceコマンド

標準エラー出力に出力するジョブ実行ログの出力形式の説明を追加，変更した。

メッセージを追加した。

KNAX4427-W，KNAX6043-W，KNAX6290-E〜KNAX6297-E，KNAX6513-W，KNAX6514-W，KNAX6586-E，KNAX6591-E，KNAX6592-E，KNAX6716-W，KNAX6717-I，KNAX6803-I，KNAX6804-I，KNAX6814-E，KNAX6815-E，KNAX7897-E

JP1/Advanced Shellが固有に出力するエラーの詳細を追加した。

マニュアルの構成を次のように変更した。

変更前の章番号（3020-3-S35-10）

変更後の章番号（3020-3-S35-20）

4.　ジョブ定義スクリプトの作成

4.　エディタの操作

5.　ジョブ定義スクリプトの文法

付録B.7　3020-3-S35-10での変更内容

JP1/Advanced Shell 09-50-01，およびJP1/Advanced Shell - Developer 09-50-01に対応したマニュアルの変更内容です。

カバレージ情報を採取する機能の説明を追加，変更した。

共通アプリケーションフォルダにログフォルダを追加した。

ハードリンク，シンボリックリンクおよびジャンクションについての注意事項を追加した。

メタキャラクタについての注釈および注意事項を追加した。

次の説明を追加した。

環境ファイルでTRACE_FILE_CNTとTRACE_FILE_SIZEを変更した場合

トレースファイルの面数およびファイルサイズを小さくする場合

SCRIPTの説明に，出力される内容を追加した。

「デバッグの停止」を「スクリプトの停止」に変更した。

予約語の説明を変更した。

入力行の上限および入力文字数の上限について追加した。

関数の名称がほかの関数と重複していた場合について追加した。

入力行の上限についての説明を追加した。

testコマンドではワイルドカードを使用できないことを追記した。

fdの指定についての注釈を変更した。

ジョブステップ終了コードについての説明を追加した。

スクリプト拡張コマンドの終了コードおよび終了コードの説明を変更した。

コマンド実行結果の出力に関する注意事項を変更した。

E-Timeについての注意事項を追加した。

ブレークポイントとウォッチポイントの上限についての注意事項を変更した。

ファイルのパス名の記述を追加した。

コマンドの説明を変更した。

.（ドット）コマンド，:（コロン）コマンド，builtinコマンド，commandコマンド，evalコマンド，execコマンド，exitコマンド，falseコマンド，killコマンド，letコマンド，readコマンド，returnコマンド，testコマンド，trueコマンド，unsetコマンド，waitコマンド

#-adsh_path_varコマンド，#-adsh_scriptコマンド，#-adsh_step_startコマンド，#-adsh_step_errorコマンド，#-adsh_step_endコマンド，timeコマンド

カバレージ情報のメッセージを追加，変更した。

KNAX6200-I，KNAX6201-E，KNAX6202-E〜KNAX6208-E，KNAX6209-W，KNAX6210-E〜KNAX6215-E，KNAX6219-E，KNAX6220-I〜KNAX6222-I，KNAX6223-E〜KNAX6241-E，KNAX6242-I〜KNAX6243-I

メッセージを変更した。

KNAX2201-E，KNAX6508-I，KNAX6523-I，KNAX6553-I，KNAX6584-I

付録C　このマニュアルの参考情報

このマニュアルを読むに当たっての参考情報を示します。

付録C.1　関連マニュアル

関連マニュアルを次に示します。必要に応じてお読みください。

JP1/AJS関連

JP1 Version 10 JP1/Automatic Job Management System 3 設計ガイド（システム構築編）（3021-3-103）

JP1 Version 10 JP1/Automatic Job Management System 3 構築ガイド1（3021-3-105）

JP1 Version 10 JP1/Automatic Job Management System 3 トラブルシューティング（3021-3-108）

JP1 Version 10 JP1/Automatic Job Management System 3 操作ガイド（3021-3-109）

JP1 Version 10 JP1/Automatic Job Management System 3 コマンドリファレンス2（3021-3-111）

JP1 Version 9 JP1/Automatic Job Management System 3 導入ガイド（3020-3-S02）

JP1 Version 9 JP1/Automatic Job Management System 3 設計ガイド（システム構築編）（3020-3-S03）

JP1 Version 9 JP1/Automatic Job Management System 3 設計ガイド（業務設計編）（3020-3-S04）

JP1 Version 9 JP1/Automatic Job Management System 3 構築ガイド1（3020-3-S05）

JP1 Version 9 JP1/Automatic Job Management System 3 構築ガイド2（3020-3-S06）

JP1 Version 9 JP1/Automatic Job Management System 3 運用ガイド（3020-3-S07）

JP1 Version 9 JP1/Automatic Job Management System 3 トラブルシューティング（3020-3-S08）

JP1 Version 9 JP1/Automatic Job Management System 3 操作ガイド（3020-3-S09）

JP1 Version 9 JP1/Automatic Job Management System 3 コマンドリファレンス1（3020-3-S10）

JP1 Version 9 JP1/Automatic Job Management System 3 コマンドリファレンス2（3020-3-S11）

JP1 Version 9 JP1/Automatic Job Management System 3 連携ガイド（3020-3-S12）

JP1 Version 9 JP1/Automatic Job Management System 3 メッセージ1（3020-3-S13）

JP1 Version 9 JP1/Automatic Job Management System 3 メッセージ2（3020-3-S14）

JP1 Version 9 JP1/Automatic Job Management System 3 - Definition Assistant（3020-3-S17）

JP1/NETM/DM関連

JP1 Version 10 JP1/NETM/DM 導入・設計ガイド(Windows(R)用)（3021-3-175）

JP1 Version 10 JP1/NETM/DM 運用ガイド1(Windows(R)用)（3021-3-177）

JP1 Version 9 JP1/NETM/DM 導入・設計ガイド(Windows(R)用)（3020-3-S79）

JP1 Version 9 JP1/NETM/DM 運用ガイド1(Windows(R)用)（3020-3-S81）

JP1 Version 8 JP1/NETM/DM SubManager(UNIX(R)用)（3020-3-L42）

JP1 Version 6 JP1/NETM/DM Manager（3000-3-841）

JP1/Base関連

JP1 Version 10 JP1/Base 運用ガイド（3021-3-001）

JP1 Version 9 JP1/Base 運用ガイド（3020-3-R71）

JP1/IM関連

JP1 Version 10 JP1/Integrated Management - Manager 構築ガイド（3021-3-008）

JP1 Version 9 JP1/Integrated Management - Manager 構築ガイド（3020-3-R77）

JP1 Version 10 JP1/Integrated Management - Manager 運用ガイド（3021-3-009）

JP1 Version 9 JP1/Integrated Management - Manager 運用ガイド（3020-3-R78）

Cosminexus関連

Cosminexus V9 アプリケーションサーバ 機能解説 拡張編（3020-3-Y08）

Cosminexus V9 アプリケーションサーバ リファレンス コマンド編（3020-3-Y15）

付録C.2　このマニュアルでの表記

このマニュアルでは，製品名を次のように表記しています。

このマニュアルでの表記

正式名称

HSFS

Hitachi Striping File System

JP1/Advanced Shell

JP1/Advanced Shell

JP1/Advanced Shell - Developer

JP1/AJS

JP1/AJS3

JP1/Automatic Job Management System 3 - Agent

JP1/Automatic Job Management System 3 - Manager

JP1/Automatic Job Management System 3 - View

JP1/AJS - Agent

JP1/AJS3 - Agent

JP1/Automatic Job Management System 3 - Agent

JP1/AJS - Manager

JP1/AJS3 - Manager

JP1/Automatic Job Management System 3 - Manager

JP1/AJS - View

JP1/AJS3 - View

JP1/Automatic Job Management System 3 - View

JP1/IM

JP1/IM - Manager

JP1/Integrated Management - Manager

JP1/IM - View

JP1/Integrated Management - View

UNIX

Linux

Red Hat Enterprise Linux 5（AMD/Intel 64）

Red Hat Enterprise Linux 5（x86）

Red Hat Enterprise Linux 5 Advanced Platform（AMD/Intel 64）

Red Hat Enterprise Linux 5 Advanced Platform（x86）

Red Hat Enterprise Linux Server 6（64-bit x86_64）

Red Hat Enterprise Linux Server 6（32-bit x86）

AIX

AIX V6.1

AIX V7.1

HP-UX

HP-UX 11i V3（IPF）

Solaris

Solaris 10（SPARC）

Solaris 11（SPARC）

付録C.3　ディレクトリの表記について

WindowsとUNIXで共用する部分では，ディレクトリという用語を使用しています。Windows限定の記載がある場合には，フォルダを使用します。

上記に伴って，ディレクトリの区切りには，「/」を使用します。Windows特有で使用する場合は，フォルダの区切りには，「¥」を使用します。

付録C.4　KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

付録D　用語解説

このマニュアルで使用する用語について解説します。

（記号）

.envファイル

環境変数ENVにファイルパスを設定し，シェル起動時に読み込むファイルです。ファイルを読み込むかどうかは，環境設定パラメーターKSH_ENV_READで指定することができます。

（英字）

exportパラメーター

環境ファイルに設定するパラメーターのうち，コマンド起動時に環境変数を設定するために指定するパラメーターです。

JP1/Advanced Shell

バッチジョブのためのジョブ定義スクリプトを作成・実行するための製品です。JP1/Advanced Shellは，JP1/Advanced ShellとJP1/Advanced Shell - Developerとに分けられます。JP1/Advanced Shellでは，バッチジョブのためのジョブ定義スクリプトを実行でき，狭義にはJP1/Advanced Shellを実行環境と呼びます。同じジョブ定義スクリプトのバッチジョブをWindowsおよびUNIXの両方で実行できます。

JP1/Advanced Shell - Custom Job

運用管理端末でJP1/Advanced Shellの定義を行うためのプログラムのことです。

JP1/Advanced Shell - Developer

バッチジョブのためのジョブ定義スクリプトを開発するための製品です。ジョブ定義スクリプトを開発するため，開発環境と呼ぶこともあります。

JP1/AJS3

JP1/Automatic Job Management System 3の略で，JP1/AJS2の後継製品です。JP1/Advanced Shellは，JP1/AJS3と連携することで，複数のPC間での分散処理が実現できます。

UNIX互換コマンド

JP1/Advanced Shellでは，UNIXでよく使用されるコマンドの一部を使用できます。Windows環境でも使用でき，UNIXからWindowsへの移行性を向上できます。lsコマンドなどがあります。

（ア行）

一時ファイル

ジョブ実行時に一時的に使用するファイルです。ジョブまたはジョブステップによって作成され，ジョブ終了時には自動的に削除されます。#-adsh_file_tempコマンドで定義できます。

ウォッチポイント

ある変数や式の値が変化したときにジョブ定義スクリプトを停止させる，特別なブレークポイントです。ウォッチポイントは，ほかのブレークポイントと同じように管理できます。

エディタ

開発環境に付属するさまざまな機能を利用して，効率良くジョブ定義スクリプトを作成できます。

エラー注入モード

デバッグ実行時にエラーの発生をシミュレーションするモードです。

エラー注入モードの有効/無効を切り替えるには，UNIXではjoberrmodeコマンドを実行します。WindowsではJP1/Advanced Shellエディタでメニュー［エラー注入モード］を選択します。

応答待ちイベント

応答要求メッセージを通知するJP1イベントのことです。

応答要求メッセージ

運用者からの応答を求めるメッセージのことです。

オプション

コンピュータの入力装置から入力する指示に対して，選択的な機能を付け加えます。このことをオプションといいます。

JP1/Advanced Shellでは，1個のハイフン（-）に続く1文字のコマンド引数をショートオプション，連続する2個のハイフン（--）に続くコマンド引数をロングオプションと呼んでいます。

オプションの右側に指定する引数のことをオプションの値と呼びます。

オペランド

コマンドラインに指定するコマンド引数のうち，オプション名とオプション値のほかに指定する，規定のコマンド引数のことです。また，パラメーターの値もオペランドと呼びます。

（カ行）

開発環境

JP1/Advanced Shell - Developerが提供する，バッチ処理のためのジョブ定義スクリプトを開発するための環境です。

外部コマンド

シェルの組み込みコマンドではない，UNIX互換コマンド，OSが提供するコマンドおよびユーザーによって作成される実行ファイルやプログラムのことを指します。

カスタムジョブ

ある特定の機能を持つジョブをJP1/AJSで実行できるように定義したジョブです。JP1/Advanced ShellでJP1/AJSのカスタムジョブ機能を利用するには，JP1/Advanced Shell用のカスタムジョブコンポーネントが必要です。

カバレージ情報

プログラムのテストがどれだけ網羅されているかを示す指標です。C0（ステートメントカバレージ情報）とC1（ブランチカバレージ情報）とがあります。

C0は，ジョブ定義スクリプトのコマンドをどれだけ実行したかの指標（%）です。

C1は，ジョブ定義スクリプトの分岐をどれだけ実行したかの指標（%）です。

環境情報

JP1/Advanced Shellを起動する前に設定が必要な，環境変数や環境ファイルのパラメーターなどの情報のことです。

環境設定パラメーター

環境ファイルに設定するパラメーターのうち，「#-adsh_conf パラメーター 値」という形式で指定し，JP1/Advanced Shellの実行環境を定義するパラメーターのことです。

環境ファイル

環境情報を格納したファイルのことです。

環境変数

ユーザーが設定できるシステムの各種の設定を格納した変数のことです。

クォーテーション

シングルクォーテーション（'）とダブルクォーテーション（"）があります。

組み込みコマンド

シェル本体に組み込まれたコマンドであり，シェル自身によって実行できます。ジョブ定義スクリプトで使用でき，シェルまたはコマンドプロンプトで実行できるコマンドです。JP1/Advanced Shellでは正規組み込みコマンドと特殊組み込みコマンドがあります。

コアダンプ

トレースプログラムが取得する保守情報の1つで，coreファイルとdumpファイルを指します。何らかのトラブルが発生した場合，メモリ上の情報をファイルに保存しておき，トラブルシューティングに活用します。

コマンド

シェル，コマンドプロンプトまたはジョブ定義スクリプトから実行するJP1/Advanced Shellで使用できるコマンドの総称のことです。

コマンドセパレータ

JP1/Advanced Shellでジョブ定義スクリプトの1行に複数のコマンドを記述できるようにするための機能です。

コマンドのグループ化

JP1/Advanced Shellで複数のコマンドをまとめて実行する機能のことをいいます。

コマンドプロンプト

Windows環境でコマンドの入力を促すものです。

コマンドライン

ユーザーがコマンドを入力するための行です。Windowsでは，コマンドプロンプトにあり，行は>の次から入力します。UNIXでは，シェルにあり，行は%の次から入力します。

コンソール

端末画面のことです。

（サ行）

サブシェル

UNIX環境で，ジョブ定義スクリプトで外部コマンドや特定の構文を実行した際に自動的かつ一時的に生成される，ルートジョブでも子孫ジョブでもない，ジョブコントローラと同一名称の子プロセスです。

算術演算

ジョブ定義スクリプトで演算子を使用して変数に代入されている値を数値として扱って，計算を実施することをいいます。

シェル

コンピュータの入力装置から入力された指示を解釈して，OSに伝えるプログラムのことです。

シェル運用コマンド

実行形式のバイナリファイルやシェルスクリプトとして提供しているコマンドであり，ジョブ定義スクリプトだけで使用できるコマンドと，ジョブ定義スクリプトだけでなくOSのシェルやコマンドプロンプトなどからも使用できるコマンドがあります。シェル運用コマンドには，adshexecコマンド（バッチジョブを実行するコマンド）などがあります。

シェルオプション

シェルでコンピュータの入力装置から入力する指示に対して，選択的な機能を付け加えます。このことをシェルオプションといいます。

シェル拡張コマンド

シェル本体に組み込まれたコマンドであり，シェル自身のプロセスで実行されます。ジョブ定義スクリプトで使用できるコマンドです。

シェル拡張変数

JP1/Advanced Shellが提供する特別な意味を持つシェル変数です。

シェルコマンド

シェルまたはコマンドプロンプトから実行するJP1/Advanced Shellで使用できるコマンドの総称のことです。

シェルスクリプト

テキストファイルにコマンドを並べて記載しておき，シェルからそのコマンドを続けて実行できるようにしたテキストファイルを，シェルスクリプトといいます。JP1/Advanced Shellのシェルスクリプトは，Windows環境とUNIX環境で実行でき，ジョブ定義スクリプトといいます。

シェル標準コマンド

シェル本体に組み込まれたコマンドであり，シェル自身のプロセスで実行されます。ジョブ定義スクリプトで使用できるコマンドです。

シェル変数

ジョブ定義スクリプト内で値を代入する領域のことです。変数の作成変数の値を参照できます。

シグナル

UNIXの場合にプロセス間で非同期イベントの発生を伝える機構です。JP1/Advanced Shellでは，ジョブの強制終了などに使用します。

システム実行ログ

システム管理者がJP1/Advanced Shellによるジョブ実行状況を統合管理するため，ジョブコントローラから出力されるログのことです。複数のジョブコントローラが出力するログを，1つのログにまとめて出力できます。

子孫ジョブ

ルートジョブの子孫プロセスとして実行されるジョブ定義スクリプトのうち，次のどれかのパラメーターの指定，またはパラメーターのデフォルト定義によって実行されたジョブのことです。

CHILDJOB_EXTパラメーター

CHILDJOB_PGMパラメーター

CHILDJOB_SHEBANGパラメーター

子孫ジョブ実行ログ出力ファイル

子孫ジョブが作成してルートジョブのスプールジョブディレクトリ内に出力する，子孫ジョブのジョブ実行ログ出力ファイルのことです。

実行環境

JP1/Advanced Shellが提供する，バッチ業務を実行するための環境です。狭義には，JP1/Advanced Shellのことです。

終了コード

ジョブ定義スクリプトまたはコマンドを実行した場合に返信されるコードのことです。

条件式

ジョブ定義スクリプトで使用する，数値比較，文字列比較，ファイル属性，論理結合の演算子および三項演算子を使って表す計算式のことです。

条件パラメーター

環境ファイルに設定するパラメーターのうち，物理ホストまたは特定の論理ホストだけで有効とする環境設定パラメーターおよびexportパラメーターを設定するために指定するパラメーターです。

条件判定

ジョブ定義スクリプトで，制御文に記述した条件式の結果を基に実行する処理を制御することです。

ショートオプション

コマンドの引数に指定するオプションのうち，先頭がハイフン（-）で始まり，そのあとに文字が1つ続く形式のオプションのことです。

ジョブコントローラ

ジョブ実行時にジョブをコントロールするためのプログラムです。adshexecコマンドがジョブコントローラに該当します。

ジョブ識別子

ジョブ実行時にJP1/Advanced Shellが与える000001から999999の識別番号です。各ジョブには別々の識別子が与えられ，ジョブ識別子によって一意にジョブを特定できます。ジョブ識別子を999999まで使用すると，ラップアラウンドして000001以降の未使用のジョブ識別子を使用します。

ジョブ実行ログ

ジョブやジョブステップの開始・終了メッセージなどの，ジョブが出力したメッセージの集まりです。ジョブ実行ログの内容は，ジョブ終了時にジョブコントローラの標準エラー出力に出力します。

ジョブ情報

ジョブに付随した情報のことです。ジョブ名，ジョブ識別子およびジョブステップ名などがあります。

ジョブスケジューラ

ジョブのスケジュールを行う製品であり，JP1/Advanced Shellでは関連製品としてJP1/AJSと連携できます。

ジョブステップ

ある業務（仕事）を行うための最小単位で，JP1/Advanced Shellではジョブ定義スクリプトで記載されたジョブ内で，ある処理の単位で区切った範囲をいいます。ジョブステップの集まりがジョブになります。#-adsh_step_startコマンド，#-adsh_step_errorコマンド（省略できます），および#-adsh_step_endコマンドを記述して定義できます。

ジョブ定義スクリプトファイル

ジョブ定義スクリプトで作成した，ジョブを定義したプログラムのファイルのことです。

ジョブネット

実行順序を関連づけたジョブの集まりです。ジョブネット内のジョブは，あらかじめ定義した実行順序に従って自動的に実行されます。ジョブネットは，JP1/AJSの機能です。

シンボリックリンク

実際のファイルパスを格納したファイルを使ってリンクすることです。

スクリプト

テキストファイルにコマンドを並べて記載しておき，シェルからそのコマンドを続けて実行できるようにしたテキストファイルを，スクリプトといいます。JP1/Advanced Shellのスクリプトは，Windows環境とUNIX環境で実行でき，ジョブ定義スクリプトともいいます。

スクリプト拡張コマンド

ジョブ定義スクリプトで実行するコマンドです。通常のシェルスクリプトのコマンドに対してバッチジョブの実行を制御するための機能を付け加えたコマンドです。ジョブ実行制御コマンドともいいます。JP1/Advanced Shellでは，#-adshで始まるコマンドがあります。

スクリプト制御文

ジョブ定義スクリプトでコマンドを制御する文のことです。if文，for文，while文，until文およびcase文があります。

スクリプトファイル

作成したスクリプトを保存したファイルです。

スクリプト予約語コマンド

ジョブ定義スクリプトで予約語として使用できるコマンドのことです。timeコマンドがあります。

スプール

JP1/Advanced Shellでジョブの実行結果やジョブ実行ログを格納する場所です。

スプールジョブ

スプールディレクトリに作成されたジョブごとの実行結果のことです。

正規組み込みコマンド

シェル標準コマンドの組み込みコマンドの一種です。コマンドの構文を誤ってもコマンドを実行しているシェルが終了しないコマンドです。

制御文

スクリプト制御文と同じ意味です。

（タ行）

ダイアログボックス

ユーザーに応答を促すウィンドウのことです。

通常ファイル

ジョブ定義スクリプトの入力および出力に使用するファイルです。ジョブ終了後にジョブ結果として残すファイルですが，ジョブの実行中に削除することもできます。#-adsh_fileコマンドまたはadshfileコマンドで定義できます。

定義ファイル

トラブルシューティングのための資料を採取するディレクトリを定義しておくファイルです。

デバッガ

開発環境で作成したジョブ定義スクリプトをテストして不具合を調査するプログラムです。Windows環境では，JP1/Advanced Shellエディタのデバッグ機能を使います。UNIX環境では，adshexecコマンドに-dオプションを指定してデバッガを起動します。

デバッグ

開発環境で作成したジョブ定義スクリプトをテストして不具合を調査することです。デバッガを起動して調査します。

特殊組み込みコマンド

シェル標準コマンドの組み込みコマンドの一種です。コマンドの構文を誤るとコマンドを実行しているシェルが終了するコマンドです。

トラップアクション

trapコマンドの引数「action」に設定する動作のことです。

トレースログ

JP1/Advanced Shellでトラブルが発生した場合に，問題点を解明するために採取する情報のことです。

（ハ行）

パイプ

前のコマンドの標準出力を次のコマンドの標準入力へ連結する機能のことです。

バッチ業務サーバ

JP1/Advanced Shellをインストールしてバッチジョブを実行するサーバのことです。JP1/AJSを使用する場合，JP1/AJS - AgentまたはJP1/AJS - Managerをインストールします。

バッチジョブ

バッチ処理で実行するジョブのことです。

バッチ処理

収集したデータやトランザクションを1日分，1週間分，1か月分などにまとめて一括処理することです。

ヒアドキュメント

ジョブ定義スクリプト内で使用されるリダイレクト機能のことです。標準入力をジョブ定義スクリプト内で生成します。

引数

コマンドラインやジョブ定義スクリプトにコマンドを実行する記述をする場合，コマンド名の後ろに区切り文字で区切って指定する項目の総称を引数といいます。

標準エラー出力（stderr）

プログラムがエラーなどのメッセージを出力するストリームです。

標準出力（stdout）

プログラムがデータを出力するストリームです。

標準入力（stdin）

プログラムへデータを入力するストリームです。

ファイルディスクリプタ

JP1/Advanced Shellでの入出力種別ごとに，番号を付けて区別するようにしたものです。JP1/Advanced Shellでは，標準出力に1，標準エラー出力に2，およびそれ以外に3〜9を割り当てて使用できます。

ファイルの割り当て

JP1/Advanced Shellでは，ファイルの後処理を登録することを含めてファイルの割り当てといいます。

ブレークポイント

ジョブ定義スクリプトの開発時にジョブ定義スクリプトの動作状態を確認するために，ジョブ定義スクリプト中に挿入される強制実行停止コードのことです。ブレークポイントではデバッガが処理を停止するため，開発者は停止直前の変数を確認できます。

プログラム出力データファイル

ユーザープログラムの出力結果をシステム実行ログと同様に一元管理するために，JP1/Advanced Shellが自動的にファイル名を作成して，ユーザープログラムが実行結果を出力するためのファイルです。

ベース名

ファイル名から「.拡張子」を除いた部分の名称です。バッチジョブを実行するコマンドのプログラム（adshexec.exe）のベース名は，adshexecとなります。

変数

ジョブ定義スクリプト内で値を扱うために使用する領域および配列のことです。変数にはシェル変数および環境変数も含まれます。

（マ行）

メタキャラクタ

ジョブ定義スクリプト内でそれぞれに特別な意味を持つキャラクタ（文字列）のことです。

（ラ行）

リダイレクト

ジョブ定義スクリプトでは，コマンド実行前に実行結果の出力先の変更やコマンド実行に必要な情報の入力先を変更できます。これをリダイレクトといいます。通常，標準入力はキーボードに，標準出力は画面に割り当てられていますが，リダイレクトではこれらの割り当てを変更します。

流量制御

adshechoコマンドやadshreadコマンドの実行時に発行されるJP1イベントに対して，発行間隔を制御する機能です。

ルートジョブ

JP1/AJSやログインシェルなどから実行するジョブのうち，子孫ジョブ以外のジョブのことです。

ログ

コンピュータが出力する記録情報のことです。ログには記録した時間やメッセージなどが出力されます。

ロングオプション

コマンドの引数に指定するオプションのうち，先頭が連続する2個のハイフン（-）で始まり，そのあとに文字列が続く形式のオプションのことです。

（ワ行）

ワイルドカード

ワイルドカードは*と?で記述します。*は任意の文字列を，?は任意の1文字を表します。

また，[　]で囲まれた文字列の1文字に合致させたり，「-」で範囲を指定したり，「!」でその文字列以外を指定したり，コンマで区切られた文字列のどれかを選択させたりできます。

索引

記号

_〔シェル変数〕[1]

:コマンド（引数を展開する）[1]

!〔シェル変数〕[1]

?〔シェル変数〕[1]

.envファイル[1]

.envファイル〔用語解説〕[1]

.コマンド（シェルスクリプトを実行する）[1]

${#variable}書式で置換される変数値の長さの単位を定義する[1]

$〔シェル変数〕[1]

#〔シェル変数〕[1]

#-adsh_file_tempコマンド（一時ファイルの割り当ておよび後処理をする）[1]

#-adsh_fileコマンド（通常ファイルの割り当ておよび後処理を指定する）[1]

#-adsh_job_stopコマンド（ジョブの打ち切り条件を定義する）[1]

#-adsh_jobコマンド（ジョブ名を宣言する）[1]

#-adsh_path_varコマンド（パス名を扱うシェル変数を定義する）[1]

#-adsh_rc_ignoreコマンド（常に正常終了するコマンドを定義する）[1]

#-adsh_scriptコマンド（実行中のジョブ定義スクリプトから外部のジョブ定義スクリプトファイルを呼び出す）[1]

#-adsh_spoolfileコマンド（プログラム出力データファイルの割り当てをする）[1]

#-adsh_step_endコマンド（ジョブステップを定義する（定義終了））[1]

#-adsh_step_errorコマンド（ジョブステップを定義する（エラー時の処理））[1]

#-adsh_step_startコマンド（ジョブステップを定義する）[1]

+a〔setコマンド〕[1]

+A〔setコマンド〕[1]

+f〔setコマンド〕[1]

+f〔typesetコマンド〕[1]

+i〔typesetコマンド〕[1]

+l〔typesetコマンド〕[1]

+L〔typesetコマンド〕[1]

+o〔setコマンド〕[1]

+p〔aliasコマンド〕[1]

+p〔typesetコマンド〕[1]

+r〔typesetコマンド〕[1]

+R〔typesetコマンド〕[1]

+t〔typesetコマンド〕[1]

+u〔setコマンド〕[1]

+u〔typesetコマンド〕[1]

+v〔setコマンド〕[1]

+x〔aliasコマンド〕[1]

+x〔setコマンド〕[1]

+x〔typesetコマンド〕[1]

+Z〔typesetコマンド〕[1]

+書式〔dateコマンド〕[1]

-1〔lsコマンド〕[1]

-abnormal〔#-adsh_fileコマンド〕[1]

-a サフィックス長〔splitコマンド〕[1]

-A 数値〔egrepコマンド〕[1]

-A 数値〔grepコマンド〕[1]

-a〔adshfileコマンド〕[1]

-a〔diffコマンド〕[1]

-a〔egrepコマンド〕[1]

-a〔grepコマンド〕[1]

-a〔lsコマンド〕[1]

-A〔lsコマンド〕[1]

-a〔sedコマンド〕[1]

-a〔setコマンド〕[1]

-A〔setコマンド〕[1]

-a〔touchコマンド〕[1]

-a〔ulimitコマンド〕[1]

-a〔unaliasコマンド〕[1]

-a〔unameコマンド〕[1]

-a〔whichコマンド〕[1]

-B 数値〔egrepコマンド〕[1]

-B 数値〔grepコマンド〕[1]

-b バイト数〔splitコマンド〕[1]

-b ブロック数〔tailコマンド〕[1]

-b リスト〔cutコマンド〕[1]

-b〔catコマンド〕[1]

-b〔diffコマンド〕[1]

-b〔egrepコマンド〕[1]

-b〔grepコマンド〕[1]

-b〔sortコマンド〕[1]

-C［数値］〔egrepコマンド〕[1]

-C［数値］〔grepコマンド〕[1]

-chk〔#-adsh_file_tempコマンド〕[1]

-chk〔#-adsh_fileコマンド〕[1]

-c JP1/AJSのスケジューラーサービス名〔adshevtoutコマンド〕[1]

-c行数〔diffコマンド〕[1]

-C 行数〔diffコマンド〕[1]

-c コマンドライン〔script_su1〕[1]

-c 書式〔statコマンド〕[1]

-c バイト数〔tailコマンド〕[1]

-c リスト〔cutコマンド〕[1]

-c〔adshexecコマンド〕[1]

-c〔adshfileコマンド〕[1]

-c〔egrepコマンド〕[1]

-c〔grepコマンド〕[1]

-c〔lsコマンド〕[1]

-C〔lsコマンド〕[1]

-c〔sortコマンド〕[1]

-c〔touchコマンド〕[1]

-c〔ulimitコマンド〕[1]

-c〔uniqコマンド〕[1]

-c〔wcコマンド〕[1]

-d デリミタ〔cutコマンド〕[1]

-d 日時情報指定文字列〔dataコマンド〕[1]

-d リスト〔pasteコマンド〕[1]

-d〔adshchmsgコマンド〕[1]

-d〔adshechoコマンド〕[1]

-d〔adshevtoutコマンド〕[1]

-d〔adshexecコマンド〕[1]

-d〔adshreadコマンド〕[1]

-d〔findコマンド〕[1]

-d〔lsコマンド〕[1]

-d〔rmコマンド〕[1]

-d〔ulimitコマンド〕[1]

-d〔uniqコマンド〕[1]

-exec〔adshscripttoolコマンド〕[1]

-e コマンド〔sedコマンド〕[1]

-e ジョブの実行開始日時の上限〔adshevtoutコマンド〕[1]

-e パターン〔egrepコマンド〕[1]

-e パターン〔grepコマンド〕[1]

-e〔adshcollectコマンド〕[1]

-e〔echoコマンド〕[1]

-E〔echoコマンド〕[1]

-E〔egrepコマンド〕[1]

-E〔grepコマンド〕[1]

-E〔sedコマンド〕[1]

-fentry〔adshscripttoolコマンド〕[1]

-fmode〔adshscripttoolコマンド〕[1]

-format=表示形式〔lsコマンド〕[1]

-fowner〔adshscripttoolコマンド〕[1]

-f スクリプトファイルのパス名〔awkコマンド〕[1]

-f スクリプトファイルパス名〔sedコマンド〕[1]

-F 入力フィールドセパレータ〔awkコマンド〕[1]

-f パターンファイルパス名〔egrepコマンド〕[1]

-f パターンファイルパス名〔grepコマンド〕[1]

-f リスト〔cutコマンド〕[1]

-f〔adshcollectコマンド〕[1]

-f〔adshexecコマンド〕[1]

-f〔cpコマンド〕[1]

-f〔lsコマンド〕[1]

-F〔lsコマンド〕[1]

-f〔mvコマンド〕[1]

-f〔rmコマンド〕[1]

-f〔script_chmod1〕[1]

-f〔script_chmod2〕[1]

-f〔script_chmod3〕[1]

-f〔setコマンド〕[1]

-f〔sortコマンド〕[1]

-f〔touchコマンド〕[1]

-f〔typesetコマンド〕[1]

-f〔ulimitコマンド〕[1]

-f〔unsetコマンド〕[1]

-g JP1/AJSのジョブ名〔adshevtoutコマンド〕[1]

-grp スケジュールグループ名〔adshjavaコマンド〕[1]

-G〔grepコマンド〕[1]

-g〔lsコマンド〕[1]

-h 論理ホスト名〔adshchmsgコマンド〕[1]

-h 論理ホスト名〔adshcollectコマンド〕[1]

-h 論理ホスト名〔adshevtoutコマンド〕[1]

-h 論理ホスト名〔adshexecコマンド〕[1]

-h 論理ホスト名〔adshlsmsgコマンド〕[1]

-h 論理ホスト名〔adshmdctlコマンド〕[1]

-H〔cpコマンド〕[1]

-h〔egrepコマンド〕[1]

-h〔findコマンド〕[1]

-H〔findコマンド〕[1]

-h〔grepコマンド〕[1]

-h〔lsコマンド〕[1]

-h〔script_chmod1〕[1]

-h〔script_chmod2〕[1]

-h〔script_chmod3〕[1]

-H〔ulimitコマンド〕[1]

-id 一時ファイル識別名〔#-adsh_file_tempコマンド〕[1]

-i JP1/Advanced Shellのジョブ識別子〔adshevtoutコマンド〕[1]

-install〔adshmsvcdコマンド〕[1]

-install〔adshmsvceコマンド〕[1]

-i〔cpコマンド〕[1]

-i〔diffコマンド〕[1]

-i〔egrepコマンド〕[1]

-I〔egrepコマンド〕[1]

-i〔grepコマンド〕[1]

-I〔grepコマンド〕[1]

-i〔lsコマンド〕[1]

-i〔mvコマンド〕[1]

-i〔rmコマンド〕[1]

-i〔typesetコマンド〕[1]

-java〔adshjavaコマンド〕[1]

-j JP1/Advanced Shellのジョブ名〔adshevtoutコマンド〕[1]

-k JP1/AJSのジョブ実行ID〔adshevtoutコマンド〕[1]

-k 開始位置［,終了位置］〔sortコマンド〕[1]

-k〔lsコマンド〕[1]

-lhostname 論理ホスト名〔adshmsvcdコマンド〕[1]

-lhostname 論理ホスト名〔adshmsvceコマンド〕[1]

-l n1［-［n2］］［,n3［-［n4］］］...〔adshcvshowコマンド〕[1]

-longoptions=ロングオプション名〔getoptコマンド〕[1]

-l 行数〔splitコマンド〕[1]

-L ラベル〔diffコマンド〕[1]

-l ロングオプション名〔getoptコマンド〕[1]

-l〔cmpコマンド〕[1]

-L〔cpコマンド〕[1]

-l〔egrepコマンド〕[1]

-L〔egrepコマンド〕[1]

-L〔findコマンド〕[1]

-l〔grepコマンド〕[1]

-L〔grepコマンド〕[1]

-l〔lsコマンド〕[1]

-L〔lsコマンド〕[1]

-L〔pwdコマンド〕[1]

-L〔statコマンド〕[1]

-l〔typesetコマンド〕[1]

-L〔typesetコマンド〕[1]

-l〔ulimitコマンド〕[1]

-l〔wcコマンド〕[1]

-m パーミッション〔mkdirコマンド〕[1]

-m〔adshevtoutコマンド〕[1]

-m〔adshexecコマンド〕[1]

-m〔adshscripttoolコマンド〕[1]

-m〔lsコマンド〕[1]

-m〔sortコマンド〕[1]

-m〔touchコマンド〕[1]

-m〔ulimitコマンド〕[1]

-m〔unameコマンド〕[1]

-m〔wcコマンド〕[1]

-n JP1/AJSのジョブ番号〔adshevtoutコマンド〕[1]

-normal〔#-adsh_file_tempコマンド〕[1]

-normal〔#-adsh_fileコマンド〕[1]

-n 応答要求メッセージ番号〔adshchmsgコマンド〕[1]

-n 応答要求メッセージ番号〔adshlsmsgコマンド〕[1]

-n 行数〔headコマンド〕[1]

-n 行数〔tailコマンド〕[1]

-n プログラム名〔getoptコマンド〕[1]

-n〔adshfileコマンド〕[1]

-n〔catコマンド〕[1]

-n〔cutコマンド〕[1]

-n〔echoコマンド〕[1]

-n〔egrepコマンド〕[1]

-n〔grepコマンド〕[1]

-n〔lsコマンド〕[1]

-n〔printコマンド〕[1]

-n〔sedコマンド〕[1]

-n〔sortコマンド〕[1]

-n〔ulimitコマンド〕[1]

-n〔unameコマンド〕[1]

-o ascファイルのパス名〔adshexecコマンド〕[1]

-onError〔#-adsh_step_startコマンド，#-adsh_step_errorコマンド，#-adsh_step_endコマンド〕[1]

-o 解析するショートオプション名〔getoptコマンド〕[1]

-o 出力先パス名〔sortコマンド〕[1]

-o 出力するascファイルのパス名〔adshcvmergコマンド〕[1]

-o〔setコマンド〕[1]

-pid〔killコマンド〕[1]

-p ジョブ定義スクリプトファイルのパス名〔adshevtoutコマンド〕[1]

-p〔aliasコマンド〕[1]

-p〔commandコマンド〕[1]

-p〔cpコマンド〕[1]

-P〔cpコマンド〕[1]

-p〔exportコマンド〕[1]

-p〔lsコマンド〕[1]

-p〔mkdirコマンド〕[1]

-p〔printコマンド〕[1]

-P〔pwdコマンド〕[1]

-p〔readonlyコマンド〕[1]

-p〔readコマンド〕[1]

-p〔timeコマンド〕[1]

-p〔typesetコマンド〕[1]

-p〔ulimitコマンド〕[1]

-p〔whenceコマンド〕[1]

-q〔diffコマンド〕[1]

-q〔egrepコマンド〕[1]

-q〔getoptコマンド〕[1]

-Q〔getoptコマンド〕[1]

-q〔grepコマンド〕[1]

-q〔lsコマンド〕[1]

-r JP1/AJSのルートジョブネット名〔adshevtoutコマンド〕[1]

-run〔#-adsh_step_startコマンド，#-adsh_step_errorコマンド，#-adsh_step_endコマンド〕[1]

-r 応答〔adshchmsgコマンド〕[1]

-r 経過秒〔dateコマンド〕[1]

-r コマンドライン〔adshexecコマンド〕[1]

-r パス名〔touchコマンド〕[1]

-r〔adshscripttoolコマンド〕[1]

-r〔cpコマンド〕[1]

-R〔cpコマンド〕[1]

-r〔diffコマンド〕[1]

-r〔egrepコマンド〕[1]

-R〔egrepコマンド〕[1]

-r〔grepコマンド〕[1]

-R〔grepコマンド〕[1]

-r〔lsコマンド〕[1]

-R〔lsコマンド〕[1]

-r〔printコマンド〕[1]

-r〔readコマンド〕[1]

-r〔rmコマンド〕[1]

-R〔rmコマンド〕[1]

-R〔script_chmod1〕[1]

-R〔script_chmod2〕[1]

-R〔script_chmod3〕[1]

-r〔sedコマンド〕[1]

-r〔sortコマンド〕[1]

-r〔tailコマンド〕[1]

-r〔typesetコマンド〕[1]

-R〔typesetコマンド〕[1]

-r〔unameコマンド〕[1]

-signame〔killコマンド〕[1]

-signum〔killコマンド〕[1]

-srv バッチサーバ名〔adshjavaコマンド〕[1]

-stepVar シェル変数名〔#-adsh_step_startコマンド，#-adsh_step_errorコマンド，#-adsh_step_endコマンド〕[1]

-successRC 終了コード定義〔#-adsh_step_startコマンド，#-adsh_step_errorコマンド，#-adsh_step_endコマンド〕[1]

-s ジョブの実行開始日時の下限〔adshevtoutコマンド〕[1]

-s〔adshcvshowコマンド〕[1]

-s〔adshexecコマンド〕[1]

-s〔adshfileコマンド〕[1]

-s〔adshscripttoolコマンド〕[1]

-s〔catコマンド〕[1]

-s〔cmpコマンド〕[1]

-s〔cutコマンド〕[1]

-s〔diffコマンド〕[1]

-s〔egrepコマンド〕[1]

-s〔grepコマンド〕[1]

-s〔killコマンド〕[1]

-s〔lsコマンド〕[1]

-S〔lsコマンド〕[1]

-s〔pasteコマンド〕[1]

-s〔ulimitコマンド〕[1]

-S〔ulimitコマンド〕[1]

-S〔umaskコマンド〕[1]

-s〔unameコマンド〕[1]

-T 一時ファイルディレクトリ〔sortコマンド〕[1]

-t 設定日時[1]

-t タブリスト〔expandコマンド〕[1]

-t フィールド区切り文字〔sortコマンド〕[1]

-t〔adshevtoutコマンド〕[1]

-t〔adshexecコマンド〕[1]

-t〔lsコマンド〕[1]

-T〔lsコマンド〕[1]

-t〔statコマンド〕[1]

-t〔typesetコマンド〕[1]

-t〔ulimitコマンド〕[1]

-u［num］〔printコマンド〕[1]

-u［num］〔readコマンド〕[1]

-u JP1/Advanced Shellの実行ユーザー名〔adshevtoutコマンド〕[1]

-u行数〔diffコマンド〕[1]

-U 行数〔diffコマンド〕[1]

-u〔catコマンド〕[1]

-u〔dateコマンド〕[1]

-U〔egrepコマンド〕[1]

-u〔getoptコマンド〕[1]

-U〔grepコマンド〕[1]

-u〔lsコマンド〕[1]

-u〔sedコマンド〕[1]

-u〔setコマンド〕[1]

-u〔sortコマンド〕[1]

-u〔typesetコマンド〕[1]、[2]

-u〔uniqコマンド〕[1]

-v 変数名=変数値〔awkコマンド〕[1]

-v〔adshexecコマンド〕[1]

-v〔commandコマンド〕[1]

-V〔commandコマンド〕[1]

-v〔egrepコマンド〕[1]

-v〔grepコマンド〕[1]

-v〔setコマンド〕[1]

-v〔unameコマンド〕[1]

-v〔whenceコマンド〕[1]

-W 出力幅〔diffコマンド〕[1]

-w〔commandコマンド〕[1]

-w〔diffコマンド〕[1]

-w〔egrepコマンド〕[1]

-w〔grepコマンド〕[1]

-w〔unameコマンド〕[1]

-w〔wcコマンド〕[1]

-x〔adshexecコマンド〕[1]

-x〔aliasコマンド〕[1]

-x〔egrepコマンド〕[1]

-x〔grepコマンド〕[1]

-x〔lsコマンド〕[1]

-x〔setコマンド〕[1]

-x〔typesetコマンド〕[1]

-y〔diffコマンド〕[1]

-z〔adshevtoutコマンド〕[1]

-z〔sortコマンド〕[1]

-Z〔typesetコマンド〕[1]

-行数〔headコマンド〕[1]

-行数〔tailコマンド〕[1]

-タブリスト〔expandコマンド〕[1]

-〔script_0〕[1]

-〔script_su1〕[1]

-〔シェル変数〕[1]

--all〔lsコマンド〕[1]

--almost-all〔lsコマンド〕[1]

--brief〔diffコマンド〕[1]

--bytes=リスト〔cutコマンド〕[1]

--characters=リスト〔cutコマンド〕[1]

--classify〔lsコマンド〕[1]

--context［=行数］〔diffコマンド〕[1]

--date=日時情報指定文字列〔dateオプション〕[1]

--delimiter=デリミタ〔cutコマンド〕[1]

--dereference〔lsコマンド〕[1]

--dereference〔statコマンド〕[1]

--directory〔lsコマンド〕[1]

--fields=リスト〔cutコマンド〕[1]

--format=across〔lsコマンド〕[1]

--format=commas〔lsコマンド〕[1]

--format=horizontal〔lsコマンド〕[1]

--format=long〔lsコマンド〕[1]

--format=single-column〔lsコマンド〕[1]

--format=verbose〔lsコマンド〕[1]

--format=vertical〔lsコマンド〕[1]

--format=書式〔statコマンド〕[1]

--full-time〔lsコマンド〕[1]

--hide-control-chars〔lsコマンド〕[1]

--human-readable〔lsコマンド〕[1]

--ignore-all-space〔diffコマンド〕[1]

--ignore-case〔diffコマンド〕[1]

--ignore-space-change〔diffコマンド〕[1]

--indicator-style=classify〔lsコマンド〕[1]

--indicator-style=slash〔lsコマンド〕[1]

--indicator-style=ファイル種別様式〔lsコマンド〕[1]

--inode〔lsコマンド〕[1]

--label=ラベル〔diffコマンド〕[1]

--name=プログラム名−−name＝ふろくらむめい[1]

--numeric-uid-gid〔lsコマンド〕[1]

--only-delimited〔cutコマンド〕[1]

--options=ショートオプション名〔getoptコマンド〕[1]

--output-delimiter〔cutコマンド〕[1]

--quiet〔getoptコマンド〕[1]

--quiet-output〔getoptコマンド〕[1]

--recursive〔diffコマンド〕[1]

--recursive〔lsコマンド〕[1]

--report-identical-files〔diffコマンド〕[1]

--reverse〔lsコマンド〕[1]

--side-by-side〔diffコマンド〕[1]

--size〔lsコマンド〕[1]

--sort=none〔lsコマンド〕[1]

--sort=size〔lsコマンド〕[1]

--sort=time〔lsコマンド〕[1]

--sort=ソートキー〔lsコマンド〕[1]

--suppress-common-lines〔diffコマンド〕[1]

--tabs=タブリスト〔expandコマンド〕[1]

--terse〔statコマンド〕[1]

--text〔diffコマンド〕[1]

--time=access〔lsコマンド〕[1]

--time=atime〔lsコマンド〕[1]

--time=ctime〔lsコマンド〕[1]

--time=status〔lsコマンド〕[1]

--time=use〔lsコマンド〕[1]

--time=ファイル日時種別〔lsコマンド〕[1]

--unified［=行数］〔diffコマンド〕[1]

--universal〔dateコマンド〕[1]

--unquoted〔getoptコマンド〕[1]

--utc〔dataコマンド〕[1]

--width=出力幅〔diffコマンド〕[1]

--〔printコマンド〕[1]

--〔setコマンド〕[1]

--〔typesetコマンド〕[1]

数字

16進数表記のASCIIコード文字をエスケープ文字として解釈するかを定義する[1]

1行ずつ実行（関数の中はステップ実行しない）する場合〔JP1/Advanced Shellエディタ〕[1]

1行ずつ実行（関数の中もステップ実行）する場合〔JP1/Advanced Shellエディタ〕[1]

A

action〔trapコマンド〕[1]、[2]

ADSH_AJS_ENVF〔環境変数〕[1]

ADSH_AJS_GCHE〔環境変数〕[1]

ADSH_AJS_LHOST〔環境変数〕[1]

ADSH_AJS_SCRF〔環境変数〕[1]

ADSH_CMD_ARGORDER〔環境変数〕[1]

ADSH_CMDEXPR_LENGTH〔環境変数〕[1]

ADSH_DIR_BIN〔シェル変数〕[1]

ADSH_DIR_CMD〔シェル変数〕[1]

ADSH_ENV〔環境変数〕[1]

ADSH_JOB_NAME〔環境変数〕[1]

ADSH_JOBID〔環境変数〕[1]

ADSH_JOBRC_FATAL〔環境変数〕[1]、[2]

ADSH_RC_STEPLAST〔シェル変数〕[1]

ADSH_RC_STEPMAX〔シェル変数〕[1]

ADSH_RC_STEPMIN〔シェル変数〕[1]

ADSH_STEP_NAME〔環境変数〕[1]

ADSH_STEPRC_ジョブステップ名〔シェル変数〕[1]

adshchmsgコマンド（障害発生時に，応答要求メッセージに対して手動で応答する）[1]

ADSHCMD_RC_ERRORパラメーター（スクリプト拡張コマンド失敗時の終了コードを定義する）[1]

ADSHCMD_RC_SUCCESSパラメーター（スクリプト拡張コマンド成功時の終了コードを定義する）[1]

adshcollectコマンド（資料を採取する）[1]

adshcollectコマンドで採取するファイルと最大サイズ[1]

adshcvmergコマンド（カバレージ情報をマージする）[1]

adshcvshowコマンド（カバレージ情報を表示する）[1]

adshechoコマンド（指定した事象通知メッセージをJP1イベントとして発行する）[1]

adshechoコマンドまたはadshreadコマンドがエラー終了した場合の対処[1]

adshevtoutコマンド（ジョブ定義スクリプトの稼働実績情報を出力する）[1]

adshexecコマンド（バッチジョブを実行する）[1]

adshexecコマンドで設定できるシェルオプション[1]

adshexecコマンドの引数にジョブ定義スクリプトを指定する方法[1]

adshexecコマンド〔デバッガ〕[1]

adshfileコマンド（通常ファイルの割り当ておよび後処理を指定する）[1]

adshhkコマンド（スプールジョブを削除する）[1]

adshjavaコマンド（Javaのバッチアプリケーションを実行する）【Windows，Linux，AIX，HP-UX限定】[1]

adshjavaコマンドを使用してJavaのバッチアプリケーションを実行する【Windows，Linux，AIX，HP-UX限定】[1]

adshlsmsgコマンド（障害発生時に，応答要求メッセージの一覧を表示する）[1]

adshmdctlコマンド（ユーザー応答機能管理デーモンを起動および停止する）【UNIX限定】[1]

adshmsvcdコマンド（開発環境でユーザー応答機能管理サービスを登録する）【Windows限定】[1]

adshmsvceコマンド（実行環境でユーザー応答機能管理サービスを登録する）【Windows限定】[1]

adshreadコマンド（指定した応答要求メッセージを応答待ちイベントとして発行する）[1]

adshscripttoolコマンド（ジョブ定義スクリプトの作成を支援する）【Windows限定】[1]

AJS_BJEX_STOP〔環境変数〕[1]

aliasコマンド（エイリアスを定義する）[1]

am i〔script_0〕[1]

am i〔script_who1〕[1]

args〔.コマンド〕[1]

args〔builtinコマンド〕[1]

args〔commandコマンド〕[1]

args〔echoコマンド〕[1]

args〔evalコマンド〕[1]

args〔execコマンド〕[1]

args〔getoptsコマンド〕[1]

args〔printコマンド〕[1]

arguments〔:コマンド〕[1]

ASC_FILEパラメーター（蓄積ファイル名の生成規則を定義する）[1]

ascファイルのパス名〔adshcvshowコマンド〕[1]

AUTO〔TRAP_ACTION_SIGTERMパラメーター〕【UNIX限定】[1]

awkコマンド（テキストの加工やパターン処理をする）[1]

B

basenameコマンド（パスからファイル名を取得する）[1]

BATCH_CVRパラメーター（カバレージ採取の一括有効化機能を有効にする）[1]

BLOCKSIZE〔環境変数〕[1]

breakコマンド（繰り返し処理を抜ける）[1]

breakコマンド〔デバッガ〕[1]

builtinコマンド（組み込みコマンドを実行する）[1]

BYTE〔VAR_SHELL_GETLENGTHパラメーター〕[1]

C

C0（ステートメントカバレージ情報）[1]

C0情報[1]

C1（ブランチカバレージ情報）[1]

C1情報[1]

case文（複数処理からの選択）[1]

catコマンド（ファイルの内容を標準出力に出力する）[1]

CDPATH〔シェル変数〕[1]

cdコマンド（カレントディレクトリを移動する）[1]

cdコマンド〔デバッガ〕[1]

CD-ROM媒体を使ったインストール【UNIX限定】[1]

CD-ROM媒体を使ったインストール【Windows限定】[1]

CHARACTER〔VAR_SHELL_GETLENGTHパラメーター〕[1]

CHILDJOB_EXTパラメーター（子孫ジョブとして実行するジョブ定義スクリプトファイルの拡張子を定義する）[1]

CHILDJOB_PGMパラメーター（子孫ジョブとして実行する指定を定義する）[1]

CHILDJOB_SHEBANGパラメーター（子孫ジョブとして実行するジョブ定義スクリプトファイルの実行プログラムパスを定義する）[1]

chmodコマンド（ジョブ定義スクリプトに記述されているchmodコマンドの指定を無効にする）[1]

chmodコマンド（パーミッションをシンボルまたは数値で設定する）[1]

chmodコマンド（パーミッションを数値で設定する）[1]

chmodコマンド（ファイルの読み取り専用属性の有効・無効を切り替える）[1]

CMDRC_THRESHOLD_DEFINEパラメーター（コマンドの終了コードのしきい値を定義する）[1]

CMDRC_THRESHOLD_USE_PRESETパラメーター（UNIX互換コマンドの終了コードのしきい値を定義する）[1]

cmpコマンド（バイナリファイルの内容を比較する）[1]

COLUMNS〔環境変数〕[1]

COMMAND_CONV_ARGパラメーター（コマンド実行時にジョブ定義スクリプト中の引数を変換する規則を定義する）[1]

commandコマンド（コマンドを実行する）[1]

command〔builtinコマンド〕[1]

command〔commandコマンド〕[1]

command〔evalコマンド〕[1]

command〔execコマンド〕[1]

command〔timeコマンド〕[1]

conftest ［環境ファイル名］〔adshmdctlコマンド〕[1]

CONSOLE〔USERREPLY_DEBUG_DESTINATIONパラメーター〕[1]

continueコマンド（繰り返し処理を中断して繰り返し処理の先頭に戻る）[1]

continueコマンド〔デバッガ〕[1]

CONT〔TRAP_ACTION_SIGTERMパラメーター〕【UNIX限定】[1]

CORE【UNIX限定】[1]

cpコマンド（ファイルまたはディレクトリをコピーする）[1]

CSV形式の稼働実績情報のレコードと出力項目[1]

CUIでのデバッグ[1]

CUIのデバッガ[1]

CURRENT〔PIPE_CMD_LASTパラメーター〕[1]

cutコマンド（各行の選択範囲を標準出力に表示する）[1]

Cランタイム関数のエラー情報に対する原因と対策[1]

D

dateコマンド（システムの日付と時刻を表示する）[1]

deleteコマンド〔デバッガ〕[1]

DELETE〔SPOOLJOB_CHILDJOBパラメーター〕[1]

diffコマンド（2つのファイルや標準入力を比較する）[1]

dirnameコマンド（パス名からディレクトリパス名部分の文字列を取り出す）[1]

DISABLE〔CMDRC_THRESHOLD_USE_PRESETパラメーター〕[1]

DISABLE〔TRAP_ACTION_SIGTERMパラメーター〕[1]

DISABLE〔VAR_ENV_NAME_LOWERCASEパラメーター〕[1]

DUMP【Windows限定】[1]

E

echoコマンド（引数で指定した内容を標準出力に出力する）[1]

egrepコマンド（ファイル内の文字を検索する）[1]

ENABLE〔CMDRC_THRESHOLD_USE_PRESETパラメーター〕[1]

ENABLE〔VAR_ENV_NAME_LOWERCASEパラメーター〕[1]

ENV〔シェル変数〕[1]

ERR〔UNSUPPORT_TESTパラメーター〕[1]

ESCAPE_SEQ_ECHO_DEFAULTパラメーター（エスケープ文字関連のオプション省略時のechoコマンドの動作を定義する）[1]

ESCAPE_SEQ_ECHO_HEXパラメーター（16進数表記のASCIIコード文字をエスケープ文字として解釈するかを定義する）[1]

evalコマンド（引数を1つにまとめてコマンドとして実行する）[1]

EVENT_COLLECTパラメーター（ジョブ定義スクリプト稼働実績情報取得機能の有効／無効を指定する）[1]

execコマンド（コマンドを実行して終了する）[1]

execコマンド〔デバッガ〕[1]

exitコマンド（シェルを終了する）[1]

expandコマンド（タブ文字をスペースに置き換える）[1]

exportコマンド（シェル変数をエクスポートする）[1]

exportパラメーター[1]

exportパラメーター（環境変数を定義する）[1]

exportパラメーター〔用語解説〕[1]

expr1〔exprコマンド〕[1]

expr2〔exprコマンド〕[1]

exprコマンド（式を評価する）[1]

EXTENDED〔OUTPUT_MODE_CHILDパラメーター〕[1]

EXTENDED〔OUTPUT_MODE_ROOTパラメーター〕[1]

F

falseコマンド（終了コード1を返す）[1]

FALSE〔UNSUPPORT_TESTパラメーター〕[1]

filename〔.コマンド〕[1]

findコマンド（ディレクトリ内のファイルを検索する）[1]

finishコマンド〔デバッガ〕[1]

for文（繰り返し実行）[1]

FPATH〔シェル変数〕[1]

G

GETOPT_COMPATIBLE〔環境変数〕[1]

getoptsコマンド（引数を解析する）[1]

getoptコマンド（コマンドラインのオプションを解析する）[1]

grepコマンド（ファイル内の文字を検索する）[1]

GUIでのデバッグ[1]

GUIデバッガの機能一覧[1]

G〔UNSUPPORT_TESTパラメーター〕[1]

H

headコマンド（ファイルの最初の部分を表示する）[1]

helpコマンド〔デバッガ〕[1]

help〔adshmdctlコマンド〕[1]

Hitachi PP Installerでバージョン情報を確認する【UNIX限定】[1]

HOME〔シェル変数〕[1]

HOSTNAME_JP1IM_MANAGERパラメーター（JP1イベントの送信先であるJP1/IM - Managerが稼働している運用管理サーバを指定する）[1]

hostnameコマンド（ホスト名を表示する）[1]

HTMLマニュアルを組み込む[1]

h〔UNSUPPORT_TESTパラメーター〕[1]

I

IFS〔シェル変数〕[1]

if文（条件分岐）[1]

info breakpointsコマンド〔デバッガ〕[1]

info functionsコマンド〔デバッガ〕[1]

info jobstepsコマンド〔デバッガ〕[1]

info signalsコマンド〔デバッガ〕[1]

info statusコマンド〔デバッガ〕[1]

info variablesコマンド〔デバッガ〕[1]

J

Javaアプリケーションクラス名〔adshjavaコマンド〕[1]

Javaオプション〔adshjavaコマンド〕[1]

Javaのバッチアプリケーションを実行する[1]

joberrmodeコマンド〔デバッガ〕[1]

JOBEXECLOG_PRINTパラメーター（ジョブ終了時に標準エラー出力へ出力するジョブ実行ログの内容を定義する）[1]

JOBLOG_SUPPRESS_MSGパラメーター（ジョブ実行ログへ出力させないメッセージを定義する）[1]

JOBLOG SCRIPT STDERR〔JOBEXECLOG_PRINTパラメーター〕[1]

JP1/Advanced Shellエディタウィンドウ[1]

JP1/Advanced Shellエディタウィンドウの画面の詳細[1]

JP1/Advanced Shellエディタウィンドウのメニュー[1]

JP1/Advanced Shellエディタの状態[1]

JP1/Advanced Shellエディタの操作[1]

JP1/Advanced Shellが設定するシェル変数[1]

JP1/Advanced Shellで使用するファイル[1]

JP1/Advanced Shellで使用できるシェル変数[1]

JP1/Advanced Shellで必要なディレクトリを作成する[1]

JP1/Advanced ShellとJP1/AJSでバッチジョブ業務と実行順序の定義を行う場合のジョブネット[1]

JP1/Advanced Shellの運用の流れ[1]

JP1/Advanced Shellの概要[1]

JP1/Advanced Shellの環境情報を設定する[1]

JP1/Advanced Shellの機能を使ってJavaのバッチアプリケーションを実行するときの処理の流れ【Windows，Linux(R)，AIX，HP-UX限定】[1]

JP1/Advanced Shellの業務アプリケーションに対する位置づけ[1]

JP1/Advanced Shellのシステムの全体構成[1]

JP1/Advanced Shellの目的[1]

JP1/Advanced Shellをアンインストールする【UNIX限定】[1]

JP1/Advanced Shellをアンインストールする【Windows限定】[1]

JP1/Advanced Shellをインストールしたあとのユーザー応答機能の設定【UNIX限定】[1]

JP1/Advanced Shellをインストールしたあとのユーザー応答機能の設定【Windows限定】[1]

JP1/Advanced Shellをインストールする【UNIX限定】[1]

JP1/Advanced Shellをインストールする【Windows限定】[1]

JP1/Advanced Shellを使用するときのエンコーディング[1]

JP1/Advanced Shellを利用するための準備[1]

JP1/Advanced Shell〔用語解説〕[1]

JP1/Advanced Shell - Custom Job[1]

JP1/Advanced Shell - Custom Job（カスタムジョブ定義プログラム）[1]

JP1/Advanced Shell - Custom Jobをアンインストールする[1]

JP1/Advanced Shell - Custom Jobをインストールする[1]

JP1/Advanced Shell - Custom Job〔用語解説〕[1]

JP1/Advanced Shell - Developer[1]

JP1/Advanced Shell - Developerの起動[1]

JP1/Advanced Shell - Developerの起動と終了[1]

JP1/Advanced Shell - Developerの終了[1]

JP1/Advanced Shell - Developerを使用する【Windows限定】[1]

JP1/Advanced Shell - Developer〔用語解説〕[1]

JP1/AJS3〔用語解説〕[1]

JP1/AJSからバッチジョブを実行する場合[1]

JP1/AJS環境を設定する[1]

JP1/AJSの環境情報を設定する（JP1/AJSを使用する場合）[1]

JP1/AJSのジョブに関する運用者の作業[1]

JP1/AJSを使用したバッチジョブ業務の自動化の概要[1]

JP1/AJS - Viewでカスタムジョブを登録する[1]

JP1/Baseの環境情報を設定する[1]

JP1/IM - Managerが稼働する運用管理サーバのホスト名〔HOSTNAME_JP1IM_MANAGERパラメーター〕[1]

JP1/IM - Managerで環境情報を設定する[1]

JP1/IM - Viewとの関係[1]

JP1/NETM/DMを使ったリモートインストール【UNIX限定】[1]

JP1/NETM/DMを使ったリモートインストール【Windows限定】[1]

JP1EVENT〔USERREPLY_DEBUG_DESTINATIONパラメーター〕[1]

JP1イベントの最小発行間隔を指定する[1]

JP1イベントの送信先であるJP1/IM - Managerが稼働している運用管理サーバを指定する[1]

JP1環境を確認する[1]

K

KB（キロバイト）などの単位表記について[1]

killコマンド（シグナルを送信する）[1]

killコマンド〔デバッガ〕[1]

KSH_ENV_READパラメーター（シェル変数ENVを読み込むかどうかを定義する）[1]

L

letコマンド（数値計算を行って評価する）[1]

lhost_endパラメーター（論理ホストだけで有効なパラメーターを定義する）[1]

lhost_startパラメーター（論理ホストだけで有効なパラメーターを定義する）[1]

limit〔ulimitコマンド〕[1]

LINENO〔シェル変数〕[1]

listコマンド〔デバッガ〕[1]

LOG_DIR[1]

LOG_DIRパラメーター（システム実行ログ出力ディレクトリのパス名を定義する）[1]

LOG_FILE_CNTパラメーター（システム実行ログをバックアップする面数を定義する）[1]

LOG_FILE_SIZEパラメーター（システム実行ログを出力するファイルサイズを定義する）[1]

lsコマンド（ファイルまたはディレクトリの内容を表示する）[1]

L〔UNSUPPORT_TESTパラメーター〕[1]

M

mainメソッドに渡す引数〔adshjavaコマンド〕[1]

mask〔umaskコマンド〕[1]

MERGE〔SPOOLJOB_CHILDJOBパラメーター〕[1]

method〔trapコマンド〕[1]

MINIMUM〔OUTPUT_MODE_CHILDパラメーター〕[1]

MINIMUM〔OUTPUT_MODE_ROOTパラメーター〕[1]

mkdirコマンド（ディレクトリを作成する）[1]

mvコマンド（ファイルまたはディレクトリを移動する）[1]

N

name〔aliasコマンド〕[1]

name〔exportコマンド〕[1]

name〔getoptsコマンド〕[1]

name〔readonlyコマンド〕[1]

name〔setコマンド〕[1]

name〔typesetコマンド〕[1]

name〔unaliasコマンド〕[1]

name〔unsetコマンド〕[1]

name〔whenceコマンド〕[1]

new〔cdコマンド〕[1]

nextコマンド〔デバッガ〕[1]

n〔breakコマンド〕[1]

n〔continueコマンド〕[1]

n〔exitコマンド〕[1]

n〔returnコマンド〕[1]

n〔shiftコマンド〕[1]

n〔typesetコマンド〕[1]

O

OLDPWD〔シェル変数〕[1]

old〔cdコマンド〕[1]

OPTARG〔シェル変数〕[1]

OPTIND〔シェル変数〕[1]

optstr〔getoptsコマンド〕[1]

opt〔setコマンド〕[1]

OTHER〔PIPE_CMD_LASTパラメーター〕[1]

OUTPUT_MODE_CHILDパラメーター（子孫ジョブの実行結果の出力情報に関する出力方式を定義する）[1]

OUTPUT_MODE_ROOTパラメーター（ルートジョブの実行結果の出力情報に関する出力方式を定義する）[1]

OUTPUT_STDOUTパラメーター（ルートジョブの出力先を定義する）[1]

O〔UNSUPPORT_TESTパラメーター〕[1]

P

PARENT〔adshexecコマンド〕[1]

PARENT〔OUTPUT_STDOUTパラメーター〕[1]

pasteコマンド（複数のファイルを行単位で連結する）[1]

PATH_CONV_ACCESSパラメーター（ファイル入出力時のパス変換内容を定義する）[1]

PATH_CONV_ENABLEパラメーター（パス変換機能を有効にする）[1]

PATH_CONV_RULEパラメーター（パス変換ルールを定義する）【Windows限定】[1]

PATH_CONVパラメーター（パス変換内容を定義する）[1]

PATH〔シェル変数〕[1]

PCジョブ[1]

PCジョブ／UNIXジョブによるジョブの定義[1]

PERMISSION_SPOOLJOB_DIRパラメーター（スプールジョブディレクトリのパーミッションを定義する）【UNIX限定】[1]

PERMISSION_SPOOLJOB_FILEパラメーター（スプールジョブディレクトリ下のファイルのパーミッションを定義する）【UNIX限定】[1]

phost_endパラメーター（物理ホストだけで有効なパラメーターを定義する）[1]

phost_startパラメーター（物理ホストだけで有効なパラメーターを定義する）[1]

pid〔killコマンド〕[1]

pid〔waitコマンド〕[1]

PIPE_CMD_LASTパラメーター（パイプの最終コマンドの実行プロセスを定義する）【UNIX限定】[1]

POSIXLY_CORRECT〔環境変数〕[1]

PPID〔シェル変数〕[1]

printコマンド（標準出力に出力する）[1]

printコマンド〔デバッガ〕[1]

PS4〔シェル変数〕[1]

pwdコマンド（カレントディレクトリのパスを出力する）[1]

PWD〔シェル変数〕[1]

Q

quitコマンド〔デバッガ〕[1]

R

RANDOM〔シェル変数〕[1]

readonlyコマンド（変数の属性を読み込み専用に変更する，または読み込み専用の変数を表示する）[1]

readコマンド（標準入力から読み込んで変数に格納する）[1]

REPLY〔シェル変数〕[1]

returnコマンド（関数または外部スクリプトから復帰する）[1]

returnコマンド〔デバッガ〕[1]

rmdirコマンド（空のディレクトリを削除する）[1]

rmコマンド（ファイルまたはディレクトリを削除する）[1]

runコマンド〔デバッガ〕[1]

S

script_0[1]、[2]、[3]

script_chmod1[1]

script_chmod2[1]

script_chmod3[1]

script_su1[1]

script_who1[1]

SECONDS〔シェル変数〕[1]

sedコマンド（テキスト中の文字列を置換する）[1]

setコマンド（シェルオプションを設定する，配列を作成する，または変数の値を表示する）[1]

setコマンドで設定できるシェルオプション[1]

setコマンド〔デバッガ〕[1]

SHELL〔シェル変数〕[1]

shiftコマンド（実行時パラメーターをシフトする）[1]

signalコマンド〔デバッガ〕[1]

signal〔trapコマンド〕[1]

signame〔killコマンド〕[1]

signum〔killコマンド〕[1]

SIMPLE〔OUTPUT_MODE_CHILDパラメーター〕[1]

SIMPLE〔OUTPUT_MODE_ROOTパラメーター〕[1]

sleepコマンド（指定された時間だけ停止する）[1]

sortコマンド（テキストファイルをソートする）[1]

splitコマンド（ファイルを分割する）[1]

SPOOL_DIR[1]

SPOOL_DIRパラメーター（スプールルートディレクトリのパス名を定義する）[1]

SPOOLJOB_CHILDJOBパラメーター（子孫ジョブのスプールジョブの扱いを定義する）[1]

SPOOLJOB_CREATEパラメーター（スプールジョブの作成要否を選択する）[1]

SPOOL〔adshexecコマンド〕[1]

SPOOL〔OUTPUT_STDOUTパラメーター〕[1]

start ［reuse］〔adshmdctlコマンド〕[1]

status〔adshmdctlコマンド〕[1]

statコマンド（ファイルまたはディレクトリの状態を標準出力に出力する）[1]

STDERR〔JOBEXECLOG_PRINTパラメーター〕[1]

stepコマンド〔デバッガ〕[1]

stop〔adshmdctlコマンド〕[1]

suコマンド（実行ユーザーの権限でプログラムを実行する）[1]

suコマンド（ジョブ定義スクリプトに記述されているsuコマンドの指定を無効にする）[1]

T

tailコマンド（ファイルの最後の部分を表示する）[1]

TEMP_FILE_DIRパラメーター（一時ファイルディレクトリのパス名を定義する）[1]

TERM〔TRAP_ACTION_SIGTERMパラメーター〕[1]

testコマンド（条件式を判定する）[1]

timesコマンド（シェルが消費したCPU時間を出力する）[1]

timeコマンド（コマンドの実行時間を出力する）[1]

TMPDIR〔環境変数〕[1]

TMPDIR〔シェル変数〕[1]

touchコマンド（ファイルの最終アクセス日時と最終修正日時を変更する）[1]

TRACE_DIR[1]

TRACE_DIRパラメーター（トレースを出力するディレクトリのパス名を定義する）[1]

TRACE_FILE_CNTパラメーター（トレース面数を定義する）[1]

TRACE_FILE_SIZEパラメーター（トレースファイルサイズを定義する）[1]

TRACE_LEVELパラメーター（トレース出力レベルを定義する）[1]

TRAP_ACTION_SIGTERMパラメーター（ジョブコントローラが強制終了要求を受けたときの動作を定義する）[1]

trapコマンド（シグナルや強制終了要求を受けたときの動作を設定する）[1]

trueコマンド（終了コード0を返す）[1]

TRUE〔UNSUPPORT_TESTパラメーター〕[1]

typesetコマンド（変数や関数の属性と値を明示的に宣言する）[1]

U

ulimitコマンド（システムリソースの上限を設定する）[1]

umaskコマンド（新規ファイル作成時のアクセス権を設定する）[1]

unaliasコマンド（エイリアス定義を無効にする）[1]

unameコマンド（OSまたはハードウェアの情報を表示する）[1]

uniqコマンド（ソートされたファイルから重複した行を削除する）[1]

UNIX互換コマンド[1]

UNIX互換コマンド（スクリプト形式）【Windows限定】[1]

UNIX互換コマンドの一覧[1]

UNIX互換コマンドの指定[1]

UNIX互換コマンドの終了コードのしきい値を定義する[1]

UNIX互換コマンドを使用するための定義をする[1]

UNIX互換コマンド〔用語解説〕[1]

UNIXジョブ[1]

unsetコマンド（変数の値と属性の設定を解除する）[1]

UNSUPPORT_TESTパラメーター（サポートしていない条件式の実行時の動作を定義する）【Windows限定】[1]

until文（条件が成立するまでの繰り返し）[1]

USERREPLY_DEBUG_DESTINATIONパラメーター（デバッグ実行時の事象通知メッセージと応答要求メッセージの入出力先を指定する）[1]

USERREPLY_JP1EVENT_INTERVALパラメーター（JP1イベントの最小発行間隔を指定する）[1]

USERREPLY_WAIT_MAXCOUNTパラメーター（物理ホストまたは論理ホストごとに応答要求メッセージの最大同時出力数を指定する）[1]

V

value〔aliasコマンド〕[1]

value〔exportコマンド〕[1]

value〔readonlyコマンド〕[1]

value〔typesetコマンド〕[1]

val〔setコマンド〕[1]

VAR_ENV_NAME_LOWERCASEパラメーター（環境変数名の小文字の使用可否を指定する）【Windows限定】[1]

VAR_SHELL_FUNCINFOパラメーター（関数情報配列の使用有無を選択する）[1]

VAR_SHELL_GETLENGTHパラメーター（${#variable}書式で置換される変数値の長さの単位を定義する）[1]

varname〔readコマンド〕[1]

W

waitコマンド（子プロセスの完了を待つ）[1]

watchコマンド〔デバッガ〕[1]

wcコマンド（ファイルのバイト，行，文字および単語をカウントする）[1]

whenceコマンド（文字列をコマンドとした場合の解釈を表示する）[1]

whereコマンド〔デバッガ〕[1]

whichコマンド（外部コマンドのパスを取得する）[1]

while文（条件が成立している間の繰り返し）[1]

whoコマンド（ジョブ定義スクリプトに記述されているwhoコマンドの指定を無効にする）[1]

whoコマンド（ログインユーザーの情報をログに出力する）[1]

あ

値の更新ダイアログボックス[1]

アンインストール【UNIX限定】[1]

アンインストール【Windows限定】[1]

い

一時カバレージ情報ファイル[1]

一時ファイル[1]、[2]

一時ファイルディレクトリのパス名を定義する[1]

一時ファイルの割り当ておよび後処理をする[1]

一時ファイル〔用語解説〕[1]

位置パラメーター[1]

一部のブレークポイントを解除する〔JP1/Advanced Shellエディタ〕[1]

一般ユーザー[1]

移動先ディレクトリ〔mvコマンド〕[1]

移動先〔mvコマンド〕[1]

移動元〔mvコマンド〕[1]

インストール先ディレクトリ【UNIX限定】[1]

インストール先フォルダ【Windows限定】[1]

インストール前の検討事項[1]

インストール【UNIX限定】[1]

インストール【Windows限定】[1]

う

ウォッチウィンドウ[1]

ウォッチへ変数を追加する〔JP1/Advanced Shellエディタ〕[1]

ウォッチポイントを設定する（watchコマンド）[1]

ウォッチポイント〔用語解説〕[1]

運用管理サーバ[1]

運用管理端末[1]

運用時に使用するコマンド[1]

運用者[1]

え

エスケープ文字[1]

エスケープ文字関連のオプション省略時のechoコマンドの動作を定義する[1]

エディタの動作環境を設定する〔JP1/Advanced Shellエディタ〕[1]

エディタ〔用語解説〕[1]

エラーウィンドウ[1]

エラー注入モード[1]

エラー注入モードの有効/無効を設定する（joberrmodeコマンド）[1]

エラー注入モード〔用語解説〕[1]

エラーの詳細[1]

エラーの詳細（JP1/Advanced Shell固有の場合）[1]

エラーの詳細（UNIXの場合）[1]

エラーの詳細（Windowsの場合）[1]

エラーをシミュレートする〔JP1/Advanced Shellエディタ〕[1]

お

応答待ちイベント〔用語解説〕[1]

応答要求メッセージの最大同時出力数〔USERREPLY_WAIT_MAXCOUNTパラメーター〕[1]

応答要求メッセージ〔adshreadコマンド〕[1]

応答要求メッセージ〔用語解説〕[1]

オプション（色）ダイアログボックス[1]

オプション（書式）ダイアログボックス[1]

オプション〔getoptコマンド〕[1]

オプション〔script_0〕[1]

オプション〔用語解説〕[1]

オペランド〔用語解説〕[1]

か

解析される引数〔getoptコマンド〕[1]

解析するオプション〔getoptコマンド〕[1]

開発環境（JP1/Advanced Shell - Developer）[1]

開発環境でユーザー応答機能管理サービスを登録する[1]

開発環境の前提プログラムと関連プログラム【Windows限定】[1]

開発環境〔用語解説〕[1]

開発者[1]

外部コマンドの指定[1]

外部コマンドの終了コード[1]

外部コマンド〔用語解説〕[1]

外部スクリプトの場合[1]

概要[1]

拡張出力モード[1]

拡張子〔CHILDJOB_EXTパラメーター〕[1]

各バージョンの変更内容[1]

カスタムジョブ[1]

カスタムジョブ定義プログラムの前提プログラムと関連プログラム【Windows限定】[1]

カスタムジョブを登録する[1]

カスタムジョブ〔用語解説〕[1]

稼働実績情報の形式[1]

稼働実績情報の日時とタイムゾーンの関係[1]

カバレージ採取の一括有効化機能[1]、[2]

カバレージ採取の一括有効化機能を有効にする[1]

カバレージ情報の概要[1]

カバレージ情報の管理[1]

カバレージ情報の機能[1]

カバレージ情報の蓄積[1]

カバレージ情報の蓄積方法と形式[1]

カバレージ情報の表示[1]

カバレージ情報のマージ[1]

カバレージ情報ファイル（ascファイル）[1]、[2]

カバレージ情報を取得する[1]

カバレージ情報を取得する関数[1]

カバレージ情報を取得するコマンド[1]

カバレージ情報を取得するシェル変数の動作[1]

カバレージ情報を取得する制御文[1]

カバレージ情報を取得する対象[1]

カバレージ情報を取得するメタキャラクタ[1]

カバレージ情報を表示する（info coverageコマンド）[1]

カバレージ情報を表示する〔JP1/Advanced Shellエディタ〕[1]

カバレージ情報〔用語解説〕[1]

環境ごとに必要なプログラム[1]

環境情報[1]

環境情報を設定する[1]

環境情報〔用語解説〕[1]

環境設定パラメーター[1]

環境設定パラメーターの一覧[1]

環境設定パラメーター〔用語解説〕[1]

環境ファイルで設定するパラメーター[1]

環境ファイルの記述形式[1]

環境ファイル名〔adshcollectコマンド〕[1]

環境ファイルを設定する[1]

環境ファイル〔用語解説〕[1]

環境変数ADSH_JOBRC_FATAL（ジョブ続行不可エラー発生時の終了コードを設定する）[1]

環境変数名の小文字の使用可否を指定する[1]

環境変数を設定する[1]

環境変数を定義する[1]

環境変数〔用語解説〕[1]

簡潔出力モード[1]、[2]

関数[1]

関数情報配列[1]

関数情報配列の使用有無を選択する[1]

関数情報配列〔シェル変数〕[1]

関数情報を表示する（info functionsコマンド）[1]

関数定義スクリプトファイル名配列[1]

関数定義ファイル[1]

関数内ローカル変数[1]

関数のオートロード機能[1]

関数の終わりまで実行する場合〔JP1/Advanced Shellエディタ〕[1]

関数呼び出し行番号配列[1]

関数を実行する（finishコマンド）[1]

関数を終了する（returnコマンド）[1]

関連プログラム[1]

関連マニュアル[1]

き

キー操作〔JP1/Advanced Shellエディタ〕[1]

既存のジョブ定義スクリプトを編集する【Windows限定】〔JP1/Advanced Shellエディタ〕[1]

機能概要[1]

行継続[1]

強制終了時のジョブの動作【Windows限定】[1]

共通アプリケーションフォルダ[1]

行番号〔JP1/Advanced Shellエディタ〕[1]

業務への応用例[1]

共有ドキュメントフォルダ[1]

く

クォーテーション〔用語解説〕[1]

組み込みコマンド〔用語解説〕[1]

組み込み変数名=変数値〔awkコマンド〕[1]

クライアントエリア〔JP1/Advanced Shellエディタ〕[1]

クラスタ運用に関する注意事項[1]

クラスタ運用の環境情報の設定[1]

クラスタ運用の前提条件とサポート範囲[1]

クラスタ運用の場合のコマンドの指定方法[1]

クラスタ構成で運用する[1]

クラスタシステムでの運用の概要[1]

グローバルオプション[1]

け

系切り替え[1]

継続実行をする（continueコマンド）[1]

検索式〔findコマンド〕[1]

検索ダイアログボックス[1]

検索ツールバー〔JP1/Advanced Shellエディタ〕[1]

こ

コアダンプ〔用語解説〕[1]

異なるスプールのジョブ定義スクリプト稼働実績情報を出力する[1]

このマニュアルでの表記[1]

このマニュアルの参考情報[1]

コピー先ディレクトリ名〔cpコマンド〕[1]

コピー先ファイル名〔cpコマンド〕[1]

コピー元ファイル名〔cpコマンド〕[1]

コピー元〔cpコマンド〕[1]

コマンドおよび制御文の一覧[1]

コマンドおよび制御文の記述形式[1]

コマンド実行結果の出力に関する注意事項[1]

コマンド実行時にジョブ定義スクリプト中の引数を変換する規則を定義する[1]

コマンド実行時に引数を変換する[1]

コマンドセパレータ[1]

コマンドセパレータ〔用語解説〕[1]

コマンドの一覧[1]

コマンドのグループ化[1]

コマンドのグループ化〔用語解説〕[1]

コマンドの終了コードのしきい値を定義する[1]

コマンドの別名定義[1]

コマンド引数1〔COMMAND_CONV_ARGパラメーター〕[1]

コマンド引数2〔COMMAND_CONV_ARGパラメーター〕[1]

コマンドプロンプト〔用語解説〕[1]

コマンド名〔#-adsh_rc_ignoreコマンド〕[1]

コマンド名〔CMDRC_THRESHOLD_DEFINEパラメーター〕[1]

コマンド名〔whichコマンド〕[1]

コマンド網羅性[1]

コマンドライン〔用語解説〕[1]

コマンド〔sedコマンド〕[1]

コマンド〔用語解説〕[1]

コメント[1]

コンソール[1]

コンソール〔用語解説〕[1]

さ

最小出力モード[1]、[2]

最小発行間隔〔USERREPLY_JP1EVENT_INTERVALパラメーター〕[1]

サフィックス〔basenameコマンド〕[1]

サブシェル〔用語解説〕[1]

サポートしていない条件式の実行時の動作を定義する【Windows限定】[1]

サポートしていない条件式を実行した場合の動作を定義する【Windows限定】[1]

三項演算子[1]

算術演算[1]

算術演算子[1]

算術演算〔用語解説〕[1]

算術展開[1]

し

シェル運用コマンド[1]

シェル運用コマンドの一覧[1]

シェル運用コマンド〔用語解説〕[1]

シェルオプション[1]

シェルオプション〔用語解説〕[1]

シェル拡張コマンド[1]

シェル拡張コマンドの一覧[1]

シェル拡張コマンドの記述形式[1]

シェル拡張コマンド〔用語解説〕[1]

シェル拡張変数[1]

シェル拡張変数〔用語解説〕[1]

シェルコマンド〔用語解説〕[1]

シェルスクリプト[1]

シェルスクリプト〔用語解説〕[1]

シェル標準コマンド[1]

シェル標準コマンドによるジョブの中断[1]

シェル標準コマンドの一覧[1]

シェル標準コマンドの記述形式[1]

シェル標準コマンド〔用語解説〕[1]

シェル変数[1]

シェル変数ENVに指定されたファイルを読み込む[1]

シェル変数ENVを読み込むかどうかを定義する[1]

シェル変数情報を表示する（info variablesコマンド）[1]

シェル変数名〔#-adsh_path_varコマンド〕[1]

シェル変数〔JP1/Advanced Shellが設定〕[1]

シェル変数〔JP1/Advanced Shellで使用できる〕[1]

シェル変数〔用語解説〕[1]

シェルを設定する[1]

シェル〔用語解説〕[1]

しきい値〔CMDRC_THRESHOLD_DEFINEパラメーター〕[1]

式〔exprコマンド〕[1]

シグナル受信時の動作【UNIX限定】[1]

シグナル情報を表示する（info signalsコマンド）[1]

シグナルを送信する（signalコマンド）[1]

シグナル〔用語解説〕[1]

時刻（メッセージの出力時刻）[1]

事象通知メッセージ〔adshechoコマンド〕[1]

システム環境ファイル[1]

システム管理者[1]

システム構成[1]

システム実行ログ[1]

システム実行ログ出力ディレクトリのパス名を定義する[1]

システム実行ログを出力するファイルサイズを定義する[1]

システム実行ログをバックアップする面数を定義する[1]

システム実行ログ〔用語解説〕[1]

子孫ジョブ[1]

子孫ジョブ実行ログ出力ファイル〔用語解説〕[1]

子孫ジョブとして起動するファイルを定義する[1]

子孫ジョブとして実行する指定を定義する[1]

子孫ジョブとして実行するジョブ定義スクリプトファイルの拡張子を定義する[1]

子孫ジョブとして実行するジョブ定義スクリプトファイルの実行プログラムパスを定義する[1]

子孫ジョブの実行結果の出力情報に関する出力方式を定義する[1]

子孫ジョブの実行方法[1]

子孫ジョブのスプールジョブの扱いを定義する[1]

子孫ジョブ〔用語解説〕[1]

実行環境（JP1/Advanced Shell）[1]

実行環境からJP1/AJSを使用してジョブを起動する[1]

実行環境からコマンドでバッチジョブを起動する[1]

実行環境でユーザー応答機能管理サービスを登録する[1]

実行環境の設定ダイアログボックス[1]

実行環境の前提プログラムと関連プログラム[1]

実行環境〔用語解説〕[1]

実行系サーバ[1]

実行したコマンドとその引数を出力する[1]

実行時パラメーター〔adshexecコマンド〕[1]

実行時パラメーター〔adshscripttoolコマンド〕[1]

実行時パラメーター〔script_su1〕[1]

実行中のジョブ定義スクリプトから外部のジョブ定義スクリプトファイルを呼び出す[1]

実行プログラムの引数〔CHILDJOB_PGMパラメーター〕[1]

実行方法[1]

実行ユーザーの権限でプログラムを実行する[1]

指定した応答要求メッセージを応答待ちイベントとして発行する[1]

指定した事象通知メッセージをJP1イベントとして発行する[1]

終了コード定義〔#-adsh_job_stopコマンド〕[1]

終了コード〔ADSHCMD_RC_ERRORパラメーター〕[1]

終了コード〔ADSHCMD_RC_SUCCESSパラメーター〕[1]

終了コード〔用語解説〕[1]

出力パス名〔uniqコマンド〕[1]

手動でバッチジョブを実行する場合[1]

障害情報[1]

障害発生時に，応答要求メッセージに対して手動で応答する[1]

障害発生時に，応答要求メッセージの一覧を表示する[1]

条件式[1]

条件式〔用語解説〕[1]

条件パラメーター[1]

条件パラメーターの一覧[1]

条件パラメーター〔用語解説〕[1]

条件判定[1]

条件判定と算術演算の優先順位[1]

条件判定〔用語解説〕[1]

ショートオプションの指定形式[1]

ショートオプション〔用語解説〕[1]

ジョブ[1]

ジョブ，ジョブステップおよびコマンドの終了コード[1]

ジョブ，ジョブステップおよびコマンドを定義する[1]

ジョブ環境ファイル[1]

ジョブコントローラ[1]

ジョブコントローラが強制終了要求を受けたときの動作を定義する[1]

ジョブコントローラ〔用語解説〕[1]

ジョブ識別子[1]

ジョブ識別子〔用語解説〕[1]

ジョブ実行中にエラーが発生した場合の動作[1]

ジョブ実行ログ[1]

ジョブ実行ログへ出力させないメッセージを定義する[1]

ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止する[1]

ジョブ実行ログへの特定の情報メッセージの出力を抑止する[1]

ジョブ実行ログ〔用語解説〕[1]

ジョブ終了時に標準エラー出力へ出力するジョブ実行ログの内容を定義する[1]

ジョブ情報の環境変数[1]

ジョブ情報〔用語解説〕[1]

ジョブスケジューラ〔用語解説〕[1]

ジョブステップ[1]

ジョブステップ情報を表示する（info jobstepsコマンド）[1]

ジョブステップの終了コード[1]

ジョブステップ名〔#-adsh_step_startコマンド，#-adsh_step_errorコマンド，#-adsh_step_endコマンド〕[1]

ジョブステップを定義する[1]

ジョブステップ〔用語解説〕[1]

ジョブ続行不可エラー発生時の終了コードを設定する[1]

ジョブ定義スクリプト[1]、[2]

ジョブ定義スクリプト稼働実績情報取得機能の有効／無効を指定する[1]

ジョブ定義スクリプト実行時のシェルと書式チェックの指定[1]

ジョブ定義スクリプトに記述されているchmodコマンドの指定を無効にする[1]

ジョブ定義スクリプトに記述されているsuコマンドの指定を無効にする[1]

ジョブ定義スクリプトに記述されているwhoコマンドの指定を無効にする[1]

ジョブ定義スクリプトの稼働実績情報の採取[1]

ジョブ定義スクリプトの稼働実績情報の出力[1]

ジョブ定義スクリプトの稼働実績情報の出力内容[1]

ジョブ定義スクリプトの稼働実績情報を出力する[1]、[2]

ジョブ定義スクリプトの構成要素に対する停止可否[1]

ジョブ定義スクリプトのコマンドおよび制御文[1]

ジョブ定義スクリプトの作成[1]

ジョブ定義スクリプトの作成を支援する[1]

ジョブ定義スクリプトの実行環境を設定する〔JP1/Advanced Shellエディタ〕[1]

ジョブ定義スクリプトの実行を再開するコマンド[1]

ジョブ定義スクリプトのデバッグ[1]

ジョブ定義スクリプトファイルの記述例[1]

ジョブ定義スクリプトファイルのパス名〔adshexecコマンド〕[1]

ジョブ定義スクリプトファイルのパス名〔adshscripttoolコマンド〕[1]

ジョブ定義スクリプトファイル名〔#-adsh_scriptコマンド〕[1]

ジョブ定義スクリプトファイル〔用語解説〕[1]

ジョブ定義スクリプトを一時停止する[1]

ジョブ定義スクリプトを構成する基本要素[1]

ジョブ定義スクリプトをコマンドとして指定する方法[1]

ジョブ定義スクリプトを子孫ジョブとして実行する[1]

ジョブ定義スクリプトを実行する（runコマンド）[1]

ジョブ定義スクリプトを終了する（killコマンド）[1]

ジョブ定義スクリプトを新規に作成する〔JP1/Advanced Shellエディタ〕[1]

ジョブ定義スクリプトを保存する【Windows限定】〔JP1/Advanced Shellエディタ〕[1]

ジョブで実行する内容をコマンドラインに指定する[1]

ジョブとジョブの関係[1]

ジョブネット[1]

ジョブネットの監視[1]

ジョブネットを定義して実行する[1]

ジョブネット〔用語解説〕[1]

ジョブの打ち切り条件を定義する[1]

ジョブの強制終了の方法[1]

ジョブの構成[1]

ジョブの再実行[1]

ジョブの実行[1]

ジョブの実行結果を出力する[1]

ジョブの実行結果をスプールに出力する[1]

ジョブの終了コード[1]

ジョブの種類ごとのジョブ実行ログの出力内容[1]

ジョブの定義[1]

ジョブの入力モード[1]

ジョブ名を宣言する[1]

ジョブ名〔#-adsh_jobコマンド〕[1]

ジョブを強制終了する[1]

ジョブを続行できないエラーが発生したときの終了コードを定義する[1]

処理の流れ[1]

資料の採取[1]

資料の採取方法[1]

新規インストール[1]

新規インストールの場合[1]

新規にジョブ定義スクリプトを作成する〔JP1/Advanced Shellエディタ〕[1]

シンボリックリンク〔用語解説〕[1]

す

数値比較[1]

スクリプト拡張コマンド[1]

スクリプト拡張コマンド失敗時の終了コードを定義する[1]

スクリプト拡張コマンド成功時の終了コードを定義する[1]

スクリプト拡張コマンドの一覧[1]

スクリプト拡張コマンドの記述形式[1]

スクリプト拡張コマンドの指定[1]

スクリプト拡張コマンドの終了コードとエラー発生時の動作[1]

スクリプト拡張コマンドの終了コードを定義する[1]

スクリプト拡張コマンド〔用語解説〕[1]

スクリプト形式のUNIX互換コマンドを使うための準備【Windows限定】[1]

スクリプト制御文[1]

スクリプト制御文の一覧[1]

スクリプト制御文の記述形式[1]

スクリプト制御文〔用語解説〕[1]

スクリプトファイルのパス名〔script_su1〕[1]

スクリプトファイル〔用語解説〕[1]

スクリプト予約語コマンドの一覧[1]

スクリプト予約語コマンドの記述形式[1]

スクリプト予約語コマンド〔用語解説〕[1]

スクリプト〔awkコマンド〕[1]

スクリプト〔用語解説〕[1]

ステータスバー〔JP1/Advanced Shellエディタ〕[1]

ステータスを表示する（info statusコマンド）[1]

ステートメントカバレージ情報[1]

スプール[1]、[2]

スプール情報[1]

スプールジョブディレクトリ[1]

スプールジョブディレクトリ下のファイルのパーミッションを定義する【UNIX限定】[1]

スプールジョブディレクトリのパーミッションを定義する【UNIX限定】[1]

スプールジョブの作成要否を選択する[1]

スプールジョブを削除する[1]

スプールジョブ〔用語解説〕[1]

スプールの出力情報を定義する[1]

スプールルートディレクトリのパス名を定義する[1]

スプール〔用語解説〕[1]

すべてのブレークポイントを解除する〔JP1/Advanced Shellエディタ〕[1]

せ

正規組み込みコマンド〔用語解説〕[1]

制御文[1]

制御文〔用語解説〕[1]

正常終了するコマンドを定義する[1]

設定日時〔touchコマンド〕[1]

前提条件[1]

前提プログラム[1]

そ

増分・減分演算子[1]

ソースファイルを表示する（listコマンド）[1]

そのほかのメタキャラクタ[1]

た

ダイアログボックス〔用語解説〕[1]

待機系サーバ[1]

対象パス名〔awkコマンド〕[1]

対象リストファイル名〔adshhkコマンド〕[1]

対処の手順〔トラブルシューティング〕[1]

代入演算子[1]

ち

置換[1]

逐次実行をする（nextコマンド）[1]

逐次実行をする（stepコマンド）[1]

蓄積したカバレージ情報の初期化[1]

蓄積ファイル名の生成規則を定義する[1]

蓄積方法の種類[1]

注意事項〔ユーザー応答機能〕[1]

つ

通常ファイル[1]、[2]

通常ファイルの割り当ておよび後処理をする[1]

通常ファイル〔用語解説〕[1]

ツールバー〔JP1/Advanced Shellエディタ〕[1]

常に正常終了するコマンドを定義する[1]

て

定義ファイル名〔adshcollectコマンド〕[1]

定義ファイル〔用語解説〕[1]

ディレクトリ1〔diffコマンド〕[1]

ディレクトリ2〔diffコマンド〕[1]

ディレクトリ区切り文字〔PATH_CONV_ENABLEパラメーター〕[1]

ディレクトリの表記[1]

ディレクトリパス〔cdコマンド〕[1]

ディレクトリ名〔rmdirコマンド〕[1]

ディレクトリを移動する（cdコマンド）[1]

ディレクトリ〔mkdirコマンド〕[1]

デバッガ[1]

デバッガとは[1]

デバッガのコマンド一覧[1]

デバッガを起動する[1]

デバッガを終了する（quitコマンド）[1]

デバッガ〔用語解説〕[1]

デバッグ実行時のエラーウィンドウ，ウォッチウィンドウおよびコンソール〔JP1/Advanced Shellエディタ〕[1]

デバッグ実行時の事象通知メッセージと応答要求メッセージの入出力先を指定する[1]

デバッグ実行時のブレークポイントを設定・解除する〔JP1/Advanced Shellエディタ〕[1]

デバッグ実行〔JP1/Advanced Shellエディタ〕[1]

デバッグツールバー〔JP1/Advanced Shellエディタ〕[1]

デバッグモードのポップアップメニュー〔JP1/Advanced Shellエディタ〕[1]

デバッグモード〔JP1/Advanced Shellエディタ〕[1]

デバッグを実行・中止する〔JP1/Advanced Shellエディタ〕[1]

デバッグをする〔JP1/Advanced Shellエディタ〕[1]

デバッグ〔用語解説〕[1]

と

同一バージョンによる修復インストール[1]

同一バージョンによる修復インストールの場合[1]

特殊組み込みコマンド〔用語解説〕[1]

トラップアクション〔用語解説〕[1]

トラブルシューティング[1]

トラブル発生時に採取が必要な資料[1]

トレース[1]

トレース出力レベルを定義する[1]

トレースファイルサイズを定義する[1]

トレース面数を定義する[1]

トレースモード[1]

トレースレベル〔TRACE_LEVELパラメーター〕[1]

トレースログの出力情報を定義する[1]

トレースログ〔用語解説〕[1]

トレースを出力するディレクトリのパス名を定義する[1]

に

日数〔adshhkコマンド〕[1]

入出力リダイレクト[1]

入力パス名〔sortコマンド〕[1]

入力パス名〔splitコマンド〕[1]

入力パス名〔uniqコマンド〕[1]

入力ファイルパス名〔sedコマンド〕[1]

は

バージョンアップによる上書きインストール[1]

バージョンアップによる上書きインストールの場合[1]

パーミッションをシンボルまたは数値で設定する[1]

パーミッションを数値で設定する[1]

パーミッション〔PERMISSION_SPOOLJOB_DIRパラメーター〕[1]

パーミッション〔PERMISSION_SPOOLJOB_FILEパラメーター〕[1]

パイプ[1]

パイプの最終コマンドの実行プロセスを定義する【UNIX限定】[1]、[2]

パイプライン[1]

パイプ〔用語解説〕[1]

配列[1]

配列の値の参照[1]

配列の作成[1]

パス区切り文字〔PATH_CONV_ENABLEパラメーター〕[1]

パス変換機能を有効にする[1]

パス変換内容を定義する[1]

パス変換ルールを定義する[1]

パス名...〔grepコマンド〕[1]

パス名1〔cmpコマンド〕[1]

パス名1〔diffコマンド〕[1]

パス名1〔PATH_CONV_ACCESSパラメーター〕[1]

パス名1〔PATH_CONVパラメーター〕[1]

パス名2〔cmpコマンド〕[1]

パス名2〔diffコマンド〕[1]

パス名2〔PATH_CONV_ACCESSパラメーター〕[1]

パス名2〔PATH_CONVパラメーター〕[1]

パス名を扱うシェル変数を定義する[1]

パス名を変換する[1]

パス名〔adshscripttoolコマンド〕[1]

パス名〔catコマンド〕[1]

パス名〔CHILDJOB_SHEBANGパラメーター〕[1]

パス名〔cutコマンド〕[1]

パス名〔egrepコマンド〕[1]

パス名〔expandコマンド〕[1]

パス名〔findコマンド〕[1]

パス名〔headコマンド〕[1]

パス名〔LOG_DIRパラメーター〕[1]

パス名〔lsコマンド〕[1]

パス名〔pasteコマンド〕[1]

パス名〔rmコマンド〕[1]

パス名〔script_0〕[1]

パス名〔script_chmod1〕[1]

パス名〔script_chmod2〕[1]

パス名〔script_chmod3〕[1]

パス名〔SPOOL_DIRパラメーター〕[1]

パス名〔statコマンド〕[1]

パス名〔tailコマンド〕[1]

パス名〔TEMP_FILE_DIRパラメーター〕[1]

パス名〔touchコマンド〕[1]

パス名〔TRACE_DIRパラメーター〕[1]

パス名〔wcコマンド〕[1]

パターンマッチング[1]

パターン〔egrepコマンド〕[1]

パターン〔grepコマンド〕[1]

バックトレースを表示する（whereコマンド）[1]

バッチ業務サーバ[1]

バッチ業務サーバ〔用語解説〕[1]

バッチ業務のOS間での資産の継承[1]

バッチ業務の構築のスピードアップ[1]

バッチジョブ起動後のジョブコントローラの処理[1]

バッチジョブ業務と実行順序の定義[1]

バッチジョブ業務と実行順序の定義スケジュールの定義[1]

バッチジョブ業務を開始する契機を登録する[1]

バッチジョブの起動[1]

バッチジョブの実行[1]

バッチジョブの実行結果の一元管理[1]

バッチジョブの実行結果の一元管理による運用性・保守性の向上[1]

バッチジョブの実行時にカバレージ情報を採取するオプションを指定しなくても有効にする[1]

バッチジョブを自動実行するときの処理の流れ（JP1/AJSと連携する場合）[1]

バッチジョブ〔用語解説〕[1]

バッチ処理〔用語解説〕[1]

パラメーターの一覧[1]

ひ

ヒアドキュメント[1]

ヒアドキュメント〔用語解説〕[1]

比較開始位置1〔cmpコマンド〕[1]

比較開始位置2〔cmpコマンド〕[1]

引数〔script_0〕[1]

引数〔用語解説〕[1]

非クラスタ環境で論理ホストを運用する場合の設定[1]

ビットごとの論理演算子[1]

標準エラー出力（stderr）〔用語解説〕[1]

標準出力，標準エラー出力の出力先に関する指定[1]

標準出力（stdout）〔用語解説〕[1]

標準ツールバー〔JP1/Advanced Shellエディタ〕[1]

標準入力（stdin）〔用語解説〕[1]

標準入力についての注意事項[1]

秒数〔sleepコマンド〕[1]

ふ

ファイル環境変数定義名〔#-adsh_file_tempコマンド〕[1]

ファイル環境変数定義名〔#-adsh_fileコマンド〕[1]

ファイル環境変数定義名〔#-adsh_spoolfileコマンド〕[1]

ファイルサイズ〔LOG_FILE_SIZEパラメーター〕[1]

ファイルサイズ〔TRACE_FILE_SIZEパラメーター〕[1]

ファイル属性[1]

ファイルディスクリプタ[1]

ファイルディスクリプタ〔用語解説〕[1]

ファイル入出力時のパス変換内容を定義する[1]

ファイルの入出力時にファイルパスを変換する[1]

ファイルのパス名[1]

ファイルの読み取り専用属性の有効・無効を切り替える[1]

ファイルの割り当ておよび後処理をする[1]

ファイルの割り当て〔用語解説〕[1]

ファイルパス〔#-adsh_fileコマンド〕[1]

ファイルパス〔adshfileコマンド〕[1]

ファイル名規則〔ASC_FILEパラメーター〕[1]

複数のOR条件でジョブ定義スクリプト稼働実績情報を出力する[1]

複数の環境で共用する[1]

物理ホストだけで有効なパラメーターを定義する[1]

物理ホストまたは論理ホストごとに応答要求メッセージの最大同時出力数を指定する[1]

ブランチカバレージ情報[1]

プリフィックス〔splitコマンド〕[1]

ブレークポイントエリア〔JP1/Advanced Shellエディタ〕[1]

ブレークポイントまで実行する場合〔JP1/Advanced Shellエディタ〕[1]

ブレークポイントを設定する（breakコマンド）[1]

ブレークポイントを設定する〔JP1/Advanced Shellエディタ〕[1]

ブレークポイント・ウォッチポイントの情報を表示する（info breakpointsコマンド）[1]

ブレークポイント・ウォッチポイントを削除する（deleteコマンド）[1]

ブレークポイント〔用語解説〕[1]

プログラム出力データファイル[1]

プログラム出力データファイルの割り当てをする[1]

プログラム出力データファイル〔用語解説〕[1]

プログラムのインストール先ディレクトリ[1]

プログラムの種類[1]、[2]

プログラムパス名〔CHILDJOB_PGMパラメーター〕[1]

分岐網羅性[1]

文法チェック〔JP1/Advanced Shellエディタ〕[1]

文法をチェックする〔JP1/Advanced Shellエディタ〕[1]

へ

ベースとなるascファイルのパス名〔adshcvmergコマンド〕[1]

ベース名〔用語解説〕[1]

別プロセスでの実行【UNIX限定】[1]

ヘルプを表示する（helpコマンド）[1]

編集ツールバー〔JP1/Advanced Shellエディタ〕[1]

編集モードのポップアップメニュー〔JP1/Advanced Shellエディタ〕[1]

編集モード〔JP1/Advanced Shellエディタ〕[1]

変数[1]

変数の値の参照[1]

変数の値を設定する（setコマンド）[1]

変数の値を表示する（printコマンド）[1]

変数の追加ダイアログボックス[1]

変数の命名規則[1]

変数名〔adshreadコマンド〕[1]

変数〔用語解説〕[1]

ほ

保守情報出力先ディレクトリ〔adshcollectコマンド〕[1]

ポップアップメニュー〔JP1/Advanced Shellエディタ〕[1]

ま

マージするascファイルのパス名〔adshcvmergコマンド〕[1]

マージする情報の種類[1]

マージの方法[1]

マウス操作〔JP1/Advanced Shellエディタ〕[1]

め

メタキャラクタ[1]

メタキャラクタ〔用語解説〕[1]

メッセージ[1]

メッセージID[1]

メッセージID〔JOBLOG_SUPPRESS_MSGパラメーター〕[1]

メッセージテキスト[1]

メッセージに出力される行番号に関する注意事項[1]

メッセージの一覧[1]

メッセージの記載形式[1]

メッセージの形式[1]

メッセージの出力形式[1]

メッセージの出力先[1]

メッセージ番号[1]

メッセージ番号の範囲で示されるメッセージの意味[1]

メッセージ番号の割り当て[1]

メッセージ用ダイアログボックス[1]

メッセージ用ダイアログボックスでのアイコンの意味[1]

メニューバーのメニュー〔JP1/Advanced Shellエディタ〕[1]

メモリ上に採取しているカバレージ情報の表示[1]

面数〔LOG_FILE_CNTパラメーター〕[1]

面数〔TRACE_FILE_CNTパラメーター〕[1]

も

モード〔adshscripttoolコマンド〕[1]

モード〔script_0〕[1]

モード〔script_chmod1〕[1]

モード〔script_chmod2〕[1]

モード〔script_chmod3〕[1]

文字列区切り[1]

文字列比較[1]

文字列を検索する〔JP1/Advanced Shellエディタ〕[1]

文字列を置換する〔JP1/Advanced Shellエディタ〕[1]

文字列〔basenameコマンド〕[1]

文字列〔dirnameコマンド〕[1]

ゆ

ユーザー応答機能管理デーモンの情報【UNIX限定】[1]

ユーザー応答機能管理デーモンを起動および停止する[1]

ユーザー応答機能使用時の障害対応[1]

ユーザー応答機能で表示されるエラー情報の意味および対処方法[1]

ユーザー応答機能の入出力先に標準入出力を指定する方法[1]

ユーザー応答機能を使用する[1]

ユーザー応答機能を使用するための環境ファイルの設定[1]

ユーザー応答機能を使用するときの処理の流れ[1]

ユーザー応答機能を設定する[1]、[2]

ユーザー名〔script_0〕[1]

ユーザー名〔script_su1〕[1]

よ

呼び出し関数名称配列[1]

予約語[1]

ら

ラージファイル[1]

り

リスト〔cutコマンド〕[1]

リダイレクト[1]

リダイレクト〔用語解説〕[1]

流量制御〔用語解説〕[1]

る

ルートジョブ[1]

ルートジョブが子孫ジョブより先に終了した場合の注意事項[1]

ルートジョブと子孫ジョブ[1]

ルートジョブの実行結果の出力情報に関する出力方式を定義する[1]

ルートジョブの出力先を定義する[1]

ルートジョブ〔用語解説〕[1]

ルーラー〔JP1/Advanced Shellエディタ〕[1]

れ

レポートファイル名〔adshhkコマンド〕[1]

ろ

ローカルオプション[1]

ローカルタイムの設定[1]

ログ[1]

ログインシェルを起動する（execコマンド）[1]

ログインユーザーの情報をログに出力する[1]

ログファイル名〔adshhkコマンド〕[1]

ログ〔用語解説〕[1]

ロングオプションの指定形式[1]

ロングオプション〔用語解説〕[1]

論理演算[1]

論理ホスト[1]

論理ホストだけで有効なパラメーターを定義する[1]

論理ホスト名〔adshcollectコマンド〕[1]

論理ホスト名〔lhost_startパラメーター，lhost_endパラメーター〕[1]

わ

ワイルドカード[1]

ワイルドカード〔用語解説〕[1]

割り当て管理ファイル[1]