JP1/Advanced Shell 解説・手引・文法・操作書 3021-3-B32-10 JP1 Version 11


Add to My manuals
1560 Pages

advertisement

JP1/Advanced Shell 解説・手引・文法・操作書 3021-3-B32-10 JP1 Version 11 | Manualzz

JP1 Version 11

JP1/Advanced Shell

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

3021-3-B32-10

前書き

■ 対象製品

P-1M12-B1BL JP1/Advanced Shell 11-01(適用 OS:AIX V6.1,AIX V7.1)

P-8112-B1BL JP1/Advanced Shell 11-01(適用 OS:Red Hat Enterprise Linux Server 6(64-bit x86_64),Red Hat Enterprise Linux Server 7(64-bit x86_64),Oracle Linux 6 (x64),Oracle

Linux 7,CentOS 6,CentOS 7,SUSE Linux 12)

P-1J12-B1BL JP1/Advanced Shell 11-01(適用 OS:HP-UX 11i V3(IPF))

P-9D12-B1BL JP1/Advanced Shell 11-01(適用 OS:Solaris 10(SPARC),Solaris 11(SPARC))

P-2A12-B1BL JP1/Advanced Shell 11-01(適用 OS:Windows 10,Windows Server 2012,

Windows 8,Windows 7,Windows Server 2008)

P-2A12-B2BL JP1/Advanced Shell - Developer 11-01(適用 OS:Windows 10,Windows Server

2012,Windows 8,Windows 7,Windows Server 2008)

■ 輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関

連法規をご確認の上、必要な手続きをお取りください。なお、不明な場合は、弊社担当営業にお問い合わ

せください。

■ 商標類

HITACHI,JP1,uCosminexus は,株式会社 日立製作所の商標または登録商標です。

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

商標です。

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

す。

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

Microsoft および Windows は,米国 Microsoft Corporation の米国およびその他の国における登録商

標または商標です。

Microsoft および Windows Server は,米国 Microsoft Corporation の米国およびその他の国における

登録商標または商標です。

Microsoft および Excel は,米国 Microsoft Corporation の米国およびその他の国における登録商標ま

たは商標です。

Microsoft Office および Excel は,米国 Microsoft Corporation の米国およびその他の国における登録

商標または商標です。

Oracle と Java は,Oracle Corporation 及びその子会社,関連会社の米国及びその他の国における登録

商標です。

JP1/Advanced Shell

2

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

すべての SPARC 商標は,米国 SPARC International, Inc. のライセンスを受けて使用している同社の米

国およびその他の国における商標または登録商標です。SPARC 商標がついた製品は,米国 Sun

Microsystems, Inc. が開発したアーキテクチャに基づくものです。

SUSE は,米国およびその他の国における SUSE LLC の登録商標または商標です。

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

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

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

プログラムプロダクト「P-9D12-B1BL」には,Oracle Corporation またはその子会社,関連会社が著

作権を有している部分が含まれています。

プログラムプロダクト「P-9D12-B1BL」には,UNIX System Laboratories,Inc.が著作権を有している

部分が含まれています。

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

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

このマニュアルでの表記

Windows Server

Windows Server

2012

Windows

Windows Server

2008

Windows 10

Windows 8

正式名称

Microsoft

®

Windows Server

®

2012 Standard

Microsoft

®

Windows Server

®

2012 Datacenter

Microsoft

®

Windows Server

®

2012 R2 Standard

Microsoft

®

Windows Server

®

2012 R2 Datacenter

Microsoft

®

Windows Server

®

2008 R2 Datacenter

Microsoft

®

Windows Server

®

2008 R2 Enterprise

Microsoft

®

Windows Server

®

2008 R2 Standard

Windows

®

10 Home(32 ビット版)

Windows

®

10 Pro(32 ビット版)

Windows

®

10 Enterprise(32 ビット版)

Windows

®

10 Home(64 ビット版)

Windows

®

10 Pro(64 ビット版)

Windows

®

10 Enterprise(64 ビット版)

Windows

®

8.1(32 ビット版)

Windows

®

8.1 Pro(32 ビット版)

Windows

®

8.1 Enterprise(32 ビット版)

JP1/Advanced Shell

3

このマニュアルでの表記

Windows

Windows 8

Excel

Windows 7

正式名称

Windows

®

8.1(64 ビット版)

Windows

®

8.1 Pro(64 ビット版)

Windows

®

8.1 Enterprise(64 ビット版)

Windows

®

8(32 ビット版)

Windows

®

8 Pro(32 ビット版)

Windows

®

8 Enterprise(32 ビット版)

Windows

®

8(64 ビット版)

Windows

®

8 Pro(64 ビット版)

Windows

®

8 Enterprise(64 ビット版)

Microsoft

®

Windows

®

7 Enterprise

Microsoft

®

Windows

®

7 Professional

Microsoft

®

Windows

®

7 Ultimate

Microsoft

®

Excel

Microsoft

®

Office Excel

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

■ 発行

2016 年 4 月 3021-3-B32-10

■ 著作権

All Rights Reserved. Copyright (C) 2016, Hitachi, Ltd.

JP1/Advanced Shell

4

変更内容

変更内容(3021-3-B32-10)JP1/Advanced Shell 11-01,JP1/Advanced Shell -

Developer 11-01

追加・変更内容 変更個所

2.1.1(4)

, 2.1.2(3) ,

2.5

8.1.2(3)

8.2.2(1) ,

8.4.16

8.4.17

8.4.25

次に示す UNIX 互換コマンドを使用できるようにした。

• gunzip

• gzip

• printf

JOBLOG_SUPPRESS_MSG

パラメーターでジョブ実行ログへの出力を抑止できる

メッセージ ID を追加した。

UNIX 互換コマンドの tar

コマンドに

-z

オプションを追加した。

メッセージ KNAX7091-W を追加した。

7.3.21

8.4.34

12.2

KNAX7091-W

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

JP1/Advanced Shell

5

はじめに

このマニュアルでは,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

■ 読書手順

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

バッチジョブを実行する運用者とジョブ定義スクリプトを作成する開発者ごとに,必要な章または付録を

選択して読むことができます。利用者に応じてお読みいただくことをお勧めします。

なお,このマニュアルは,Windows および UNIX の OS に共通のマニュアルです。OS ごとに差異があ

る場合は,本文中でそのつど内容を書き分けています。

編タイトル

第 1 編

概要編

第 2 編

構築編

章または付録のタイトル

1. JP1/Advanced Shell の概要

2. JP1/Advanced Shell を利用するた

めの準備

記載内容

JP1/Advanced Shell は,バッチ処理のための

ジョブ定義スクリプトを作成・実行するための

製品です。JP1/Advanced Shell の目的,業務

への応用例,システムの全体構成,処理の流

れ,クラスタシステムでの運用の概要および機

能概要について説明しています。

プログラムのインストール先と種類,前提条

件,インストール,環境情報の設定,カスタム

ジョブの登録,ユーザー応答機能の設定,クラ

運用者 開発者

○ ○

◎ ○

JP1/Advanced Shell

6

編タイトル

第 2 編

構築編

第 3 編

運用編

第 4 編

リファレン

ス編

第 5 編

トラブル

シューティ

ング編

章または付録のタイトル

2. JP1/Advanced Shell を利用するた

めの準備

3. バッチジョブの実行

4. JP1/Advanced Shell - Developer

を使用する【Windows 限定】

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

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

記載内容

スタ運用の環境情報設定などの JP1/Advanced

Shell を利用するために必要な項目について説

明しています。

JP1/Advanced Shell(実行環境)を使用した

バッチジョブの運用として,バッチジョブの実

行方法や動作について説明しています。

JP1/Advanced Shell - Developer を使用し

て,Windows 環境でジョブ定義スクリプトを

開発するための JP1/Advanced Shell エディタ

の操作方法について説明しています。エディタ

を使用したジョブ定義スクリプトファイルのデ

バッグ方法についても説明します。

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

います。

JP1/Advanced Shell のデバッガ機能について

説明しています。

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

環境ファイルで設定できる,次のパラメーター

の記述形式と詳細について説明しています。

• 環境設定パラメーター

• export パラメーター

• 条件パラメーター

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

運用時に使用するコマンドの記述形式と詳細に

ついて説明しています。

9. ジョブ定義スクリプトのコマンドお

よび制御文

10. スクリプト開発部品

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

12. メッセージ

ジョブ定義スクリプトファイルに使用する次の

コマンドや制御文に関して,記述形式と詳細を

説明しています。

• シェル標準コマンド

• シェル拡張コマンド

• スクリプト拡張コマンド

• スクリプト制御文

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

スクリプト開発部品の記述形式と詳細について

説明しています。

トラブルシューティングとして,対処の手順,

ログ情報の種類,必要な資料,資料の採取方法

について説明しています。

JP1/Advanced Shell が出力するメッセージと

エラーの詳細について説明しています。

運用者 開発者

◎ ○

JP1/Advanced Shell

7

編タイトル

付録

章または付録のタイトル 記載内容

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

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

ています。

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

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

付録 E 用語解説

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

このマニュアルを読むに当たっての参考情報

(関連マニュアル,マニュアルでの表記)につ

いて説明しています。

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

ています。

運用者 開発者

△ △

(凡例)

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

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

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

−:該当しません。

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

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

記号

[ ]

< >

{ }

意味

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

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

[ファイル]−[新規作成]を選択する。

上記の例では,メニューバーの[ファイル]を選択して,ドロップダウンリストの[新規作成]を選択

することを示します。

• 文法説明の場合,[ ]で囲まれている項目は,省略できます。

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

[A]

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

[B

|

C]

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

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

を示します。

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

|

で示します。

{A

|

B

|

C}

JP1/Advanced Shell

8

記号

{ }

|

(ストローク)

*

《 》

(( ))

_(下線)

…および...

(点線)

太字

斜体

意味

「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

:0 個以上のスペース(スペースを省略できる)

1

:1 個以上のスペース(スペースを省略できない)

注※

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

JP1/Advanced Shell

9

構文要素記号

<数字>

<英大文字>

<英小文字>

<英字>

<特殊文字>

< 8 進数>

< 10 進数>

< 16 進数字>

<整数>

<符号なし整数>

<記号名称>

<環境変数名>

<パス名>

<コマンド名>

<論理ホスト名>

<任意文字列>

< ASCII 文字列>

指定できる文字の内容

0

|

1

|

2

|

3

|

4

|

5

|

6

|

7

|

8

|

9

A

|

B

|

C

|

|

Z a

| b

| c

|

| z

<英大文字>

|

<英小文字>

,

|

.

|

/

|

'

|

(

|

)

|*|

&

|

+

|

-

|

=

|

△(半角スペース)

|\

< 0

|

1

|

2

|

3

|

4

|

5

|

6

|

7 > +

<数字> +

0

|

1

|

2

|

3

|

4

|

5

|

6

|

7

|

8

|

9

|

A

|

B

|

C

|

D

|

E

|

F

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

<数字>+

{<英字>

|

<数字>

|

@

|

#

|

_(アンダースコア)} +

対象: ジョブ名など。

{<英字>

|

_(アンダースコア)}{<英字>

|

_(アンダースコア)

|

<数字>}

*

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

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

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

{<英字>

|

<数字>

|

−(ハイフン)}+

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

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

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

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

ASCII 文字コード範囲中の,制御文字を除いた範囲(0x20〜0x7e)の文字によって構成される文

字列。

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

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

インストール先フォルダ

」は,特に断りがないかぎり JP1/Advanced

Shell のインストール先フォルダを示しています。製品を初期設定のままインストールした場合のインス

トール先フォルダは次のとおりです。 x86 環境の場合

システムドライブ:\Program Files\Hitachi\JP1AS x64 環境の場合

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

JP1/Advanced Shell

10

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

このマニュアルで使用している「Administrators 権限」とは,ローカル PC に対する Administrators 権

限です。ローカル PC に対して Administrators 権限を持つユーザーであれば,ローカルユーザー,ドメ

インユーザーおよび,Active Directory 環境で動作に違いはありません。

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

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

共通アプリケーションフォルダ

」について次に示します。

Windows 10,Windows Server 2012,Windows 8,Windows 7,または Windows Server 2008

の場合の例

システムドライブ:\ProgramData

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

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

共有ドキュメントフォルダ

」について次に示します。

Windows 10,Windows Server 2012,Windows 8,Windows 7,または Windows Server 2008

の場合の例

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

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

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

Windows 7,Windows Server 2008

Windows 10,Windows Server 2012 または Windows 8 の場合は[スタート]メニューが表示され

ないため,画面左下から表示できる[スタート]画面からメニューを選択してください。

JP1/Advanced Shell

11

目次

前書き 2

変更内容 5

はじめに 6

第 1 編 概要編

2

2.1

2.1.1

2.1.2

2.2

2.2.1

2.2.2

2.2.3

2.2.4

2.2.5

2.2.6

2.2.7

2.3

1

1.1

1.1.1

1.1.2

1.1.3

1.2

1.3

1.3.1

1.3.2

1.3.3

1.3.4

1.4

1.5

JP1/Advanced Shell の概要 28

JP1/Advanced Shell の目的 29

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

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

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

業務への応用例 32

処理の流れ 33

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

JP1/Advanced Shell の機能を使って Java のバッチアプリケーションを実行するときの処理

の流れ【Windows,Linux(R),AIX,HP-UX 限定】 35

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

アプリケーション実行エージェント機能を使用するときの処理の流れ 37

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

機能概要 44

第 2 編 構築編

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

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

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

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

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

システム構成 57

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

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

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

ローカルタイムの設定 67

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

ハードリンク,シンボリックリンクを使用する 68

インストール/アンインストール【Windows 限定】 73

JP1/Advanced Shell

12

2.6.15

2.6.16

2.6.17

2.6.18

2.6.19

2.6.20

2.6.21

2.6.22

2.6.7

2.6.8

2.6.9

2.6.10

2.6.11

2.6.12

2.6.13

2.6.14

2.7

2.7.1

2.7.2

2.7.3

2.8

2.8.1

2.8.2

2.5

2.6

2.6.1

2.6.2

2.6.3

2.6.4

2.6.5

2.6.6

2.3.1

2.3.2

2.3.3

2.3.4

2.4

2.4.1

2.4.2

2.4.3

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

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

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

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

インストール/アンインストール【UNIX 限定】 79

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

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

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

環境変数を設定する 87

JP1/Advanced Shell の環境情報を設定する 92

環境ファイルを設定する 92

パス名を変換する 94

ファイルの入出力時にファイルパスを変換する 98

コマンド実行時に引数を変換する 100

子孫ジョブとして起動するファイルを定義する 101

UNIX 互換コマンドを使用するための定義をする 102

サポートしていない条件式を実行した場合の動作を定義する【Windows 限定】 103

ジョブ実行結果とログの出力情報を定義する 104

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

複数の環境で共用する 113

バッチジョブの実行時にカバレージ情報を採取するオプションを指定しなくても有効にする 113

ジョブ定義スクリプトを UNIX から Windows へ移行する 114

シェル変数 ENV に指定されたファイルを読み込む 116

パイプの最終コマンドの実行プロセスを定義する 116

ジョブを続行できないエラーが発生したときの終了コードを定義する 117

ユーザー応答機能を設定する 126

JP1 環境を確認する【UNIX 限定】 127

シェルを設定する【UNIX 限定】 127

JP1/Advanced Shell で必要なディレクトリを作成する 127

JP1/AJS 環境を設定する 130

ジョブ強制終了時にユーザー固有の後処理を実行する 130

スクリプト開発部品を使うための準備 131

JP1/AJS の環境情報を設定する(JP1/AJS を使用する場合) 133

JP1/AJS - View でカスタムジョブを登録する 133

ジョブネットを定義して実行する 137

PC ジョブ/UNIX ジョブによるジョブの定義 149

ユーザー応答機能を設定する 155

ユーザー応答機能を使用するための環境ファイルの設定 155

JP1/Advanced Shell をインストールしたあとのユーザー応答機能の設定【Windows 限定】 156

JP1/Advanced Shell

13

2.8.3

2.8.4

2.8.5

2.9

2.9.1

2.9.2

2.9.3

2.9.4

2.9.5

2.10

2.11

2.12

2.12.1

2.12.2

JP1/Advanced Shell をインストールしたあとのユーザー応答機能の設定【UNIX 限定】 159

JP1/IM - Manager で環境情報を設定する 164

JP1/Base の環境情報を設定する 165

クラスタ構成で運用する 166

クラスタ運用の前提条件とサポート範囲 166

クラスタ運用の環境情報の設定 168

クラスタ運用の場合のコマンドの指定方法 174

クラスタ運用に関する注意事項 176

非クラスタ環境で論理ホストを運用する場合の設定 176

HTML マニュアルを組み込む 183

アプリケーション実行エージェント機能を設定する【Windows 実行環境限定】 184

メモリ所要量およびディスク占有量 185

仮想メモリ所要量 185

ディスク占有量 186

3.4

3.4.1

3.4.2

3.4.3

3.4.4

3.5

3.5.1

3.5.2

第 3 編 運用編

3

3.1

3.1.1

3.1.2

3.1.3

3.2

3.2.1

3.2.2

3.2.3

3.2.4

3.2.5

3.3

3.5.3

バッチジョブの実行 192

ジョブの構成 193

JP1/AJS のジョブに関する運用者の作業 193

ジョブ 193

ジョブステップ 199

バッチジョブの起動 204

実行環境から JP1/AJS を使用してジョブを起動する 204

実行環境からコマンドでバッチジョブを起動する 207

ジョブ定義スクリプトを子孫ジョブとして実行する 208

ジョブで実行する内容をコマンドラインに指定する 213

バッチジョブ起動後のジョブコントローラの処理 215

adshjava コマンドを使用して Java のバッチアプリケーションを実行する【Windows,

Linux,AIX,HP-UX 限定】 217

ジョブの実行結果を出力する 218

標準出力,標準エラー出力の出力先に関する指定 218

ジョブの実行結果をスプールに出力する 219

ジョブ実行ログへの特定の情報メッセージの出力を抑止する 224

ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止する 224

ジョブ実行ログ 228

ジョブの種類ごとのジョブ実行ログの出力内容 228

ジョブ実行ログの出力例(子孫ジョブのスプールジョブをルートジョブのスプールジョブへ

マージした場合) 236

ジョブ実行ログの出力例(子孫ジョブのスプールジョブを削除した場合) 248

JP1/Advanced Shell

14

3.10.3

3.10.4

3.10.5

3.10.6

3.11

3.11.1

3.11.2

3.11.3

3.8.3

3.8.4

3.8.5

3.8.6

3.9

3.10

3.10.1

3.10.2

3.12

3.12.1

3.12.2

3.12.3

3.12.4

3.7.5

3.7.6

3.7.7

3.7.8

3.7.9

3.8

3.8.1

3.8.2

3.5.4

3.5.5

3.6

3.7

3.7.1

3.7.2

3.7.3

3.7.4

ジョブ実行ログの出力例(簡潔出力モードまたは最小出力モードを選択した場合) 255

ジョブ実行ログの出力例(標準エラー出力だけを出力する場合) 257

実行したコマンドとその引数を出力する 260

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

ジョブ定義スクリプトの稼働実績情報の採取 262

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

稼働実績情報の日時とタイムゾーンの関係 264

複数の OR 条件でジョブ定義スクリプト稼働実績情報を出力する 264

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

稼働実績情報の形式 266

CSV 形式の稼働実績情報のレコードと出力項目 267

CSV 形式の稼働実績情報の出力項目 269

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

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

前提条件 277

実行方法 277

JP1/IM - View との関係 277

ユーザー応答機能の入出力先に標準入出力を指定する方法 278

adshecho コマンドまたは adshread コマンドがエラー終了した場合の対処 279

注意事項 280

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

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

カバレージ情報の概要 284

カバレージ情報の管理 285

カバレージ情報の蓄積 289

カバレージ情報の表示 292

カバレージ情報のマージ 306

カバレージ採取の一括有効化機能 306

ジョブを強制終了する 308

ジョブの強制終了の方法 308

シグナル受信時の動作【UNIX 限定】 310

強制終了時のジョブの動作【Windows 限定】 315

アプリケーション実行エージェント機能を使用する【Windows 実行環境限定】 318

前提条件 318

実行方法 318

アプリケーション実行エージェントの操作 319

注意事項 321

JP1/Advanced Shell

15

4

4.1

4.4.7

4.5

4.6

4.7

4.7.1

4.7.2

4.7.3

4.7.4

4.7.5

4.7.6

4.7.7

4.3.3

4.4

4.4.1

4.4.2

4.4.3

4.4.4

4.4.5

4.4.6

4.1.1

4.1.2

4.2

4.2.1

4.2.2

4.3

4.3.1

4.3.2

5

5.1

5.1.1

5.1.2

5.1.3

5.1.4

5.1.5

5.1.6

5.1.7

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

JP1/Advanced Shell - Developer の起動と終了【Windows 限定】 323

JP1/Advanced Shell - Developer の起動 323

JP1/Advanced Shell - Developer の終了 323

JP1/Advanced Shell エディタの状態【Windows 限定】 324

編集モード 324

デバッグモード 324

JP1/Advanced Shell エディタの操作【Windows 限定】 325

JP1/Advanced Shell エディタウィンドウ 326

JP1/Advanced Shell エディタウィンドウのメニュー 329

JP1/Advanced Shell エディタウィンドウでのマウスとキーの操作 332

新規にジョブ定義スクリプトを作成する【Windows 限定】 334

ジョブ定義スクリプトを新規に作成する 334

エディタの動作環境を設定する 334

ジョブ定義スクリプトの実行環境を設定する 335

文法をチェックする 336

文字列を検索および置換する 338

デバッグをする 340

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

既存のジョブ定義スクリプトを編集する【Windows 限定】 353

ジョブ定義スクリプトを保存する【Windows 限定】 354

JP1/Advanced Shell エディタウィンドウの画面の詳細【Windows 限定】 355

オプション(書式)ダイアログボックス 355

オプション(色)ダイアログボックス 357

実行環境の設定ダイアログボックス 359

検索ダイアログボックス 361

メッセージ出力ウィンドウ 362

変数ウィンドウ 363

コンソール 365

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

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

予約語 368

変数 368

配列 378

関数 391

コマンドの別名定義 397

メタキャラクタ 398

別プロセスでの実行 416

JP1/Advanced Shell

16

5.8.1

5.8.2

5.8.3

5.8.4

5.8.5

5.8.6

5.8.7

5.8.8

5.5.1

5.5.2

5.5.3

5.6

5.6.1

5.6.2

5.7

5.8

5.8.9

5.8.10

5.8.11

5.9

5.9.1

5.9.2

5.9.3

5.2.2

5.3

5.3.1

5.3.2

5.3.3

5.3.4

5.4

5.5

5.1.8

5.1.9

5.1.10

5.1.11

5.1.12

5.1.13

5.2

5.2.1

パターンマッチング 420

エスケープ文字 421

スクリプト拡張コマンドの指定 422

外部コマンドの指定 422

UNIX 互換コマンドの指定 428

ジョブ定義スクリプト実行時のシェルと書式チェックの指定 428

条件判定 430

制御文 430

条件式 431

算術演算 439

算術演算子 439

増分・減分演算子 440

ビットごとの論理演算子 440

代入演算子 440

条件判定と算術演算の優先順位 442

シェル変数 443

JP1/Advanced Shell が設定するシェル変数 443

ユーザーが値を設定するシェル変数 445

関数情報配列 446

シェルオプション 451 set コマンドで設定できるシェルオプション 451

adshexec コマンドで設定できるシェルオプション 453

ジョブ情報の環境変数 454

ジョブ,ジョブステップおよびコマンドを定義する 455

ジョブ名を宣言する 455

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

ジョブステップを定義する 457

正常終了するコマンドを定義する 462

パス名を扱うシェル変数を定義する 465

実行中のジョブ定義スクリプトから外部のジョブ定義スクリプトファイルを呼び出す 468

スクリプト拡張コマンドの終了コードとエラー発生時の動作 471

ジョブ,ジョブステップおよびコマンドの終了コード 472

シェル標準コマンドによるジョブの中断 476

ジョブ実行中にエラーが発生した場合の動作 477

コマンド実行結果の出力に関する注意事項 482

ファイルの割り当ておよび後処理をする 485

通常ファイルの割り当ておよび後処理をする 485

一時ファイルの割り当ておよび後処理をする 496

プログラム出力データファイルの割り当てをする 499

JP1/Advanced Shell

17

5.10

5.10.1

5.10.2

5.10.3

5.10.4

5.11

6

6.1

6.2.11

6.2.12

6.2.13

6.2.14

6.2.15

6.2.16

6.2.17

6.2.18

6.2.19

6.2.20

6.2.21

6.2.22

6.2.23

6.2.24

6.2.3

6.2.4

6.2.5

6.2.6

6.2.7

6.2.8

6.2.9

6.2.10

6.1.1

6.1.2

6.1.3

6.1.4

6.1.5

6.2

6.2.1

6.2.2

シェル変数の値を変換する 503

パス変換ルールによる変換 503

文字列による変換 503

¥の増加 504

変数の値のコード変換 504

ジョブ定義スクリプトファイルの記述例 506

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

デバッガとは 509

GUI でのデバッグ【Windows 限定】 509

CUI でのデバッグ【UNIX 限定】 511

GUI デバッガの機能一覧【Windows 限定】 514

デバッガのコマンド一覧【UNIX 限定】 515

ジョブ定義スクリプトの構成要素に対する停止可否 517

CUI のデバッガ【UNIX 限定】 521

デバッガを終了する(quit コマンド) 522

ジョブ定義スクリプトを実行する(run コマンド) 522

ジョブ定義スクリプトを終了する(kill コマンド) 523

ブレークポイントを設定する(break コマンド) 523

ウォッチポイントを設定する(watch コマンド) 526

ブレークポイント・ウォッチポイントを削除する(delete コマンド) 528

ジョブ定義スクリプトの実行を再開するコマンド 529

逐次実行をする(step コマンド,next コマンド) 530

継続実行をする(continue コマンド) 533

関数を実行する( finish コマンド) 533

関数を終了する(return コマンド) 535

シグナルを送信する(signal コマンド) 536

ブレークポイント・ウォッチポイントの情報を表示する(info breakpoints コマンド) 537

カバレージ情報を表示する(info coverage コマンド) 538

関数情報を表示する(info functions コマンド) 539

ジョブステップ情報を表示する(info jobsteps コマンド) 540

パスを扱う変数名情報を表示する(info pathvars コマンド) 541

シグナル情報を表示する(info signals コマンド) 541

ステータスを表示する(info status コマンド) 542

シェル変数情報を表示する(info variables コマンド) 543

エラー注入モードの有効/無効を設定する(joberrmode コマンド) 544

変数の値を設定する(set コマンド) 550

変数の値を表示する(print コマンド) 552

バックトレースを表示する(where コマンド) 553

JP1/Advanced Shell

18

6.2.25

6.2.26

6.2.27

6.2.28

ソースファイルを表示する(list コマンド) 554

ディレクトリを移動する(cd コマンド) 556

ログインシェルを起動する(exec コマンド) 557

ヘルプを表示する(help コマンド) 557

第 4 編 リファレンス編

7

7.1

7.1.1

7.1.2

7.2

7.2.1

7.2.2

7.2.3

7.3

7.3.1

7.3.2

7.3.3

7.3.4

7.3.5

7.3.6

7.3.7

7.3.8

7.3.9

7.3.10

7.3.11

7.3.12

7.3.13

7.3.14

7.3.15

7.3.16

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

環境ファイルの記述形式 560

パラメーターの記述形式 560

コメントの記述形式 562

パラメーターの一覧 563

環境設定パラメーターの一覧 563

export パラメーター 568

条件パラメーターの一覧 569

環境設定パラメーター 576

ADSHCMD_RC_ERROR パラメーター(スクリプト拡張コマンド失敗時の終了コードを定義

する) 576

ADSHCMD_RC_SUCCESS パラメーター(スクリプト拡張コマンド成功時の終了コードを定

義する) 576

ASC_FILE パラメーター(蓄積ファイル名の生成規則を定義する) 577

BATCH_CVR パラメーター(カバレージ採取の一括有効化機能を有効にする) 578

CHILDJOB_EXT パラメーター(子孫ジョブとして実行するジョブ定義スクリプトファイルの

拡張子を定義する) 579

CHILDJOB_PGM パラメーター(子孫ジョブとして実行する指定を定義する) 580

CHILDJOB_SHEBANG パラメーター(子孫ジョブとして実行するジョブ定義スクリプトファ

イルの実行プログラムパスを定義する) 583

CMDRC_CMDGRP_CHECK パラメーター(関数の終了コードに従ってジョブおよびジョブス

テップのエラー判定をする) 585

CMDRC_THRESHOLD_DEFINE パラメーター(コマンドの終了コードのしきい値を定義する)586

CMDRC_THRESHOLD_USE_PRESET パラメーター(UNIX 互換コマンドの終了コードのしき

い値を定義する) 589

CMDSUB_PROCESS パラメーター(コマンド置換の実行プロセスを定義する)【 Windows

限定】 591

COMMAND_CONV_ARG パラメーター(コマンド実行時にジョブ定義スクリプト中の引数

を変換する規則を定義する) 592

COMPATIBLE_CMD_EXEC パラメーター(外部コマンドの起動方法を定義する)【Windows

限定】 596

COMPATIBLE_CMDSUB パラメーター(コマンド置換の動作を定義する)【UNIX 限定】 597

ESCAPE_SEQ_ECHO_DEFAULT パラメーター(エスケープ文字関連のオプション省略時の echo コマンドの動作を定義する) 598

ESCAPE_SEQ_ECHO_HEX パラメーター(16 進数表記の ASCII コード文字をエスケープ文

字として解釈するかを定義する) 599

JP1/Advanced Shell

19

7.3.17

7.3.18

7.3.19

7.3.20

7.3.21

7.3.22

7.3.23

7.3.24

7.3.25

7.3.26

7.3.27

7.3.28

7.3.29

7.3.30

7.3.31

7.3.32

7.3.33

7.3.34

7.3.35

7.3.36

7.3.37

7.3.38

7.3.39

7.3.40

7.3.41

7.3.42

7.3.43

7.3.44

7.3.45

7.3.46

7.3.47

EVENT_COLLECT パラメーター(ジョブ定義スクリプト稼働実績情報取得機能の有効/無効

を指定する) 600

export パラメーター(環境変数を定義する) 601

HOSTNAME_JP1IM_MANAGER パラメーター(JP1 イベントの送信先である JP1/IM -

Manager が稼働している運用管理サーバを指定する) 603

JOBEXECLOG_PRINT パラメーター(ジョブ終了時に標準エラー出力へ出力するジョブ実行

ログの内容を定義する) 604

JOBLOG_SUPPRESS_MSG パラメーター(ジョブ実行ログへ出力させないメッセージを定義

する) 605

KSH_ENV_READ パラメーター(シェル変数 ENV を読み込むかどうかを定義する) 607

LOG_DIR パラメーター(システム実行ログ出力ディレクトリのパス名を定義する) 608

LOG_FILE_CNT パラメーター(システム実行ログをバックアップする面数を定義する) 609

LOG_FILE_SIZE パラメーター(システム実行ログを出力するファイルサイズを定義する) 609

OUTPUT_MODE_CHILD パラメーター(子孫ジョブの実行結果の出力情報に関する出力方式

を定義する) 610

OUTPUT_MODE_ROOT パラメーター(ルートジョブの実行結果の出力情報に関する出力方

式を定義する) 612

OUTPUT_STDOUT パラメーター(ルートジョブの出力先を定義する) 613

PATH_CONV パラメーター(パス変換内容を定義する) 614

PATH_CONV_ACCESS パラメーター(ファイル入出力時のパス変換内容を定義する) 616

PATH_CONV_ENABLE パラメーター(パス変換機能を有効にする) 618

PATH_CONV_NOVAR パラメーター(パス名を扱わないシェル変数を定義する) 619

PATH_CONV_RULE パラメーター(パス変換ルールを定義する)【Windows 限定】 620

PATH_CONV_VAR パラメーター(パス名を扱うシェル変数を定義する) 626

PERMISSION_SPOOLJOB_DIR パラメーター(スプールジョブディレクトリのパーミッショ

ンを定義する)【UNIX 限定】 628

PERMISSION_SPOOLJOB_FILE パラメーター(スプールジョブディレクトリ下のファイルの

パーミッションを定義する)【UNIX 限定】 629

PIPE_CMD_LAST パラメーター(パイプの最終コマンドの実行プロセスを定義する) 630

SPOOL_DIR パラメーター(スプールルートディレクトリのパス名を定義する) 633

SPOOLJOB_CHILDJOB パラメーター(子孫ジョブのスプールジョブの扱いを定義する) 634

SPOOLJOB_CREATE パラメーター(スプールジョブの作成要否を選択する) 636

TEMP_FILE_DIR パラメーター(一時ファイルディレクトリのパス名を定義する) 637

TRACE_DIR パラメーター(トレースを出力するディレクトリのパス名を定義する) 638

TRACE_FILE_CNT パラメーター(トレース面数を定義する) 639

TRACE_FILE_SIZE パラメーター(トレースファイルサイズを定義する) 640

TRACE_LEVEL パラメーター(トレース出力レベルを定義する) 641

TRAP_ACTION_SIGTERM パラメーター(ジョブコントローラが強制終了要求を受けたとき

の動作を定義する) 641

UNSUPPORT_TEST パラメーター(サポートしていない条件式の実行時の動作を定義する)

【Windows 限定】 643

JP1/Advanced Shell

20

8.3.2

8.3.3

8.3.4

8.3.5

8.3.6

8.3.7

8.3.8

8.3.9

8.3.10

8.3.11

8.3.12

8.3.13

8

8.1

8.1.1

8.1.2

8.1.3

8.2

8.2.1

8.2.2

8.3

8.3.1

7.3.48

7.3.49

7.3.50

7.3.51

7.3.52

7.3.53

7.4

7.4.1

7.4.2

USERREPLY_DEBUG_DESTINATION パラメーター(デバッグ実行時の事象通知メッセージ

と応答要求メッセージの入出力先を指定する) 645

USERREPLY_JP1EVENT_INTERVAL パラメーター(JP1 イベントの最小発行間隔を指定する)645

USERREPLY_WAIT_MAXCOUNT パラメーター(物理ホストまたは論理ホストごとに応答要

求メッセージの最大同時出力数を指定する) 646

VAR_ENV_NAME_LOWERCASE パラメーター(環境変数名の小文字の使用可否を指定する)

【Windows 限定】 647

VAR_SHELL_FUNCINFO パラメーター(関数情報配列の使用有無を選択する) 649

VAR_SHELL_GETLENGTH パラメーター(${#variable}書式で置換される変数値の長さの単位

を定義する) 652

条件パラメーター 653 lhost_start パラメーター,lhost_end パラメーター(論理ホストだけで有効なパラメーター

を定義する) 653

phost_start パラメーター,phost_end パラメーター(物理ホストだけで有効なパラメーター

を定義する) 654

運用時に使用するコマンド 655

コマンドの記述形式 656

シェル運用コマンドと UNIX 互換コマンド(スクリプト形式)【Windows 限定】のコマンド

の記述規則 656

UNIX 互換コマンドの記述規則 656

ファイルのパス名 658

コマンドの一覧 660

シェル運用コマンドの一覧 660

UNIX 互換コマンドの一覧 661

シェル運用コマンド 667 adshappagent コマンド(アプリケーション実行エージェント起動コマンド)【Windows 実

行環境限定】 667

adshappexec コマンド(GUI アプリケーション実行コマンド)【Windows 実行環境】 669

adshchmsg コマンド(障害発生時に,応答要求メッセージに対して手動で応答する) 673

adshcvmerg コマンド(カバレージ情報をマージする) 675

adshcvshow コマンド(カバレージ情報を表示する) 677

adshevtout コマンド(ジョブ定義スクリプトの稼働実績情報を出力する) 679

adshexec コマンド(バッチジョブを実行する) 688

adshfile コマンド(通常ファイルの割り当ておよび後処理を指定する) 695

adshhk コマンド(スプールジョブを削除する) 697

adshjava コマンド(Java のバッチアプリケーションを実行する)【Windows,Linux,AIX,

HP-UX 限定】 700

adshlsmsg コマンド(障害発生時に,応答要求メッセージの一覧を表示する) 706

adshmdctl コマンド(ユーザー応答機能管理デーモンを起動および停止する)【UNIX 限定】 707

adshmsvcd コマンド(開発環境でユーザー応答機能管理サービスを登録する)【Windows

限定】 709

JP1/Advanced Shell

21

8.3.14

8.4.24

8.4.25

8.4.26

8.4.27

8.4.28

8.4.29

8.4.30

8.4.31

8.4.16

8.4.17

8.4.18

8.4.19

8.4.20

8.4.21

8.4.22

8.4.23

8.4.32

8.4.33

8.4.34

8.4.35

8.4.36

8.4.8

8.4.9

8.4.10

8.4.11

8.4.12

8.4.13

8.4.14

8.4.15

8.4

8.4.1

8.4.2

8.4.3

8.4.4

8.4.5

8.4.6

8.4.7

adshmsvce コマンド(実行環境でユーザー応答機能管理サービスを登録する)【Windows

限定】 710

UNIX 互換コマンド 712

awk コマンド(テキストの加工やパターン処理をする) 713

basename コマンド(パスからファイル名を取得する) 741

cat コマンド(ファイルの内容を標準出力に出力する) 744

cmp コマンド(バイナリファイルの内容を比較する) 747

cp

コマンド(ファイルまたはディレクトリをコピーする) 750

cut コマンド(各行の選択範囲を標準出力に表示する) 753

date コマンド(システムの日付と時刻を表示する) 756

diff コマンド(2 つのファイルや標準入力を比較する) 768

dirname コマンド(パス名からディレクトリパス名部分の文字列を取り出す) 781

egrep コマンド(ファイル内の文字を検索する) 784

expand コマンド(タブ文字をスペースに置き換える) 787

expr コマンド(式を評価する) 792

find コマンド(ディレクトリ内のファイルを検索する) 795

getopt コマンド(コマンドラインのオプションを解析する) 806

grep コマンド(ファイル内の文字を検索する) 811

gunzip

コマンド(圧縮されたファイルを伸長する) 818

gzip

コマンド(ファイルを圧縮,または圧縮されたファイルを伸長する) 825

head コマンド(ファイルの最初の部分を表示する) 848

hostname コマンド(ホスト名を表示する) 850

ln コマンド(ファイル,またはディレクトリへのリンクファイルを作成する) 851

ls コマンド(ファイルまたはディレクトリの内容を表示する) 859

mkdir コマンド(ディレクトリを作成する) 874

mv

コマンド(ファイルまたはディレクトリを移動する) 876

paste コマンド(複数のファイルを行単位で連結する) 878

printf

コマンド(書式の引数を書式に従って変換し,標準出力に出力する) 888

rm コマンド(ファイルまたはディレクトリを削除する) 893

rmdir コマンド(空のディレクトリを削除する) 895

sed コマンド(テキスト中の文字列を置換する) 896

sleep コマンド(指定された時間だけ停止する) 911

sort コマンド(テキストファイルをソートする) 912

split コマンド(ファイルを分割する) 924

stat コマンド(ファイルまたはディレクトリの状態を標準出力に出力する) 927

tail コマンド(ファイルの最後の部分を表示する) 935

tar

コマンド(対象パス名をアーカイブに格納,およびアーカイブから抽出,表示する) 939

touch コマンド(ファイルの最終アクセス日時と最終修正日時を変更する) 952

uname コマンド(OS またはハードウェアの情報を表示する) 959

JP1/Advanced Shell

22

8.4.37

8.4.38

8.4.39

8.5

8.5.1

9

9.1

9.2.3

9.2.4

9.2.5

9.3

9.3.1

9.3.2

9.3.3

9.3.4

9.1.1

9.1.2

9.1.3

9.1.4

9.1.5

9.2

9.2.1

9.2.2

9.3.5

9.3.6

9.3.7

9.3.8

9.3.9

9.3.10

9.3.11

9.3.12

8.5.2

8.5.3

8.5.4

8.5.5

8.5.6

8.5.7

8.5.8

uniq コマンド(ソートされたファイルから重複した行を削除する) 963

wc コマンド(ファイルのバイト,行,文字および単語をカウントする) 965

which コマンド(外部コマンドのパスを取得する) 967

UNIX 互換コマンド(スクリプト形式)【Windows 限定】 972 chmod コマンド(ジョブ定義スクリプトに記述されている chmod コマンドの指定を無効に

する) 972

chmod コマンド(ファイルの読み取り専用属性の有効・無効を切り替える) 973

chmod コマンド(パーミッションを数値で設定する) 975

chmod コマンド(パーミッションをシンボルまたは数値で設定する) 978

su コマンド(ジョブ定義スクリプトに記述されている su コマンドの指定を無効にする) 982

su コマンド(実行ユーザーの権限でプログラムを実行する) 984

who コマンド(ジョブ定義スクリプトに記述されている who コマンドの指定を無効にする) 985

who コマンド(ログインユーザーの情報をログに出力する) 986

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

コマンドおよび制御文の記述形式 989

シェル標準コマンドの記述形式 991

シェル拡張コマンドの記述形式 991

スクリプト拡張コマンドの記述形式 991

スクリプト制御文の記述形式 993

スクリプト予約語コマンドの記述形式 993

コマンドおよび制御文の一覧 994

シェル標準コマンドの一覧 994

シェル拡張コマンドの一覧 995

スクリプト拡張コマンドの一覧 996

スクリプト制御文の一覧 997

スクリプト予約語コマンドの一覧 997

シェル標準コマンド 998

.コマンド(シェルスクリプトを実行する) 998

:コマンド(引数を展開する) 999

alias コマンド(エイリアスを定義する) 1001

break コマンド(繰り返し処理を抜ける) 1002

builtin コマンド(組み込みコマンドを実行する) 1003

cd コマンド(カレントディレクトリを移動する) 1004

command コマンド(コマンドを実行する) 1006

continue コマンド(繰り返し処理を中断して繰り返し処理の先頭に戻る) 1008

echo コマンド(引数で指定した内容を標準出力に出力する) 1009

eval コマンド(引数を 1 つにまとめてコマンドとして実行する) 1013

exec コマンド(コマンドを実行して終了する) 1014

exit コマンド(シェルを終了する) 1015

JP1/Advanced Shell

23

9.4.2

9.4.3

9.4.4

9.4.5

9.4.6

9.4.7

9.4.8

9.4.9

9.4.10

9.4.11

9.5

9.5.1

9.5.2

9.3.30

9.3.31

9.3.32

9.3.33

9.3.34

9.3.35

9.4

9.4.1

9.3.22

9.3.23

9.3.24

9.3.25

9.3.26

9.3.27

9.3.28

9.3.29

9.3.13

9.3.14

9.3.15

9.3.16

9.3.17

9.3.18

9.3.19

9.3.20

9.3.21

export コマンド(シェル変数をエクスポートする) 1016

false コマンド(終了コード 1 を返す) 1018

getopts コマンド(引数を解析する) 1019

kill コマンド(シグナルを送信する) 1020

let コマンド(数値計算を行って評価する) 1021

print コマンド(標準出力に出力する) 1024

pwd コマンド(カレントディレクトリのパスを出力する) 1026

read コマンド(標準入力から読み込んで変数に格納する) 1027

readonly コマンド(変数の属性を読み込み専用に変更する,または読み込み専用の変数を表

示する) 1029

return コマンド(関数または外部スクリプトから復帰する) 1030

set コマンド(シェルオプションを設定する,配列を作成する,または変数の値を表示する) 1031

shift コマンド(実行時パラメーターをシフトする) 1034

test コマンド(条件式を判定する) 1035

times コマンド(シェルが消費した CPU 時間を出力する) 1036

trap コマンド(シグナルや強制終了要求を受けたときの動作を設定する) 1037

true コマンド(終了コード 0 を返す) 1043

typeset コマンド(変数や関数の属性と値を明示的に宣言する) 1044

ulimit コマンド(システムリソースの上限を設定する)【UNIX 限定】 1048

umask コマンド(新規ファイル作成時のアクセス権を設定する)【UNIX 限定】 1051

unalias コマンド(エイリアス定義を無効にする) 1053

unset コマンド(変数の値と属性の設定を解除する) 1054

wait コマンド(子プロセスの完了を待つ) 1055

whence コマンド(文字列をコマンドとした場合の解釈を表示する) 1056

シェル拡張コマンド 1059 adshappexec コマンド(GUI アプリケーション実行コマンド)【Windows 実行環境限定】 1059 adshappexec コマンド(GUI アプリケーション実行コマンド)【Windows 開発環境限定】 1059

adshcmdrc コマンド(コマンドの終了コードしきい値を定義する) 1062

adshecho コマンド(指定した事象通知メッセージを JP1 イベントとして発行する) 1064

adshjoberr コマンド(ジョブおよびジョブステップにエラーを通知する) 1067

adshmktemp コマンド(ほかと重ならない名前を持つファイルを作成する) 1069

adshparsecsv コマンド(CSV データを解析する) 1071

adshparsejson コマンド(JSON データを解析する) 1072

adshread コマンド(指定した応答要求メッセージを応答待ちイベントとして発行する) 1074

adshscripttool コマンド(ジョブ定義スクリプトの作成を支援する)【Windows 限定】 1078

adshvarconv コマンド(変数の値を変換する) 1086

スクリプト拡張コマンド 1093

#-adsh_file コマンド(通常ファイルの割り当ておよび後処理を指定する) 1093

#-adsh_file_temp コマンド(一時ファイルの割り当ておよび後処理をする) 1095

JP1/Advanced Shell

24

9.5.8

9.5.9

9.6

9.6.1

9.6.2

9.6.3

9.6.4

9.6.5

9.7

9.7.1

9.5.3

9.5.4

9.5.5

9.5.6

9.5.7

10

10.1

10.3.7

10.3.8

10.3.9

10.3.10

10.3.11

10.3.12

10.3.13

10.3.14

10.2

10.3

10.3.1

10.3.2

10.3.3

10.3.4

10.3.5

10.3.6

10.3.15

10.3.16

10.3.17

10.3.18

#-adsh_job コマンド(ジョブ名を宣言する) 1096

#-adsh_job_stop コマンド(ジョブの打ち切り条件を定義する) 1097

#-adsh_path_var コマンド(パス名を扱うシェル変数を定義する) 1098

#-adsh_rc_ignore コマンド(常に正常終了するコマンドを定義する) 1100

#-adsh_script コマンド(実行中のジョブ定義スクリプトから外部のジョブ定義スクリプト

ファイルを呼び出す) 1102

#-adsh_spoolfile コマンド(プログラム出力データファイルの割り当てをする) 1103

#-adsh_step_start コマンド,#-adsh_step_error コマンド,#-adsh_step_end コマンド

(ジョブステップを定義する) 1104

スクリプト制御文 1109 case 文(複数処理からの選択) 1109

for 文(繰り返し実行) 1110

if 文(条件分岐) 1111

until 文(条件が成立するまでの繰り返し) 1112

while 文(条件が成立している間の繰り返し) 1113

スクリプト予約語コマンド 1115 time コマンド(コマンドの実行時間を出力する) 1115

スクリプト開発部品 1117

スクリプト開発部品の記述形式 1118

スクリプト開発部品の一覧 1119

スクリプト開発部品 1121

getArrayIndex(配列の値をキーにした添え字取得) 1122

isEmptyVar(変数の空文字判定) 1123

isInitVar(変数の初期化判定) 1124

sortArray(配列のデータのソート) 1125

deleteSpace(空白を削除した文字列の取得) 1127

getStrLen(文字列の文字数取得) 1128

getStrPos(文字列の位置取得) 1129

isLowerStr(文字列の半角英小文字の判定) 1130

isUpperStr(文字列の半角英大文字の判定) 1131

isNumericStr(数値判定) 1132

cmpDate(日付の比較) 1133

getCalcDate(加減算した日付の取得) 1135

getDate(現在の日付取得) 1136

getDateDiff (日付の経過日数の取得) 1137

getDay(日付から日の取得) 1138

getHour(時刻から時の取得) 1139

getMinute(時刻から分の取得) 1140

getMonth(日付から月の取得) 1141

JP1/Advanced Shell

25

10.3.27

10.3.28

10.3.29

10.3.30

10.3.31

10.3.32

10.3.33

10.3.34

10.3.19

10.3.20

10.3.21

10.3.22

10.3.23

10.3.24

10.3.25

10.3.26

10.3.35

10.3.36

10.3.37

10.3.38

getSecond(時刻から秒の取得) 1142 getTime(現在の時刻取得) 1142

getWeekday(日付から曜日の取得) 1143

getYear(日付から年の取得) 1144

isLeapYear(うるう年の判定) 1145

getFileMTime(ファイル・ディレクトリの日付と時刻取得) 1146

getFileSize(ファイルのサイズ取得) 1147

isDir(ディレクトリの存在有無判定) 1148

isEmptyDir(ディレクトリの内容有無判定) 1149

isFileOrDir(ファイル・ディレクトリの存在有無判定) 1150

isNormalFile(通常ファイルの存在有無判定) 1151

arrayToCsv(2 次元配列の値の CSV データ出力) 1152

convCsvSep(CSV データの区切り文字の変換) 1154

csvToArray(CSV データの 2 次元配列への格納) 1155

getCsvColumn(CSV データの空白行を意識したカラム取得) 1157

searchCsvColumn(CSV データの特定の列を対象とした検索によるレコード取得) 1158

getJsonValue(JSON データの名前に対応する値の取得) 1160

getXmlAttrValue(XML データの要素の属性値の取得) 1162

getXmlDecl(XML 宣言の取得) 1163

getXmlElem(XML データの要素の内容の取得) 1164

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

11

11.1

11.1.1

11.1.2

11.2

11.2.1

11.2.2

11.2.3

11.2.4

11.3

11.3.1

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

対処の手順 1168

ユーザー応答機能使用時の障害対応 1168

ルートジョブが子孫ジョブより先に終了した場合の注意事項 1169

トラブル発生時に採取が必要な資料 1170

ログ 1170

障害情報 1171

スプール情報 1171

ユーザー応答機能管理デーモンの情報【UNIX 限定】 1172

資料の採取方法 1173 adshcollect コマンド(資料を採取する) 1173

12

12.1

12.1.1

12.1.2

12.1.3

メッセージ 1181

メッセージの形式 1182

メッセージの出力形式 1182

メッセージの記載形式 1184

メッセージ番号の割り当て 1184

JP1/Advanced Shell

26

12.2

12.2.1

12.3

12.4

12.4.1

12.4.2

12.4.3

12.4.4

メッセージの出力先 1186

メッセージに出力される行番号に関する注意事項 1197

メッセージの一覧 1198

エラーの詳細 1483

エラーの詳細(Windows の場合) 1483

エラーの詳細(UNIX の場合) 1485

エラーの詳細(JP1/Advanced Shell 固有の場合) 1487

ユーザー応答機能で表示されるエラー情報の意味および対処方法 1488

付録 1493

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

付録 B.3

付録 C

付録 C.1

付録 C.2

付録 C.3

付録 C.4

付録 C.5

付録 C.6

付録 A.1

付録 A.2

付録 A.3

付録 A.4

付録 A.5

付録 B

付録 B.1

付録 B.2

付録 C.7

付録 C.8

付録 D

付録 D.1

付録 D.2

付録 D.3

付録 D.4

付録 E

カバレージ情報を取得するコマンド 1494

カバレージ情報を取得する制御文 1497

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

カバレージ情報を取得するメタキャラクタ 1499

カバレージ情報を取得するシェル変数の動作 1500

JP1/AJS 以外のジョブスケジューラから起動する場合【UNIX 限定】 1501

JP1/AJS 以外のジョブスケジューラから起動するための準備 1502

SCHEDULER_SELECT パラメーター(使用するジョブスケジューラを選択する) 1502

JP1/AJS 以外のジョブスケジューラから起動する際の注意事項 1503

各バージョンの変更内容 1505

11-00 での変更内容 1505

10-51 での変更内容 1506

10-50 での変更内容 1508

10-00-01 での変更内容 1510

10-00 での変更内容 1510

09-51-01 での変更内容 1513

09-51 での変更内容 1514

9-50-01 での変更内容 1516

このマニュアルの参考情報 1518

関連マニュアル 1518

このマニュアルでの表記 1519

ディレクトリの表記について 1520

KB(キロバイト)などの単位表記について 1520

用語解説 1521

索引 1531

JP1/Advanced Shell

27

第 1 編 概要編

1

JP1/Advanced Shell の概要

JP1/Advanced Shell は,バッチジョブのためのジョブ定義スクリプトを作成・実行するための

製品です。この章では,JP1/Advanced Shell の目的,業務への応用例,システムの全体構成,

処理の流れおよび機能概要について説明します。

JP1/Advanced Shell

28

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 エディタ(デバッグ機能付き専用エディ

タ)を使用した開発環境でジョブ定義スクリプトを開発し,デバッグできます。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

29

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

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

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

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

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

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

きます。

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

• バッチジョブの実行中に通常ファイルの存在チェック,およびジョブステップまたはジョブの結果

によるファイルの後処理ができます。

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

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

従来,オープンシステムでのバッチジョブの実行結果は,格納先が一元化されていなかったため管理が煩

雑でした。JP1/Advanced Shell で運用した場合,ジョブ実行ログを採取することで,バッチジョブの実

行結果をスプールに集めて一元管理できます。また,JP1/AJS - View を使用することで,ジョブ定義ス

クリプトの実行を自動化して定期的にバッチジョブを実行したり,バッチジョブの実行結果も参照したり

できます。

各ジョブの実行結果は,スプールディレクトリの下にスプールジョブのディレクトリとして出力されます。

バッチジョブの実行結果の一元管理を次の図に示します。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

30

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

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

トラブルシューティングでは,ジョブ実行ログやシステム実行ログ,トレースログなどの資料を採取して,

トラブルが発生した場合に対処できます。詳細については,「

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

」を参照して

ください。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

31

1.2 業務への応用例

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

日中にオンラインシステムで多数の取引があり,夜間にその集計をする業態であれば,例えば,売り上げ

や商品の販売数,在庫数などを集計するバッチジョブを開発し,実行できます。また,日次処理,月次処

理,期末処理といった定型集計用だけでなく,特定の用途や,臨時のタイミングで使用するバッチジョブ

も開発・実行できます。

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

図 1-3 JP1/Advanced Shell の運用例(日々の営業集計の場合)

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

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

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

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

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

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

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

32

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 のシステムの全体構成

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

開発します。

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

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

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

33

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

• JP1/AJS を使った自動実行

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

5. 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. JP1/Advanced Shell の概要

JP1/Advanced Shell

34

図 1-6 JP1/Advanced Shell の運用の流れ(JP1/AJS と連携する場合)

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

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

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

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

を実行します。

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

源の解放

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

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

します。

1.3.2 JP1/Advanced Shell の機能を使って Java のバッチアプリケーショ

ンを実行するときの処理の流れ【Windows,Linux(R),AIX,HP-UX

限定】

JP1/Advanced Shell が提供する adshjava コマンドを使用して,Java のバッチアプリケーションを実行

できます。この場合の処理の流れを次の図に示します。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

35

図 1-7 JP1/Advanced Shell が提供する adshjava コマンドを使用して Java のバッチアプリ

ケーションを実行する場合の処理の流れ

1. JP1/Advanced Shell は,uCosminexus Application Server に対して Java のバッチアプリケーショ

ンの実行を指示します。

2. JP1/Advanced Shell から指示された内容に従って,uCosminexus Application Server は Java の

バッチアプリケーションを実行します。

また,adshjava コマンドを使用して Java のバッチアプリケーションを実行した場合,ジョブを強制終了

させると,JP1/Advanced Shell は uCosminexus Application Server によって実行中の Java のバッチ

アプリケーションに対して cjkilljob コマンドを実行し,Java のバッチアプリケーションを自動的に停止

させます。

詳細については,「 3.3 adshjava コマンドを使用して Java のバッチアプリケーションを実行する

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

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

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

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

ユーザー応答機能は JP1/IM と連携して,指定した文字列を JP1 イベントとして発行します。ユーザー応

答機能を使用する場合の処理の流れを次の図に示します。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

36

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

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

として発行します。

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

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

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

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

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

1.3.4 アプリケーション実行エージェント機能を使用するときの処理の流れ

アプリケーション実行エージェント機能は,ジョブコントローラから独立して動作することが可能であり,

次のことができます。

• JP1/AJS のジョブの実行で Excel やユーザーが VC++などで独自に作った対話操作のプログラムなど

を実行できます。

<実行例>

1. Excel を新規で起動して,Excel 上で日付,担当,作業内容確認のチェックボックスなどの特定情

報を入力してから Excel 全体を閉じて,後続ジョブで特定のフォルダに移動させます。

2. ユーザーが VC++などで独自に作った対話プログラムを実行し,OK ボタンを押すなどして対話

GUI が終了したらジョブが継続します。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

37

• JP1/AJS から GUI 画面を表示し,自動応答するツールを使用する機能を持つほかの製品のプログラム

を実行できます。

<実行例>

1. JP1/AJS の PC ジョブの定義に指定する JP1/AS の GUI アプリケーション実行プログラムの引数

に,ほかの製品のプログラムを指定します(アプリケーション実行エージェント機能のカスタムジョ

ブを使用することもできます)。

2. 1 の PC ジョブを実行すると,JP1/AJS - Agent で GUI 画面を表示して自動応答し,ジョブが終了

します。

アプリケーション実行エージェント機能は,アプリケーション実行エージェントプログラムと GUI アプリ

ケーション実行プログラムが連携して,ユーザーが指定した実行アプリケーションを実行します。アプリ

ケーション実行エージェント機能を使用する場合の処理の流れを次に示します。

詳細については,「 3.12 アプリケーション実行エージェント機能を使用する【Windows 実行環境限定】

を参照してください。

(1) 実行アプリケーションの終了を待つ場合【Windows 実行環境限定】

実行アプリケーションの終了を待つ場合の処理の流れを次に示します。

1. Windows のスタートアップなど,あらかじめアプリケーション実行エージェントプログラムを実行

ユーザーごとに起動しておきます(1)。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

38

2. 実行アプリケーションを動作させることが必要となった場合,引数-w を指定し,GUI アプリケーショ

ン実行プログラムを起動します(2)。

3. アプリケーション実行エージェントプログラムは,GUI アプリケーション実行プログラムが起動する

と実行アプリケーションを起動します(3)。

4. 実行アプリケーションが終了すると GUI アプリケーション実行プログラムは,終了します(点線の矢

印の流れ)(4)。

5. アプリケーション実行ログは,アプリケーション実行エージェントプログラム,および GUI アプリケー

ション実行プログラム実行時のログを格納します(5)。

(2) 実行アプリケーションの終了を待たない場合【Windows 実行環境限定】

実行アプリケーションの終了を待たない場合の処理の流れを次に示します。

1. Windows のスタートアップなど,あらかじめアプリケーション実行エージェントプログラムを実行

ユーザーごとに起動しておきます(1)。

2. 実行アプリケーションを動作させることが必要となった場合,引数-nを指定し,GUI アプリケーショ

ン実行プログラムを起動します(2)。

3. アプリケーション実行エージェントプログラムは,GUI アプリケーション実行プログラムが起動する

と実行アプリケーションを起動します(3)。

4. 実行アプリケーションを起動すると GUI アプリケーション実行プログラムは,終了します(点線の矢

印の流れ)(4)。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

39

5. アプリケーション実行ログは,アプリケーション実行エージェントプログラム,および GUI アプリケー

ション実行プログラム実行時のログを格納します(5)。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

40

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

クラスタシステムとは,複数のサーバシステムを用いて 1 つのシステムとして運用するシステムで,1 つ

のサーバで障害が発生しても,別のサーバで業務を継続できるように構成するシステムです。クラスタシ

ステムでは,ホストを次のように分類します。

• 業務の実行中のサーバ(実行系サーバ)

• 実行系サーバの障害に備えて,業務を引き継げるよう待機しているサーバ(待機系サーバ)

業務を実行している実行系サーバに障害が発生した場合は,待機系サーバに業務を引き継ぐことができま

す。この障害時に業務を引き継ぐ機能のことを系切り替えと呼びます。また,系切り替え時にフェールオー

バーの単位となる論理的なサーバのことを論理ホストと呼びます。

クラスタシステムで実行されるアプリケーションは,系切り替え後も業務を継続するために,論理ホスト

環境で動作させる必要があります。論理ホストで動作するアプリケーションは,物理的なサーバに依存し

ないで,任意のサーバで動作できます。

論理ホストは次の要素で構成されています。デーモン・サービスとして動作するアプリケーションは,共

有ディスクにデータを格納し,論理 IP アドレスで通信します。

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

論理ホストの構成要素 構成要素の説明

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

実行系サーバの論理ホストで障害が発生すると,待機系サーバの論理ホストで同じ名称のデーモン・

サービスを起動します。

共有ディスク

論理 IP アドレス

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

系切り替え時に引き継ぐ情報(定義情報,実行状況など)を保存すると,実行系サーバの論理ホスト

で障害が発生した場合,待機系サーバが共有ディスクへの接続を引き継ぎます。

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

実行系サーバで障害が発生したときは,同じ論理 IP アドレスの割り当てを待機系サーバが引き継ぎ

ます。そのため,クライアントからは同じ IP アドレスでアクセスでき,1 つのサーバが常に動作し

ているように見えます。

注意事項 

このマニュアルでは,系切り替え時にフェールオーバーの単位となる論理的なサーバのことを「論

理ホスト」という用語を使いますが,クラスタソフトやアプリケーションによっては「グループ」

や「パッケージ」などの用語が使われています。クラスタソフトのマニュアルなどを参照し,対応

する用語を確認してください。

また,系切り替え時にフェールオーバーの単位となる論理的なサーバを論理ホストと呼ぶのに対し

て,物理的なサーバを「物理ホスト」と呼びます。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

41

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

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

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

• 正常時のアクセス

実行系サーバが稼働している間は,実行系サーバで共有ディスクや論理 IP アドレスが割り当てられて

デーモン・サービスが動作します。

• 系切り替え後のアクセス

実行系サーバで障害が発生した場合,待機系サーバが共有ディスクと論理 IP アドレスを引き継ぎ,実

行系サーバと同じデーモン・サービスを起動します。系切り替えによって物理的なサーバが変わった場

合でも,待機系サーバが共有ディスクと論理 IP アドレスを引き継ぐため,クライアントには同じ IP ア

ドレスのサーバが動作しているように見えます。

JP1/Advanced Shell を論理ホスト環境で動作させるためには,系切り替え時に引き継ぎが必要なデータ

を格納するための共有ディスク,および論理 IP アドレスが必要となります。また,ユーザー応答機能を使

用する場合は,クラスタソフトがユーザー応答機能管理デーモン・サービスの,起動・動作監視・停止を

制御できるように,クラスタソフトで設定する必要があります。

論理ホスト環境で実行される JP1/Advanced Shell は,共有ディスクに格納したデータを使用し,系切り

替え時に実行系サーバから待機系サーバにジョブを実行する環境を引き継ぐことができます。そのために

JP1/Advanced Shell はスプールを共有ディスクに格納する必要があります。ただし,系切り替え時に実

行中のジョブを継続して実行することはできません。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

42

JP1/Advanced Shell でクラスタ運用に対応するための設定については,「 2.9 クラスタ構成で運用する 」

を参照してください。

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

43

1.5 機能概要

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

表 1-3 JP1/Advanced Shell の機能

機能

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

関連項目

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

環境ファイルを設定する

シェルスクリプトの文法に従って

ジョブ定義スクリプトを作成する

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

条件判定

算術演算

シェル変数

ジョブ定義スクリプトからファイル

を使用する

シェルオプション

通常ファイル

一時ファイル

ジョブの実行を制御する

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

ジョブ名を宣言する

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

参照先

2.5 環境変数を設定

する

2.6 JP1/Advanced

Shell の環境情報を設定

する ,

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 スクリプト

拡張コマンド

44

機能

ジョブの実行を制御する

シェルスクリプト中でジョブの情報

を取得する

関連項目

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

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

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

(2) 常に正常終了する

コマンドを定義する

9.5 スクリプト拡張コ

マンド

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

2.6.9 スクリプト拡張

コマンドの終了コード

を定義する ,

7.3 環境

設定パラメーター

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

参照先

5.8.2 ジョブの打ち切

り条件を定義する ,

9.5 スクリプト拡張コ

マンド

5.8.3 ジョブステップ

を定義する ,

9.5 スク

リプト拡張コマンド

子孫ジョブを起動する

ジョブを強制終了する

5.8.6 実行中のジョブ

定義スクリプトから外

部のジョブ定義スクリ

プトファイルを呼び出

す ,

9.5 スクリプト拡

張コマンド

2.6.5 子孫ジョブとし

て起動するファイルを

定義する ,

(1) ルート

ジョブと子孫ジョブ

3.2.3 ジョブ定義スク

リプトを子孫ジョブと

して実行する ,

5.1.11 外部コマンド

の指定 ,

7.3 環境設定

パラメーター

2.6.21 ジョブ強制終

了時にユーザー固有の

後処理を実行する ,

3.11 ジョブを強制終

了する ,

7.3 環境設定

パラメーター

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

する

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

5.5.1 JP1/

Advanced Shell が設

定するシェル変数

2.5 環境変数を設定す

る ,

5.7 ジョブ情報の

環境変数

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

45

機能

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

コマンドを実行する

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

報を採取する

※2

※2

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

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

同じジョブ定義スクリプトを異なる

プラットフォームで使用する

関連項目

※1

シェル運用コマンド

UNIX 互換コマンド

シェル標準コマンド

シェル拡張コマンド

スクリプト拡張コマンド

スクリプト制御文

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

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

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

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

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

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

Windows と UNIX の両方で使用できるようにジョブ定義ス

クリプトを変換する

9.6 スクリプト制御文

9.7 スクリプト予約語

コマンド

2.7.1 JP1/AJS -

View でカスタムジョ

ブを登録する

9.4 シェル拡張コマ

ンド

9.4 シェル拡張コマ

ンド

8.3 シェル運用コマ

ンド

7.3 環境設定パラメー

ター

8.3 シェル運用コマ

ンド

2.6.2 パス名を変換す

2.6.3 ファイルの

入出力時にファイルパ

スを変換する

2.6.4 

コマンド実行時に引数

参照先

4. JP1/Advanced

Shell - Developer を

使用する【Windows

限定】

5. ジョブ定義

スクリプトの作成

8.3 シェル運用コマ

ンド

2.6.6 UNIX 互換コマ

ンドを使用するための

定義をする

8.4 

UNIX 互換コマンド

8.5 UNIX 互換コマン

ド(スクリプト形式)

【Windows 限定】

9.3 シェル標準コマ

ンド

9.4 シェル拡張コマ

ンド

9.5 スクリプト拡張コ

マンド

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

46

機能

同じジョブ定義スクリプトを異なる

プラットフォームで使用する

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

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

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

する

関連項目

Windows と UNIX の両方で使用できるようにジョブ定義ス

クリプトを変換する

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

参照先

を変換する

2.6.12 

ジョブ定義スクリプト

を UNIX から

Windows へ移行する ,

7.3 環境設定パラメー

ター

2.6.6 UNIX 互換コマ

ンドを使用するための

定義をする

8.4 

UNIX 互換コマンド

8.5 UNIX 互換コマン

ド(スクリプト形式)

【Windows 限定】

3.9 スプールジョブを

削除する ,

8.3 シェル

運用コマンド

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

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

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

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

CUI でデバッグする

※3

3.10 カバレージ情報

を取得する ,

8.3 シェ

ル運用コマンド

付録

A カバレージ情報を取

得する対象

3.10 カバレージ情報

を取得する ,

8.3 シェ

ル運用コマンド

3.10 カバレージ情報

を取得する ,

8.3 シェ

ル運用コマンド

3.10 カバレージ情報

を取得する

8.3 シェル運用コマ

ンド

6.1.2 CUI でのデ

GUI でデバッグする

※1

6.1.4 デバッガのコマ

ンド一覧【UNIX 限

定】

6.1.5 ジョブ定

義スクリプトの構成要

素に対する停止可否

6.2 CUI のデバッガ

【UNIX 限定】

4.2.2 デバッグモー

4.4.6 デバッグを

する ,

6.1.1 GUI で

のデバッグ

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

47

機能

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

する

関連項目

GUI でデバッグする

※1

参照先

6.1.3 GUI デバッガ

の機能一覧

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

6.1.5 ジョブ定義スク

リプトの構成要素に対

する停止可否

1.1.3 バッチジョブの

実行結果の一元管理に

よる運用性・保守性の

向上

3.5 ジョブ実行

ログ

アプリケーション実行エージェント機能を使用する。

トラブルシューティング

※1

 

※2

ジョブ実行ログ,システム実行ログ,トレースログなどの資料

を採取する

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

する

2.11 アプリケーショ

ン実行エージェント機

能を設定する

【Windows 実行環境限

定】

8.3 シェル運用コマ

ンド

9.4 シェル拡張コマ

ンド

11. トラブルシュー

ティング

8.3 シェル運用コマン

11. トラブル

シューティング

注※1

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

注※2

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

注※3

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

1. JP1/Advanced Shell の概要

JP1/Advanced Shell

48

第 2 編 構築編

2

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

プログラムのインストール先と種類,前提条件,インストール,環境情報の設定,カスタムジョ

ブの登録などの JP1/Advanced Shell を利用するために必要な項目について説明します。

JP1/Advanced Shell

49

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

JP1/Advanced Shell のプログラムのインストール先は,使用する OS によって異なります。Windows

環境の場合は,インストール先をデフォルトから変更できます。UNIX 環境の場合は,固定のディレクト

リになります。

この節では,JP1/Advanced Shell のプログラムのインストール先ディレクトリと,JP1/Advanced Shell

が出力・参照する各種ファイルを格納するディレクトリの構成について説明します。

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

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

Windows ではインストール先として任意のフォルダを指定できます。指定したインストール先フォルダ

の下には環境ごとに次のフォルダが生成されます。

インストールする環境

実行環境

開発環境

実行環境に含まれるカスタムジョブ定義プログラム

(JP1/Advanced Shell - Custom Job)

インストール先

インストール先フォルダ

\

JP1ASE

インストール先フォルダ

\

JP1ASD

インストール先フォルダ

\

JP1ASV

備考

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

します。

クライアント PC にインストールする

ことを推奨します。

JP1/AJS - View をインストールしてい

る運用管理端末にインストールします。

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

インストール先フォルダ

※1

├─JP1ASD :開発環境フォルダ

│ ├─bin :プログラムのフォルダ

│ ├─cmd :UNIX互換コマンドのフォルダ

│ ├─doc :ヘルプのフォルダ

│ │ ├─en :ヘルプ(英語版)のフォルダ

│ │ └─ja :ヘルプ(日本語版)のフォルダ

│ ├─maintenance :障害発生時に使用するフォルダ

│ ├─parts :スクリプト開発部品のフォルダ

│ │ ├─en :スクリプト開発部品(英語版)のフォルダ

│ │ └─ja :スクリプト開発部品(日本語版)のフォルダ

│ └─sample :サンプルデータのフォルダ

├─JP1ASE :実行環境フォルダ

│ ├─bin :プログラムのフォルダ

│ ├─cmd :UNIX互換コマンドのフォルダ

│ ├─doc :ヘルプのフォルダ

│ │ ├─en :ヘルプ(英語版)のフォルダ

│ │ └─ja :ヘルプ(日本語版)のフォルダ

│ ├─maintenance :障害発生時に使用するフォルダ

│ ├─parts :スクリプト開発部品のフォルダ

│ │ ├─en :スクリプト開発部品(英語版)のフォルダ

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

JP1/Advanced Shell

50

│ │ └─ja :スクリプト開発部品(日本語版)のフォルダ

│ ├─sample :サンプルデータのフォルダ

│ └─util─setup.exe :カスタムジョブ定義プログラムのインストーラ

└─JP1ASV :カスタムジョブ定義プログラムのフォルダ

├─bin :プログラムのフォルダ

├─doc─ja─help─INDEX.HTM :ヘルプ(マニュアル)

├─image─custom :カスタムジョブアイコンのフォルダ

│ ├─CUSTOM_PC_ADSHPC.gif :PCジョブのカスタムジョブアイコン

│ ├─CUSTOM_PC_ADSHUX.gif :UNIXジョブのカスタムジョブアイコン

│ └─CUSTOM_PC_ADSHAPPEXEC.gif :GUIアプリケーション実行ジョブのカスタムジョブ

アイコン

※2

└─maintenance :障害発生時に使用するフォルダ

注※1

インストール先フォルダに&[]{}^=;!'+,`~#%の記号を含まないでください。記号を含むインストール

先フォルダにインストールした場合,正常に動作しません。

注※2

JP1/AJS3 - View 11-00 より古い製品がインストールされている場合にカスタムジョブ定義プログラ

ムをインストールするときは,カスタムジョブアイコンを次のフォルダにコピーする必要があります。

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:スプールフォルダ

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

JP1/Advanced Shell

51

│ └─temp :一時ファイル用フォルダ

├─JP1ASE :実行環境フォルダ

│ ├─log :システム実行ログフォルダ

│ ├─appexec:アプリケーション実行エージェント機能ログフォルダ

│ ├─spool:スプールフォルダ

│ └─temp :一時ファイル用フォルダ

└─misc :製品共通ライブラリのフォルダ

└─log :ログフォルダ

(4) プログラムの種類

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

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

格納フォルダ

インストール先

フォルダ\各環

境のフォルダ

1

\ bin

ファイル名 adshappagent.exe

adshappexec.exe

プログラムの概要

(括弧内:アイコン)

説明

アプリケーション実

行エージェントプロ

グラム

GUI アプリケーショ

ン実行プログラム

( )

実行環境で実行アプリケーションを実行するプログラム。

このプログラムのスタートアップへの登録,解除も行いま

す。

実行環境で実行アプリケーションを実行する場合に,アプ

リケーション実行エージェントプログラムに連絡するプロ

グラムです。 adshchmsg.exe

adshctmj.exe

adshctmjapp.exe

adshctmjapp.bat

adshctmjpc.bat

adshctmjunix.bat

adshcvmerg.exe

障害発生時の応答要

求メッセージに対す

る手動応答

JP1/Advanced

Shell 実行定義プロ

グラム( )

障害発生時に,応答要求メッセージに対して手動で応答す

る場合に使用するコマンドです。Administrators 権限を持

つユーザーが使用します。

カスタムジョブ定義プログラムで JP1/Advanced Shell の

実行環境を定義するプログラムです。

GUI アプリケーショ

ン実行定義プログラ

ム( )

カスタムジョブ定義プログラムで GUI アプリケーション

の実行環境を定義するプログラムです。

GUI アプリケーショ

ン実行定義プログ

ラム

PC ジョブの JP1/

Advanced Shell 実

行定義プログラム

UNIX ジョブの

JP1/Advanced

Shell 実行定義プロ

グラム

カバレージ情報の

マージ

カスタムジョブ定義プログラムで GUI アプリケーション

の実行環境を定義するプログラムです。

カスタムジョブ定義プログラムで PC ジョブの JP1/

Advanced Shell の実行環境を定義するプログラムです。

カスタムジョブ定義プログラムで UNIX ジョブの JP1/

Advanced Shell の実行環境を定義するプログラムです。

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

発環境で使用できます。

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

JP1/Advanced Shell

52

格納フォルダ

インストール先

フォルダ\各環

境のフォルダ

1

\ bin

インストール先

フォルダ\各環

境のフォルダ

1

\ cmd

ファイル名 adshcvshow.exe

adshcvview.exe

adshedit.exe

adshesub.exe

adshevtout.exe

adshexec.exe

adshexecsub.exe

adshfile.exe

adshhk.exe

adshlsmsg.exe

adshmsvcd.exe

adshmsvce.exe

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

プログラムの概要

(括弧内:アイコン)

説明

コマンドからのカバ

レージ情報の表示

エディタからのカバ

レージ情報の表示

JP1/Advanced

Shell エディタ

( )

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

環境で使用できます。

カバレージ情報を表示するプログラムです。開発環境のエ

ディタからカバレージ情報を表示できます。

開発環境でジョブ定義スクリプトを編集するエディタで

す。アイコンをダブルクリックすると,JP1/Advanced

Shell エディタが開きます。

エディタでのデバッ

開発環境でジョブ定義スクリプトをデバッグするプログラ

ムです。このプログラムは adshedit.exe から自動的に起

動されます。

ジョブ定義スクリプ

トの稼働実績情報の

出力

実行環境で,ジョブ定義スクリプトの稼働実績情報を CSV

形式で出力するコマンドです。

バッチジョブの実行 ジョブ定義スクリプトを解析して実行を制御するジョブコ

ントローラを起動するコマンドです。

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

マンドは adshexec.exe から自動的に起動されます。

ファイルの後処理

登録

スプールジョブの

削除

障害発生時の応答要

求メッセージの一覧

表示

ユーザー応答機能管

理サービス

指定したファイルをジョブステップまたはジョブの終了時

にどのように処置するかを定義するコマンドです。実行環

境と開発環境で使用できます。

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

環境で使用できます。

障害発生時に,応答要求メッセージの一覧を表示するコマ

ンドです。Administrators 権限を持つユーザーが使用しま

す。

ユーザー応答機能のための共有メモリを管理するサービス

を登録するコマンドです。開発環境で使用できます。

Administrators 権限を持つユーザーが使用します。

UNIX 互換コマンド

※2

ユーザー応答機能のための共有メモリを管理するサービス

を登録するコマンドです。実行環境で使用できます。

Administrators 権限を持つユーザーが使用します。

UNIX のバッチ業務で主に使われるコマンドを Windows

環境で使用できるようにした,UNIX 互換コマンドです。

実行環境と開発環境で使用できます。

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

JP1/Advanced Shell

53

格納フォルダ

インストール先

フォルダ\各環

境のフォルダ

1

\ cmd

インストール先

フォルダ\各環

境のフォルダ

1

\ maintenanc e

ファイル名 getopt.exe, grep.exe, gunzip.exe, gzip.exe,head.exe, hostname.exe, ln.exe,ls.exe, mkdir.exe,mv.exe, paste.exe, printf.exe,rm.exe, rmdir.exe,sed.exe, sleep.exe,sort.exe, split.exe,stat.exe, tail.exe,tar.exe, touch.exe, uname.exe, uniq.exe,wc.exe, which.exe

adshcollect.bat

プログラムの概要

(括弧内:アイコン)

説明

UNIX 互換コマンド

※2

UNIX のバッチ業務で主に使われるコマンドを Windows

環境で使用できるようにした,UNIX 互換コマンドです。

実行環境と開発環境で使用できます。

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

実行環境と開発環境で使用できます。

注※1

各環境のフォルダ

は,開発環境フォルダの場合は「JP1ASD」,実行環境フォルダの場合は「JP1ASE」,

カスタムジョブ定義プログラムのフォルダの場合は「JP1ASV」です。

注※2

UNIX 互換コマンドにはこのほかに chmod コマンド,su コマンドおよび who コマンドがあります。 chmod コマンド,su コマンドおよび who コマンドを使用する場合は,JP1/Advanced Shell が提供

するサンプルスクリプトファイルを「 (2) スクリプト形式の UNIX 互換コマンドを使うための準備

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

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

UNIX の実行環境は,固定のディレクトリ(/opt/jp1as)にインストールされます。UNIX 環境には,開

発環境はありません。

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

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

JP1/Advanced Shell

54

/opt/jp1as

├─bin :プログラムのディレクトリ

├─cmd :UNIX互換コマンドのディレクトリ

├─conf :システム環境ファイル格納ディレクトリ

├─instlog :インストールのログ情報のディレクトリ

├─lib :ライブラリのディレクトリ

│ └─nls :メッセージカタログ格納ディレクトリ

├─log :システム実行ログのディレクトリ

├─maintenance :障害発生時に使用するディレクトリ

├─parts :スクリプト開発部品のディレクトリ

│ ├─en :スクリプト開発部品(英語版)のディレクトリ

│ └─ja :スクリプト開発部品(日本語版)のディレクトリ

├─sample :サンプルデータのディレクトリ

├─sbin :システム管理者用プログラムのディレクトリ

├─system :ユーザー応答機能管理デーモンが使用するディレクトリ

├─trace :トレースのディレクトリ

└─util─setup.exe :カスタムジョブ定義プログラムのインストーラ

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

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

/var/opt/jp1as─spool :スプールディレクトリ

└─temp :一時ファイル用ディレクトリ

(3) プログラムの種類

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

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

格納ディレク

トリ

ファイル名 プログラムの

概要

説明

/opt/jp1as/bin adshcvmerg カバレージ情報をマージするコマンドです。 adshcvshow adshevtout adshexec adshfile adshhk

カバレージ情報

のマージ

カバレージ情報

の表示

ジョブ定義スク

リプトの稼働実

績情報の出力

バッチジョブの

実行

ファイルの後処

理登録

スプールジョブ

の削除

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

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

コマンドです。

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

指定したファイルをジョブステップまたはジョブの終了時に

どのように処置するかを定義するコマンドです。

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

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

JP1/Advanced Shell

55

格納ディレク

トリ

/opt/ jp1as/cmd

ファイル名 プログラムの

概要 awk,basename, cat,cmp,cp,cut, date, diff ,dirname, egrep,expand, expr, find ,getopt, grep,gunzip,gzip, head,hostname, ln,ls,mkdir,mv, paste,printf,rm, rmdir,sed,sleep, sort,split,stat, tail,tar,touch, uname,uniq,wc, which

UNIX 互換コマ

ンド adshcollect 資料の採取

説明

ジョブ定義スクリプトから UNIX コマンドを使用できるよう

にしたものです。

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

/opt/jp1as/ sbin adshchmsg adshlsmsg adshmdctl

障害発生時の応

答要求メッセー

ジに対する手動

応答

障害発生時の応

答要求メッセー

ジの一覧表示

ユーザー応答機

能管理デーモン

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

場合に使用するコマンドです。スーパーユーザー権限を持つ

ユーザーが使用します。

障害発生時に,応答要求メッセージの一覧を表示するコマン

ドです。スーパーユーザー権限を持つユーザーが使用します。

ユーザー応答機能のための共有メモリを管理するデーモンを

起動および停止するコマンドです。スーパーユーザー権限を

持つユーザーが使用します。

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

JP1/Advanced Shell

56

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

ここでは,システム構成,前提プログラム,関連プログラムおよび使用するファイルなど,インストール

前の検討事項について説明します。

2.2.1 システム構成

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

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

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

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

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

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

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

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

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

JP1/Advanced Shell

57

• 運用管理端末: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. JP1/Advanced Shell を利用するための準備

JP1/Advanced Shell

58

図 2-3 uCosminexus Application Server と連携する場合のシステム構成(スケジューリング

機能を使用しない場合)

図 2-4 uCosminexus Application Server と連携する場合のシステム構成(スケジューリング

機能を使用する場合)

詳細については,「 3.3 adshjava コマンドを使用して Java のバッチアプリケーションを実行する

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

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

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

JP1/Advanced Shell

59

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

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

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

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

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

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

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

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

サーバの種類

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

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

OS

Windows

AIX,

HP-UX,

Linux,または

Solaris

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

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

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

JP1/Advanced Shell

60

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

サーバの種類 実施する処理

JP1/Advanced Shell と同じバッチ業務サーバ JP1/AJS からジョブ定義スクリプトを実行

する

運用管理サーバ

運用管理端末【Windows 限定】

ジョブを管理する

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

プログラム

JP1/Base

JP1/AJS - Agent

JP1/Base

JP1/AJS - Manager

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 限定】

サーバの種類

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

OS

Windows

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

JP1/Advanced Shell

61

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

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

表 2-8 開発環境の関連プログラム(ユーザー応答機能を使用する場合)

サーバの種類

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

運用管理サーバ

運用管理端末

プログラム

JP1/Base

JP1/IM - Manager

JP1/Base

JP1/IM - View

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

ではありません。

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

【Windows 限定】

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

カスタムジョブ定義プログラムの前提プログラムを次の表に示します。カスタムジョブ定義プログラムは

Windows 限定となりますが,Windows と UNIX のジョブの定義を作成できます。

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

サーバの種類

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

OS およびプログラム

• OS

Windows

• プログラム

JP1/AJS - View

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

カスタムジョブ定義開発環境の関連プログラムをサーバごとに示します。

表 2-10 開発環境の関連プログラム(uCosminexus Application Server と連携して Java の

バッチアプリケーションを実行する場合)

サーバの種類 プログラム

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

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

JP1/Advanced Shell

62

表 2-11 開発環境の関連プログラム(ユーザー応答機能を使用する場合)

サーバの種類

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

運用管理サーバ

運用管理端末

プログラム

JP1/Base

JP1/IM - Manager

JP1/Base

JP1/IM - View

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

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

JP1/Advanced Shell で使用するファイルを次の表に示します。ファイルサイズが 2GB を超えられるかど

うかは,「 (2) 2GB を超過するファイル(ラージファイル)の扱い 」を参照してください。

表 2-12 JP1/Advanced Shell で使用するファイル

ファイル名

(アイコン)

ジョブ定義スク

リプトファイル

( )

拡張子

.ash

ファイルの位置

ユーザー任意

ファイルの内容

ジョブ定義スクリプトを保存するファイルです。ファイ

ル名は,ユーザー任意に指定できます。

環境ファイル

※1

.ase

ユーザー任意

.ase

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

す。

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

ファイル

カバレージ情報

ファイル

デバッグ情報

ファイル

システム実行

ログ

※1

トレースログ

※1

一時ファイル

.asc

.asd

.log

.log

.tmp

「 システム環境ファイルの設定

」を

参照してください。

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

ジョブ定義スクリプトファイルと同

じディレクトリ

※2

環境ファイルの LOG_DIR パラメー

ターで指定したディレクトリ

• adshexec コマンドの場合,環境

ファイルの TRACE_DIR パラ

メーターで指定したディレク

トリ

• 上記以外の場合,プログラムで

規定したディレクトリ

• #-adsh_file_temp コマンドで指

定した一時ファイルの場合,環

境ファイルの TEMP_FILE_DIR

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

バッチジョブの実行履歴を統括的に参照するためのシス

テム管理者向けのログ情報です。

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

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

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

JP1/Advanced Shell

63

ファイル名

(アイコン)

一時ファイル

拡張子

.tmp

カバレージ表示

一時ファイル

.txt

起動ログ

【UNIX 限定】 pid ファイル

【UNIX 限定】

アプリケーショ

ン実行エージェ

ント機能ログ

※1

【Windows 実行

環境限定】

.log

.pid

.log

ファイルの位置 ファイルの内容

パラメーターで指定したディレ

クトリ

• 上記以外の場合,プログラムで

規定したディレクトリ

システムで規定する一時ファイル

ディレクトリ

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

カバレージ情報の表示で使用する一時ファイルです。

ファイル名の形式を次に示します。 adshexec_view_ジョブ定義スクリプトファイル名_年

月日_時分秒.txt

/opt/jp1as/system

/opt/jp1as/system

共有ドキュメントフォルダ¥ Hitachi

¥JP1AS¥ JP1ASE¥ appexec

ユーザー応答機能管理デーモンの起動・停止時に採取さ

れるログ情報です。

ユーザー応答機能管理デーモンと adshmdctl コマンド

で使用するファイルです。

アプリケーション実行エージェント機能の内部ログです。

注※1

これらのファイルは adshcollect コマンドで採取できます。採取方法については,「

adshcollect コマ

注※2

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

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

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

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

• ディレクトリ区切り文字は,Windows であれば「¥」

,UNIX であれば「/」を使用できます。

それ以外の文字を使用した場合の動作は保証できません。

UNIX のディレクトリ区切り文字に「¥」を使用した場合,ディレクトリ区切り文字とはみなされ

ず,正しく動作しません。

Windows のディレクトリ区切り文字に「/」を使用した場合,ディレクトリ区切り文字とみなされ

ることがあります。ただし,使用方法によってはディレクトリ区切り文字とみなされず,正しく動

作しないこともあります。

注※

ジョブ定義スクリプトに記述した「¥」はエスケープ文字と見なされるため,「¥¥」と記述するか,

シングルクォーテーションで囲んでください。

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

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

JP1/Advanced Shell

64

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

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

• ファイル名に予約デバイス名(CON,AUX,NUL など)は使用しないでください。【Windows

限定】

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

• ジャンクションは使用しないでください。【Windows 限定】

• ファイル名やパス名には UNC 形式の名称(例:

\\コンピュータ名\共有名\ファイル名

)を使用で

きますが,パス名の最後が「

共有名

」(または「

共有名\

」)にならないように指定してください。ま

た,シェル標準コマンドの cd コマンドには UNC 形式を指定できません。【Windows 限定】

【使用できる UNC 形式】

 

\\ server

\ share

\ dir

 

\\

10.111.222.33

\ share

\ dir

【使用できない UNC 形式】

 

\\ 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 設計ガイド(システム構築編)」を参照してください。

なお,スプールジョブ作成抑止機能を使用している場合は,ジョブ定義スクリプトの実行時にスプール

ジョブは作成されません。スプールジョブ作成抑止機能については,「 (a) スプールジョブ作成抑止機

能の使用有無を決定する

」を参照してください。

• リダイレクト指定のうち,「 >file 」,「< file 」,「 >>file 」,「>

| file 」,「 <>file 」,「 n>file 」および

「 n<file 」で指定するファイル

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

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

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

JP1/Advanced Shell

65

• シェル拡張コマンドのうち,adshmktemp コマンドで作成するファイル

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

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

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

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

• 大きいサイズのファイルを指定するとメモリを大量に消費する UNIX コマンド( diff コマンド,sort

コマンド)を実行する場合

ラージファイルの使用可否は,ファイルシステムの種類や OS の設定(例:ulimit の設定)によって異な

るため,ラージファイルが使用できる環境であることを運用設計前に確認してください。

(3) ファイルシステムに関する注意事項

JP1/Advanced Shell で使用する場合に注意が必要なファイルシステムを次に示します。

• NFS

サポートしません。

• HSFS

HSFS を使用する場合,次の注意事項があります。

• HSFS 上に JP1/Advanced Shell をインストールできません。

• HSFS 上にシステム実行ログおよびトレースを作成できません。

• ユーザー応答機能を使用する場合,スプールジョブディレクトリを HSFS 上に設定できません。

• HSFS 07-00 より前のバージョンを使用する場合,UNIX 互換コマンドを使って HSFS 上のファイ

ルおよびディレクトリを参照・更新するには,事前に HSFS のシステムオプションである

CPFS_CACHE_POLICY に NOCACHE を指定する必要があります。

• HSFS 07-00 以降のバージョンを使用する場合,UNIX 互換コマンドを使って HSFS 上のファイル

およびディレクトリを参照・更新するには,事前に HSFS のシステムオプションである

CPFS_COMPAT_LINKCNT=0 を指定する必要があります。デフォルトは指定されている状態です。

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

JP1/Advanced Shell が使用するジョブ定義スクリプトファイルおよび環境ファイルのエンコーディング

は,JP1/Advanced Shell が動作する環境の LANG 環境変数の値と一致させてください。一致していない

場合の動作は保証できません。また,異なる OS で共通のジョブ定義スクリプトファイルを実行する場合

は,各 OS で使用できるエンコーディングに統一してください。

UNIX の場合,JP1/Advanced Shell が出力するメッセージの言語およびエンコードは,LANG 環境変数

の値によって決まります。

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

JP1/Advanced Shell

66

JP1/Advanced Shell を使用するときに設定する LANG 環境変数値,ジョブ定義スクリプトファイルおよ

び環境ファイルのエンコーディングを次の表に示します。

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

OS

Windows

Linux

AIX

HP-UX

Solaris

LANG 環境変数の値

− ja_JP.UTF-8

C

Ja_JP ja_JP

JA_JP

JA_JP.UTF-8

C ja_JP.SJIS

ja_JP.eucJP

ja_JP.utf8

C ja_JP.PCK

ja ja_JP.UTF-8

C

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

Shift-JIS

UTF-8

アスキー文字列

Shift-JIS

EUC

UTF-8

UTF-8

アスキー文字列

Shift-JIS

EUC

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. JP1/Advanced Shell を利用するための準備

JP1/Advanced Shell

67

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

JP1/Advanced Shell が提供するコマンドを使用して端末装置から標準入力へ入力する場合,入力できる

最大長は,OS,端末装置,シェル,およびプログラム言語の言語仕様などによって異なります。

2.2.7 ハードリンク,シンボリックリンクを使用する

JP1/Advanced Shell ではハードリンク,シンボリックリンクを作成して使用できます。JP1/Advanced

Shell で使用できるリンクファイルは次のとおりです。

• ファイルへのハードリンク

• ファイルへのシンボリックリンク

• ディレクトリへのシンボリックリンク

以降,UNIX 版と Windows 版に分けて記載します。

(1) UNIX 版

UNIX 版の JP1/Advanced Shell では UNIX 互換コマンドの ln コマンド,および OS が提供するコマン

ドを使用することでハードリンク,シンボリックリンクを作成して,ジョブ定義スクリプト内で使用でき

ます。

(2) Windows 版

(a) ハードリンク,シンボリックリンクに対応するファイル,フォルダ

Windows 版の JP1/Advanced Shell では UNIX 互換コマンドの ln コマンド,および OS が提供するコ

マンドを使用することでハードリンク,シンボリックリンクを作成できます。ハードリンク,シンボリッ

クリンクに対応するファイル,フォルダは次のとおりです。

• UNIX 互換コマンド,シェル標準コマンドで扱うファイル,およびフォルダ

• リダイレクト記号に指定するファイル

• 条件式のファイル属性で指定するファイル,およびフォルダ

また,次に示すファイル,フォルダに対してはハードリンク,シンボリックリンクを作成しないでください。

• JP1/AS が提供する各種コマンド

• JP1/AS インストール時に作成するファイル,およびフォルダ

• ジョブ定義スクリプトファイル

• 外部スクリプトファイル

• 子孫ジョブで実行するスクリプトファイル

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

JP1/Advanced Shell

68

• スプールディレクトリ配下のファイル,およびフォルダ

• 一時ファイルディレクトリ配下のファイル,およびフォルダ

• トレースディレクトリ配下のファイル,およびフォルダ

• ログディレクトリ配下のファイル,およびフォルダ

• 環境ファイル

(b) シンボリックリンクを使用する前の確認事項

シンボリックリンクを使用する際は事前に次の点を確認してください。

• シンボリックリンクを作成,削除,移動,または複製する場合は,シンボリックリンク作成権限を持つ

ユーザーで実行してください。シンボリックリンク作成権限を持たないユーザーはシンボリックリンク

に対して操作することはできません。また,ユーザーアカウント制御(UAC)が有効な環境では,シ

ンボリックリンク作成権限を持つユーザーでもシンボリックリンクを作成できません。UAC が有効な

環境でシンボリックリンクを作成する場合は,シンボリックリンク作成権限を持つユーザーに管理者特

権を付与してください。

• シンボリックリンクを使用する前に,実行するマシンがシンボリックリンクの使用を許可されているか

確認してください。シンボリックリンクの使用が許可されているかを確認する方法は Windows のマ

ニュアルを参照してください。

(3) 注意事項

ハードリンク,シンボリックリンクを使用する際の注意事項を次に示します。

(a) 全プラットフォーム共通の注意事項

• リンクファイルの名称は JP1/Advanced Shell が提供するコマンドと同じ名称にしないでください。

• シンボリックリンクファイルのネストの回数が OS の上限を超えた場合の動作は,各 OS の仕様に従い

ます。

• 1 つのファイルに対して複数のハードリンクを作成できます。しかし,OS,またはファイルシステム

によって,1 つのファイルに対して作成できるハードリンク数の上限が設けられています。上限を超え

た場合はハードリンクの作成に失敗するため,注意してください。

(b) UNIX 版の注意事項

カバレージ情報ファイル(asc ファイル)の出力先にハードリンク,シンボリックリンクは指定できませ

ん。指定した場合,次のように動作します。

• asc ファイルの出力先にシンボリックリンクを指定すると,シンボリックリンクは削除され,同名の通

常ファイルが作成されます。

• 1 つの asc ファイルに複数のハードリンクを作成した状態で asc ファイルを更新しても,asc ファイル

のカバレージ情報は更新されません。

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

JP1/Advanced Shell

69

(c) Windows 版の注意事項

• NTFS 以外のファイルシステムにリンクファイルを作成できません。

• ファイルシステムを保護することを目的とした製品をインストールしている環境では,シンボリックリ

ンクを使用できない場合があります。シンボリックリンクを使用する際はすでにインストールされてい

る製品がシンボリックリンクに対応していることを確認してください。

• シンボリックリンクを使用し実行ファイルを起動する場合は,シンボリックリンクと実行ファイルの両

方の拡張子が「.bat」,「.com」,「.cmd」,「.exe」のどれかである必要があります。ただし,次の書式

は実行ファイルを起動する実行プログラムの仕様に従うため,実行権限の判定も実行プログラムの仕様

に従います。

• awk コマンドの system 関数

• awk コマンドの書式 コマンド名 | getline [変数名]

• awk コマンドの書式 print [式[, ... ]] | コマンド名

• find コマンドの-exec オプション

• シンボリックリンクを使用しファイル,フォルダにアクセスする場合は,リンク先のアクセス権限に従

います。シンボリックリンク自身にアクセスする場合は,シンボリックリンク自身のアクセス権限に従

います。

• ディレクトリへのシンボリックリンクのリンク先が通常ファイル,またはファイルへのシンボリックリ

ンクのリンク先がディレクトリとなっている場合,リンク先にアクセスできずエラー終了します。

• リンクファイル対応に伴い,リンクファイルに関する情報も出力します。そのため,ls コマンドなど

UNIX 互換コマンドの出力形式が一部変更になります。リンクファイルを使用しないで,かつ出力形式

を 11-00 より前に戻したい場合は環境変数 ADSH_LINK_SUPPORT に L0 を指定してください。

(4) 環境変数 ADSH_LINK_SUPPORT(JP1/Advanced Shell のリンク対応

レベルを定義する)

JP1/Advanced Shell では 11-00 からハードリンク,シンボリックリンクを使用できます。しかし,ハー

ドリンク,シンボリックリンクに対応したことに伴い,実行結果以外にも出力形式,出力内容も一部変更

となります。そこで,11-00 より前から JP1/Advanced Shell を使用しており,リンクファイルを使用し

ないユーザーは環境変数 ADSH_LINK_SUPPORT の指定をご検討ください。

(a) 環境変数に設定できる値

環境変数 ADSH_LINK_SUPPORT に指定できる値を次に示します。

表 2-14 環境変数 ADSH_LINK_SUPPORT に設定できる値

L0

意味

ハードリンク,シンボリックリンクは使用できません。

L0 を指定した場合の主な変更点は次のとおりです。

• find コマンド,ls コマンド,stat コマンドでハードリンク数が出力されません。

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

JP1/Advanced Shell

70

L0

L1

上記以外

意味

• UNIX 互換コマンド,シェル標準コマンドのシンボリックリンクに関するオプションを指定しても無

視されます。

• adshscripttool コマンドの-L オプションを使用できません。

• 環境設定パラメーター UNSUPPORT_TEST を指定しないでファイル属性を判定する演算子-h,-L,ef を使用するとジョブはエラー終了します。

次の機能でハードリンク,シンボリックリンクを使用することができます。

• UNIX 互換コマンド

• シェル標準コマンド

• ファイル属性の条件式

• ファイルへのリダイレクト

ジョブ,およびコマンドを実行しないでエラー終了します。

環境変数 ADSH_LINK_SUPPORT に L0 と L1 を指定した場合の出力形式の違いを,ls コマンドを例に示

します。なお,環境変数 OSCMD_DIR には ls コマンドがインストールされているディレクトリへのパス

が格納されていると仮定しています。

• L0 の場合

C:\TEMP>%OSCMD_DIR%\ls -l total 439744

-rw------- Administrators 102000 Jul 06 16:26 HARDLINK.txt

-rw------- Administrators 102000 Jul 06 16:20 SYMLINK.txt

drwx------ Administrators Jul 06 16:58 TestLog

-rw------- Administrators 102000 Jul 06 16:20 test_data.txt

-rw------- Administrators 102000 Jul 06 16:26 test_result.txt

-rwx------ Administrators 31744 Jun 12 16:23 uap.exe

• L1 の場合

C:\TEMP>%OSCMD_DIR%\ls -l total 337744

-rw------- 2 Administrators 102000 Jul 06 16:26 HARDLINK.txt

lrw------- 1 Administrators 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

drwx------ 1 Administrators Jul 06 16:58 TestLog

-rw------- 1 Administrators 102000 Jul 06 16:20 test_data.txt

-rw------- 2 Administrators 102000 Jul 06 16:26 test_result.txt

-rwx------ 1 Administrators 31744 Jun 12 16:23 uap.exe

(b) 注意事項

• 環境変数 ADSH_LINK_SUPPORT が未定義の場合は,L1 が指定されたと解釈し動作します。

• 環境変数 ADSH_LINK_SUPPORT には L0,または L1 を指定してください。L0,L1 以外の値を指定

した場合,ジョブ,コマンドは終了コード 255 でエラー終了します。

• 環境変数 ADSH_LINK_SUPPORT は Windows 版で有効です。UNIX 版では無効です。

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

JP1/Advanced Shell

71

• ジョブ定義スクリプトファイルや環境ファイルで設定した場合,その設定は,ジョブ定義スクリプトか

ら起動する子孫ジョブ,ルートジョブ,別プロセス実行,一部の UNIX 互換コマンドにだけ有効とな

ります。

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

JP1/Advanced Shell

72

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

ここでは,Windows 環境の JP1/Advanced Shell のインストール方法およびアンインストール方法につ

いて説明します。必要になる前提プログラムおよび関連プログラムについては,事前に該当するマニュア

ルを参照してインストールしておいてください。

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

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

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

JP1/AJS - Manager

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

JP1/IM - Manager

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

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

JP1/AJS - View

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

JP1/IM - View

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

カスタムジョブ定義プログラムのインストールについては,「

2.3.3 JP1/Advanced Shell - Custom

Job をインストールする 」を参照してください。

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

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

JP1/AJS - Agent

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

JP1/Base

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

Windows 環境のインストールについては,「

2.3.1 JP1/Advanced Shell をインストールする

ユーザー応答機能を使用する場合のセットアップ手順については,「 2.8.2 JP1/Advanced Shell をイ

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

JP1/Advanced Shell をインストールする場合,管理者権限を持つユーザーで実行してください。インス

トール方法として,JP1/NETM/DM を使ったリモートインストールと CD-ROM 媒体を使ったインストー

ルがあります。JP1/Advanced Shell - Developer のインストールも同様に実行できます。

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

JP1/Advanced Shell

73

(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 に実行環境と開発環境の両方をインストールすることもできます。

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

する。

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

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

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

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

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

• ユーザー情報

• インストール先フォルダ

5.[完了]ダイアログが表示されたら,[完了]をクリックする。

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

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

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

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

JP1/Advanced Shell

74

JP1/Advanced Shell のバージョンアップによる上書きインストールを行う場合,アンインストールしな

くてもアップグレードできます。

アプリケーション実行エージェントプログラムが起動している場合,アンインストール前に起動している

ユーザーでログオンし停止します。【実行環境限定】

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

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

次の手順を実施します。

1. アプリケーション実行エージェントプログラムが起動している場合,アンインストール前に起動してい

るユーザーでログオンし停止します。【実行環境限定】

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

する。

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

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

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

6.[完了]ダイアログが表示されたら,[完了]をクリックする。

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

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

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

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

Developer のアンインストールも同様に実行できます。

1. アプリケーション実行エージェントプログラムが起動している場合,起動しているユーザーでログオン

し停止します。さらにスタートアップに登録している場合,登録を解除します。【実行環境限定】

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

オンする。

3. すべてのプログラムを終了する。また,ユーザー応答機能を使用している場合は,JP1/Advanced Shell

のサービスを停止してから登録を解除する。

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

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

6.[プログラムの保守]で[削除]を選択する。

7.[完了]ダイアログが表示されたら,[完了]をクリックする。

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

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

JP1/Advanced Shell

75

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

ユーザー応答機能を使用していた場合は,アンインストールが完了したあと,JP1/Base に対して設定し

たユーザー応答機能用アダプタコマンド設定ファイルを削除します。ユーザー応答機能用アダプタコマン

ド設定ファイルの格納先フォルダについては,「 (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 を新規インストールする手順を次に示します。

1. JP1/Advanced Shell - Custom Job をインストールする運用管理端末に,管理者権限を持つユーザー

でログインする。

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

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

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

インストール先フォルダ\JP1ASE\util\setup.exe

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

/opt/jp1as/util/setup.exe

3. JP1/Advanced Shell - Custom Job のインストーラ(setup.exe)を運用管理端末へ転送する。

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

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

インストールするカスタムジョブ定義プログラムの言語を選択してから,次の情報を指定します。

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

JP1/Advanced Shell

76

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

• インストール先フォルダ:JP1/Advanced Shell - Custom Job をインストールするフォルダを指

定します。

6.[完了]ダイアログが表示されたら,[完了]をクリックする。

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

7. アプリケーション実行エージェント機能を使用する場合で,JP1/AJS3 - View 11-00 より古い製品が

インストールされている場合にカスタムジョブ定義プログラムをインストールしたときは,カスタム

ジョブアイコンを次のフォルダにコピーする。

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

コピーするカスタムジョブアイコンのフォルダとファイル名については,「

2.1.1 インストール先フォ

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

JP1/Advanced Shell - Custom Job のバージョンアップによる上書きインストールを行う場合,アンイ

ンストールしなくてもアップグレードできます。

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

以前のバージョンでカスタムジョブアイコンを JP1/AJS - View のインストール先フォルダにコピーして

いる場合は,バージョンアップ時に再度コピーする必要はありません。

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

JP1/Advanced Shell - Custom Job がインストール済み状態で製品の不具合が発生した場合に製品を修

復するときは,次の手順を実施します。

1. JP1/Advanced Shell - Custom Job をインストールする Windows マシンに,管理者権限を持つユー

ザーでログインする。

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

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

• Windows の場合

インストール先フォルダ\JP1ASE\util\setup.exe

• UNIX の場合

/opt/jp1as/util/setup.exe

3. JP1/Advanced Shell - Custom Job のインストーラ(setup.exe)を運用管理端末へ転送する。

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

5.[プログラムの保守]から[修復]を選択する。

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

JP1/Advanced Shell

77

6.[完了]ダイアログが表示されたら,[完了]をクリックする。

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

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

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

1. JP1/Advanced Shell - Custom Job をインストールしてある Windows マシンに管理者権限を持つ

ユーザーでログオンする。

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

3. JP1/AJS - View 11-00 より古い製品がインストールされている場合で,アプリケーション実行エー

ジェント機能のアイコンが存在した場合,次のフォルダにコピーしたカスタムジョブアイコンを削除す

る。

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

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

ユーザーアカウント制御(UAC)が有効な環境でアンインストールを実行した場合,[ユーザーアカウ

ント制御]ウィンドウが表示されます。このウィンドウに対して,[はい]を選択してください。

5.[完了]ダイアログが表示されたら,[完了]をクリックする。

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

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

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

JP1/Advanced Shell

78

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

ここでは,UNIX 環境の JP1/Advanced Shell のインストール方法およびアンインストール方法について

説明します。UNIX 環境では,実行環境だけをバッチ業務サーバにインストールできます。前提プログラ

ムおよび関連プログラムについては,事前に該当するマニュアルを参照してインストールしておいてくだ

さい。

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

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

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

JP1/AJS - Manager

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

JP1/IM - Manager

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

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

JP1/AJS - View

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

JP1/IM - View

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

カスタムジョブ定義プログラムのインストールについては,「

2.3.3 JP1/Advanced Shell - Custom

Job をインストールする 」を参照してください。

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

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

JP1/AJS - Agent

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

JP1/Base

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

UNIX 環境へのインストールについては,「

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

ユーザー応答機能を使用する場合のセットアップ手順については,「 2.8.3 JP1/Advanced Shell をイ

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

JP1/Advanced Shell

79

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 コマンドで確認し,表示されたファイル名をそのまま入力してください。

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

JP1/Advanced Shell をインストールするサーバに,スーパーユーザーでログインします。または,su

コマンドでユーザー権限をスーパーユーザーに変更します。

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

既存の JP1 シリーズのプログラム,および JP1/Advanced Shell のプログラムが動作している場合,

必ず停止させます。

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

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

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

/cdrom は CD-ROM デバイススペシャルファイルのマウントポイントです。マウントポイントディレ

クトリがない場合は,作成してください。なお,デバイススペシャルファイル名およびマウントポイン

トは,使用する環境によって異なる場合があります。

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

Linux の場合

/cdrom/LINUX/setup /cdrom

AIX の場合

/cdrom/AIX/setup /cdrom

HP-UX の場合

/cdrom/IPFHPUX/setup /cdrom

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

JP1/Advanced Shell

80

Solaris の場合

/cdrom/SOLARIS/setup /cdrom

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

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

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

Hitachi PP Installer 05-24

L) List Installed Software.

I) Install Software.

D) Delete Software.

Q) Quit.

Select Procedure ===>

+----------------------------------------------------------------------+

CAUTION!

YOU SHALL INSTALL AND USE THE SOFTWARE PRODUCT LISTED IN THE

"List Installed Software." UNDER THE TERMS AND CONDITION OF

THE SOFTWARE LICENSE AGREEMENT ATTACHED TO SUCH SOFTWARE PRODUCT.

+----------------------------------------------------------------------+

All Rights Reserved. Copyright (C) 1994, 2015, Hitachi, Ltd.

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

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

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

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

せてスペースバーで選択します。

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

:

:

PP-No. VR PP-NAME

<@>001 P-8112-B1BL 1100 Advanced Shell

F) Forward B) Backward J) Down K) Up Space) Select/Unselect I) Install Q) Quit

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

JP1/Advanced Shell

81

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

ジが表示されます。

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

ここで,[y]または[Y]を選択するとインストールが開始されます。[n]または[N]を選択する

と,インストールが中止され,PP インストール画面に戻ります。

8. インストールが正常終了したら,「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 が提供するプログラムをす

べて終了してください。また,ユーザー応答機能を使用している場合は,ユーザー応答機能管理デーモン

を停止してください。アンインストールでは,インストーラのログファイルおよび新規に作成したファイ

ルは削除されません。したがって,完全に環境を削除するには,ユーザーが自分で削除する必要があります。

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

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

JP1/Advanced Shell

82

/etc/hitachi_setup

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

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

Hitachi PP Installer 05-24

L) List Installed Software.

I) Install Software.

D) Delete Software.

Q) Quit.

Select Procedure ===>

+----------------------------------------------------------------------+

CAUTION!

YOU SHALL INSTALL AND USE THE SOFTWARE PRODUCT LISTED IN THE

"List Installed Software." UNDER THE TERMS AND CONDITION OF

THE SOFTWARE LICENSE AGREEMENT ATTACHED TO SUCH SOFTWARE PRODUCT.

+----------------------------------------------------------------------+

All Rights Reserved. Copyright (C) 1994, 2015, Hitachi, Ltd.

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

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

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

JP1/Advanced Shell がアンインストールされます。なお,プログラムを選択するには,カーソルを移

動させてスペースバーで選択します。

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

PP-No. VR PP-NAME

<@>001 P-8112-B1BL 1100 Advanced Shell

:

:

F) Forward B) Backward J) Down K) Up Space) Select/Unselect I) Install Q) Quit

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

JP1/Advanced Shell

83

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

ジが表示されます。

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

ここで,[y]または[Y]を選択するとアンインストールが開始されます。[n]または[N]を選択す

ると,アンインストールが中止され,アンインストール画面に戻ります。

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

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

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

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

PP-No. VR PP-NAME

<@>001 P-8112-B1BL 1100 Advanced Shell

002 P-812C-6LBL 1100 JP1/Base

003 P-9S12-A111 0806/A uCosminexus Batch Job Execution Server

004 P-CC8112-4KBL 1100 JP1/AJS3 - Manager

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

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

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

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

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

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

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

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

注意

ユーザー応答機能管理デーモンが起動されている場合は,アンインストールが中断されます。この時,

次のメッセージが/opt/jp1as/instlog/ADSH_INST_LOG に出力されます。

F) Forward B) Backward J) Down K) Up Space) Select/Unselect D) Delete Q) Quit

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

上記メッセージが出力されている場合は,adshmdctl コマンドを実行してユーザー応答機能管理デー

モンを停止したあと,アンインストールを再実行してください。

また,ユーザー応答機能管理デーモンが正常に停止されなかった場合も,アンインストールが中断され

ます。この場合,一度ユーザー応答機能管理デーモンを起動して停止してから,再度アンインストール

を実行してください。

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

JP1/Advanced Shell

84

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

JP1/NETM/DM を使ったアンインストール方法については,マニュアル「JP1/NETM/DM Manager」

およびマニュアル「JP1/NETM/DM SubManager(UNIX(R)用)」を参照してください。

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

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

• JP1/Base に対して設定したユーザー応答機能用アダプタコマンド設定ファイルを削除します。ユー

ザー応答機能用アダプタコマンド設定ファイルの格納先ディレクトリについては,「

(2) JP1/Base の

設定 」を参照してください。

• ユーザー応答機能管理デーモンの自動起動および自動停止を設定している場合は,自動起動および自動

停止の設定を解除します。

【AIX の場合】

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

2. 論理ホスト用のユーザー応答機能管理デーモンの自動起動を設定している場合は,論理ホスト用ユー

ザー応答機能管理デーモンのレコードを指定して rmitab コマンドを実行する。

3. システム終了時の自動停止機能を解除するには,/etc/rc.shutdown の次に示す記述を削除する。 test -x /opt/jp1as/sbin/adshmdctl && /opt/jp1as/sbin/adshmdctl stop

4. 論理ホスト用のユーザー応答機能管理デーモンの自動起動を設定している場合は,論理ホスト用ユー

ザー応答機能管理デーモンの自動停止の記述を/etc/rc.shutdown から削除する。

【RHEL 6,Oracle Linux 6,CentOS 6,HP-UX,Solaris の場合】

1. /opt/jp1as/sample ディレクトリからコピーしたスクリプトファイル jp1_as_md をコピー先のディ

レクトリから削除する。

2. 論理ホスト用の自動起動および自動停止スクリプトファイルを作成している場合は,スクリプトファ

イル作成先のディレクトリから削除する。

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

4. 論理ホスト用の自動起動および自動停止スクリプトファイルのシンボリックリンクを作成している

場合は削除する。

【RHEL 7,SUSE Linux 12,Oracle Linux 7,CentOS 7 の場合】

1. 次のコマンドを実行して,ユーザー応答機能管理デーモンの自動起動・自動停止を無効にする。 systemctl disable jp1_as_md.service

2. /opt/jp1as/sample ディレクトリからコピーした Unit ファイル jp1_as_md.service をコピー先

の/usr/lib/systemd/system ディレクトリから削除する。

3. 論理ホスト用のユーザー応答機能管理デーモンの自動起動・自動停止を設定している場合は,次の

作業を実施する。

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

JP1/Advanced Shell

85

・1 の手順で指定する jp1_as_md.service を,作成した論理ホスト用の Unit ファイル名に置き換

えて systemctl コマンドを実行する。

・/etc/systemd/system ディレクトリに作成した論理ホスト用の Unit ファイルを削除する。

自動起動・停止するためのスクリプトファイルのコピー先ディレクトリについては,「 (1) ユーザー応

答機能管理デーモンの自動起動と自動停止 」を参照してください。論理ホスト用の自動起動および自動

停止スクリプトファイルの作成先ディレクトリおよびシンボリックリンクの作成先ディレクトリについ

ては,「

(2) 非クラスタ環境の論理ホスト用ユーザー応答機能管理デーモンの自動起動と自動停止

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

UNIX 版の JP1/Advanced Shell は,Hitachi PP Installer を使ってインストールするため,Hitachi PP

Installer から JP1/Advanced Shell のバージョン情報を表示できます。

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

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

/etc/hitachi_setup

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

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

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

JP1/Advanced Shell

86

2.5 環境変数を設定する

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

注意事項 

JP1/Advanced Shell では,名称が

ADSH

から始まるシェル変数・環境変数を設定・参照していま

す。このため,このマニュアルに記載されている使用目的以外では,名称が

ADSH

から始まるシェル

変数・環境変数は使用しないでください。

表 2-15 JP1/Advanced Shell で使用できる環境変数

環境変数名

ADSH_AJS_APPEXEC

【Windows 実行環境限

定】

ADSH_AJS_APPNAME

【Windows 実行環境限

定】

ADSH_AJS_APPARG

【Windows 実行環境限

定】

ADSH_AJS_WORKF

【Windows 実行環境限

定】

ADSH_AJS_SHOWN

【Windows 実行環境限

定】

ADSH_AJS_AFEXECMV

【Windows 実行環境限

定】

カスタムジョブ用実行アプリケーション実行後の動作。 カスタムジョブで起動した場

合のジョブ開始時

ADSH_AJS_MESOUT

【Windows 実行環境限

定】

ADSH_AJS_ENVF

ADSH_AJS_GCHE

ADSH_AJS_LHOST

設定する内容

カスタムジョブ用 GUI アプリケーション実行プログラ

ム識別用。

カスタムジョブ用実行アプリケーションのパス名。

カスタムジョブ用実行アプリケーションの引数。

カスタムジョブ用ワークフォルダ。

カスタムジョブ用表示名。

カスタムジョブ用メッセージの出力。

カスタムジョブ用ジョブ環境ファイル名。

カスタムジョブ用事前チェックオプション。

カスタムジョブ用論理ホスト名。

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

の設定時期

カスタムジョブで起動した場

合のジョブ開始時

カスタムジョブで起動した場

合のジョブ開始時

ジョブで起動した場合のジョ

ブ開始時

カスタムジョブで起動した場

合のジョブ開始時

カスタムジョブで起動した場

合のジョブ開始時

カスタムジョブで起動した場

合のジョブ開始時

カスタムジョブで起動した場

合のジョブ開始時

カスタムジョブで起動した場

合のジョブ開始時

カスタムジョブで起動した場

合のジョブ開始時

値の設定

可否

※1

※1

※1

※1

※1

※1

※1

※1

※1

※1

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

JP1/Advanced Shell

87

環境変数名

ADSH_AJS_SCRF

ADSH_ENV

ADSH_CMD_ARGORDER

※3

ADSH_CMDDATE_FORMAT

ADSH_JOB_NAME

ADSH_JOBID

ADSH_JOBRC_FATAL

設定する内容

カスタムジョブ用ジョブ定義スクリプトファイル名。

ジョブ環境ファイルのファイル名。

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

の設定時期

カスタムジョブで起動した場

合のジョブ開始時

カスタムジョブで起動した場

合のジョブ開始時

コマンドラインに指定するコマンド引数の指定順序規

則。設定できる値は seq

だけである。 cp

, cut

, date

, diff

, expand

, gunzip

, gzip

, ln

, ls

, mv

, stat

コマンドで有効となる。また, getopt

コマン

ドのユーザー定義のオプションの解析でも有効となる。

(自動的には設定されない)

JP1/Advanced shell 固有の共通書式処理を行う date

マンドの書式指定コード。

(自動的には設定されない)

ADSH_CMDEXPR_LENGTH

ADSH_CMDLN_FOLLOW

文字列長。 expr

コマンドの length 演算子を使用する場

合に設定する。

文字列のバイト数を取得するときは b

,文字列の文字数

を取得するときには c

を設定する。

この環境変数の設定がないか,上記以外の値を設定した

場合は, length

は演算子として扱われない。

(自動的には設定されない) ln

コマンドの引数ターゲットにディレクトリに対する

シンボリックリンクを指定した場合に,リンクをたどる

かたどらないかを設定する。

リンクをたどらない場合は

NO

を設定する。リンクをた

どる場合は

NO

以外を設定する。

(自動的には設定されない)

ADSH_CMDLN_OPT_I_F ln

コマンドで

-i

オプションと

-f

オプションを同時に指

定した場合にどちらを有効にするか設定する。

最後に指定した方を有効にしたいときは

LAST

を設定する。

(自動的には設定されない)

ADSH_CMDTAR_ROOTPATH tar

コマンドのルートディレクトリの動作の変更。値に absolute

を指定することでルートディレクトリは取り

除かないで格納,抽出,および表示するようにする。

(自動的には設定されない)

ジョブ名。

ジョブ識別子(先頭に 0 を付加した 6 桁固定の 10 進

数)。

ジョブ開始時

ジョブ開始時

構文エラーなど,ジョブを続行できない致命的なエラー

が発生した場合のジョブの終了コード。

設定方法については「 (2) 環境変数

ADSH_JOBRC_FATAL(ジョブ続行不可エラー発生時

(自動的には設定されない)

値の設定

可否

※1

不可

不可

※2

※2

ADSH_LANG

【UNIX 限定】

※4※6

JP1/Advanced Shell が出力するメッセージの言語とエ

ンコード。

特定のジョブの adshexec

コマンドが出力するメッセー

ジを,一時的に切替えたい場合に設定する。

(自動的には設定されない)

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

JP1/Advanced Shell

88

環境変数名

ADSH_LANG

【UNIX 限定】

※4※6

ADSH_LANG_JP1EVENT

【UNIX 限定】

※5

ADSH_LINK_SUPPORT

【Windows 限定】

設定する内容 値が自動的に設定される場合

の設定時期

設定できる値については「 2.2.4 JP1/Advanced Shell

を使用するときのエンコーディング

」を参照してくださ

い。

ジョブ定義スクリプトファイルや環境ファイルで設定し

た場合,その指定は,ジョブ定義スクリプトから起動す

る子孫ジョブ,ルートジョブ,および adshexec

コマン

ド以外のシェル運用コマンドにだけ有効となる。

(自動的には設定されない)

ユーザー応答機能で使用する JP1 イベントで出力する

メッセージの言語。出力先の JP1/IM の設定に合わせ

て,JP1/Advanced Shell が出力するメッセージの言語

とは異なる言語の JP1 イベントのメッセージを出力した

い場合に設定する。

設定できる値については「 2.2.4 JP1/Advanced Shell

を使用するときのエンコーディング

」を参照してくださ

い。

ジョブ定義スクリプトファイルで設定した場合,その指

定は,ジョブ定義スクリプトから起動する子孫ジョブ,

ルートジョブ,および adshexec

コマンド以外のシェル

運用コマンドにだけ有効となる。環境ファイルで設定し

た場合,ジョブ定義スクリプトから出力する JP1 イベン

トのメッセージの言語がその値に従った言語となる。

(自動的には設定されない)

JP1/Advanced Shell のリンク対応レベルを指定します。 (自動的には設定されない)

設定方法については「 (4) 環境変数

ADSH_LINK_SUPPORT(JP1/Advanced Shell のリ

値の設定

可否

※7

ADSH_STEP_NAME

AJS_BJEX_STOP

BLOCKSIZE

COLUMNS

GETOPT_COMPATIBLE

ジョブステップ名。

ジョブステップ外のコマンド実行時や,ジョブステップ

名省略時は,環境変数を定義しない。

ジョブステップ開始時

JP1/AJS からの強制終了で使用するインターフェース。

PC ジョブや UNIX ジョブで JP1/Advanced Shell の

バッチジョブを定義する場合は,この環境変数を定義す

る必要がある。OS の設定で定義するのではなく,PC

ジョブや UNIX ジョブの定義で定義すること。

カスタムジョブで起動した場

合のジョブ開始時

1 ブロック当たりのバイト数。 ls

コマンドと stat

コマ

ンドで使用する。

デフォルトは

512

(自動的には設定されない)

コマンド実行結果出力時の 1 行あたりの出力幅。 ls

マンドの

-C

オプションと sed

コマンドの l

コマンド(編

集コマンド)で使用する。

(自動的には設定されない)

パラメーターの解析方法の指定。 getopt

コマンドで使

用する。

(自動的には設定されない)

不可

可(

TERM

だけ設定

可能)

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

JP1/Advanced Shell

89

環境変数名

GETOPT_COMPATIBLE

GZIP

※8

POSIXLY_CORRECT

※3

設定する内容 値が自動的に設定される場合

の設定時期

設定する値に決まりはない。設定されている場合,解析

される引数はすべて, getopt

コマンドが形式 1 で指定

されていると解釈して処理される。

(自動的には設定されない) gzip

コマンド,および gunzip

コマンドのオプションを

設定する。次のコマンドで使用する。

• gzip

コマンド

• gunzip

コマンド

• tar

コマンド(

-z

オプション指定時) gzip

コマンド,および gunzip

コマンドの場合,引数に

指定したオプションを優先する。オプションを複数指定

する場合は,スペースまたはタブ文字で区切って設定す

る。

(自動的には設定されない)

コマンドラインに指定するコマンド引数の指定順序規則。 (自動的には設定されない)

設定する値に決まりはない。値が設定されている場合,

環境変数

ADSH_CMD_ARGORDER

に seq

が設定されているの

と同じ意味になる。

一時ファイル出力先ディレクトリ。 diff

コマンドと sort

コマンドで使用する。

(自動的には設定されない)

値の設定

可否

TMPDIR

【UNIX 限定】

注※1

これらの環境変数は,JP1/AJS の ajsdefine

コマンドのユニット定義,または JP1/AJS - Definition

Assistant のジョブ定義だけで使用できます。JP1/Advanced Shell のジョブ定義スクリプトや,ユー

ザープロファイルやシステムプロファイルなどのユーザー環境でこれらの環境変数は設定しないでくだ

さい。

注※2

ジョブ定義スクリプトファイルや環境ファイルで設定した場合,その指定は,ジョブ定義スクリプトか

ら起動する子孫ジョブやルートジョブにだけ有効となります。

注※3

環境変数

POSIXLY_CORRECT

は,環境変数

ADSH_CMD_ARGORDER

で有効なコマンドのほかに Linux の OS 標

準のコマンドにも適用されますが,コマンドによってはコマンド引数の指定順序規則以外の機能にも作

用する場合があります。そのため,UNIX 互換コマンドだけにコマンド引数の指定順序規則を設定した

い場合は,環境変数

ADSH_CMD_ARGORDER

を使用してください。

注※4

環境変数

ADSH_LANG

の指定は,環境変数

LANG

より優先して使用します。環境変数

ADSH_LANG

を指定しな

い場合は,環境変数

LANG

と同じ言語とエンコードでメッセージを出力します。環境変数

ADSH_LANG

およ

び環境変数

LANG

を指定しない場合は,

C

が指定されたように動作します。

注※5

環境変数

ADSH_LANG_JP1EVENT

の指定値は,環境変数

ADSH_LANG

および環境変数

LANG

より優先されます。

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

JP1/Advanced Shell

90

環境変数

ADSH_LANG_JP1EVENT

を指定しない場合は,環境変数

ADSH_LANG

と同じ言語でメッセージを出力

します。環境変数

ADSH_LANG_JP1EVENT

も環境変数

ADSH_LANG

も指定しない場合は,環境変数

LANG

と同

じ言語でメッセージを出力します。

環境変数

ADSH_LANG

C

以外,または環境変数

ADSH_LANG

が未指定で環境変数

LANG

C

以外の場合,JP1

イベントで出力するメッセージの言語は日本語になります。このときに出力する JP1 イベントのメッ

セージを英語で出力したい場合は,環境変数

ADSH_LANG_JP1EVENT

C

を指定します。

注※6 adshmdctl

コマンドに使用した場合,syslog に出力するメッセージも環境変数

ADSH_LANG

に従った言語

とエンコードで出力されます。システムによっては syslog にその言語とエンコードの文字コードが出

力できない場合があります。その場合には adshmdctl

コマンドに使用しないでください。

注※7

ジョブ定義スクリプトファイルや環境ファイルで設定した場合,その指定は,ジョブ定義スクリプトか

ら起動する子孫ジョブやルートジョブ,一部の UNIX 互換コマンドで有効となります。

注※8

環境変数

GZIP

にオプション値のあるオプションを設定する場合,次のことに注意してください。

• オプション値をクォーテーション('または")で囲んだ場合,クォーテーション('または")をオプ

ション値として扱うことがあります。

• オプション値にスペースやタブ文字を含めた場合,スペースやタブ文字をオプションの区切り文字

と見なし,複数の引数の指定として扱うことがあります。

この表の環境変数に加えて,OS が標準的に設定する環境変数や,環境ファイルに export

パラメーターで

設定した環境変数も,ジョブ定義スクリプトから参照できます。 export

パラメーターについては,「 7.3.18 

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

JP1/Advanced Shell

91

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 で必要なディレクトリを作成する

」を参照してくだ

さい。

• 保守情報を採取するための定義ファイルを設定します。

保守情報の採取の詳細については,「 11.3 資料の採取方法 」を参照してください。

注意事項 

JP1/Advanced Shell では,名称が「ADSH」から始まるシェル変数・環境変数を設定・参照して

います。このため,このマニュアルに記載されている使用目的以外では,名称が「ADSH

(Windows の場合は小文字での表記も含む)」から始まるシェル変数・環境変数は使用しないでく

ださい。

2.6.1 環境ファイルを設定する

環境ファイルには,システム環境ファイルとジョブ環境ファイルがあります。設定できるパラメーターは

同じです。各ファイルの説明を次の表に示します。

表 2-16 環境ファイルの種類

環境ファイルの種類

システム環境ファイル

ジョブ環境ファイル

説明

システム管理者が設定する,システム共通の環境ファイルです。サービスまたはデーモンはシステ

ム環境ファイルの設定内容を使用します。固定のディレクトリに格納することで自動的に使用され

る環境ファイルです。

開発者がジョブごとに設定する環境ファイルです。次の方法で指定します。

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

JP1/Advanced Shell

92

環境ファイルの種類

ジョブ環境ファイル

説明

• 環境変数 ADSH_ENV で指定する環境ファイル

• JP1/Advanced Shell エディタの[実行環境の設定]ダイアログボックスで指定するジョブ環

境ファイル

• JP1/Advanced Shell カスタムジョブ定義時に指定するジョブ環境ファイル

JP1/Advanced Shell のサービスまたはデーモンはシステム環境ファイルの設定内容を使用します。シス

テム環境ファイルに設定した内容は,JP1/Advanced Shell のサービスまたはデーモンの起動時から有効

になります。

ジョブコントローラは,システム環境ファイルおよびジョブ環境ファイルの設定内容を使用します。

環境ファイルに指定できるパラメーターの詳細については,「

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

を参照してください。

システム環境ファイルのパラメーターに指定する各種ディレクトリは,存在するディレクトリを指定する

必要があります。そのため,デフォルトのディレクトリを変更する場合は,変更後のディレクトリをあら

かじめ作成してください。

また,UNIX 環境でシステム環境ファイルを変更したあとは,必ず adshmdctl コマンドに conftest オプ

ションを指定して実行し,エラーのないことを確認してください。

それぞれの環境ファイルの設定方法を次に示します。

(1) システム環境ファイルの設定

システム環境ファイルはシステム管理者が作成および設定します。作成したシステム環境ファイルは,次

の表に示すファイルパスに格納することで有効になります。

表 2-17 システム環境ファイルのファイル名

環境 システム環境ファイルのファイル名

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 カスタムジョブ定義時には,使用するジョブ環境ファ

イルのパスを指定できます。

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

JP1/Advanced Shell

93

1. 次のディレクトリにある環境ファイルのサンプルデータ sample.ase を,任意のディレクトリ・ファイ

にコピーする。

• Windows の実行環境の場合

インストール先フォルダ\JP1ASE\sample\sample.ase

• Windows の開発環境の場合

インストール先フォルダ\JP1ASD\sample\sample.ase

• UNIX の実行環境の場合

/opt/jp1as/sample/sample.ase

2. コピーしたジョブ環境ファイルに必要なパラメーターを定義する。

ジョブ環境ファイルに必要なパラメーターを「

7. 環境ファイルで設定するパラメーター 」に記載して

いますので参照して定義してください。また,ジョブ環境ファイルのエンコーディングとジョブ定義ス

クリプトを実行する環境の LANG 環境変数の値は一致させてください。ジョブ環境ファイルのエンコー

ディングおよび LANG 環境変数については,「

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

ディング 」を参照してください。

3. 作成したジョブ環境ファイルをバッチジョブ実行時に使用するよう,作成したジョブ環境ファイルのパ

スを環境変数 ADSH_ENV に設定する。

環境変数 ADSH_ENV は,次に示すどれかの方法で指定します。

•【Windows 限定】OS の設定で環境変数を指定する

•【UNIX 限定】システムプロファイル /etc/profile を指定する

•【UNIX 限定】ユーザープロファイル( $HOME/.profile

)を指定する

注※

ジョブ環境ファイルの任意のディレクトリ名およびファイル名に&,(,),[,],{,},^,=,;,!,',

+,,,`,~,#,%の記号を含めないでください。これらの記号を含む場合,正常に動作しません。

2.6.2 パス名を変換する

ジョブ定義スクリプトに記載したパス名を Windows と UNIX の両方で使用できるよう,パスの変換内容

をパラメーターで定義します。

JP1/Advanced Shell では,プラットフォームに対応してジョブ定義スクリプトに次のようにパスを記載

できます。

表 2-18 Windows 環境と UNIX 環境で使用できるパスの規則

項目

ディレクトリ区切り文字

Windows 環境

\\

※1

パス区切り文字 ; :

UNIX 環境

/

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

JP1/Advanced Shell

94

項目

パス名の大文字と小文字

絶対パス

Windows 環境

区別する

※2

パス名の先頭文字は,「ドライブレター:

\\

※1,※3

UNIX 環境

区別する

パス名の先頭文字は,「/」

注※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 パラメーターで

定義された範囲だけです。

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

JP1/Advanced Shell

95

また,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.

1. PATH_CONV パラメーターの定義に従い,パスが「/home/hitachi/bin」から「C:

\\

Program

Files」へ変換されています。

また,PATH_CONV_ENABLE パラメーターの定義に従い,ディレクトリ区切り文字が「/」から「

\

\

」へ変換されています。

2. PATH_CONV パラメーターの定義に従い,パスが「/tmp」から「C:

\\ temp」へ変換されています。

また,PATH_CONV_ENABLE パラメーターの定義に従い,ディレクトリ区切り文字が「/」から「

\

\

」へ変換されています。

(2) ファイルパスの変換例(パス変換ルール 2 の場合)

環境ファイルの情報に従って,実行前のジョブ定義スクリプトが実行後にどのように変換されるかを次に

示します。

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

JP1/Advanced Shell

96

• 環境ファイルの情報

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"

1. 変換前のジョブ定義スクリプトにパス名を扱うシェル変数 DIR01 を定義しているため,変換結果では

シェル変数 DIR01 が「"(ダブルクォーテーション)」で囲まれ,その後ろにディレクトリ区切り文字

が付加されます。

2. 文字列の先頭部分が変換規則と一致するため「"(ダブルクォーテーション)」で囲まれます。また,パ

ス区切り文字が「";"」に変換されます。さらに,文字列がパスとして変換されたので,変数名 PATH

もダブルクォーテーションで囲まれます。

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

JP1/Advanced Shell

97

3. 演算式がパス変換規則に一致したため変換されています。変換されないようにするには,ジョブ定義ス

クリプトを次のどちらかの方法で修正する必要があります。

•「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. JP1/Advanced Shell を利用するための準備

JP1/Advanced Shell

98

(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

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

JP1/Advanced Shell

99

(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) 環境ファイルの内容

環境ファイルの内容を,各行に番号を付けて示します。

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

JP1/Advanced Shell

100

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 のジョブとして実行する場合

子孫プロセスとして実行されるジョブ定義スクリプトのうち,特定の環境設定パラメーターによって実行

されたジョブを子孫ジョブと呼びます。ルートジョブと子孫ジョブの詳細については,「

(1) ルートジョ

ブと子孫ジョブ 」を参照してください。ジョブ定義スクリプトを子孫ジョブとして実行する方法について

は,「 3.2.3 ジョブ定義スクリプトを子孫ジョブとして実行する

」を参照してください。

ジョブ定義スクリプトファイルを子孫ジョブとして起動させる場合,動作させるファイルの条件を環境ファ

イルに設定しておきます。環境設定パラメーターの概要を次に示します。

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

JP1/Advanced Shell

101

• 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. 環境ファイルで設定するパラメーター 」の「

7.3.18 export パラ

いパスが設定されていることを確認してからジョブ定義スクリプトを実行してください。

(2) スクリプト形式の UNIX 互換コマンドを使うための準備【Windows 限

定】

スクリプト形式の UNIX 互換コマンドは,JP1/Advanced Shell が提供するサンプルスクリプトファイル

を使用します。

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

JP1/Advanced Shell

102

スクリプト形式の UNIX 互換コマンド(chmod コマンドと su コマンドなど)は,JP1/Advanced Shell

が提供するサンプルスクリプトファイルを基に,次の手順で実行します。

1. 次の場所にあるサンプルスクリプトファイルのうち,使用するファイルを任意のフォルダにコピーする。

• Windows の実行環境の場合

インストール先フォルダ\JP1ASE\sample

• Windows の開発環境の場合

インストール先フォルダ\JP1ASD\sample

サンプルスクリプトファイルの種類については,「 8.5 UNIX 互換コマンド(スクリプト形式)

2. コピーしたファイルの名称を各コマンド名にリネームする。

例えば,サンプルスクリプトファイル「script_chmod1」の場合はファイル名を「chmod」へ,サン

プルスクリプトファイル「script_su1」の場合はファイル名を「su」へリネームします。何もしないコ

マンドとしたい場合は,サンプルスクリプトファイル「script_0」をコピーしてリネームします。

3. サンプルスクリプトを絶対パスや相対パス指定でなく,ファイル名だけ指定して実行したい場合は,次

のどちらかを実行する。

• 環境変数 PATH で定義されたフォルダに,実行するサンプルスクリプトを格納する

• 環境変数 PATH に,実行するサンプルスクリプトを格納したフォルダのパスを追加する

4. 必要に応じて,KNAX6831-I メッセージの出力抑止を定義する。

サンプルスクリプトの実行後に KNAX6831-I メッセージが出力させたくない場合は,ジョブ環境ファ

イルに次の内容を記述してください。

#-adsh_conf JOBLOG_SUPPRESS_MSG KNAX6831-I

システム内のすべてのジョブ定義スクリプトに対して KNAX6831-I メッセージの出力を抑止したい場

合は,システム環境ファイルに記述してください。

5. ジョブ定義スクリプトを実行する。

手順 4.で作成したジョブ環境ファイルを使用して,ジョブ定義スクリプトを実行してください。システ

ム環境ファイルに指定した場合は,手順 4.で指定した内容は自動的に読み込まれます。

2.6.7 サポートしていない条件式を実行した場合の動作を定義する

【Windows 限定】 test コマンドでサポートしていない条件式を実行した場合の動作を次のパラメーターで定義します。

• UNSUPPORT_TEST パラメーター

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

JP1/Advanced Shell

103

Windows 環境では,ファイル属性を評価する場合の次の条件式がサポートされていないため,エラーと

なります。このため,上記のパラメーターを指定することで,メッセージを出力してエラーとしたり,正

常にしたりできます。サポートされていない条件式を次に示します。

• -G file

:ファイルの属するグループが呼び出し元のプロセスの実行グループと一致していることを確

認します。

• -O file

:ファイルの所有者がプロセスの有効ユーザー ID であるか確認します。

また,次の条件式は JP1/Advanced Shell ではサポートしていますが,11-00 より前のバージョンではサ

ポートしていなかったため,指定することができます。

• -h file :ファイルがシンボリックリンクであるか判定します。

• -L file :ファイルがシンボリックリンクであるか判定します(-h の場合と同じ)。

• file1 -ef file2 : file1 と file2 が存在し, file1 と file2 の実体が同じ(シンボリックリンク先が同じまた

はハードリンク先が同じ)であるか判定します。

2.6.8 ジョブ実行結果とログの出力情報を定義する

ジョブの実行結果はスプールディレクトリに出力され,出力内容の一部はジョブ実行ログとして参照でき

ます。また,トラブル発生時にログを採取し,トラブルの原因を調査できます。これらのログの出力先や

出力内容を環境ファイルで定義します。

JP1/Advanced Shell を運用しているときに出力されるログ情報と格納先について,次の表に示します。

表 2-19 JP1/Advanced Shell 運用時に出力されるログ情報と格納先

ログ情報

ジョブ実行ログ

システム実行ログ

トレースログ

【UNIX 限定】

起動ログ

※2

出力される情報

バッチジョブのログ

JP1/Advanced Shell の統括的な実行

ログ

JP1/Advanced Shell の内部トレース

ログ

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

動・終了ログ

格納先

スプールルートディレクトリの配下

環境ファイルの LOG_DIR パラメーター

※1

ディレクトリ

で指定した

環境ファイルの TRACE_DIR パラメーター

※1

たディレクトリ

で指定し

/opt/jp1as/system の配下

注※1

パラメーターの指定がない場合,デフォルト値が適用されます。

注※2

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

このログ情報は,/opt/jp1as/system ディレクトリ下に次のファイル名で作成されます。

・物理ホストのユーザー応答機能管理デーモンの場合:adshmd.log

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

JP1/Advanced Shell

104

・論理ホストのユーザー応答機能管理デーモンの場合:adshmd_

論理ホスト名

.log

スプールの出力情報と,それぞれのログの出力情報の定義方法を次に説明します。

(1) スプールの出力情報を定義する

スプールに関するパラメーターについて,定義する出力情報ごとに説明します。

(a) スプールジョブ作成抑止機能の使用有無を決定する

スプールジョブ作成抑止機能を使用すると,スプールジョブが作成されなくなるため,スプールディレク

トリのディスク容量の単調増加を防げます。また,スプールディレクトリ下の不要なディレクトリやファ

イルを削除する必要がなくなります。

スプールジョブ作成抑止機能の使用は SPOOLJOB_CREATE パラメーターで設定します。詳細について

は,「 7.3.40 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 メッセージを出力してコマンドは終了します。

• ジョブ実行ログの採取

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

JP1/Advanced Shell

105

ジョブ実行ログは採取しません。

• 稼働実績採取機能

稼働実績は採取しません。

スプールジョブ作成抑止機能を使用した場合でも,スプールディレクトリは必要です。

また,スプールジョブ作成抑止機能を使用した場合には,次の環境設定パラメーターの指定は無視します。

• 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 パラメーターはシステム環境ファイルだけに定

義してください。

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

JP1/Advanced Shell

106

(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 の情報メッセージと警告メッセージ

は標準出力,標準エラー出力へ出力しません。また,ジョブ終了時にジョブ実行ログを標準エラー出力へ

出力しません。さらに,最小出力モードでは,出力抑止したメッセージはスプールジョブディレクトリ下

のジョブ実行ログにも出力しません。

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

JP1/Advanced Shell

107

簡潔出力モード,拡張出力モードおよび最小出力モードの出力内容の差異については,「

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) システム実行ログの出力情報を定義する

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

報です。

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

JP1/Advanced Shell

108

このログ情報は,環境ファイルの LOG_DIR パラメーターで指定したディレクトリ下の AdshLog.log に

出力されます。パラメーターに設定した条件(サイズなど)に従って,ファイル名のローテーション

(AdshLog_1.log,AdshLog_2.log,…AdshLog_

N

.log)が実施されます。システム実行ログのファイル

はローテーション時に新しく作成されるため,ファイルの所有者はローテーション時のユーザーになります。

(a) システム実行ログの出力の流れ

システム実行ログには,各ジョブコントローラプロセスで実行しているバッチジョブの情報が出力されま

す。環境ファイルにシステム実行ログの出力先,サイズおよび面数を指定できます。システム実行ログの

出力の流れを次に示します。

図 2-6 システム実行ログの出力の流れ

システム実行ログは次のように作成されます。

• システム実行ログに出力するメッセージを集め,CSV 形式で出力します。

出力するメッセージについては,「

12.2 メッセージの出力先

」を参照してください。

• ローテーションを行い,バックアップが作成されます。

• 環境ファイルの LOG_FILE_SIZE パラメーターに指定されたファイルサイズを超える直前に,シス

テム実行ログのファイル名を変更してバックアップを作成し,新たにシステム実行ログを作成して

出力を継続します。

• バックアップのファイル名は,AdshLog_

N

.log(

N

は整数)となります。N には新しいバックアッ

プから昇順に 1 から番号を割り当てます。

• 環境ファイルの LOG_FILE_CNT パラメーターに指定された面数のバックアップを作成し,面数を

超えた場合は古いバックアップを削除します。

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

JP1/Advanced Shell

109

(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-12-06T18:27:12.045+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX0004-I, msg="ジョブ識別子=000070, JP1NBQSQueueName=, ジョブ番号=" seqnum=2, date=2013-12-06T18:27:12.060+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX0091-I, msg="JOB1 ジョブが開始しました。" seqnum=3, date=2013-12-06T18:27:12.060+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX7901-I, msg="ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了

を待ちます。" seqnum=4, date=2013-12-06T18:27:12.060+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX7902-I, msg="ジョブコントローラは,""端末入力モード""で動作します。" seqnum=5, date=2013-12-06T18:27:12.062+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX0092-I, msg="JOB1.STEP1 ステップが開始しました。" seqnum=6, date=2013-12-06T18:27:12.076+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX6116-I, msg="コマンド(D:\bin\uap01.exe, 行番号=5)が正常終了しました。rc=0 E-

Time=0.010s C-Time=0.000s" seqnum=7, date=2013-12-06T18:27:12.076+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX6597-I, msg="JOB1.STEP1 ジョブステップが正常終了しました。rc=0 E-Time=0.015s C-

Time=0.016s" seqnum=8, date=2013-12-06T18:27:12.076+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX0092-I, msg="JOB1.STEP2 ステップが開始しました。" seqnum=9, date=2013-12-06T18:27:12.087+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX6116-I, msg="コマンド(D:\bin\uap02.exe, 行番号=10)が正常終了しました。rc=0 E-

Time=0.009s C-Time=0.015s" seqnum=10, date=2013-12-06T18:27:12.087+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX6597-I, msg="JOB1.STEP2 ジョブステップが正常終了しました。rc=0 E-Time=0.011s C-

Time=0.015s" seqnum=11, date=2013-12-06T18:27:12.087+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX0092-I, msg="JOB1.STEP2 ステップが開始しました。" seqnum=12, date=2013-12-06T18:27:12.097+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX6116-I, msg="コマンド(D:\bin\uap03.exe, 行番号=15)が正常終了しました。rc=0 E-

Time=0.007s C-Time=0.000s" seqnum=13, date=2013-12-06T18:27:12.097+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX6597-I, msg="JOB1.STEP2 ジョブステップが正常終了しました。rc=0 E-Time=0.010s C-

Time=0.000s"

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

JP1/Advanced Shell

110

seqnum=14, date=2013-12-06T18:27:12.097+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX0098-I, msg="JOB1 ジョブが終了しました。rc=0 E-Time=0.041s C-Time=0.031s"

システム実行ログで,メッセージテキストの前に付加されるデータの意味を次に示します。

システム実行ログに出力される

データ seqnum date pgmid jobid pid msgid msg

データの意味

メッセージの通し番号

出力した日時(yyyy-mm-ddThh:mm:ss.sssTZD の形式)

プログラム ID

ジョブコントローラの場合,adshexec が出力されます。

ジョブ識別子

プロセス ID

出力メッセージのメッセージ ID

出力メッセージのメッセージテキスト

(4) トレースログの出力情報を定義する

トレースログは,JP1/Advanced Shell の内部トレースログです。JP1/Advanced Shell でトラブルが発

生した場合に,問題点を解明するために採取する情報です。

トレースログの種類を次の表に示します。

表 2-20 トレースログの種類

項番 トレースログの種類 トレースログの出力先(デフォルト値)

1

ファイル面数 ファイルサ

イズ

《4》

((1〜64))

《2》

((1〜16))

2

3

4

JP1/Advanced Shell の実行

環境(Windows および

UNIX)のトレースログ

および JP1/Advanced Shell

のジョブ定義スクリプト稼働実

績情報出力コマンド

(adshevtout コマンド)のト

レースログ

JP1/Advanced Shell -

Developer のエディタ以外の

トレースログ

JP1/Advanced Shell のカス

タムジョブのトレースログ

JP1/Advanced Shell -

Developer のエディタのト

レースログ

• Windows の場合

共通アプリケーションフォルダ\Hitachi

\JP1AS\JP1ASE\trace

• UNIX の場合

/opt/jp1as/trace

共通アプリケーションフォルダ\Hitachi\JP1AS

\JP1ASD\trace

共通アプリケーションフォルダ\Hitachi\JP1AS

\JP1ASV\trace

共通アプリケーションフォルダ\Hitachi\JP1AS

\JP1ASD\adshedit\trace

《4》

((1〜64))

1

1

《2》

((1〜16))

1

1

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

JP1/Advanced Shell

111

項番 トレースログの種類 トレースログの出力先(デフォルト値) ファイル面数 ファイルサ

イズ

4 2 5 JP1/Advanced Shell,JP1/

Advanced Shell - Developer

の共通コマンドのトレースログ

共通アプリケーションフォルダ\Hitachi\JP1AS

\misc\trace

注※

トレースログの出力先,面数,およびファイルサイズは,環境設定パラメーターで変更できます。

トレースを定義するために必要なパラメーターを次に示します。

• 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 スクリプト拡張コマンドの終了コードを定義する

スクリプト拡張コマンドが失敗および成功した場合の終了コードを標準の値から変更したいときに指定し

ます。

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

JP1/Advanced Shell

112

• 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) 環境ファイルの設定例

環境ファイルに次の例のようなパラメーターを設定しておきます。

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

JP1/Advanced Shell

113

#-adsh_conf BATCH_CVR YES

#-adsh_conf ASC_FILE ./cvrg/ver001-*

設定例の意味を行ごとに次に示します。

1. BATCH_CVR:カバレージ採取の一括有効化機能を使用する。

2. 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 環境変数と一致していることを確認してください。

1. パスを変換する機能を有効にする。

UNIX のジョブ定義スクリプトの区切り文字を Windows のプラットフォームに変換するために,環

境ファイルに次のパラメーターを指定します。

#-adsh_conf PATH_CONV_ENABLE / :

2. 記述されたパスを変換するための設定を実施する。

ジョブ定義スクリプト中で,プログラムのパスを明示的に指定している場合は,Windows の環境に合

わせて変換するために,環境ファイルに次のパラメーターを指定します。UNIX 互換コマンドのパスを

変換する例を記載します。

#-adsh_conf PATH_CONV /opt/jp1as "C:\\Program Files\\HITACHI\\JP1AS\\JP1ASE"

3. パスを扱うシェル変数の周りの区切り文字を変換するための設定を実施する。

ジョブ定義スクリプト中でプログラムのパスをシェル変数を使って記述している場合は,そのシェル変

数を使用しているパスの区切り文字を変換するためにパスを扱うシェル変数を指定します。パスを扱う

シェル変数は環境ファイル,またはジョブ定義スクリプトで指定します。

• 環境ファイルでは次のように指定します。

#-adsh_conf PATH_CONV_VAR VAR

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

JP1/Advanced Shell

114

• ジョブ定義スクリプトでは次のコマンドを追加します。

#-adsh_path_var VAR

4. パス変換ルールを選択する。【Windows 限定】

パスの変換ルールを PATH_CONV_RULE パラメーターで指定します。

ダブルクォーテーション(")で囲んだ個所だけを変換したい場合,次のようにパス変換ルール 1 を指

定します。

#-adsh_conf PATH_CONV_RULE 1

ダブルクォーテーション(")で囲んだ個所以外も変換したい場合,次のようにパス変換ルール 2 を指

定します。

#-adsh_conf PATH_CONV_RULE 2

5. 変換が有効であることを確認する。

パス変換ルール 1 の場合,パスを変換したい個所が次の例のようにダブルクォーテーション(")で囲

まれていることを確認します。

"$VAR/cmd/ls" -l "/opt/jp1as/sample"

パス変換ルール 2 の場合,変換したくない個所がシングルクォーテーション(')で囲まれていること

を確認します。

6. パスの変換結果を事前に確認する。

ジョブ定義スクリプトの文法チェック(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 :

***** パス変換行(D:\home\user001\sample1.ash) *****

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

JP1/Advanced Shell

115

0005 : "$VAR\\cmd\\ls" -l "c:\\Program Files\\HITACHI\\JP1AS\\JP1ASE\\sample"

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。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 :

***** パス変換行(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 ルートジョブのジョブコントローラがバッチジョブを終了しました。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 パイプの最終コマンドの実行プロセスを定義する

パイプの最終コマンドをカレントプロセスと別プロセスのどちらで実行するかは,環境設定パラメーター

PIPE_CMD_LAST で次のように指定します。

• CURRENT:カレントプロセスで実行する

• OTHER:別プロセスで実行する

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

JP1/Advanced Shell

116

• SEQUENTIAL【Windows 限定】:すべてのコマンドをカレントプロセスで逐次実行する

PIPE_CMD_LAST パラメーターを省略した場合,UNIX 版では CURRENT,Windows 版では

SEQUENTIAL が適用されます。

2.6.15 ジョブを続行できないエラーが発生したときの終了コードを定義

する

メモリ不足やジョブ定義スクリプトの解析エラーなど,ジョブの実行を継続できないエラーによってジョ

ブが終了した場合,ジョブコントローラの終了コードは 1 となります。しかし,環境変数

ADSH_JOBRC_FATAL に値を設定しておくことで,この場合の終了コードを 1〜255 に変更できます。

環境変数 ADSH_JOBRC_FATAL の設定方法については,「 (2) 環境変数 ADSH_JOBRC_FATAL(ジョ

(1) 環境変数 ADSH_JOBRC_FATAL の適用可否

ジョブコントローラの動作中に発生するエラーの種類と,それに対する環境変数 ADSH_JOBRC_FATAL

での終了コード定義の適用可否を次の表に示します。

4

5

2

3

表 2-21 エラーの種類ごとの環境変数 ADSH_JOBRC_FATAL の適用可否

項番

1

エラーの発生

時期 adshexec コマ

ンドでのジョブ

起動時,

またはエディタ

からのジョブ定

義スクリプトの

デバッグ実行時

ジョブ定義スク

リプトの実行前

エラーの種類

OS が adshexec コマンドの実行を開始できないエラーです。

例えば,adshexec コマンドが使用するロードモジュールが存在しないエラーが該当

します。

6

環境変数 ADSH_JOBRC_FATAL の解析エラーです。

イベントファイルの初期化エラーです。

【UNIX 限定】シグナル受信によるエラーです。

【Windows 限定】TerminateProcess などによって,次に示すどれかのプロセスを即

時終了したことによるエラーです。

• adshexec.exe

• adshexecsub.exe

• adshesub.exe

• adshedit.exe

項番 2〜項番 5 以外で発生するすべてのエラーです。代表的なエラーは次のとおりです。

• adshexec コマンドのコマンドライン解析エラー

適用可否

※1

×

×

※2

×

×

※3

×

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

JP1/Advanced Shell

117

項番

6

7

8

9

10

11

12

13

エラーの発生

時期

ジョブ定義スク

リプトの実行前

ジョブ定義スク

リプトの実行中

ジョブ定義スク

リプトの実行後

エラーの種類

• adshexec コマンドの引数に指定したジョブ定義スクリプトファイルの状態不正エ

ラー

• 環境ファイル解析エラー

• ジョブ定義スクリプトの解析エラー

• ジョブ実行ログ,システム実行ログ,トレースログの初期化エラー

• asc ファイルの初期化エラー

•【Windows 限定】ライセンスチェックエラー

•【Windows 限定】制御信号(CTRL + C,CTRL + BREAK,

CTRL_CLOSE_EVENT)の受信によるエラー

ジョブ定義スクリプトの処理を続行するエラーです。

※4

デバッグ実行中に,次に示すデバッガのコマンドやメニュー,ボタンを使用してジョ

ブを途中で終了させたことによるエラーです。

•【UNIX 限定】kill コマンドの実行,quit コマンドの実行および run コマンドの再

実行

•【Windows 限定】[デバッグの中止]メニューの選択,[デバッグの中止]ボタン

のクリック,およびエディタウィンドウを閉じることによるデバッグ実行の中断

【UNIX 限定】シグナル受信によるエラーです。

【Windows 限定】TerminateProcess などによって,次に示すどれかのプロセスを即

時終了したことによるエラーです。

• adshexec.exe

• adshexecsub.exe

• adshesub.exe

• adshedit.exe

項番 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 以外を指定した場

合は除く)

【UNIX 限定】シグナル受信によるエラーです。

ファイルやディレクトリに関する,次に示すエラーです。

• スクリプト拡張コマンドで割り当てたファイルの解放エラー

適用可否

※1

×

×

×

×

※3

×

※3

×

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

JP1/Advanced Shell

118

項番

13

14

15

エラーの発生

時期

ジョブ定義スク

リプトの実行後

エラーの種類

• スプールジョブ管理ファイルの後処理エラー

• ルートジョブのスプールジョブディレクトリの後処理エラー

• イベントファイルの後処理エラー

【Windows 限定】TerminateProcess などによって,次に示すどれかのプロセスを即

時終了したことによるエラーです。

• adshexec.exe

• adshexecsub.exe

• adshesub.exe

• adshedit.exe

項番 12〜項番 14 以外で発生するすべてのエラーです。代表的なエラーを次に示しま

す。

• asc ファイルの後処理エラー

• 子孫ジョブのスプールジョブディレクトリの削除エラー

•【UNIX 限定】.DBG ファイルの解析エラー

• 内部矛盾エラー

•【Windows 限定】制御信号(CTRL + C,CTRL + BREAK,

CTRL_CLOSE_EVENT)の受信によるエラー

適用可否

※1

×

×

(凡例)

○:環境変数 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 になります。

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

JP1/Advanced Shell

119

注※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. JP1/Advanced Shell を利用するための準備

JP1/Advanced Shell

120

(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 が適用され

て終了コードが変更されることはありません。

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

JP1/Advanced Shell

121

(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 環境ファイルのパラメーター("SPOOL_DIR")で指定したディレクトリは存在しませ

ん。line=1

KNAX0410-E 環境ファイル("sample.ase")の解析でエラーが発生しました。エラーの内容はこの

メッセージの前に出力されているメッセージを参照してください。

KNAX0240-I 環境変数(ADSH_JOBRC_FATAL)の設定(8)が適用されました。 …1.

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。 rc=8 …2.

実行結果の 1.と 2.について次に説明します。

1. 環境変数 ADSH_JOBRC_FATAL が適用されたことを示すメッセージです。

2. ジョブコントローラの終了コードとして,環境変数 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

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

JP1/Advanced Shell

122

ジョブ起動時のコマンド指定内容

$ /opt/jp1as/bin/adshexec prt.sh

この場合の実行結果を次に示します。

******** ジョブコントローラのメッセージ出力 ********

14:59:57 000040 KNAX0091-I ADSH000040 ジョブが開始しました。

14:59:57 000040 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセス

の完了を待ちます。

14:59:57 000040 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

14:59:57 000040 KNAX6831-I CHILDJOB_SHEBANGパラメーターによる子孫ジョブ実行の読み替え規則

に合致しました。script="./cld.sh" shebang="/bin/sh"

>>>>>> [JOBLOG] /home/usr/cld.sh

14:59:57 000041 KNAX6571-I ADSH000041 子孫ジョブを開始しました。parent jobname=ADSH000040, parent jobid=000040

14:59:57 000041 KNAX6572-I 子孫ジョブ(ADSH000041)はジョブ環境ファイル("/opt/jp1as/ conf/adsh.conf")を使用します。

14:59:57 000041 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

14:59:57 000041 KNAX6110-I コマンド(val=10, 行番号=2)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

14:59:57 000041 KNAX6015-E 引数が必要な組み込みコマンドに対して,引数を指定しないで実行し

ました。filename="/home/usr/cld.sh" line=3

14:59:57 000041 KNAX6521-E コマンド(unset, 行番号=3)がエラー終了しました。rc=1 E-

Time=0.000s C-Time=0.000s

14:59:57 000041 KNAX6584-I ジョブ定義スクリプトの実行を停止するコマンドが実行されたため,

バッチジョブの実行を中断しました。

14:59:57 000041 KNAX0101-E ADSH000041 ジョブを実行中にエラーが発生しました。

14:59:57 000041 KNAX6578-I ADSH000041 子孫ジョブが終了しました。rc=8 E-Time=0.001s C-

Time=0.000s

<<<<<< [JOBLOG] /home/usr/cld.sh

14:59:57 000040 KNAX6521-E コマンド(./cld.sh, 行番号=1)がエラー終了しました。rc=8 E-

Time=0.012s C-Time=0.000s

14:59:57 000040 KNAX6116-I コマンド(./cmdA, 行番号=2)が正常終了しました。rc=0 E-

Time=0.001s C-Time=0.000s

14:59:57 000040 KNAX0101-E ADSH000040 ジョブを実行中にエラーが発生しました。

14:59:57 000040 KNAX0098-I ADSH000040 ジョブが終了しました。rc=0 E-Time=0.016s C-

Time=0.000s

******** ジョブ定義スクリプトの内容 ********

***** /home/usr/prt.sh *****

0001 : ./cld.sh

0002 : ./cmdA

0003 :

***** パス変換情報 *****

***** /home/usr/cld.sh *****

0001 : #!/bin/sh

0002 : val=10

0003 : unset

0004 : ./cmdX $val

0005 :

***** パス変換情報 *****

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

JP1/Advanced Shell

123

******** 実行ジョブのSTDERRファイルの内容 ********

>>>>>> [STDERR] /home/usr/cld.sh

KNAX0726-I 子孫ジョブのジョブ識別子を割り当てました。Jobid=000041

KNAX0101-E ADSH000041 ジョブを実行中にエラーが発生しました。

KNAX0240-I 環境変数(ADSH_JOBRC_FATAL)の設定(8)が適用されました。

<<<<<< [STDERR] /home/usr/cld.sh

KNAX0101-E ADSH000040 ジョブを実行中にエラーが発生しました。

KNAX0098-I ADSH000040 ジョブが終了しました。rc=0 E-Time=0.016s C-Time=0.000s

******** ジョブステップの出力 ********

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="/var/opt/jp1as/spool/000040-ADSH000040/"

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。rc=0

実行結果の 1.と 2.について次に説明します。

1. 子孫ジョブの終了コードとして,環境変数 ADSH_JOBRC_FATAL の設定値が適用されています。

2. 子孫ジョブで環境変数 ADSH_JOBRC_FATAL が適用されたことを示すメッセージです。

Windows 版でシステム環境変数 ADSH_JOBRC_FATAL に 16 を設定して起動したジョブが続行不可エ

ラーで終了した場合の例を次に示します。

環境ファイルの LOG_DIR パラメーターに指定したディレクトリが存在しなかったため,ジョブの実行を

継続できなかった場合

システム環境変数に次の変数と値を設定しておきます。

• 変数:ADSH_JOBRC_FATAL

• 値:16

ジョブ起動時のコマンド指定内容 adshexec test.ash

この場合の実行結果を次に示します。

KNAX0441-E 環境ファイルのパラメーター("LOG_DIR")で指定したディレクトリは存在しません。 line=1

KNAX0410-E 環境ファイル("sample.ase")の解析でエラーが発生しました。エラーの内容はこの

メッセージの前に出力されているメッセージを

参照してください。

KNAX0240-I 環境変数(ADSH_JOBRC_FATAL)の設定(16)が適用されました。…1.

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。 rc=16 …2.

実行結果の 1.と 2.について次に説明します。

1. システム環境変数 ADSH_JOBRC_FATAL が適用されたことを示すメッセージです。

2. ジョブの終了コードとして,システム環境変数 ADSH_JOBRC_FATAL の設定値が適用されていま

す。

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

JP1/Advanced Shell

124

特殊組み込みコマンド(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

この場合の実行結果を次に示します。

******** ジョブコントローラのメッセージ出力 ********

17:36:17 000044 KNAX0091-I ADSH000044 ジョブが開始しました。

17:36:17 000044 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセス

の完了を待ちます。

17:36:17 000044 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

17:36:17 000044 KNAX6832-I CHILDJOB_EXTパラメーターによる子孫ジョブ実行の読み替え規則に合

致しました。script=".\cld.sh"

>>>>>> [JOBLOG] d:\home\usr\cld.sh

17:36:17 000045 KNAX6571-I ADSH000045 子孫ジョブを開始しました。parent jobname=ADSH000044, parent jobid=000044

17:36:17 000045 KNAX6572-I 子孫ジョブ(ADSH000045)はジョブ環境ファイル("c:\jp1as\conf

\adsh.conf")を使用します。

17:36:17 000045 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

17:36:17 000045 KNAX6110-I コマンド(val=10, 行番号=2)が正常終了しました。rc=0 E-

Time=0.001s C-Time=0.000s

17:36:17 000045 KNAX6015-E 引数が必要な組み込みコマンドに対して,引数を指定しないで実行し

ました。filename="d:\home\usr\cld.sh" line=3

17:36:17 000045 KNAX6521-E コマンド(unset, 行番号=3)がエラー終了しました。rc=1 E-

Time=0.001s C-Time=0.000s

17:36:17 000045 KNAX6584-I ジョブ定義スクリプトの実行を停止するコマンドが実行されたため,

バッチジョブの実行を中断しました。

17:36:17 000045 KNAX0101-E ADSH000045 ジョブを実行中にエラーが発生しました。

17:36:17 000045 KNAX6578-I ADSH000045 子孫ジョブが終了しました。rc=16 E-Time=0.006s C-

Time=0.015s

<<<<<< [JOBLOG] d:\home\usr\cld.sh

17:36:17 000044 KNAX6521-E コマンド(.\cld.sh, 行番号=1)がエラー終了しました。rc=16 E-

Time=0.184s C-Time=0.171s

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

JP1/Advanced Shell

125

17:36:17 000044 KNAX6116-I コマンド(.\cmdA.exe, 行番号=2)が正常終了しました。rc=0 E-

Time=0.049s C-Time=0.046s

17:36:17 000044 KNAX0101-E ADSH000044 ジョブを実行中にエラーが発生しました。

17:36:17 000044 KNAX0098-I ADSH000044 ジョブが終了しました。rc=0 E-Time=0.254s C-

Time=0.233s

******** ジョブ定義スクリプトの内容 ********

***** d:\home\usr\prt.sh *****

0001 : .\\cld.sh

0002 : .\\cmdA

0003 :

***** パス変換情報 *****

***** d:\home\usr\cld.sh *****

0001 : #!/bin/sh

0002 : val=10

0003 : unset

0004 : .\\cmdX $val

0005 :

***** パス変換情報 *****

******** 実行ジョブのSTDERRファイルの内容 ********

>>>>>> [STDERR] d:\home\usr\cld.sh

KNAX0726-I 子孫ジョブのジョブ識別子を割り当てました。Jobid=000045

KNAX0101-E ADSH000045 ジョブを実行中にエラーが発生しました。

KNAX0240-I 環境変数(ADSH_JOBRC_FATAL)の設定(16)が適用されました。

<<<<<< [STDERR] d:\home\usr\cld.sh

KNAX0101-E ADSH000044 ジョブを実行中にエラーが発生しました。

KNAX0098-I ADSH000044 ジョブが終了しました。rc=0 E-Time=0.254s C-Time=0.233s

******** ジョブステップの出力 ********

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="C:\Documents and Settings\All Users\Documents\Hitachi\JP1AS\JP1ASE\spool

\000044-ADSH000044\"

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。rc=0

実行結果の 1.と 2.について次に説明します。

1. 子孫ジョブの終了コードとして,システム環境変数 ADSH_JOBRC_FATAL の設定値が適用されて

います。

2. 子孫ジョブでシステム環境変数 ADSH_JOBRC_FATAL が適用されたことを示すメッセージです。

2.6.16 ユーザー応答機能を設定する

ユーザー応答機能を使用する場合,JP1/Advanced Shell および JP1/IM での環境設定が必要です。これ

らの環境設定については,「 2.8 ユーザー応答機能を設定する 」を参照してください。

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

JP1/Advanced Shell

126

2.6.17 JP1 環境を確認する【UNIX 限定】

JP1 の環境は,/etc/opt/jp1base/conf/jp1bs_param.conf で決定されます。使用する環境に合わせて文

字コードを設定してください。詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。

2.6.18 シェルを設定する【UNIX 限定】

JP1/AJS からジョブを起動する場合に使用するログインシェルを次に示します。該当するログインシェル

が使用できるよう設定してください。

OS の種類

Linux

AIX

HP-UX

Solaris

ログインシェル bash ksh

注意

JP1/AJS からジョブを起動する場合,adshexec コマンドがログインシェルの子プロセスとして動作す

ると,強制終了などが発生した際に,adshexec コマンドのジョブ実行結果が JP1/AJS に渡る前にログ

インシェルのプロセスが終了し,JP1/AJS - View 上にジョブ実行結果が反映されないときがあります。

この現象を防ぐには,ログインシェルのプロセスを上書きしてから起動する処理になっているか,ログ

インスクリプトファイルの定義を確認してください(trap コマンドの指定を削除するなど)。

定義の詳細については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド」また

はマニュアル「JP1/Automatic Job Management System 3 トラブルシューティング」を参照してく

ださい。

2.6.19 JP1/Advanced Shell で必要なディレクトリを作成する

JP1/Advanced Shell のインストールが完了したあと,実行に必要なディレクトリをデフォルト設定から

変更する場合,変更後のディレクトリを作成し,環境ファイルに指定します。

JP1/Advanced Shell で必要なディレクトリの種類と指定内容を次に示します。JP1/Advanced Shell を

実行するユーザーは,これらのディレクトリに対して必要な権限を割り当ててください。

• 一時ファイル用のディレクトリ

バッチジョブ内だけで利用するファイルを一時的に作成するディレクトリを指定します。

• スプール用のディレクトリ

ジョブ実行ログやプログラム出力データファイルを格納するディレクトリを指定します。

• システム実行ログ用のディレクトリ

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

JP1/Advanced Shell

127

システム管理者がバッチジョブの実行を監視するために,バッチジョブの履歴をシステム実行ログとし

て保存するディレクトリを指定します。

• トレース用のディレクトリ

システム障害時に,トラブルシューティングとして状況を保存するためのディレクトリを指定します。

JP1/Advanced Shell で必要なディレクトリを次に示します。環境設定パラメーターの設定方法について

は,「 7. 環境ファイルで設定するパラメーター 」を参照してください。

表 2-22 JP1/Advanced Shell で必要なディレクトリ

ディレク

トリの

種類

一時ファ

イル用の

ディレク

トリ

環境設定パラメーター デフォルトディレクトリまたはパス

TEMP_FILE_DIR • 実行環境【Windows 限定】

共有ドキュメントフォルダ\Hitachi\JP1AS\JP1ASE\temp

• 開発環境【Windows 限定】

共有ドキュメントフォルダ\Hitachi\JP1AS\JP1ASD\temp

• 実行環境【UNIX 限定】

/var/opt/jp1as/temp

スプール

用のディ

レクトリ

SPOOL_DIR • 実行環境【Windows 限定】

共有ドキュメントフォルダ\Hitachi\JP1AS\JP1ASE\spool

• 開発環境【Windows 限定】

共有ドキュメントフォルダ\Hitachi\JP1AS\JP1ASD\spool

• 実行環境【UNIX 限定】

/var/opt/jp1as/spool

システム

実行ログ

用のディ

レクトリ

LOG_DIR

LOG_FILE_CNT

LOG_FILE_SIZE

トレース

用のディ

レクトリ

TRACE_DIR

TRACE_FILE_CNT

TRACE_FILE_SIZE

TRACE_LEVEL

• 実行環境【Windows 限定】

共有ドキュメントフォルダ\Hitachi\JP1AS\JP1ASE\log

• 開発環境【Windows 限定】

共有ドキュメントフォルダ\Hitachi\JP1AS\JP1ASD\log

• 実行環境【UNIX 限定】

/opt/jp1as/log

• 実行環境【Windows 限定】

共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASE

\trace

• 開発環境【Windows 限定】

共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASD

\trace

• カスタムジョブ定義プログラム【Windows 限定】

共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASV

\trace

• 実行環境【UNIX 限定】

/opt/jp1as/trace

デフォルトの権限

CRWD【Windows

限定】

1777【UNIX 限定】

CRWD【Windows

限定】

1777【UNIX 限定】

CRWD【Windows

限定】

0777【UNIX 限定】

CRWD【Windows

限定】

1777【UNIX 限定】

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

JP1/Advanced Shell

128

(凡例)

次に示すデフォルトの権限の英字は,権限の種類を示します。

C:作成,R:読み込み,W:書き込み,D:削除

(1) 必要な権限

バッチジョブを実行するユーザーに対して,必要な権限を次に示します。

(a) Windows の場合

バッチジョブを実行するユーザーに対して,フルコントロールを設定してください。

(b) UNIX の場合

バッチジョブを実行するユーザーに対して,各ディレクトリには次に示すファイルパーミッションが必要

です。

表 2-23 ディレクトリのファイルパーミッション

ディレクトリの種類 読み込み許可(r) 書き込み許可(w) 実行許可(x)

一時ファイル用のディレクトリ

スプール用のディレクトリ

システム実行ログ用のディレクトリ

トレース用のディレクトリ

スティッキービット

(t)

×

(凡例)

○:設定が必須です。

△:システムの運用方針に従って設定します。

×:設定しません。

ディレクトリのスティッキービットは,システムの運用方針に従い,設定します。

ディレクトリにスティッキービットの設定がない場合,ディレクトリに書き込み許可があれば,ディレク

トリ直下の任意のファイルを削除できます。

ディレクトリにスティッキービットを設定した場合,ディレクトリに書き込み許可があっても,ディレク

トリの所有者,またはファイルの所有者の場合だけ,ディレクトリ直下の任意のファイルを削除できます。

(2) ファイルシステム

スプールなどは,業務によって大容量となる場合があるため,専用のファイルシステムを作成して使用す

ることをお勧めします。

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

JP1/Advanced Shell

129

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」です。

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.46 

TRAP_ACTION_SIGTERM パラメーター(ジョブコントローラが強制終了要求を受けたときの動作を定

使用例を次に示します。

環境ファイルの内容

#-adsh_conf TRAP_ACTION_SIGTERM TERM

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

JP1/Advanced Shell

130

ジョブ定義スクリプトの内容

#-adsh_job JOB01 trap "UAP_TERM" TERM

UAP01

→UAP01 実行中に強制終了要求を受けた場合,ジョブコントローラは「UAP_TERM」というユーザー

プログラムを実行したあと,子孫プロセスの強制終了といった後処理を実行してからジョブを終了しま

す。

2.6.22 スクリプト開発部品を使うための準備

JP1/Advanced Shell では,スクリプト開発部品を使用することによって,ジョブ定義スクリプトの生産

効率を向上させることができます。スクリプト開発部品の詳細については,「 10. スクリプト開発部品 」

を参照してください。

スクリプト開発部品は,次の手順で使用します。

1. スクリプト開発部品は次の場所に格納されています

。コピーして別の場所に格納してもかまいません。

Windows の実行環境の場合

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

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

Windows の開発環境の場合

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

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

UNIX の実行環境の場合

/opt/jp1as/parts/en

/opt/jp1as/parts/ja

注※ JP1/Advanced Shell のアンインストール時には削除されます。また,上書きインストール時に

は更新されます

2. 環境設定パラメーター CMDRC_CMDGRP_CHECK に FUNCTION を指定します。

3. 次のどれかの方法で,使用したいスクリプト開発部品を読み込みます。

• .(ドット)コマンドでスクリプト開発部品のファイルを読み込む(#-adsh_script コマンドでも読み

込み可能)。

日本語のコメントが記述されたスクリプト開発部品 cmpDate を読み込む場合のジョブ定義スクリ

プトの例を次に示します。

. "${ADSH_DIR_PARTS_JA}cmpDate"

英語のコメントが記述されたスクリプト開発部品 getFileSize を読み込む場合のジョブ定義スクリ

プトの例を次に示します。

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

JP1/Advanced Shell

131

. "${ADSH_DIR_PARTS_EN}getFileSize"

• 関数のオートロード機能でスクリプト開発部品のファイルを読み込む

日本語のコメントが記述されたスクリプト開発部品を読み込む場合の環境ファイルの例を次に示し

ます。 export FPATH=/opt/jp1as/parts/ja

各機能の使用方法については,次の項目を参照してください。

•「

9.3 シェル標準コマンド

」の「

9.3.1 .コマンド(シェルスクリプトを実行する)

•「

9.5 スクリプト拡張コマンド

」の「

9.5.7 #-adsh_script コマンド(実行中のジョブ定義スクリ

•「

(3) 関数のオートロード機能

4. ジョブ定義スクリプトの中でスクリプト開発部品を呼び出します。

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

JP1/Advanced Shell

132

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 でのカスタムジョブの登録手順を次に示します。

1. Windows の[スタート]メニューから,[すべてのプログラム]−[JP1_Automatic Job

Management System 3 - View]−[カスタムジョブ登録]を選択する。

[カスタムジョブの登録]ダイアログボックスが表示されます。

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

JP1/Advanced Shell

133

2.[新規登録]ボタンをクリックする。

[カスタムジョブ登録情報]ダイアログボックスが表示されます。

3. JP1/Advanced Shell 用のカスタムジョブを登録する。実行環境が Windows の場合,UNIX の場合,

GUI アプリケーション実行ジョブの場合でそれぞれ次のように登録する。

• Windows の場合

名前:ADSHPC を指定します。

コメント:「JP1/AS_PC ジョブ実行」という固定の文字列を推奨します。ただし,1〜40 バイトで

任意の文字列を指定できます。また,省略もできます。

定義プログラム:

インストール先フォルダ\

JP1ASV

\ bin

\ adshctmjpc.bat となります。カスタム

ジョブをインストールした PC のフォルダになります。

実行プログラム:

インストール先フォルダ\

JP1ASE

\ bin

\ adshexec.exe となります。実行環境をイ

ンストールした PC のフォルダになります。

バージョン:0600。JP1/AJS - View のインターフェースのバージョンです。

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

JP1/Advanced Shell

134

クラス名: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 ジョブを選択します。

• GUI アプリケーション実行ジョブの場合

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

JP1/Advanced Shell

135

名前:ADSHAPP を指定します。

コメント:「JP1/AS_GUI アプリケーション実行ジョブ」という固定の文字列を推奨します。ただ

し,1〜40 バイトで任意の文字列を指定できます。また,省略もできます。

定義プログラム: インストール先フォルダ ¥JP1ASV¥bin¥adshctmjapp.bat となります。カスタ

ムジョブをインストールした PC のフォルダになります。

実行プログラム: インストール先フォルダ ¥JP1ASE¥bin¥adshappexec.exe となります。

バージョン:0600。JP1/AJS - View のインターフェースのバージョンです。

クラス名:ADSHAPPEXEC を指定します。

ジョブ種別:JP1/Advanced Shell 用のジョブの場合,必ず PC ジョブを選択します。

4.[OK]ボタンをクリックする。

カスタムジョブが JP1/AJS - View に登録されます。

JP1/AJS - View 11-00 より古い製品がインストールされている場合で,アプリケーション実行エージェ

ント機能を使用する場合も,カスタムジョブアイコンを次のフォルダにコピーしてください。

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

JP1/AJS で使用するアイコンの説明を次に示します。

表 2-24 JP1/AJS で使用するアイコンの説明

アイコン 名称

Windows で実行され

るジョブアイコン

ファイル名

CUSTOM_PC_ADS

HPC.gif

説明

JP1/AJS - View のジョブネットエディタ上で使用する

Windows のカスタムジョブのアイコンです。[ジョブネット

エディタ]ウィンドウでの[カスタムジョブ]タブで表示さ

れます。

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

JP1/Advanced Shell

136

アイコン 名称

UNIX で実行される

ジョブアイコン

ファイル名

CUSTOM_PC_ADS

HUX.gif

GUI アプリケーション

実行ジョブアイコン

CUSTOM_PC_ADS

HAPPEXEC.gif

説明

JP1/AJS - View のジョブネットエディタ上で使用する UNIX

のカスタムジョブのアイコンです。[ジョブネットエディタ]

ウィンドウでの[カスタムジョブ]タブで表示されます。

JP1/AJS - View のジョブネットエディタ上で使用する GUI

アプリケーション実行ジョブのカスタムジョブのアイコンで

す。[ジョブネットエディタ]ウィンドウでの[カスタムジョ

ブ]タブで表示されます。

JP1/AJS とカスタムジョブ連携を行う定義プログラムです。 JP1/Advanced Shell

(実行定義)のアイコン

GUI アプリケーション

実行(実行定義)のア

イコン adshctmj.exe

adshctmjapp.exe

GUI アプリケーション実行ジョブとカスタムジョブ連携を行

う定義プログラムです。

注意事項

JP1/Advanced Shell がインストールされているマシンが複数あり,各マシンで共通のパスになってい

ない場合は,JP1/Advanced Shell のインストールパスを変数に設定して,フルパスの代わりに変数名

をカスタムジョブ登録の実行プログラムの項目に指定してください。設定方法については,マニュアル

「JP1/Automatic Job Management System 3 構築ガイド」の「ジョブ実行時のワークパスを変数と

して定義する」を参照してください。

指定方法の例を次に示します。 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 の場合),または GUI アプリケーション実行ジョブを JP1/AJS - View でジョブネッ

トに定義し,ジョブネットを実行します。JP1/AJS - View の詳細については,マニュアル「JP1/Automatic

Job Management System 3 操作ガイド」のジョブ定義の説明を参照してください。

JP1/AJS3 - View でのジョブネットを定義して実行する手順を次に示します。

1. Windows の[スタート]メニューから,[すべてのプログラム]−[JP1_Automatic Job

Management System 3 - View]−[ジョブシステム運用]を選択する。

[ログイン]画面が表示されます。

2. ユーザー名,パスワード,および接続ホスト名を指定してログインする。

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

JP1/Advanced Shell

137

[JP1/AJS3 - View]ウィンドウが表示されます。

3.[編集]−[新規作成]−[ジョブネット]を選択する。

[詳細定義]−[ジョブネット]ダイアログボックスが表示されます。

4. ジョブネットに属性などを定義して,[OK]ボタンをクリックする。

運用環境に応じて,[実行エージェント]に適切な内容を指定してください。省略することもできます。

JP1/AJS の項目については,JP1/AJS のマニュアルを参照してください。

これによってジョブネットが作成され,リストエリアに表示されます。

5. 作成したジョブネットをダブルクリックする。

[ジョブネットエディタ]ウィンドウが表示されます。

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

JP1/Advanced Shell

138

6. ジョブを定義したり関連づけたりするときにほかのユーザーがアクセスできないように,[排他編集]

をチェックする。

7. アイコンリストから必要なカスタムジョブ,PC ジョブ,UNIX ジョブ,または GUI アプリケーショ

ン実行ジョブのアイコンをマップエリアへドラッグする。

[詳細定義-[Custom Job]]ダイアログボックス,[詳細定義−[PC Job]]ダイアログボックス,ま

たは[詳細定義−[UNIX Job]]ダイアログボックスが表示されます。

以降の手順では,カスタムジョブでの定義方法を示します。PC ジョブまたは UNIX ジョブを使用する

場合に JP1/Advanced Shell で必要な設定については,「

2.7.3 PC ジョブ/UNIX ジョブによるジョ

ブの定義 」を参照してください。

8.[詳細定義-[Custom Job]]ダイアログボックスでジョブに属性などを定義する。

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

JP1/Advanced Shell

139

JP1/AJS のマニュアルに従って,[定義]タブを指定した場合と[属性]タブを指定した場合の両方に

適切な内容を指定します。

また,運用環境に応じて,[実行エージェント]に適切な内容を指定してください。省略することもで

きます。

なお,PC ジョブ,UNIX ジョブの場合で次のどちらかが指定されている場合に,[定義]タブで[標

準出力ファイル名]を指定すると,空のファイルが出力されます。

• adshexec コマンドの-s オプション,または環境ファイルの OUTPUT_STDOUT パラメーターに

SPOOL を指定(標準出力をスプール内のファイルに出力)

• OUTPUT_MODE_ROOT パラメーターで EXTENDED を指定(拡張出力モードを選択)

標準出力の内容は JP1/Advanced Shell のジョブコントローラで別ファイルに出力していて,JP1/AJS

に返す標準出力には何も出力していないためです。

9.[定義]タブを選択して[詳細]ボタンをクリックする。

カスタムジョブの種類に対応した,[実行定義]ダイアログボックスが表示されます。Windows,

UNIX,および GUI アプリケーション実行ジョブの場合の表示を次に示します。

• Windows の場合

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

JP1/Advanced Shell

140

• UNIX の場合

• GUI アプリケーション実行ジョブの場合

手順 9.と手順 10.については,「

(2) カスタムジョブによるジョブネットの定義手順に関する補足

」に

示す補足も参照してください。

10.[実行定義]ダイアログボックスに JP1/Advanced Shell の実行に必要な情報を設定して[OK]ボタ

ンをクリックする。

PC ジョブ,UNIX ジョブの場合

• ジョブ定義スクリプトファイル名 〜<パス名> Windows の場合:((1〜247 バイト)),UNIX の

場合:((1〜1,023 バイト))

ジョブ定義スクリプトファイル名を指定します。省略できません。

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

JP1/Advanced Shell

141

• 実行時パラメーター 〜< 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 の値)で実行します。

• 事前チェック

ジョブの内容を事前にチェックするかどうかを指定します。事前チェックのチェックボックスに

チェックして実行した場合,ジョブ定義スクリプトファイルを実行しないでジョブ定義スクリプト

ファイルの内容をチェックします。

GUI アプリケーション実行ジョブの場合

• コマンドライン 〜< ASCII 文字列> ((1〜1,022 バイト))

実行アプリケーションのファイル名および実行アプリケーションの実行時に指定するパラメーター

を指定します。省略できません。

• 実行アプリケーションのパス名 〜< ASCII 文字列> ((1〜247 バイト))

実行アプリケーション名のパス名を指定します。

• 実行アプリケーションの引数 〜< ASCII 文字列> ((0〜1,023 バイト))

実行アプリケーションの引数を指定します。

• ワークフォルダ 〜<パス名>((0〜247 バイト))

実行アプリケーションの実行時のワークフォルダを指定します。

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

JP1/Advanced Shell

142

ワークフォルダは省略できます。省略した場合は,JP1/AJS-Agent(または JP1/AJS-Manager)

が GUI アプリケーション実行プログラムを起動するときの実行時ディレクトリ(ワークディレクト

リ)になります。JP1/AJS-Agent(または JP1/AJS-Manager)が JP1/AS のジョブコントローラ

を起動するときの実行時ディレクトリ(ワークディレクトリ)については,マニュアル「JP1/

Automatic Job Management System 3 構築ガイド」を参照してください。

表示名 〜< ASCII 文字列>((0〜247 バイト)) アプリケーション実行エージェントアイコンを左

クリックしたときに表示される表示名を指定します。表示名は省略できます。省略した場合はコマ

ンドラインの内容となります。

• 実行アプリケーション実行後の動作

実行アプリケーション実行後に終了を待たないかどうかを指定します。実行アプリケーション実行

後の動作のチェックボックスで,チェックをしないで実行した場合,実行アプリケーション実行後

に終了を待ちます。実行アプリケーション実行後の動作のチェックボックスで,チェックをして実

行した場合,実行アプリケーション実行後に終了を待ちません。

• メッセージの出力

メッセージの出力を抑止するかどうかを指定します。「標準エラー出力への出力を抑止する」のチェッ

クボックスで,チェックをして実行した場合,標準エラー出力へメッセージの出力を抑止します。

11.[詳細定義-[Custom Job]]ダイアログボックスに戻ってから[OK]ボタンをクリックする。

ジョブネットにジョブが定義されます。必要に応じて,同様の手順で,ジョブを定義してください。

12. ジョブ同士を実行順序に従って関連づける。

ジョブネットが定義されます。JP1/AJS - View でのジョブの定義例を次に示します。

13. JP1/AJS の操作によってジョブネットを実行する。

JP1/Advanced Shell のジョブコントローラの終了コードをジョブの終了コードとして JP1/AJS に返

します。

(1) ジョブネットの定義内容に関する注意事項

• カバレージの指定

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

JP1/Advanced Shell

143

カスタムジョブからカバレージを有効にしたい場合は,環境ファイルにカバレージ採取の一括有効化機

能を指定してください。

• 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 構築ガイド」を参照してください。実行時ディレクト

リは,JP1/AJS のマニュアルでは,ワークパス(ワークディレクトリ)と表記されています。

• JP1/AJS から JP1/Advanced Shell のジョブコントローラを起動したときの環境変数

JP1/AJS から Windows の JP1/Advanced Shell のジョブコントローラを起動した場合,通常

JP1/AJS サービス起動時にはシステム環境変数の設定を有効にし,ユーザー環境変数は読み込まれませ

ん。詳細は JP1/AJS のマニュアルを参照してください。

• 言語種別を英語に設定した海外版の JP1/AJS - Manager と接続して使用する

言語種別を英語に設定した海外版の JP1/AJS - Manager と接続してジョブを定義する場合,[実行定

義]ダイアログボックスのジョブの定義情報には英数字(ASCII)だけを使用してください。

• Shift-JIS 以外の文字コード種別を設定した JP1/AJS からジョブコントローラを起動したときの定義情

報の入力範囲【UNIX 限定】

カスタムジョブの[実行定義]ダイアログボックスのジョブ定義スクリプトファイル名とジョブ環境

ファイル名の設定項目では,入力バイト数のチェックを Shift-JIS のバイト数でしています。ただし,

実行環境の文字コードが Shift-JIS 以外の場合は,[実行定義]ダイアログボックスに入力できるファイ

ル名であっても,実行環境の文字コードに変換したバイト数が OS が定めるファイル名長の制限を超え

ていると,ジョブコントローラがエラーとなります。この場合は,ジョブコントローラのエラーメッ

セージを参照して正しい定義情報を入力するようにしてください。

• JP1/AJS から GUI アプリケーション実行プログラムを起動したときの環境変数

JP1/AJS から GUI アプリケーション実行プログラムを起動した場合,実行ユーザーの環境変数を使用

します。

(2) カスタムジョブによるジョブネットの定義手順に関する補足

「 2.7.2 ジョブネットを定義して実行する

」の手順 9 と手順 10 の実行定義の設定について,JP1/AJS の ajsdefine コマンドのユニット定義,および JP1/AJS - Definition Assistant のジョブの定義で定義するこ

ともできます。

ユニット定義の詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリ

ファレンス」を参照してください。

JP1/AJS - Definition Assistant については,マニュアル「JP1/Automatic Job Management System 3

- Definition Assistant」を参照してください。

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

JP1/Advanced Shell

144

カスタムジョブを使用する場合の,ユニット定義および JP1/AJS - Definition Assistant で記述する環境

変数とパラメーターの詳細を次に記載します。

(a) PC ジョブ,UNIX ジョブの場合

• JP1/Advanced Shell の[実行定義]ダイアログボックスで設定する環境変数

ADSH_AJS_SCRF:ジョブ定義スクリプトファイル名

ADSH_AJS_ENVF:ジョブ環境ファイル名

ADSH_AJS_LHOST:論理ホスト

ADSH_AJS_GCHE:事前チェック

• JP1/Advanced Shell のジョブコントローラに渡す環境変数

ユニット定義ファイルの env パラメーターとして環境変数を定義します。

JP1/Advanced Shell のジョブコントローラに渡す環境変数の設定項目を次の表に示します。

表 2-25 JP1/Advanced Shell のジョブコントローラに渡す環境変数の設定項目

項目名 説明

入力範囲 環境変数の値として指定できる文字列("="の後ろの文字列)のバイト数(Shift-JIS)

設定値 定義できる文字の種類

• 文字列:制御文字(0x00〜0x1f,0x7f)以外の文字

• 記号名称:半角英数字および「@」「#」「_」

• 数字

初期値

省略

新規作成ジョブとしてカスタムジョブを起動したときに読み込む値

値を省略できないものは,JP1/Advanced Shell のジョブコントローラでエラーとなります。

JP1/Advanced Shell のジョブコントローラに渡す環境変数の設定項目の入力範囲と設定値を次の表に

示します。

表 2-26 JP1/Advanced Shell のジョブコントローラに渡す環境変数の設定項目の入力範囲

と設定値

環境変数

ADSH_AJS_SCRF

ADSH_AJS_ENVF

ADSH_AJS_LHOST

入力範囲

PC ジョブ:1〜247 バイト

UNIX ジョブ:1〜1,023 バイト

PC ジョブ:0〜247 バイト

UNIX ジョブ:0〜1,023 バイト

0〜2 バイト

設定値

文字列

文字列

初期値 省略

空文字列 できない

空文字列 できる

空文字列 できる

ADSH_AJS_GCHE 0〜2 バイト

• チェックありの場合

-h

• チェックなしの場合

空文字列

• チェックありの場合

-c

空文字列 できる

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

JP1/Advanced Shell

145

環境変数

ADSH_AJS_GCHE

入力範囲

0〜2 バイト

設定値

• チェックなしの場合

空文字列

"TERM"

初期値 省略

空文字列 できる

AJS_BJEX_STOP 4 バイト "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.

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

JP1/Advanced Shell

146

tho=0;

}

例の右側に付記した番号に対応する説明を次に示します。

1. AJS_BJEX_STOP:AJS_BJEX_STOP 環境変数はシステムで使用するため,設定値に TERM を指定し

て必ず定義してください。

2. ADSH_AJS_SCRF:ジョブ定義スクリプトファイル名を指定します。

ADSH_AJS_SCRF 環境変数は必ず定義してください。

3. ユニット定義ファイルの prm パラメーターを指定します。

4. ADSH_AJS_ENVF:ジョブ環境ファイル名を指定します。

5. ADSH_AJS_LHOST:論理ホストで実行する場合は-h を指定し,実施しない場合は何も指定しません。

6. ADSH_AJS_GCHE:事前チェックを実施する場合は-c を指定し,実施しない場合は何も指定しません。

ユニット定義ファイルを作成したあと,JP1/AJS の ajsdefine コマンドおよび JP1/AJS3 - Definition

Assistant でジョブを定義できます。

(b) GUI アプリケーション実行ジョブの場合

• JP1/Advanced Shell の[実行定義]ダイアログボックスで設定する環境変数

ADSH_AJS_APPNAME:実行アプリケーションのパス名

ADSH_AJS_APPARG:実行アプリケーションの引数

ADSH_AJS_WORKF:ワークフォルダ

ADSH_AJS_SHOWN:表示名

ADSH_AJS_AFEXECMV:実行アプリケーション実行後の動作

ADSH_AJS_MESOUT:メッセージの出力

• GUI アプリケーション実行プログラムに渡す環境変数

ユニット定義ファイルの env パラメーターとして環境変数を定義します。

GUI アプリケーション実行プログラムに渡す環境変数の設定項目を次の表に示します。

表 2-27 JP1/Advanced Shell のジョブコントローラに渡す環境変数の設定項目

項目名

入力範囲

設定値

初期値

省略

説明

環境変数の値として指定できる文字列("="の後ろの文字列)のバイト数(Shift-JIS)

定義できる文字の種類

• 文字列:制御文字(0x00〜0x1f,0x7f)以外の文字

• 記号名称:半角英数字および「@」「#」「_」

• 数字

新規作成ジョブとしてカスタムジョブを起動したときに読み込む値

値を省略できないものは,GUI アプリケーション実行プログラムでエラーとなります。

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

JP1/Advanced Shell

147

GUI アプリケーション実行プログラムに渡す環境変数の設定項目の入力範囲と設定値を次の表に示し

ます。

表 2-28 GUI アプリケーション実行プログラムに渡す環境変数の設定項目の入力範囲と設

定値

環境変数

ADSH_AJS_APPNAME

ADSH_AJS_APPARG

ADSH_AJS_WORKF

ADSH_AJS_SHOWN

ADSH_AJS_AFEXECMV

ADSH_AJS_MESOUT

ADSH_AJS_APPEXEC

入力範囲

1〜247 バイト

0〜1,023 バイト

0〜247 バイト

0〜247 バイト

0〜2 バイト

0〜2 バイト

7 バイト

設定値

文字列

文字列

文字列

文字列

• チェックありの場合

-n

• チェックなしの場合

空文字列

• チェックありの場合

-m

• チェックなしの場合

空文字列

" APPEXEC "

初期値

空文字列

空文字列

空文字列

空文字列

空文字列

空文字列

" APPEXEC "

省略

できない

できる

できる

できる

できる

できる

できない

注意事項 

ユニット定義ファイルで定義情報を削除する場合は,env パラメーターは環境変数の値(「=」の後

ろの文字列)を削除するか,env パラメーターの指定そのものを削除してください。

ユニット定義の例を次に示します。 unit=ユニット名,,実行ユーザー,;

{

ty=cpj;

cty="ADSHAPPEXEC";

sc=" C:\Program Files\HITACHI\JP1AS\JP1ASE\bin\adshappexec.exe";

env="ADSH_AJS_APPEXEC=APPEXEC"; →1.

env="ADSH_AJS_APPNAME=C:\ExecApp.exe"; →2.

env="ADSH_AJS_APPARG=param1 param2"; →3.

env="ADSH_AJS_WORKF=C:\work-folder"; →4.

env="ADSH_AJS_SHOWN=ExecApplication"; →5.

env="ADSH_AJS_AFEXECMV=-n"; →6.

env="ADSH_AJS_MESOUT=-m"; →7.

tho=0;

}

例の右側に付記した番号に対応する説明を次に示します。

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

JP1/Advanced Shell

148

1. ADSH_AJS_APPEXEC 環境変数はシステムで使用するため,設定値に APPEXEC を指定して必ず定

義してください。

2. ADSH_AJS_APPNAME:実行アプリケーションのパス名を指定します。

ADSH_AJS_APPNAME は必ず定義してください。

3. ADSH_AJS_APPARG:実行アプリケーションの引数を指定します。

4. ADSH_AJS_WORKF:ワークフォルダを指定します。

5. ADSH_AJS_SHOWN:表示名を指定します。

6. ADSH_AJS_AFEXECMV:実行アプリケーション実行後の動作で終了を待たない場合は-n を指定し,

実施しない場合は何も指定しません。

7. ADSH_AJS_MESOUT:標準エラー出力への出力を抑止する場合は-m を指定し,実施しない場合は何

も指定しません。

ユニット定義ファイルを作成したあと,JP1/AJS の ajsdefine コマンドおよび JP1/AJS3 - Definition

Assistant でジョブを定義できます。

2.7.3 PC ジョブ/UNIX ジョブによるジョブの定義

(1) PC ジョブによるジョブの定義

PC ジョブで JP1/Advanced Shell のバッチジョブを定義する場合に必要な項目について示します。

(a) バッチジョブを定義する場合

• 実行ファイル名

[詳細定義−[PC Job]]ダイアログボックスの[定義]タブの「実行ファイル名」,またはユニット定

義ファイルの「sc="スクリプトファイル名"」に,adshexec コマンドのパスを指定します。

"インストール先フォルダ\JP1ASE\bin\adshexec.exe"

• パラメーター

[詳細定義−[PC Job]]ダイアログボックスの[定義]タブの「パラメーター」,またはユニット定義

ファイルの「prm="パラメーター"」に,adshexec コマンドのオプション,ジョブ定義スクリプトファ

イル名,および実行時パラメーターを指定します。

• 環境変数

[詳細定義−[PC Job]]ダイアログボックスの[定義]タブの「環境変数」,またはユニット定義ファ

イルの「env="環境変数"」に,次の内容を指定します。

AJS_BJEX_STOP=TERM

JP1/Advanced Shell のバッチジョブとしての指定例を次の図に示します。

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

JP1/Advanced Shell

149

図 2-7 [詳細定義-[PC Job]]ダイアログボックスの[定義]タブの指定例

(b) GUI アプリケーション実行ジョブを定義する場合

PC ジョブで JP1/Advanced Shell の GUI アプリケーション実行ジョブを定義する場合に必要な項目につ

いて示します。

• 実行ファイル名

[詳細定義−[PC Job]]ダイアログボックスの[定義]タブの「実行ファイル名」,またはユニット定

義ファイルの「sc="スクリプトファイル名"」に,adshappexec コマンドのパスを指定します。

"インストール先フォルダ\JP1ASE\bin\adshappexec.exe"

• パラメーター

[詳細定義−[PC Job]]ダイアログボックスの[定義]タブの「パラメーター」,またはユニット定義

ファイルの「env="パラメーター"」に,adshappexec コマンドのパラメーターを指定します。

• 環境変数,環境変数ファイル名

指定しても環境変数,および環境変数ファイル名は無視します。

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

JP1/Advanced Shell

150

JP1/Advanced Shell のバッチジョブとしての指定例を次の図に示します。

図 2-8 [詳細定義-[PC Job]]ダイアログボックスの[定義]タブの指定例

(2) UNIX ジョブによるジョブの定義

UNIX ジョブで JP1/Advanced Shell のバッチジョブを定義する場合に必要な項目について示します。

• スクリプトファイル名

[詳細定義-[UNIX Job]]ダイアログボックスの[定義]タブの「スクリプトファイル名」,またはユ

ニット定義ファイルの「sc="スクリプトファイル名"」に,adshexec コマンドのパスを指定します。

/opt/jp1as/bin/adshexec

また,1 行目に#!で開始する adshexec コマンドのパス(例:#!/opt/jp1as/bin/adshexec)を記述

し,実行権限を付与したジョブ定義スクリプトファイルのパスを指定することもできます。

ジョブ定義スクリプトファイルのパス

• コマンド文

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

JP1/Advanced Shell

151

[詳細定義−[UNIX Job]]ダイアログボックスの[定義]タブの「コマンド文」,またはユニット定

義ファイルの「te="コマンドテキスト"」に,コマンドテキストの一部として「スクリプトファイル名」

と同様の方法で adshexec コマンドのパス,またはジョブ定義スクリプトファイルのパスを指定できま

す。コマンド文で定義したジョブを JP1/AJS で強制終了した場合,次の制限があります。

• 強制終了の操作をするタイミングによっては,JP1/AJS-View からジョブ実行ログやジョブの標準

エラー出力の内容を参照できないことがあります。この場合,ジョブ実行ログについては,スプー

ルジョブディレクトリを参照することで内容を確認できます。

• ジョブ実行ログに出力されるジョブの終了コードは 143 ですが,JP1/AJS - View から参照できる

ジョブの終了コードは-1 になります。

• パラメーター

[詳細定義-[UNIX Job]]ダイアログボックスの[定義]タブの「パラメーター」,またはユニット定

義ファイルの「prm="パラメーター"」に,adshexec コマンドのオプション,ジョブ定義スクリプト

ファイル名,および実行時パラメーターを指定します。

スクリプトファイル名にジョブ定義スクリプトファイル名を指定した場合は,実行時パラメーターだけ

を指定します。

• 環境変数

[詳細定義-[UNIX Job]]ダイアログボックスの[定義]タブの「環境変数」,またはユニット定義

ファイルの「env="環境変数"」に,次の内容を指定します。

AJS_BJEX_STOP=TERM

JP1/Advanced Shell のバッチジョブとしての指定例を次の図に示します。この例では,「スクリプトファ

イル名」に adshexec コマンド,およびジョブ定義スクリプトファイルパスを指定しています。

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

JP1/Advanced Shell

152

図 2-9 [詳細定義-[UNIX Job]]ダイアログボックスの[定義]タブの指定例(adshexec コ

マンドを指定する場合)

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

JP1/Advanced Shell

153

図 2-10 [詳細定義-[UNIX Job]]ダイアログボックスの[定義]タブの指定例(ジョブ定義ス

クリプトファイルパスを指定する場合)

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

JP1/Advanced Shell

154

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 -

(3) JP1 イベントの流量制御の指定

ユーザー応答機能を使用する場合,次に示す JP1 イベントの出力数の条件を満たす必要があります。この

条件は,同一の JP1/IM が受信する,すべての JP1 イベントが対象となります。

項番

1

2

説明

JP1 イベント

応答待ちイベント

出力数の条件

1 秒当たりの出力数が 2 件未満であること

1 分当たりの出力数が 1 件未満であること

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

JP1/Advanced Shell

155

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 のサービスを自動起動する手順を次に示します。

1. Windows の[コントロールパネル]−[管理ツール]−[サービス]を開く。

2. 表示されたサービス名の一覧から次の名前のサービスのプロパティを開く。

• 実行環境からユーザー応答機能を使用する場合は,[AdshmSvcE]から始まるサービス名

• 開発環境からユーザー応答機能を使用する場合は,[AdshmSvcD]から始まるサービス名

3.[全般]タグの「スタートアップの種類」を次のように操作する。

JP1/Advanced Shell のインストール後の初期状態は,「手動」が設定されています。Windows の起

動時に自動でサービスを開始したい場合は,「自動」に変更します。

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

JP1/Advanced Shell

156

(b) JP1/Advanced Shell のサービスを起動する

JP1/Advanced Shell のサービスを手動で起動する手順を次に示します。「

(a) JP1/Advanced Shell の

サービスの起動方法を設定する 」で「スタートアップの種類」を「自動」に設定して Windows を起動し

た場合は,この操作は必要ありません。

1. Windows の[コントロールパネル]−[管理ツール]−[サービス]を開く。

2. 表示されたサービス名の一覧から次の名前のサービスのプロパティを開く。

• 実行環境からユーザー応答機能を使用する場合は,[AdshmSvcE]から始まるサービス名

• 開発環境からユーザー応答機能を使用する場合は,[AdshmSvcD]から始まるサービス名

3.[全般]タグの「開始」ボタンをクリックする。

サービスが開始されなかった場合は,イベントログに出力されているエラー情報を確認してください。

エラー情報に 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 を再インストールした場合は,この操作を再度実行してください。

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

JP1/Advanced Shell

157

1. ユーザー応答機能用アダプタコマンド設定ファイルの「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

2. JP1/Base のインストール先に,手順 1 のユーザー応答機能用アダプタコマンド設定ファイルをコピー

する。

コピー先のフォルダは次のとおりです。

JP1/Baseのインストール先フォルダ\plugin\conf

これによって,JP1/IM - View に表示される応答待ちイベントから,応答が入力できるようになります。

(3) アダプタコマンドの設定(開発環境の場合)

JP1/Advanced Shell の開発環境でユーザー応答機能を使用するためには,次に示す設定が必要です。た

だし,ユーザー応答機能の出力先に標準出力を指定する場合は,この設定は不要です。

この設定は,JP1/Advanced Shell のインストール後に一度だけ実施してください。ただし,JP1/Base

を再インストールした場合は,この操作を再度実行してください。

1. ユーザー応答機能用アダプタコマンド設定ファイルの「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

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

JP1/Advanced Shell

158

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

2. 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"

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

JP1/Advanced Shell

159

設定後は 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) RHEL 6,Oracle Linux 6,CentOS 6 の場合

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/rc

N

.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

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

JP1/Advanced Shell

160

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/rc

N

.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) RHEL 7,SUSE Linux 12,Oracle Linux 7,CentOS 7 の場合

JP1/Advanced Shell では,ユーザー応答機能管理デーモンを自動起動・停止するための Unit ファイル jp1_as_md.service を/opt/jp1as/sample ディレクトリに格納しています。この Unit ファイルを利用し

て次の手順で設定します。

• /usr/lib/systemd/system ディレクトリへの追加

/opt/jp1as/sample ディレクトリに格納されている jp1_as_md.service を/usr/lib/systemd/system

に追加します。jp1_as_md.service を追加するには次のように指定します。 cp /opt/jp1as/sample/jp1_as_md.service /usr/lib/systemd/system chmod u=rw,go=r /usr/lib/systemd/system/jp1_as_md.service

chown root:root /usr/lib/systemd/system/jp1_as_md.service

• 自動起動・自動停止の設定

ユーザー応答機能管理デーモンの自動起動・自動停止の設定は,systemctl コマンドを次のように指定

して実行します。 systemctl --system enable jp1_as_md.service

なお,上記の設定によりユーザー応答機能管理デーモンの自動起動と自動終了が行われた場合,タイミ

ングによっては次の動作が発生します。

• 自動起動時

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

JP1/Advanced Shell

161

OS が出力するユーザー応答機能管理デーモンの起動結果に,OS がユーザー応答機能管理デーモン

の pid ファイルへアクセスしたときの状態についての情報が出力される場合がありますが,対処は

不要です。

• 自動終了時

・システム停止時,OS が応答要求メッセージの応答待ち状態のジョブに終了シグナルを通知する

場合があります。このとき,未応答の応答要求メッセージはジョブコントローラによってキャンセ

ルされます。

・OS がユーザー応答機能管理デーモンの pid ファイルを削除することがあります。この操作が行

われた場合,KNAX3020-E メッセージと KNAX3020-E メッセージのテキストが付与された

KNAX3003-E メッセージが出力されます。

(d) 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(数字)部分よりも小さい数字になるようにシンボ

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

JP1/Advanced Shell

162

リックリンクの名称を「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

(e) 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/Advanced Shell を利用するための準備

JP1/Advanced Shell

163

(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) 

JP1 イベントの送信先ホストの指定 」で HOSTNAME_JP1IM_MANAGER パラメーターに設定したホス

トの JP1/IM - Manager で実施してください。

(1) JP1/IM - Manager への拡張属性定義ファイルのコピー

JP1/Advanced Shell のインストール先ディレクトリの sample ディレクトリに格納されている拡張属性

定義ファイルを JP1/IM - Manager へコピーします。拡張属性定義ファイルをコピーして有効にするまで

の手順は次のとおりです。なお,この手順はスーパーユーザー権限で実行してください。

1. JP1/IM - Manager がインストールされたマシンに,拡張属性定義ファイルをコピーする。

• コピー元の拡張属性定義ファイル

コピーする拡張属性定義ファイルは,運用する言語に応じて次のように異なります。

運用する言語

日本語

英語

中国語

コピー対象の拡張属性定義ファイル hitachi_jp1_as_base_attr_ja.conf

hitachi_jp1_as_base_attr_en.conf

hitachi_jp1_as_base_attr_cn.conf

(ただし英語で表示されます)

• コピー先のディレクトリ

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

JP1/Advanced Shell

164

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 構築ガイド」のクラスタシステムの記述を参照してください。

2. 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. JP1/Advanced Shell を利用するための準備

JP1/Advanced Shell

165

2.9 クラスタ構成で運用する

2.9.1 クラスタ運用の前提条件とサポート範囲

JP1/Advanced Shell は,クラスタシステムでは論理ホスト環境で動作し,系切り替え時にジョブを実行

する環境を引き継ぐことができます。ただし,系切り替え時に実行中のジョブを継続して実行することは

できません。系切り替え後にジョブを再実行する場合は,手動でジョブを再実行してください。

JP1/Advanced Shell を論理ホスト環境で実行する場合,共有ディスクや論理 IP アドレスの割り当て・削

除・動作監視がクラスタソフトによって制御されている必要があります。また,次に示す前提条件を満た

すよう,システム構成や環境設定を行ってください。

(1) 論理ホスト環境の前提条件

JP1/Advanced Shell を論理ホスト環境で実行する場合,論理 IP アドレスと共有ディスクについて,次に

示す前提条件があります。

表 2-29 論理ホスト環境の前提条件

論理ホス

トの構成

要素

共有ディ

スク

前提条件

論理 IP ア

ドレス

• 実行系サーバから待機系サーバへ引き継ぎ可能な共有ディスクが使用できること。

• JP1/Advanced Shell のプログラムが起動する前に,共有ディスクが割り当てられること。

• ユーザー応答機能管理デーモン・サービスを実行中に,共有ディスクの割り当てが解除されないこと。

• ユーザー応答機能管理デーモン・サービスを停止したあとに,共有ディスクの割り当てが解除されること。

• 共有ディスクが,不当に複数のノードから使用されないよう排他制御されていること。

• システムダウンなどでファイルが消えないよう,ジャーナル機能を持つファイルシステムなどでファイルを保

護すること。

• 系切り替え時に稼働中のプログラムを計画停止した場合,ファイルに書き込んだ内容が保証されて引き継がれ

ること。

• 系切り替え時に共有ディスクを使用中のプロセスがあっても,強制的に系切り替えができること。

• 共有ディスクの障害を検知した場合の回復処置はクラスタソフトで制御すること。回復処置の延長でユーザー

応答機能管理デーモン・サービスの起動や停止が必要な場合は,クラスタソフトからユーザー応答機能管理デー

モン・サービスに起動や停止の実行要求をすること。

• 引き継ぎ可能な論理 IP アドレスを使って通信できること。

• 論理ホスト名から論理 IP アドレスが一意に求められること。

• ユーザー応答機能管理デーモン・サービスを起動する前に,論理 IP アドレスが割り当てられること。

• ユーザー応答機能管理デーモン・サービスを実行中に,論理 IP アドレスが削除されないこと。

• ユーザー応答機能管理デーモン・サービスを実行中に,論理ホスト名と論理 IP アドレスの対応が変更されない

こと。

• ユーザー応答機能管理デーモン・サービスを停止したあとに,論理 IP アドレスが削除されること。

• ネットワーク障害を検知した場合の回復処置はクラスタソフトなどが制御し,ユーザー応答機能管理デーモン・

サービスが回復処理を意識する必要がないこと。また,回復処置の延長でユーザー応答機能管理デーモン・サー

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

JP1/Advanced Shell

166

論理ホス

トの構成

要素

論理 IP ア

ドレス

前提条件

ビスの起動や停止が必要な場合は,クラスタソフトからユーザー応答機能管理デーモン・サービスに起動や停

止の実行要求をすること。

• 同一の物理ホストで複数の論理ホストを起動する場合,論理ホストごとに 1 つずつの IP アドレスを割り当て

られること。

(2) 物理ホスト環境の前提条件

JP1/Advanced Shell を論理ホストで運用するクラスタシステムでは,各サーバの物理ホスト環境が次に

示す前提条件を満たしている必要があります。

表 2-30 物理ホスト環境の前提条件

物理ホス

トの構成

要素

サーバ

本体

前提条件

ディスク

ネット

ワーク

OS,クラ

スタソ

フト

• 2 台以上のサーバ機によるクラスタ構成になっていること。

• 実行する処理に応じた CPU 性能があること(例えば,論理ホストを多重起動する場合などに,対応できる

CPU 性能があること)。

• 実行する処理に応じた実メモリ容量があること(例えば,論理ホストを多重起動する場合などに,対応できる

実メモリ容量があること)。

• システムダウンなどでファイルが消えないよう,ジャーナル機能を持つファイルシステムなどでファイルを保

護すること。

• 物理ホスト環境のユーザー応答機能管理デーモン・サービスを使用する場合,物理ホスト名(hostname コマ

ンドの結果)に対応する IP アドレスで通信が可能なこと(クラスタソフトなどによって通信ができない状態に

変更されないこと)

• ユーザー応答機能管理デーモン・サービスの動作中に,ホスト名と IP アドレスの対応が変更されないこと(ク

ラスタソフトやネームサーバなどによって変更がされないこと)。

• Windows の場合,ホスト名に対応した LAN ボードがネットワークのバインド設定で最優先になっているこ

と(ハートビート用などほかの LAN ボードが優先になっていないこと)。

• 系切り替え後も同じ処理ができるよう,各サーバの環境が同一の設定であること。

• JP1/Advanced Shell がサポートするクラスタソフトおよびバージョンであること。

• JP1/Advanced Shell およびクラスタソフトが前提とするパッチやサービスパックが適用済みであること。

注※

クラスタソフトによっては,物理ホスト名(hostname コマンドで表示されるホスト名)に対応する

IP アドレスで通信ができなくなる構成の場合があります。この場合,物理ホスト環境のユーザー応答

機能管理デーモン・サービスは動作できません。論理ホスト環境のユーザー応答機能管理デーモン・

サービスだけを使用してください。

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

JP1/Advanced Shell

167

(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 をクラスタシステムで運用するには,次の作業を実施してください。

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

JP1/Advanced Shell

168

(a) ディレクトリとファイル構成の検討

システムの運用方針に従い,以下の表の項目のディレクトリとファイル構成を検討します。

表 2-31 ディレクトリとファイル構成の検討項目

ディレクトリまたはファイル種別

一時ファイル用のディレクトリ

スプール用のディレクトリ

システム実行ログ用のディレクトリ

トレース用のディレクトリ

システム環境ファイル

ジョブ環境ファイル

ジョブ定義スクリプト

ジョブ定義スクリプトから参照するファイル

上記以外

作成基準

×

×

(凡例)

○:共有ディスク上に作成する。

△:システムの運用方針に従い,共有ディスクまたはローカルディスク上に作成する。

×:ローカルディスク上に作成する。

(b) 物理ホストの環境情報を設定する

実行系サーバおよび待機系サーバの物理ホストで,JP1/Advanced Shell の環境情報を設定します。環境

情報の設定については,「

2.6 JP1/Advanced Shell の環境情報を設定する 」を参照してください。

(c) 論理ホストの環境情報を設定する

実行系サーバの論理ホストで,JP1/Advanced Shell の環境情報を次の手順で設定します。

1. 実行に必要なディレクトリを作成する。

「 (a) ディレクトリとファイル構成の検討 」で検討したディレクトリ構成に従って,JP1/Advanced

Shell の実行に必要な次に示すディレクトリを共有ディスク上またはローカルディスク上に作成します。

JP1/Advanced Shell の実行に必要なディレクトリの詳細については,「

2.6.19 JP1/Advanced Shell

で必要なディレクトリを作成する

」を参照してください。

• 一時ファイル用のディレクトリ

• スプール用のディレクトリ

• システム実行ログ用のディレクトリ

• トレース用のディレクトリ

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

JP1/Advanced Shell

169

ディレクトリの作成方法を次に示します。

• 共有ディスク上に作成する場合

実行系サーバから共有ディスクにアクセスできるようにし,共有ディスク上にディレクトリを作成

する。

• ローカルディスク上に作成する場合

実行系サーバおよび待機系サーバのそれぞれのローカルディスク上にディレクトリを作成する。

2. 環境ファイルを設定する。

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"

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

JP1/Advanced Shell

170

#-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

3. 論理ホスト用のユーザー応答機能管理サービスを登録する。【Windows 限定】

論理ホスト環境でユーザー応答機能を使用する場合は,実行系サーバおよび待機系サーバで論理ホスト

用のユーザー応答機能管理サービスを登録する必要があります。登録は adshmsvcd コマンドおよび adshmsvce コマンドで実行できます。論理ホストに対応したサービスを登録する場合,-install オプ

ションと-lhostname オプションを指定してコマンドを実行します。

コマンドが正常に終了すると,登録したサービスが[サービス]管理ツールに表示されます。

例えば,実行系サーバの実行環境に論理ホストとして lhost001 を使用する場合,次のコマンドを実行

します。 adshmsvce -install -lhostname lhost001

この例の場合,コマンドが正常に終了すると,[AdshmSvcE_ lhost001]が[サービス]管理ツール

に表示されます。

4. 実行系サーバと待機系サーバのファイル構成を確認する。

「 (a) ディレクトリとファイル構成の検討 」で検討したファイル構成に応じて,次の作業を実施してく

ださい。

• ローカルディスク上に作成する場合

実行系サーバと待機系サーバで,参照するファイルの構成とファイルの中身を同じにする必要があ

ります。手順 2.で作成したシステム環境ファイルなど,実行系サーバのローカルディスク上に作成

したファイルを,待機系サーバの同一のパスにコピーしてください。

• 共有ディスク上に作成する場合

実行系サーバから共有ディスクにアクセスできるようにし,作成してください。

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

JP1/Advanced Shell

171

注意事項 

作成したファイルは,実行系サーバおよび待機系サーバのどちらからもアクセスできるよう

に権限を設定してください。特に,特定のユーザーやグループにアクセス権限を設定してい

る場合は,実行系サーバと待機系サーバでユーザー名とユーザー ID(UID),グループ名と

グループ ID(GID)を同じにする必要があります。

(4) クラスタソフトへの登録【Windows の場合】

論理ホストのユーザー応答機能管理サービスをクラスタソフトに登録して,クラスタソフトからの制御で

起動・停止するように設定します。ただし,論理ホスト環境でユーザー応答機能を使用しない場合は,登

録は不要です。

(a) クラスタソフトへの登録

Windows の場合,クラスタソフトに登録するのは,論理ホスト用のサービスとして登録された次の名称

のサービスです。

名前

AdshmSvcE_

論理ホスト名

サービス名

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

登録方法の詳細については,各クラスタソフトのマニュアルを参照してください。クラスタソフトに登録

したユーザー応答機能管理サービスは,クラスタソフトの操作で起動または停止してください。

(b) 起動停止順序の設定

論理ホストのユーザー応答機能管理サービスを実行するには,共有ディスクおよび論理 IP アドレスが使用

可能になっている必要があります。また,起動停止の際の順序は,連携する JP1 シリーズ製品と依存関係

があります。

• 論理ホストの起動時

1. 共有ディスクおよび論理 IP アドレスを割り当てて使用可能にする。

2. 連携する JP1 シリーズ製品(JP1/AJS を除く)のサービスを起動する。

3. ユーザー応答機能管理サービスを起動する。

4. JP1/AJS のサービスを起動する。

• 論理ホストの停止時

1. JP1/AJS のサービスを停止する。

2. ユーザー応答機能管理サービスを停止する。

3. 連携する JP1 シリーズ製品(JP1/AJS を除く)のサービスを停止する。

4. 共有ディスクおよび論理 IP アドレスの割り当てを解除する。

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

JP1/Advanced Shell

172

注※

連携する JP1 シリーズ製品間のサービスの起動停止順序は,各製品のマニュアルを参照してください。

(5) クラスタソフトへの登録【UNIX の場合】

論理ホストのユーザー応答機能管理デーモンをクラスタソフトに登録して,クラスタソフトからの制御で

起動・停止するように設定します。ただし,論理ホスト環境でユーザー応答機能を使用しない場合は,登

録は不要です。

(a) クラスタソフトへの登録

ユーザー応答機能管理デーモンをクラスタソフトへ登録する場合に必要な情報を次の表に示します。

表 2-32 クラスタソフトに登録する機能と各機能で使用するコマンド

登録する

機能

起動

説明

停止

動作監視

ユーザー応答機能管理デーモンを起動します。

使用するコマンド adshmdctl

使用例 adshmdctl -h 論理ホスト名 start

起動結果の判定

ユーザー応答機能管理デーモンを起動した結果は終了コードで判定しないで,後述する動作監視によって判定

してください。

ユーザー応答機能管理デーモンを停止します。

使用するコマンド adshmdctl

使用例 adshmdctl -h 論理ホスト名 stop

停止結果の判定

ユーザー応答機能管理デーモンを停止した結果は終了コードで判定しないで,後述する動作監視によって判定

してください。

ユーザー応答機能管理デーモンが正常に動作していることを監視します。

使用するコマンド adshmdctl

使用例 adshmdctl -h 論理ホスト名 status

動作監視結果の判定

各終了コードの判定方法を次に示します。

終了コード=0(稼働中)

 ユーザー応答機能管理デーモンは正常に動作しています。

終了コード=1(停止)

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

JP1/Advanced Shell

173

登録する

機能

動作監視

説明

 ユーザー応答機能管理デーモンは何らかの問題によって停止しています。異常と判定してください。

adshmdctl コマンドについては,「 8. 運用時に使用するコマンド

」の「

adshmdctl コマンド(ユーザー

注意事項 

ユーザー応答機能管理デーモンが何らかの障害によって共有メモリを解放しないまま終了した場

合,次回の起動に失敗します。この場合,「

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

adshmdctl コマ

従って対処してください。

(b) 起動停止順序の設定

論理ホストのユーザー応答機能管理デーモンを実行するには,共有ディスクおよび論理 IP アドレスが使用

可能になっている必要があります。また,起動停止の際の順序は,連携する JP1 シリーズ製品と依存関係

があります。

• 論理ホストの起動時

1. 共有ディスクおよび論理 IP アドレスを割り当てて使用可能にする。

2. 連携する JP1 シリーズ製品(JP1/AJS を除く)のデーモン・サービスを起動する。

3. ユーザー応答機能管理デーモンを起動する。

4. JP1/AJS のサービスを起動する。

• 論理ホストの停止時

1. JP1/AJS のサービスを停止する。

2. ユーザー応答機能管理デーモンを停止する。

3. 連携する JP1 シリーズ製品(JP1/AJS を除く)のデーモン・サービスを停止する。

4. 共有ディスクおよび論理 IP アドレスの割り当てを解除する。

注※

連携する JP1 シリーズ製品間のサービスの起動停止順序は,各製品のマニュアルを参照してください。

2.9.3 クラスタ運用の場合のコマンドの指定方法

コマンドを論理ホストで実行させるためには,コマンドに論理ホスト名を指定する必要があります。論理

ホスト名を指定しないと,物理ホストでコマンドが実行されます。論理ホストは実行するコマンドによっ

て次のように指定してください。

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

JP1/Advanced Shell

174

(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 論理ホスト名

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

JP1/Advanced Shell

175

ユーザー応答機能を使用する場合,ユーザー応答機能管理デーモン・サービスに指定する論理ホスト名と adshexec コマンドに指定する論理ホスト名は同じにする必要があります。論理ホストとして実行できる

各コマンドの詳細については,「 8.3 シェル運用コマンド 」を参照してください。

2.9.4 クラスタ運用に関する注意事項

JP1/Advanced Shell のクラスタ運用に関する注意事項を次に示します。

•【Windows 限定】ファイル名やパス名に UNC 形式の名称を指定できます。ただし,パス名の末尾が

共有名(後ろに「

\

」を指定した場合を含む)になる指定はサポートしていません。

• JP1/Advanced Shell では一部のファイルシステムをサポートしていません。詳細は,「

(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 アドレスを用意してください。

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

JP1/Advanced Shell

176

• 論理ホスト用のディスク領域

物理ホストやほかの論理ホストの 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 コマンドを実行します。

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

JP1/Advanced Shell

177

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) RHEL 6,Oracle Linux 6,CentOS 6 の場合

• 自動起動および自動停止スクリプトの作成

論理ホスト用の自動起動および自動停止スクリプトを/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. JP1/Advanced Shell を利用するための準備

JP1/Advanced Shell

178

シンボリックリンクの作成手順については,「

(1) ユーザー応答機能管理デーモンの自動起動と自動停

」を参照してください。

• 自動停止のためのシンボリックリンク作成

作成した自動起動および自動停止スクリプトへのシンボリックリンクを/etc/rc.d/rc< N >.d ディレク

トリ(< N >は停止時の実行レベル)に作成します。このとき,連携する JP1 シリーズ製品の論理ホス

ト用サービスよりも先に停止されるようにシンボリックリンクの名称を付ける必要があります。シンボ

リックリンクの作成手順については,「 (1) ユーザー応答機能管理デーモンの自動起動と自動停止

」を

参照してください。

なお,連携する JP1 シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプトの作成と,

作成した自動起動および自動停止スクリプトへのシンボリックリンクの作成は,ユーザー自身が実行しま

す。連携する JP1 シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプト名とシンボ

リックリンクの名称については,連携する JP1 シリーズ製品のマニュアルを参照してください。

(c) RHEL 7,SUSE Linux 12,Oracle Linux 7,CentOS 7 の場合

• 論理ホスト用ユーザー応答機能管理デーモンの Unit ファイルの作成

論理ホスト用ユーザー応答機能管理デーモンの Unit ファイルを/etc/systemd/system ディレクトリに

作成します。作成する Unit ファイルの名称は,「jp1_as_md_論理ホスト名.service」のように,拡張

子を「.service」にします。

作成する Unit ファイルの記述例を次に示します。なお,「論理ホスト用 JP1/BASE の Unit ファイル

名」については,JP1/BASE のドキュメントを参照してください。

[Unit]

# Service name

Description=Advanced Shell - adshmd 論理ホスト名

# Depecdencies

Requires=論理ホスト用JP1/BASEのUnitファイル名

After=論理ホスト用JP1/BASEのUnitファイル名

ConditionFileIsExecutable=/opt/jp1as/sbin/adshmdctl

[Service]

# Service type

Type=forking

PIDFile=/opt/jp1as/system/adshmd_論理ホスト名.pid

# Service operations

ExecStart=/opt/jp1as/sbin/adshmdctl -h 論理ホスト名 start

ExecStop=/opt/jp1as/sbin/adshmdctl -h 論理ホスト名 stop

KillMode=none

[Install]

WantedBy=multi-user.target graphical.target

/etc/systemd/system ディレクトリに作成した Unit ファイルの所有者,属するグループ,パーミッ

ションを次のように設定します。

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

JP1/Advanced Shell

179

chmod u=rw,go=r /etc/systemd/system/論理ホスト用ユーザー応答機能管理デーモンの Unit ファ

イル名 chown root:root /etc/systemd/system/論理ホスト用ユーザー応答機能管理デーモンの Unit ファイ

ル名

• 自動起動・自動停止の設定

論理ホスト用ユーザー応答機能管理デーモンの自動起動・自動停止の設定は,systemctl コマンドを次

のように指定して実行します。 systemctl --system enable 論理ホスト用ユーザー応答機能管理デーモンの Unit ファイル名

なお,上記の設定によってユーザー応答機能管理デーモンを自動起動,自動終了した場合に,タイミング

によって発生する動作については,「

(1) ユーザー応答機能管理デーモンの自動起動と自動停止 」の「

(c) 

RHEL 7,SUSE Linux 12,Oracle Linux 7,CentOS 7 の場合

」を参照してください。

(d) 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 Advanced Shell - adshmd $JP1_HOSTNAME"

;; stop_msg)

echo "Stop 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

• 自動起動のためのシンボリックリンク作成

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

JP1/Advanced Shell

180

作成した自動起動および自動停止スクリプトへのシンボリックリンクを/sbin/rc2.d ディレクトリに作

成します。このとき,連携する JP1 シリーズ製品の論理ホスト用サービスが起動したあとに起動される

ようにシンボリックリンクの名称を付ける必要があります。シンボリックリンクの作成手順について

は,「 (1) ユーザー応答機能管理デーモンの自動起動と自動停止 」を参照してください。

• 自動停止のためのシンボリックリンク作成

作成した自動起動および自動停止スクリプトへのシンボリックリンクを/sbin/rc1.d ディレクトリに作

成します。このとき,連携する JP1 シリーズ製品の論理ホスト用サービスよりも先に停止されるように

シンボリックリンクの名称を付ける必要があります。シンボリックリンクの作成手順については,「 (1) 

ユーザー応答機能管理デーモンの自動起動と自動停止 」を参照してください。

なお,連携する JP1 シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプトの作成と,

作成した自動起動および自動停止スクリプトへのシンボリックリンクの作成は,ユーザー自身が実行しま

す。連携する JP1 シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプト名とシンボ

リックリンクの名称については,連携する JP1 シリーズ製品のマニュアルを参照してください。

(e) 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 シリーズ製品の論理ホスト用サービスが起動したあとに起動される

ようにシンボリックリンクの名称を付ける必要があります。シンボリックリンクの作成手順について

は,「 (1) ユーザー応答機能管理デーモンの自動起動と自動停止 」を参照してください。

• 自動停止のためのシンボリックリンク作成

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

JP1/Advanced Shell

181

作成した自動起動および自動停止スクリプトへのシンボリックリンクを/etc/rc0.d/ディレクトリに作

成します。このとき,連携する JP1 シリーズ製品の論理ホスト用サービスよりも先に停止されるように

シンボリックリンクの名称を付ける必要があります。シンボリックリンクの作成手順については,「 (1) 

ユーザー応答機能管理デーモンの自動起動と自動停止 」を参照してください。

なお,連携する JP1 シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプトの作成と,

作成した自動起動および自動停止スクリプトへのシンボリックリンクの作成は,ユーザー自身が実行しま

す。連携する JP1 シリーズ製品の論理ホスト用サービスの自動起動および自動停止スクリプト名とシンボ

リックリンクの名称については,連携する JP1 シリーズ製品のマニュアルを参照してください。

(3) 論理ホストの指定方法

コマンドを論理ホストで実行させるためには,クラスタシステムで動作する論理ホストと同様に指定して

ください。クラスタシステムの論理ホストの指定方法については,「 2.9.3 クラスタ運用の場合のコマン

ドの指定方法

」を参照してください。

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

JP1/Advanced Shell

182

2.10 HTML マニュアルを組み込む

所定のフォルダに HTML マニュアルをコピーすることで,JP1/Advanced Shell のカスタムジョブプログ

ラム,および JP1/Advanced Shell エディタから HTML マニュアルを参照できます。

HTML マニュアルの組み込み手順を次に示します。

1. プログラムプロダクトに標準添付されているマニュアル CD-ROM を用意する。

2. マニュアル 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

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

JP1/Advanced Shell

183

2.11 アプリケーション実行エージェント機能を設定する【Windows 実行

環境限定】

アプリケーション実行エージェント機能を使用する場合,次のように設定することを推奨します。

1. アプリケーション実行エージェント機能を使用するユーザーでログオンする。

アプリケーション実行エージェント機能を使用するユーザーは,Windows の管理ツールの[ローカル

セキュリティポリシー]-[ローカルポリシー]-[ユーザー権利の割り当て]-[グローバルオブジェ

クトの作成]で権限を付与する必要があります。

セキュリティ上の問題などから「グローバルオブジェクトの作成」権限を有効にできない場合は,「グ

ローバルオブジェクトの作成」権限を有効にできるユーザーでアプリケーション実行エージェント機能

を使用してください。

2. Windows の[スタート]メニューから,[すべてのプログラム]−[Advanced Shell]−[アプリ

ケーション実行エージェント]を選択する。

タスクバーの通知領域に[アプリケーション実行エージェント]アイコンが表示されます。

3.[アプリケーション実行エージェント]アイコンを右クリックし,[スタートアップ登録]を選択します。

次回,ログオン時から,自動的にアプリケーション実行エージェントが起動します。

スタートアップ登録をした場合の注意事項

JP1/Advanced Shell をアンインストールする場合,アプリケーション実行エージェントをスタート

アップに登録をしているときは,必ず[アプリケーション実行エージェント]アイコンを右クリック

し,[スタートアップ削除]を選択して,スタートアップからアプリケーション実行エージェントを削

除してください。

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

JP1/Advanced Shell

184

2.12 メモリ所要量およびディスク占有量

2.12.1 仮想メモリ所要量

仮想メモリ使用量の見積もり式を次に示します。

(1) ジョブコントローラ

2

3

#

1

4

5

環境

実行環境

OS

Linux

AIX

HP-UX

Solaris

Windows

6 開発環境 Windows

プロセス adshexec adshexec adshexec adshexec adshexec

+ adshexecsub adshedit

+ adshesub

見積もり式

12000KB + (S × 1KB) + (J × 2KB) + (F × 3KB) + (FS × 5KB)

2000KB + (S × 1KB) + (J × 2KB) + (F × 2KB) + (FS × 5KB)

12000KB + (S × 1KB) + (J × 2KB) + (F × 3KB) + (FS × 5KB)

10000KB + (S × 1KB) + (J × 3KB) + (F × 3KB) + (FS × 6KB)

16000KB + (S × 2KB) + (J × 4KB) + (F × 5KB) + (FS × 5KB)

40000KB + (S × 2KB) + (J × 4KB) + (F × 5KB) + (FS × 14KB)

(凡例)

S:ジョブ定義スクリプト内で呼び出しているコマンドの個数

J:ジョブステップの定義数

F:ファイルの割り当て数

FS:ジョブ定義スクリプトのファイルサイズ(KB)

(2) ユーザー応答機能管理デーモン・サービス

4

5

6

2

3

#

1

環境

実行環境

開発環境

OS

Linux

AIX

HP-UX

Solaris

Windows

Windows

プロセス adshmd adshmd adshmd adshmd adshmsvce adshmsvcd

見積もり式

10MB × 起動するユーザー応答機能管理デーモンの数

2MB × 起動するユーザー応答機能管理デーモンの数

10MB × 起動するユーザー応答機能管理デーモンの数

8MB × 起動するユーザー応答機能管理デーモンの数

9MB × 起動するユーザー応答機能管理サービスの数

9MB × 起動するユーザー応答機能管理サービスの数

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

JP1/Advanced Shell

185

(3) ユーザー応答機能管理デーモン・サービスが使用する共有メモリ

4

5

6

2

3

#

1

環境

実行環境

開発環境

OS

Linux

AIX

HP-UX

Solaris

Windows

Windows

見積もり式

1MB × 起動するユーザー応答機能管理デーモンの数

1MB × 起動するユーザー応答機能管理デーモンの数

1MB × 起動するユーザー応答機能管理デーモンの数

1MB × 起動するユーザー応答機能管理デーモンの数

1MB × 起動するユーザー応答機能管理サービスの数

1MB × 起動するユーザー応答機能管理サービスの数

(4) アプリケーション実行エージェントプログラムが使用する共有メモリ

【Windows 限定】

12KB × GUI アプリケーション実行プログラムを実行するユーザー数

2.12.2 ディスク占有量

(1) 実行モジュールとライブラリのディスク占有量

4

5

6

2

3

#

1

環境

実行環境

開発環境

OS

Linux

AIX

HP-UX

Solaris

Windows

Windows

見積もり式

34MB

32MB

48MB

31MB

33MB

※1

16MB

※2

注※1

Windows の OS の種類によっては,この値より小さくなる場合があります。また,上記ディスク占有

量に加え,インストール時は,一時的に最大 112MB のディスク容量が必要となります。

注※2

Windows の OS の種類によっては,この値より小さくなる場合があります。また,上記ディスク占有

量に加え,インストール時は,一時的に最大 62MB のディスク容量が必要となります。

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

JP1/Advanced Shell

186

(2) ディレクトリごとのディスク占有量

• サイズ

4

5

6

2

3

#

1

(a) システム実行ログ

デフォルトは次のとおりですが,環境ファイルにより変更できます。

• 位置

2

3

#

1

4

5

6

環境

実行環境

開発環境

OS

Linux

AIX

HP-UX

Solaris

Windows

Windows

位置

/opt/jp1as/log (LOG_DIR パラメーター)

/opt/jp1as/log (LOG_DIR パラメーター)

/opt/jp1as/log (LOG_DIR パラメーター)

/opt/jp1as/log (LOG_DIR パラメーター)

全ユーザー共通文書フォルダ¥Hitachi¥JP1AS¥JP1ASE¥log

(LOG_DIR パラメーター)

全ユーザー共通文書フォルダ¥Hitachi¥JP1AS¥JP1ASD¥log

(LOG_DIR パラメーター)

環境

実行環境

開発環境

OS

Linux

AIX

HP-UX

Solaris

Windows

Windows

サイズ

2MB × 5 (LOG_FILE_CNT パラメーター)

2MB × 5 (LOG_FILE_CNT パラメーター)

2MB × 5 (LOG_FILE_CNT パラメーター)

2MB × 5 (LOG_FILE_CNT パラメーター)

2MB × 5 (LOG_FILE_CNT パラメーター)

2MB × 5 (LOG_FILE_CNT パラメーター)

(b) トレースログ

デフォルトは次のとおりですが,環境ファイルにより変更できます。

• 位置

2

3

#

1

4

環境

実行環境

OS

Linux

AIX

HP-UX

Solaris

位置

/opt/jp1as/trace (TRACE_DIR パラメーター)

/opt/jp1as/trace (TRACE_DIR パラメーター)

/opt/jp1as/trace (TRACE_DIR パラメーター)

/opt/jp1as/trace (TRACE_DIR パラメーター)

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

JP1/Advanced Shell

187

#

5

6

環境

実行環境

開発環境

OS

Windows

Windows

位置

共通 AP データフォルダ¥Hitachi¥JP1AS¥JP1ASE¥trace (TRACE_DIR

パラメーター)

共通 AP データフォルダ¥Hitachi¥JP1AS¥JP1ASD¥trace (TRACE_DIR

パラメーター)

• サイズ

4

5

6

2

3

#

1

環境

実行環境

開発環境

OS

Linux

AIX

HP-UX

Solaris

Windows

Windows

サイズ

2MB × 4 (TRACE_FILE_CNT パラメーター)

2MB × 4 (TRACE_FILE_CNT パラメーター)

2MB × 4 (TRACE_FILE_CNT パラメーター)

2MB × 4 (TRACE_FILE_CNT パラメーター)

2MB × 4 (TRACE_FILE_CNT パラメーター)

2MB × 4 (TRACE_FILE_CNT パラメーター)

(c) スプール

デフォルトは次のとおりですが,位置は環境ファイルにより変更できます。

• 位置

4

5

2

3

# 環境

1 実行環境

6 開発環境

OS

Linux

AIX

HP-UX

Solaris

Windows

Windows

位置

/var/opt/jp1as/spool (SPOOL_DIR パラメーター)

/var/opt/jp1as/spool (SPOOL_DIR パラメーター)

/var/opt/jp1as/spool (SPOOL_DIR パラメーター)

/var/opt/jp1as/spool (SPOOL_DIR パラメーター)

全ユーザー共通文書フォルダ¥Hitachi¥JP1AS¥JP1ASE¥spool(SPOOL_DIR パラ

メーター)

全ユーザー共通文書フォルダ¥Hitachi¥JP1AS¥JP1ASD¥spool(SPOOL_DIR パラ

メーター)

• サイズ

次の表の「ファイルサイズ」列に示した計算式で算出した値の合計によって,ジョブごとのディスク所

要量を算出してください。単位は KB です。

なお,ジョブ定義スクリプトファイルのパス名の長さや環境変数の個数など,さまざまな要因によって

スプールに必要となるディスク所要量は変化するため,次の計算式では余裕を持たせるために典型的な

ジョブの場合よりも大きめの所要量を算出します。

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

JP1/Advanced Shell

188

#

1

2

出力情報

ヘッダ情報など固

定情報

実行されるステッ

(

プごとのログ情報

)

ファイル情報

ジョブ実行ログ(JOBLOG)

ファイルサイズ

500.0KB

実行されるスクリプトのコマンドまたは制御文の実行回数×

0.2KB

#-adsh_step_start コマンドの数×0.4KB

ジョブ定義スクリプトファイルのファイルサイズ 3

4

実行されるスクリ

プト情報

プログラム出力

データファイルに

格納した情報

ファイル名に SCRIPT が含ま

れるファイル

#-adsh_spoolfile コマンドに

よって割り当てたファイル

#-adsh_spoolfile コマンドで割り当てたファイルに出力される

データ量

注※:このデータは環境設定パラメーター JOBLOG_SUPPRESS_MSG を使用することで,ジョブ実

行ログへの特定の情報メッセージの出力量を削減できます。

また,実行環境については,上記に加えて,次の表の「ファイルサイズ」列に示した計算式で算出した

値を所要量に加算する必要があります。

#

1

2

出力情報

標準出力と標準エラー出力情報

稼働実績情報

ファイル情報

ファイル名に STDOUT およ

び STDERR が含まれるファ

イル

ファイル名に EVENTFILE が

含まれるファイル

ファイルサイズ

コマンドやユーザーアプリケーションが出力

するデータ量

実行されるスクリプトのコマンドまたは制御

文の実行回数×2.5KB

※:このデータは環境設定パラメーター EVENT_COLLECT を「NO」とすることで稼働実績情報の

作成を抑止できます。

以上の計算式で算出した値(KB 単位)に,実行するジョブの個数を掛けて,一回の運用で必要となるス

プールのディスク所要量を見積もってください。

• コマンドまたは制御文の実行回数の考え方

「コマンドまたは制御文の実行回数」とは,実際にジョブ定義スクリプトが動作したときに実行される

コマンド・制御文の数を意味します。例を次に示します。

例 1: commandA commandB varA="paramA" commandC $varA

上記のスクリプトの場合,コマンドまたは制御文の実行回数は次のようになります。

• commandA

• commandB

• 代入式(varA="paramA")

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

JP1/Advanced Shell

189

• commandC

の 4 つのコマンド・制御文が動作するため,コマンドまたは制御文の実行回数は「4」となる。

例 2: lop=1 while [ $lop -le 5 ] ; do

echo "Loop count: $lop"

((lop+=1)) done

上記のスクリプトの場合,コマンドまたは制御文の実行回数は次のようになります。

• 代入式(lop=1)

• 条件評価([ $lop -le 5 ]) <--+

• echo コマンド    <--+-- ループで 5 回繰り返すので, 15 ステップ相当

• 算術演算( ((lop+=1)) ) <--+

• 条件評価([ $lop -le 5 ]) <----- ループから抜け出すための最後の判定処理

コマンドまたは制御文の実行回数は合計「17」となります。

例 2 のようなループ処理は,ループ回数がその時々の運用の状況によって動的に定まる場合もあり得る

ため,考えられる最大回数を想定して,余裕を持たせた値とすることを推奨します。

(d) ユーザー応答機能管理デーモンの起動ログ【UNIX 限定】

ユーザー応答管理デーモンの起動ログの位置およびサイズを次に示します。

• 位置

/opt/jp1as/system

• サイズ

最大 1MB。通常は 1KB 以内。

このファイルは,論理ホスト用のユーザー応答機能管理デーモンを動作させた場合は,起動したユー

ザー応答機能管理デーモンごとに作成されます。また,ユーザー応答機能管理デーモンの再起動時に再

作成します。

ユーザー応答機能管理デーモンの停止時に応答待ち状態の応答要求メッセージをキャンセルした場合

や,エラーが発生した場合に出力内容が 1KB 以上になる場合があります。

(e) アプリケーション実行エージェント機能ログ【Windows 限定】

アプリケーション実行エージェント機能ログの位置およびサイズを次に示します。

• 位置

全ユーザー共通文書フォルダ\Hitachi\JP1AS\JP1ASE\appexec

• サイズ

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

JP1/Advanced Shell

190

最大 6MB+1KB(CONF ファイル)。

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

JP1/Advanced Shell

191

第 3 編 運用編

3

バッチジョブの実行

この章では,JP1/Advanced Shell(実行環境)を使用したバッチジョブの運用として,バッチ

ジョブの実行方法や動作について説明します。

JP1/Advanced Shell

192

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 のシェルなどからジョブコントローラを起動

する要求は,ジョブとして受け付けられます。ジョブを利用する一般ユーザーは,指示をまとめて記述し

たジョブ定義スクリプトをジョブコントローラに渡します。

ジョブを利用する一般ユーザーが指定した指示は,ジョブコントローラによって何が要求されているかが

分析され,システム資源が効率良く利用されるようにジョブを実行します。

3. バッチジョブの実行

JP1/Advanced Shell

193

(1) ルートジョブと子孫ジョブ

ジョブとは一般に,一般ユーザーが用意する 1 つのまとまった仕事をシステムに要求する単位です。要求

する仕事は互いに独立したものと考えられます。

ジョブは一連の処理プログラムから構成されています。これらの処理プログラムを実行するには,その実

行の順序,実行の条件,および処理プログラムの実行に必要なファイルを定義する必要があります。

ジョブには,ルートジョブと子孫ジョブがあります。

• ルートジョブ

JP1/AJS やログインシェルなどから実行するジョブのうち,子孫ジョブ以外のジョブのことです。

• 子孫ジョブ

ルートジョブの子孫プロセスとして実行されるジョブ定義スクリプトのうち,次のどれかのパラメー

ターの指定,またはパラメーターのデフォルト定義によって実行されるジョブのことです。

• CHILDJOB_EXT パラメーター

• CHILDJOB_PGM パラメーター

• CHILDJOB_SHEBANG パラメーター

ルートジョブと子孫ジョブの起動の流れの例を次の図に示します。

(2) ジョブの入力モード

ジョブは,標準入力の状態によって次に示すどちらかのモードで実行します。

3. バッチジョブの実行

JP1/Advanced Shell

194

• 端末入力モード

ジョブ起動時に標準入力が端末に関連づけられている場合,このモードで動作します。このモードで起

動する方法の例を次に示します。

• ログインシェルで,標準入力を端末に関連づけた状態で adshexec コマンドを実行する。

• 非端末入力モード

ジョブ起動時に標準入力が端末に関連づけられていない場合,このモードで動作します。

このモードで起動する方法の例を次に示します。

• JP1/AJS からジョブを起動する。

• ログインシェル上で,標準入力をファイルからリダイレクトして adshexec コマンドを実行する。

• ログインシェル上で,パイプの途中または末尾で adshexec コマンドを実行する。

ジョブ起動時に,ジョブをどちらのモードで実行するかを示す KNAX7902-I メッセージを出力します。

UNIX の場合,ジョブの入力モードによってジョブの強制終了時の動作に差異があります。詳細は,「 3.11 

ジョブを強制終了する

」を参照してください。

Windows の場合,ジョブの入力モードによるジョブの動作の差異はありません。

(3) ジョブとジョブの関係

ルートジョブ同士は互いに独立しています。したがって,同時に処理するルートジョブ同士,または先に

実行したルートジョブがあとに実行するルートジョブに影響を及ぼすことはありません。さらに,ファイ

ル上の情報を除けば,ルートジョブからルートジョブに情報を引き継がれることもありません。

ただし,次の場合にジョブ同士が関連を持つことがあります。

• JP1/AJS によるスケジュールによっては,ルートジョブ相互に実行順序関係ができます。

• 複数のジョブで同時に同一の通常ファイルを使用する場合は,それらのジョブ同士が関連を持ちます。

ジョブが適切な順序で実行されるよう JP1/AJS のスケジュールを設計する必要があります。

• ルートジョブと子孫ジョブ,および子孫ジョブと子孫ジョブは,互いに関連を持つ場合があります。

(4) ジョブと環境ファイルの関係

ルートジョブと子孫ジョブは,どちらもジョブ起動時にシステム環境ファイルおよびジョブ環境ファイル

を読み込みます。したがって,次のようなケースではルートジョブと子孫ジョブは異なる環境ファイルの

パラメーターで動作します。

• ルートジョブが起動時に環境ファイルを読み込んでから,子孫ジョブが起動時に環境ファイルを読み込

むまでの間に,環境変数 ADSH_ENV の値が別のジョブ環境ファイルパスに書き変えられた場合。

• ルートジョブが起動時に環境ファイルを読み込んでから,子孫ジョブが起動時に環境ファイルを読み込

むまでの間に,システム環境ファイルおよびジョブ環境ファイルの内容が書き変えられた場合。

3. バッチジョブの実行

JP1/Advanced Shell

195

ルートジョブと子孫ジョブを同じ環境ファイルのパラメーターで動作させたい場合は,環境変数 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

この例では次の順に動作します。

1. ルートジョブ root.ash が起動し,環境ファイル adshrc.ase の export パラメーターによって,ENV1

には ENVFILE が設定されます。

2. ルートジョブ root.ash は,子孫ジョブ childjob.ash を起動する前に,環境変数 ENV1 に SCRIPTFILE

を設定します。

3. 子孫ジョブ childjob.ash が起動すると,ルートジョブ root.ash から環境変数 ENV1 を引き継ぎます。

子孫ジョブ childjob.ash のプロセス起動直後の ENV1 の値は SCRIPTFILE です。

4. 子孫ジョブ childjob.ash は起動時に環境ファイル adshrc.ase を読み込みます。export パラメーター

によって ENV1 には ENVFILE が設定されます。

5. 子孫ジョブ childjob.ash の echo の結果は,4.で設定された ENVFILE になります。

(5) 一時ファイルと通常ファイル

バッチジョブでは,オープン基盤製品からの情報などを一時ファイルまたは通常ファイルとして参照し,

処理を実行します。

(a) 一時ファイル

一時ファイルとは,ジョブ実行時に一時的に使用するファイルです。ジョブまたはジョブステップによっ

て自動的に作成され,ジョブ終了時には自動的に削除されます。一時ファイルは環境ファイルで定義した

ディレクトリに作成されます。

3. バッチジョブの実行

JP1/Advanced Shell

196

バッチジョブの一時ファイルとほかのアプリケーションの一時ファイルは,分けて管理することを推奨し

ます。JP1/Advanced Shell で一時ファイルを格納するディレクトリパスは,TEMP_FILE_DIR パラメー

ターに指定します。通常,一時ファイルは削除されますが,障害が発生した場合は残ることもあるため,

定期的に一時ファイルを削除する必要があります。

(b) 通常ファイル

通常ファイルとはジョブ定義スクリプトの入力および出力に使用するファイルで,任意のディレクトリに

配置できます。ジョブ終了後にジョブ結果として残すファイルですが,ジョブの実行中に削除することも

できます。

(6) 非同期実行プロセスの動作

JP1/Advanced Shell では,関連するすべてのルートジョブ,子孫ジョブ,およびコマンドが終了するま

では,ジョブは終了しません。

(a) &や

|

&による非同期実行

&や

|

&を指定して実行したプロセスがすべて完了するまで,ジョブは終了しません。

ただし,非同期実行したプロセスが SIGSTOP などを受信し,ジョブの終了と同時に停止状態になった場

合,そのプロセスの終了を待たないでジョブを終了することがあります。非同期実行したプロセスを待た

ないでジョブを終了したい場合は,非同期実行したい部分だけ OS のシェルを使用するように,ジョブ定

義スクリプトを作成してください。

例を次に示します。

• UNIX 版での例

非同期実行したプロセスの終了を待つジョブ定義スクリプトの例

#!/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 &

• Windows 版での例

3. バッチジョブの実行

JP1/Advanced Shell

197

非同期実行したプロセスの終了を待つジョブ定義スクリプトの例 mycommand A &

このジョブ定義スクリプトを JP1/Advanced Shell で実行すると,mycommand の完了を待ってから

ジョブが終了します。mycommand の完了を待たないでジョブを終了したい場合は,次のようにジョ

ブ定義スクリプトを作成してください。

非同期実行したプロセスの終了を待たないで終了するジョブ定義スクリプトの例 cmd.exe “/c start exec_cmdA.bat” exec_cmdA.bat の内容 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. バッチジョブの実行

JP1/Advanced Shell

198

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"

3. バッチジョブの実行

JP1/Advanced Shell

199

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 がエラーになった場合の

ログ出力結果を次に示します。

ジョブ実行ログ(抜粋)

******** ジョブコントローラのメッセージ出力 ********

17:16:12 000521 KNAX0091-I J01 ジョブが開始しました。

17:16:12 000521 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセス

の完了を待ちます。

17:16:12 000521 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

17:16:12 000521 KNAX0092-I J01.S01 ステップが開始しました。

17:16:12 000521 KNAX6116-I コマンド(./progA, 行番号=4)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

17:16:12 000521 KNAX6597-I J01.S01 ジョブステップが正常終了しました。rc=0 E-Time=0.001s

C-Time=0.000s

17:16:12 000521 KNAX0092-I J01.S02 ステップが開始しました。

17:16:12 000521 KNAX1601-I J01.S02 ジョブステップのファイル割り当てを開始しました。

17:16:12 000521 KNAX6409-I ファイル環境変数定義名(TEMP)へ処理指定("create")に従って

ファイルを割り当てました。path=/var/opt/jp1as/temp/TEMP_000521_J01_Z0XxJR

3. バッチジョブの実行

JP1/Advanced Shell

200

17:16:12 000521 KNAX6521-E コマンド(./progB, 行番号=9)がエラー終了しました。rc=1 E-

Time=0.000s C-Time=0.000s …(1)

17:16:12 000521 KNAX6410-I ファイル環境変数定義名(TEMP)で割り当てたファイルを処理指定

("del")に従って解放しました。path=/var/opt/jp1as/temp/TEMP_000521_J01_Z0XxJR

17:16:12 000521 KNAX1604-I 後処理指定値によってファイル(/var/opt/jp1as/temp/

TEMP_000521_J01_Z0XxJR)を削除しました。 …(2)

17:16:12 000521 KNAX6596-E J01.S02 ジョブステップがエラー終了しました。rc=1 E-

Time=0.002s C-Time=0.000s

17:16:12 000521 KNAX0101-E J01 ジョブを実行中にエラーが発生しました。

17:16:12 000521 KNAX0098-I J01 ジョブが終了しました。rc=1 E-Time=0.007s C-

Time=0.000s …(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)

3. バッチジョブの実行

JP1/Advanced Shell

201

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)について

ジョブステップを使用しない場合,特定のコマンドの終了コードで処理を分岐するために,コマン

ドの終了コードを個別のシェル変数に格納しておく必要があります。

3. バッチジョブの実行

JP1/Advanced Shell

202

ジョブステップを使用する場合,JP1/Advanced Shell が自動的に設定する各ジョブステップの終

了コードを参照できます。

(3)について

ジョブステップを使用しない場合,コマンドの終了コードの最大値を参照するには,コマンドの実

行ごとに最大値を更新する必要があります。

ジョブステップを使用する場合,JP1/Advanced Shell が自動的に設定する各ジョブステップの終

了コード最大値を参照できます。

(4)について

ジョブステップを使用しない場合,コマンドの終了コードがしきい値を超えたことによってスクリ

プトの実行を終了するには,コマンドの実行ごとにしきい値を判断する必要があります。

ジョブステップを使用する場合,スクリプト拡張コマンドの#-adsh_job_stop コマンドを使用する

と,しきい値を宣言するだけでジョブステップの終了コードを自動的に監視できます。

(5)について

ジョブステップを使用しない場合,コマンドの終了コードによって,後続処理を実行するかどうか

の判定を行って実行を制御します。

ジョブステップを使用する場合,スクリプト拡張コマンド#-adsh_step_start の run 属性に abnormal を指定することで,先行処理でエラーが発生した場合だけ実行するジョブステップを定

義できます。

(6)について

ジョブステップを使用する場合,スクリプト拡張コマンド#-adsh_step_start の run 属性に always

を指定することで,先行処理の成功・エラーに関係なく常に実行するジョブステップを定義できます。

3. バッチジョブの実行

JP1/Advanced Shell

203

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. バッチジョブの実行

JP1/Advanced Shell

204

図 3-1 JP1/AJS を使用したバッチジョブ業務の自動化の概要

1. バッチジョブの業務内容と実行順序,および業務スケジュールを登録します。

2. 登録されたスケジュールに従って,バッチジョブ業務が自動的に実行されます。

(1) バッチジョブ業務と実行順序の定義

多くの業務は,決まった時間に定められた順序に従って実行されます。

例えば,売上伝票の集計は,次の順序で実行されます。

1. データベースからのデータの抽出

2. データのソート

3. プリンタ出力

ジョブコントローラのジョブステップとして,1.〜3.の流れをジョブ定義スクリプトファイルに定義する

ことで自動化を実現できますが,12:00 にデータベースからデータを抽出するという作業は自動化できま

せん。JP1/Advanced Shell と JP1/AJS でバッチジョブ業務と実行順序の定義を実行するには,業務を構

3. バッチジョブの実行

JP1/Advanced Shell

205

成する一連の流れをジョブコントローラで定義し,それぞれのバッチジョブ業務と実行順序の定義の関係

を 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) バッチジョブ業務と実行順序の定義スケジュールの定義

複数のバッチジョブ業務と実行順序の定義スケジュールの定義を自動化するには,この定義をいつ実行す

るかを決めるスケジュールの定義が必要です。

3. バッチジョブの実行

JP1/Advanced Shell

206

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

3. バッチジョブの実行

JP1/Advanced Shell

207

注意事項

Windows では,1 行目に#!で始まる adshexec コマンドのパスを記述してコマンドプロンプトなどか

らジョブ定義スクリプトのファイル名だけを入力しても,バッチジョブを起動することはできません。

ただし,1 行目に#!に続けて「/opt/jp1as/bin/adshexec」または「/opt/jp1as/bin/adshexec mMINIMUM」を記述したジョブ定義スクリプトを用意し,別のジョブ定義スクリプトからそのファ

イル名だけを入力することで,Windows,UNIX どちらでも子孫ジョブを起動できます。そのため,

Windows でも新規に作成するジョブ定義スクリプトでは,1 行目に#!に続けて「/opt/jp1as/bin/ adshexec」または「/opt/jp1as/bin/adshexec -mMINIMUM」を記述することを推奨します。

ただし,既存のシェルスクリプトを移行した場合など,1 行目に「#!/bin/sh」などが記述されている

ときは,シェルスクリプトを修正しないで子孫ジョブとして実行することもできます。

子孫ジョブについての詳細は「

3.2.3 ジョブ定義スクリプトを子孫ジョブとして実行する 」を参照し

てください。

3.2.3 ジョブ定義スクリプトを子孫ジョブとして実行する

ジョブ定義スクリプトを子孫ジョブとして実行する方法,および子孫ジョブの動作について説明します。

優先順序については,「 (3) コマンドの実行方法の優先順序

」および「 (4) 関数と同名の子孫ジョブまた

は外部コマンドの優先順序

」を参照してください。

(1) 子孫ジョブの実行方法

(a) 環境ファイルにパラメーターを指定して子孫ジョブを実行する方法

ルートジョブの子孫プロセスとして実行されるジョブ定義スクリプトのうち,次のどれかのパラメーター

の指定,またはパラメーターのデフォルト定義によって実行されたジョブを子孫ジョブと呼びます。

• CHILDJOB_EXT パラメーター

• CHILDJOB_PGM パラメーター

• CHILDJOB_SHEBANG パラメーター

CHILDJOB_SHEBANG パラメーターの指定によって子孫ジョブを起動する動作の例を次の図に示します。

3. バッチジョブの実行

JP1/Advanced Shell

208

図 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

/opt/jp1as/bin/adshexec -mMINIMUM

子孫ジョブ起動時の出力モード

OUTPUT_MODE_CHILD パラメーターの指定に従って動作しま

す。

最小出力モードで動作します。

これによって,1 行目に「#! /opt/jp1as/bin/adshexec」を記述したジョブ定義スクリプトをほかのジョ

ブ定義スクリプト中に指定することで,子孫ジョブとして実行できます。また,特定の子孫ジョブだけを

最小出力モードで実行したい場合は,ジョブ定義スクリプトの 1 行目に「#! /opt/jp1as/bin/adshexec mMINIMUM」を記述してください。

デフォルト定義で実行された子孫ジョブの動作は,「 (a) 環境ファイルにパラメーターを指定して子孫ジョ

ブを実行する方法

」で起動された子孫ジョブと同じです。

ただし,CHILDJOB_SHEBANG パラメーターのデフォルト定義よりも,環境ファイルに指定した

CHILDJOB_SHEBANG パラメーターが優先されます。そのため,デフォルト定義と同じ内容を環境ファ

イルの CHILDJOB_SHEBANG パラメーターに指定した場合,次のように動作します。

3. バッチジョブの実行

JP1/Advanced Shell

209

• 環境ファイルの内容

#-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) ルートジョブや外部スクリプトとの機能比較

ルートジョブ,子孫ジョブおよび外部スクリプトの機能比較を次に示します。

機能

呼び出し元ジョブとの

プロセスの関係

起動するジョブコント

ローラ

スプールジョブディレ

クトリ

ジョブ開始・終了メッ

セージ

環境ファイルの読み

込み

ジョブ

ルートジョブ

呼び出し元ジョブの子

プロセスで動作する

• UNIX の場合 adshexec コマンド

• Windows の場合 adshexec.exe コマ

ンド+ adshexecsub.exe

コマンド

作成する

子孫ジョブ

呼び出し元ジョブの子

プロセスで動作する

• UNIX の場合 adshexec コマンド

• Windows の場合 adshexecsub.exe

コマンド

外部スクリプト

.(ドット)コマンドの

外部スクリプト

呼び出し元ジョブと同

一プロセスで動作する

なし

#-adsh_script の外部

スクリプト

呼び出し元ジョブと同

一プロセスで動作する

なし

あり

(KNAX0091-I および

KNAX0098-I)

ルートジョブのスプー

ルジョブディレクトリ

内に作成し,ジョブ終

了時に削除する。

ジョブ実行ログの出力

内容は次のどちらかを

ユーザーが選択する。

• JOBLOG だけを stderr に出力する

• ルートジョブのジョ

ブ実行ログにマージ

する

作成しない

(コマンド実行結果を呼

び出し元ジョブの

JOBLOG に出力する。

また,スクリプトイ

メージは出力しない)

作成しない

(コマンド実行結果を呼

び出し元ジョブの

JOBLOG に出力する。

また,スクリプトイ

メージを呼び出し元

ジョブの SCRIPT に出

力する)

あり

(KNAX6571-I および

KNAX6578-I)

なし なし

する する しない しない

3. バッチジョブの実行

JP1/Advanced Shell

210

機能

環境ファイルの読み

込み

標準入力の使用可否

標準出力の出力先

ジョブ

ルートジョブ

する

使用可

-s オプション,-m オ

プション,

OUTPUT_STDOUT

パラメーターおよび

OUTPUT_MODE_R

OOT パラメーターの

指定に従う

子孫ジョブ

する

使用可

親プロセスから継承し

た出力先になる

外部スクリプト

.(ドット)コマンドの

外部スクリプト

#-adsh_script の外部

スクリプト

(呼び出し元ジョブの動

作に従う)

(呼び出し元ジョブの動

作に従う)

使用可

呼び出し元ジョブの動

作に従う

使用可

呼び出し元ジョブの動

作に従う

(3) シグナル受信時の子孫ジョブの動作

ここでは,シグナル受信時の子孫ジョブの動作を説明します。

次に示すジョブを例に,ルートジョブ,子孫ジョブ,および外部コマンドへ終了要求シグナルを送信した

場合の動作を示します。 adshexec(1)−adshexec(2)−adshexec(3)−sleep

JP1/AJS から強制終了(JP1/AJS から adshexec(1)へ SIGTERM 送信)した際,およびログインシェル

から adshexec(1)〜(3)および sleep へ SIGTERM 送信した際の動作を次に示します。

時期

JP1/AJS からの強制終

了時

ログインシェルから adshexec(1)への

SIGTERM 送信時

ログインシェルから adshexec(2)への

SIGTERM 送信時 adshexec(1) adshexec(2) rc=143 でエラー終了 rc=143 でシグナルに

よるエラー終了 rc=143 でシグナルに

よるエラー終了 rc=143 でシグナルに

よるエラー終了

• ジョブステップの指

定がある場合 rc=143 でジョブス

テップエラー終了。

ステップエラーブ

ロックや run abnormal/always

の後続ステップを

実行

• ジョブステップの指

定がない場合

後続処理を続行 rc=143 でシグナルに

よるエラー終了 adshexec(3) rc=143 でシグナルに

よるエラー終了 rc=143 でシグナルに

よるエラー終了 sleep rc=143 でシグナルに

よるエラー終了 rc=143 でシグナルに

よるエラー終了 rc=143 でシグナルに

よるエラー終了 rc=143 でシグナルに

よるエラー終了

3. バッチジョブの実行

JP1/Advanced Shell

211

時期

ログインシェルから adshexec(3)への

SIGTERM 送信時

ログインシェルから sleep への SIGTERM

送信時 adshexec(1) adshexec(2)の結果に

従う adshexec(2)の結果に

従う adshexec(2)

• ジョブステップの指

定がある場合 rc=143 でジョブス

テップエラー終了。

ステップエラーブ

ロックや run abnormal/always

の後続ステップを

実行

• ジョブステップの指

定がない場合

後続処理を続行 adshexec(3)の結果に

従う adshexec(3) rc=143 でシグナルに

よるエラー終了 sleep rc=143 でシグナルに

よるエラー終了

• ジョブステップの指

定がある場合 rc=143 でジョブス

テップエラー終了。

ステップエラーブ

ロックや run abnormal/always

の後続ステップを

実行

• ジョブステップの指

定がない場合

後続処理を続行 rc=143 でシグナルに

よるエラー終了

(4) 子孫ジョブからさらに実行する子孫ジョブがある場合の注意事項

子孫ジョブからさらに実行する子孫ジョブがある場合,中間のジョブが UNIX の SIGKILL や Windows

の TerminateProcess で即時終了すると,ルートジョブがすべての子孫ジョブの完了を待たないで終了す

ることがあります。そのため,このような即時終了操作は実行しないでください。

もし,この現象が発生した場合は,関連するルートジョブや子孫ジョブの実行結果を調査してください。

なお,即時終了したジョブ以外のすべての子孫ジョブは,スプールジョブディレクトリが削除に失敗して

残っているか,削除されていても JOBLOG の内容が標準エラー出力へ出力されているため,ログは失わ

れません。

(例)

次のように,子孫ジョブからさらに子孫ジョブを実行するケースについて説明します。「→」は,ジョ

ブが呼び出しによって実行されることを示します。

[ルートジョブ]→[子孫ジョブ(子)]→[子孫ジョブ(孫)]

このとき[子孫ジョブ(子)]が即時終了すると,[子孫ジョブ(孫)]より[ルートジョブ]が先に終

了する場合があります。この場合の各ジョブの動作と,スプールジョブディレクトリの状態を次に示し

ます。

3. バッチジョブの実行

JP1/Advanced Shell

212

項目

ジョブの動作

スプールジョブ

ディレクトリの

状態

ジョブの種類

ルートジョブ

子孫ジョブ(子)がエラー終了したものと

して動作します。

ユーザープログラムがエラーで即時終了し

た場合と同じ動作となります。

Windows で子孫ジョブ(孫)がジョブ実

行ログをまだオープンしている場合,ス

プールジョブディレクトリのリネームに失

敗します。

上記以外の場合および UNIX の場合,ス

プールジョブディレクトリは通常どおりリ

ネームされます。

子孫ジョブ(子) 子孫ジョブ(孫)

即時終了します。 ジョブは通常どおり終了します。

ただし,Windows では,ほかの関連する

ジョブの状態によっては強制終了として動

作することがあります。

削除されないで

残ります。

ルートジョブがスプールジョブディレクト

リのリネームに成功している場合,スプー

ルジョブディレクトリはリネームに失敗し

ます。

上記以外の場合,通常どおり 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

3. バッチジョブの実行

JP1/Advanced Shell

213

・エスケープ文字を指定しなかった場合

 入力内容 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 の出力(エスケープ文字を指定した場合)

3. バッチジョブの実行

JP1/Advanced Shell

214

 入力内容 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 でユーザーが開発環境の編集中にテスト実行をする

ジョブを起動したあと,ジョブコントローラは,次のようにジョブを処理します。

3. バッチジョブの実行

JP1/Advanced Shell

215

1. ジョブコントローラが,バッチジョブを起動するオプションおよび JP1/Advanced Shell の環境ファ

イルを解析する。

2. ジョブコントローラは,入力されたジョブ定義スクリプトファイルを初期段階で解析する。この解析処

理では,コマンドを実行しないで,構文の解析とジョブの情報を格納するテーブルの作成を行う。

3. ジョブコントローラのジョブ実行制御が,ジョブ定義スクリプトファイルを解析して実行する。

4. スクリプト拡張コマンドで使用するファイル管理機能では,通常ファイル,一時ファイルおよびプログ

ラム出力データファイルの割り当て・解放を行う。

5. スクリプト拡張コマンドに指定されたシェル変数・環境変数では,ジョブステップの終了コードをシェ

ル変数に格納したり,ジョブの情報を環境変数に設定したりして,ユーザープログラムから参照できる

ようにする。

Windows または UNIX の実行環境では,ジョブ定義スクリプトを解析して実行します。ジョブ定義スク

リプトの作成の詳細については,「

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

および「 5. ジョブ定義スクリプトの作成

」を参照してください。

3. バッチジョブの実行

JP1/Advanced Shell

216

3.3 adshjava コマンドを使用して Java のバッチアプリケーションを実行

する【Windows,Linux,AIX,HP-UX 限定】

JP1/Advanced Shell が提供する adshjava コマンドを使用して,Java のバッチアプリケーションを実行

するための前提条件と実行方法を次に示します。

• 前提条件

JP1/Advanced Shell と同じホストに uCosminexus Application Server をインストールしてくださ

い。また,バッチサーバの設定後,バッチサーバを起動しておいてください。必要なプログラムについ

ては,「

2.2.2 環境ごとに必要なプログラム 」を参照してください。

• 実行方法

Java のバッチアプリケーションを実行する手順を次に示します。

1. Java のバッチアプリケーションを作成する。

Java のバッチアプリケーションの作成時の注意事項については,マニュアル「Cosminexus V9 ア

プリケーションサーバ 機能解説 拡張編」を参照してください。

2. JP1/Advanced Shell の adshjava コマンドを使用して Java のバッチアプリケーションを実行す

る。adshjava コマンドには uCosminexus Application Server の cjexecjob コマンド(Java の

バッチアプリケーションの実行)に渡す引数を指定する。

adshjava コマンドの実行権限と実行方法については,「 8.3.10 adshjava コマンド(Java のバッ

3. adshjava コマンドは指定された引数を cjexecjob コマンドに指定して実行する。 cjexecjob コマンドについては,マニュアル「Cosminexus V9 アプリケーションサーバ リファレ

ンス コマンド編」を参照してください。

4. adshjava コマンドは uCosminexus Application Server の cjexecjob コマンドの実行結果を返す。 cjexecjob コマンドの実行結果は,adshjava コマンドの終了コードで確認できます。

なお,ジョブの実行中に JP1/Advanced Shell が強制終了を検知した場合は,uCosminexus

Application Server に対して cjkilljob コマンド(バッチアプリケーションの停止)を自動的に実行

し,実行中の Java のバッチアプリケーションを強制終了してからジョブを終了します。

3. バッチジョブの実行

JP1/Advanced Shell

217

3.4 ジョブの実行結果を出力する

ジョブの実行結果は,スプールルートディレクトリの下にスプールジョブディレクトリとして出力されま

す。スプールジョブディレクトリの一部のディレクトリ内容はジョブ実行ログとして出力され,ジョブ実

行時のメッセージなどを確認できます。

また,ジョブ実行ログへ出力されるメッセージは,メッセージの種類によっては出力されないよう設定で

きます。

3.4.1 標準出力,標準エラー出力の出力先に関する指定

JP1/Advanced Shell で実行するジョブの標準出力・標準エラー出力は,オプションの指定やジョブの実

行形態によって,出力先は次のようになります。

項目

通常実行 拡張出力

モード

※2

デバッグ実行

簡潔出力

モードま

たは最小

出力モー

※2

標準エラー出力

ルートジョブ

スプールのファ

イル

プロセス起動時の

出力先

子孫ジョブ

プロセス起動時の

出力先

プロセス起動時の

出力先

標準出力

ルートジョブ

OUTPUT_STDO

UT パラメーター

※1

に SPOOL を

指定

スプールのファ

イル

プロセス起動時の

出力先

OUTPUT_STDO

UT パラメーター

※1

に PARENT

を指定

プロセス起動時の

出力先

プロセス起動時の

出力先

子孫ジョブ

プロセス起動時の

出力先

プロセス起動時の

出力先

プロセス起動時の

出力先

プロセス起動時の

出力先

プロセス起動時の

出力先

プロセス起動時の

出力先

プロセス起動時の

出力先

注※1

OUTPUT_STDOUT パラメーターのほかに,adshexec コマンドの-s オプションでも指定できます。

注※2

拡張出力モード,簡潔出力モードおよび最小出力モードは,次のコマンドまたはパラメーターで指定し

ます。

• adshexec コマンドの-m オプション

• adshscripttool コマンドの-m オプション

• OUTPUT_MODE_ROOT パラメーター(ルートジョブの場合)

• OUTPUT_MODE_CHILD パラメーター(子孫ジョブの場合)

3. バッチジョブの実行

JP1/Advanced Shell

218

3.4.2 ジョブの実行結果をスプールに出力する

環境ファイルに設定されたスプールルートディレクトリに,ジョブごとのディレクトリを作成し,ジョブ

の実行結果を出力します。ジョブごとのディレクトリには,ジョブ実行ログやジョブステップのプログラ

ムが出力したファイルが出力されます。

スプールディレクトリの構造を次に示します。

スプールルートディレクトリ

├ロックファイル

└スプールジョブディレクトリ

├.adshallocfileまたはadshallocfile

├.joborderまたはadsh.joborder

├.sysoutまたはsysout.ini

※1

※1

※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_

子孫ジョブ起動順序通し番号

SCRIPT_

子孫ジョブ起動順序通し番号

説明

割り当て管理ファイル

子孫ジョブ起動順序管理ファイル

スプールジョブ管理ファイル

環境ファイルの SPOOLJOB_CHILDJOB パラメーターに MERGE を指定(子

孫ジョブのスプールジョブをルートジョブのスプールジョブにマージする)し

た場合に出力される,マージ用の子孫ジョブのジョブ実行ログ

UNIX の SIGKILL や Windows の TerminateProcess などによってジョブが即時終了した場合,これ

らのファイルがスプールジョブディレクトリ内に残ることがあります。スプールジョブディレクトリが

不要になって削除する際は,これらのファイルも一緒に削除してください。

3. バッチジョブの実行

JP1/Advanced Shell

219

注※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 ス

プールジョブを削除する 」を参照してください。

ジョブ終了後のスプールジョブディレクトリのリネーム時,同一名のディレクトリがすでに存在すると,

リネームに失敗します。リネームに失敗すると「ジョブ識別子」のディレクトリ名のまま残ります。ジョ

ブの動作は完了しており後続ジョブが続行できるため rc=0 で終了しますが,ディレクトリが残ったまま

である間,そのジョブ識別子は使用できなくなると同時に adshhk コマンドによる削除がされなくなります。

3. バッチジョブの実行

JP1/Advanced Shell

220

(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 進数が出力されます。

3. バッチジョブの実行

JP1/Advanced Shell

221

(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 にマー

ジされません。詳細については,「

(c) ルートジョブと子孫ジョブで出力モードが異なる場合 」を参照し

てください。

(9) STDERR

ジョブの標準エラー出力です。ルートジョブ起動時に次のどちらかの方法で,ルートジョブを簡潔出力モー

ドまたは最小出力モードを指定した場合は作成されません。

• adshexec コマンドの-m オプションで SIMPLE または MINIMUM を指定する

• OUTPUT_MODE_ROOT パラメーターに SIMPLE または MINIMUM を指定する

ファイルの先頭行には次に示すヘッダが出力されます。

******** 実行ジョブのSTDERRファイルの内容 ********

3. バッチジョブの実行

JP1/Advanced Shell

222

(10) STDOUT

ジョブの標準出力です。adshexec コマンドの-s オプションおよび環境ファイルの OUTPUT_STDOUT

パラメーターに SPOOL を指定した場合に作成されます。ルートジョブ起動時に次のどちらかの方法で,

ルートジョブを簡潔出力モードまたは最小出力モードを指定した場合は作成されません。

• adshexec コマンドの-m オプションで SIMPLE または MINIMUM を指定する

• OUTPUT_MODE_ROOT パラメーターに SIMPLE または MINIMUM を指定する

ファイルの先頭行には次に示すヘッダが出力されます。

******** 実行ジョブの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 コマンドによって割り当てられたプログラム出力データファイルで

す。

3. バッチジョブの実行

JP1/Advanced Shell

223

(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 ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止

する

ジョブの実行結果をほかのプログラムで利用する場合などに,次の出力が実行されないように設定できます。

• スプールジョブディレクトリ下のファイルへの,標準出力と標準エラー出力の出力

3. バッチジョブの実行

JP1/Advanced Shell

224

• 標準出力と標準エラー出力への,情報メッセージと警告メッセージの出力(一部の例外メッセージを除

く)

• 標準エラー出力への,ジョブ終了時のジョブ実行ログの出力

そのためには,次のどちらかの方法で簡潔出力モードまたは最小出力モードを指定します。

• 環境設定時に OUTPUT_MODE_ROOT パラメーター(ルートジョブの場合)または

OUTPUT_MODE_CHILD パラメーター(子孫ジョブの場合)で設定

OUTPUT_MODE_ROOT パラメーターについては「 OUTPUT_MODE_ROOT パラメーター(ルー

ターについては「 OUTPUT_MODE_CHILD パラメーター(子孫ジョブの実行結果の出力情報に関す

• ジョブ実行時に adshexec コマンドの-m オプションで指定

adshexec コマンドについては「 adshexec コマンド(バッチジョブを実行する)

• adshscripttool コマンドの-m オプションで指定 adshscripttool コマンドについては「

adshscripttool コマンド(ジョブ定義スクリプトの作成を支援

環境設定パラメーターとコマンドの両方を指定した場合はコマンドの指定が優先されます。どちらも指定

しなかった場合は拡張出力モードで実行します。

(1) 拡張出力モード,簡潔出力モードおよび最小出力モードの出力内容の

差異

拡張出力モード,簡潔出力モードおよび最小出力モードの出力内容の差異を次に示します。

表 3-1 拡張出力モード,簡潔出力モードおよび最小出力モードの出力内容の差異

出力時期

ジョブ実行時

ジョブ終了時

拡張出力モードの場合

標準出力,標準エラー出

力は,ジョブの種類に

よって次のように異なり

ます。

• ルートジョブ

標準出力と標準エ

ラー出力をスプール

ジョブディレクトリ

へ出力します。

• 子孫ジョブ

プロセス起動時の出

力先へ出力します。

ジョブ実行ログを標準エ

ラー出力(子孫ジョブの

場合はルートジョブの標

簡潔出力モードの場合

標準出力,標準エラー出力

は,プロセス起動時の出力先

へ出力します。

標準出力,標準エラー出力へ

出力する JP1/Advanced

Shell のメッセージは,エ

ラーメッセージだけを出力し

ます。

※1

ジョブ実行ログを標準エラー

出力に出力しません。ただ

し,JOBLOG だけに出力す

最小出力モードの場合

標準出力,標準エラー出

力は,プロセス起動時の

出力先へ出力します。

標準出力,標準エラー出

力へ出力する JP1/

Advanced Shell のメッ

セージは,一部を除くエ

ラーメッセージだけを出

力します。

※1

同左

3. バッチジョブの実行

JP1/Advanced Shell

225

出力時期

ジョブ終了時

デバッグ実行時

拡張出力モードの場合

準エラー出力

※2

)に出力

します。

JOBLOG を標準エラー

出力にタイムリーに出力

します。

標準出力,標準エラー出

力へ出力する JP1/

Advanced Shell のメッ

セージは起動時の標準出

力,標準エラー出力へ出

力します。

簡潔出力モードの場合

るエラーメッセージは,エ

ラーを通知するため,ジョブ

実行中に標準エラー出力にも

出力します。

子孫ジョブの JOBLOG は,

ルートジョブのスプールジョ

ブディレクトリ下に作成さ

れ,ジョブ終了後も残りま

す。

※2

JOBEXECLOG_PRINT パ

ラメーターの指定に関係な

く,この動作となります。

JOBLOG は標準エラー出力

に出力しません。

標準出力,標準エラー出力へ

出力する JP1/Advanced

Shell のメッセージは起動時

の標準出力,標準エラー出力

へ出力します。

デバッグ終了時はエラーメッ

セージ以外のメッセージは出

力しません。ただし,デバッ

グ対象ではない子孫ジョブ

は,通常実行と同様に動作し

ます。

最小出力モードの場合

同左

JOBLOG は標準エラー出

力に出力しません。

標準出力,標準エラー出

力へ出力する JP1/

Advanced Shell のメッ

セージは起動時の標準出

力,標準エラー出力へ出

力します。

デバッグ終了時は出力抑

止対象外のメッセージだ

けを出力します。ただし,

デバッグ対象ではない子

孫ジョブは,通常実行と

同様に動作します。

注※1

エラーメッセージ以外にも,例外として出力されるメッセージがあります。例外として出力されるメッ

セージと,メッセージの種類ごとの出力先については,「

12.2 メッセージの出力先

」を参照してくだ

さい。

注※2

子孫ジョブのジョブ実行ログをルートジョブのジョブ実行ログへマージする場合

(SPOOLJOB_CHILDJOB パラメーターに MERGE を指定)は出力されません。

ジョブ定義スクリプトから別のジョブ定義スクリプトを簡潔出力モードまたは最小出力モードで起動する

場合は,子孫ジョブを使用してください。ルートジョブを簡潔出力モードまたは最小出力モードで起動し

た場合,標準エラー出力にエラーメッセージが表示されます。

3. バッチジョブの実行

JP1/Advanced Shell

226

(2) 簡潔出力モードまたは最小出力モードで実行するジョブのスプールジョ

ブディレクトリを探す方法

簡潔出力モードまたは最小出力モードを選択すると,割り当てられたジョブ識別子や,スプールジョブディ

レクトリ名を出力するメッセージが出力されなくなります。簡潔出力モードまたは最小出力モードで実行

したジョブのスプールジョブディレクトリを探す方法を次に示します。

• 事前に#-adsh_job コマンド(ジョブ名の宣言)で一意なジョブ名を指定する。

• ジョブ開始時に次の環境変数の値を標準エラー出力に出力させるか,特定のファイルに出力させて必要

なときに参照できるようにしておく。

• 環境変数 ADSH_JOBID(ジョブ識別子が格納される)

• 環境変数 ADSH_JOB_NAME(ジョブ名が格納される)

• ジョブの実行日時を基に探す。

3. バッチジョブの実行

JP1/Advanced Shell

227

3.5 ジョブ実行ログ

ジョブ実行ログとは,バッチジョブの実行結果を通知する利用者向けのログ情報のことです。このログ情

報はスプールジョブディレクトリ下のファイルに出力され,ユーザープログラムの標準出力以外はジョブ

終了時に標準エラー出力に出力されます。標準エラー出力の結果は JP1/AJS - View などによって確認で

きます。

ジョブ実行ログには,次の情報が出力されます。

• バッチジョブの開始・終了メッセージ

• ジョブステップの開始・終了メッセージ

• ジョブ定義スクリプトの内容

• 実行したコマンドの結果

• 準備したファイルの状況,後処理の結果

• ユーザープログラムの標準出力(stdout)

※1

• ユーザープログラムの標準エラー出力(stderr)

※2

• カバレージ取得に関するメッセージ

注※1

次のどちらかが指定されている場合に,ジョブ実行中に起動時の標準出力へ出力されます。

• adshexec コマンドの-s オプションまたは環境ファイルの OUTPUT_STDOUT パラメーターに

PARENT を指定した場合

• ルートジョブが簡潔出力モードまたは最小出力モードの場合

注※2

ルートジョブが簡潔出力モードまたは最小出力モードの場合は,スプールジョブディレクトリ下のファ

イルには出力されませんが,ジョブ実行中に起動時の標準エラー出力へ出力されます。

JP1/AJS を使用しない場合は,環境ファイルの SPOOL_DIR パラメーターに指定したスプールルートディ

レクトリ中の,バッチジョブごとのディレクトリに格納されている JOBLOG ファイルなどを参照してく

ださい。

なお,情報メッセージの一部を JOBLOG ファイルへ出力させないようにするには,

JOBLOG_SUPPRESS_MSG パラメーターで設定します。指定できるメッセージなどについては,「 7. 環

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

」の「 JOBLOG_SUPPRESS_MSG パラメーター(ジョブ実行ログへ

3.5.1 ジョブの種類ごとのジョブ実行ログの出力内容

ジョブ実行ログの出力内容は,実行したジョブの種類によって次のように異なります。

3. バッチジョブの実行

JP1/Advanced Shell

228

(1) ルートジョブ実行時のジョブ実行ログの出力先と出力内容

ルートジョブ実行時のジョブ実行ログの出力先と出力内容について,拡張出力モード,簡潔出力モードお

よび最小出力モード(OUTPUT_MODE_ROOT パラメーターで指定)に分けて説明します。

(a) 拡張出力モードを選択した場合

拡張出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

メッセージの出力先

JOBLOG

スクリプトイメージ

標準出力の出力先

標準エラー出力の出力先

内容

スプール内のファイルに出力されます。

デバッグ実行時は,標準エラー出力にもジョブ実行中に出力されます。

スプール内のファイルに出力されます。

次のどちらかで指定した出力先へ出力されます。

• adshexec コマンドの-s オプション

• 環境ファイルの OUTPUT_STDOUT パラメーター

デバッグ実行時は起動時の標準出力に出力されます。

スプール内のファイルに出力されます。

デバッグ実行時は起動時の標準エラー出力に出力されます。

ジョブごとにスプールジョブディレクトリが作成されます。

ジョブ実行後,標準出力を除いたジョブ実行ログの内容が標準エラー出力に出力されます。

デバッグ実行時は,ジョブ終了後のジョブ実行ログの内容を標準エラー出力に出力しません。

(b) 簡潔出力モードを選択した場合

簡潔出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

メッセージの出力先

JOBLOG

スクリプトイメージ

標準出力の出力先

標準エラー出力の出力先

内容

スプール内のファイルに出力されます。

スプール内のファイルには出力されません。プロセス起動時の出力先に出力されます。

標準エラー出力のエラーメッセージと,標準出力のエラーメッセージが出力されます(デ

バッグ実行時にはエラーメッセージ以外のメッセージも出力されます)。

また,JOBLOG のエラーメッセージが標準エラー出力に出力されます。

通常実行時には,メッセージ種別が W および I のメッセージ(シグナル受信,イベント受

信メッセージは除く)は出力抑止されます。

なお,ジョブ終了時にジョブ実行ログは標準エラー出力に出力されません。

3. バッチジョブの実行

JP1/Advanced Shell

229

(c) 最小出力モードを選択した場合

最小出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

メッセージの出力先

JOBLOG

スクリプトイメージ

標準出力の出力先

標準エラー出力の出力先

内容

スプール内のファイルに,出力抑止対象外のメッセージが出力されます。

スプール内のファイルには出力されません。プロセス起動時の出力先に出力されます。

標準エラー出力と標準出力の出力抑止対象外のメッセージが出力されます(デバッグ実行時

には出力抑止対象外のメッセージも出力されます)。

また,JOBLOG の出力抑止対象外のメッセージが標準エラー出力に出力されます。

なお,ジョブ終了時にジョブ実行ログは標準エラー出力に出力されません。

出力が抑止されるメッセージは次のとおりです。ただし,出力モードにかかわらず,出力する例外メッセー

ジもあります。この例外メッセージは「 12.2 メッセージの出力先 」を参照してください。

時期

通常実行時

デバッグ実行時

出力抑止されるメッセージ

• メッセージ種別が W および I のメッセージ(KNAX7893-I および KNAX7896-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) 拡張出力モードを選択した場合

拡張出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

3. バッチジョブの実行

JP1/Advanced Shell

230

メッセージの出力先

JOBLOG

スクリプトイメージ

標準出力の出力先

標準エラー出力の出力先

内容

一時的にスプール内のファイルに出力されます。

子孫ジョブ終了時に,プロセス起動時の標準エラー出力に出力したあと,スプール内のファ

イルは削除されます。

一時的にスプール内のファイルに出力されますが,子孫ジョブ終了時に削除されます。

プロセス起動時の出力先に出力されます。

ジョブ実行中にスプールジョブディレクトリが作成されますが,ジョブ実行後に削除されます。その際,

スプールジョブディレクトリ内に割り当てたプログラム出力データファイルも削除されます。そのため,

スプールジョブディレクトリのリネーム成功を示す KNAX6380-I メッセージは出力されません。

ジョブ実行後,JOBLOG の内容が標準エラー出力に出力されます。ただし,次に示すヘッダ行は出力され

ません。

---------------------------------------------------------------

Advanced Shell バージョン番号

[ジョブ情報]

ジョブ識別子 : ジョブ識別子

スプールジョブディレクトリパス : スプールジョブディレクトリパス

実行日付 : 実行日付

システム環境ファイルパス : 環境ファイルパス(システム環境ファイル)

ジョブ環境ファイルパス : 環境ファイルパス(ジョブ環境ファイル)

ホスト名 : ホスト名

[Automatic Job Management Systemから渡された環境変数]

JP1/AJSから渡された環境変数

---------------------------------------------------------------

******** ジョブコントローラのメッセージ出力 ********

JOBLOG 以外のジョブ実行ログは出力されないため,JP1/AJS やログインシェルなどからジョブ実行ログ

は参照できません。

なお,ジョブの終了コードは親プロセスのジョブの JOBLOG へ出力されるため,adshexec コマンドの実

行終了を示す KNAX7999-I メッセージは,標準エラー出力には出力されません。

(b) 簡潔出力モードを選択した場合

簡潔出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

メッセージの出力先

JOBLOG

スクリプトイメージ

標準出力の出力先

標準エラー出力の出力先

内容

ルートジョブのスプール内の子孫ジョブごとのファイルに出力されます。

一時的にスプール内のファイルに出力されますが,子孫ジョブ終了時に削除されます。

プロセス起動時の出力先に出力されます。

3. バッチジョブの実行

JP1/Advanced Shell

231

メッセージの出力先

標準エラー出力の出力先

内容

標準エラー出力のエラーメッセージと,標準出力のエラーメッセージが出力されます。ま

た,JOBLOG のエラーメッセージが標準エラー出力に出力されます。

エラーメッセージ以外のメッセージは出力されません。

メッセージ種別が W および I のメッセージ(シグナル受信,イベント受信メッセージは除

く)は出力抑止されます。

ジョブ実行中,JOBLOG にメッセージを出力します。このうち,エラーメッセージは標準エラー出力にも

出力されます。

ジョブ実行ログは,ルートジョブのスプールジョブディレクトリ下に,子孫ジョブごとにファイル出力さ

れます。ジョブの実行後もジョブ実行ログは標準エラー出力へ出力されません。

(c) 最小出力モードを選択した場合

最小出力モードを選択した場合のジョブ実行ログの出力先を次に示します。

メッセージの出力先

JOBLOG

スクリプトイメージ

標準出力の出力先

標準エラー出力の出力先

内容

ルートジョブのスプール内の子孫ジョブごとのファイルに,出力抑止対象外のメッセージが

出力されます。

一時的にスプール内のファイルに出力されますが,子孫ジョブ終了時に削除されます。

プロセス起動時の出力先に出力されます。

標準エラー出力と標準出力の出力抑止対象外のメッセージが出力されます。また,JOBLOG

の出力抑止対象外のメッセージが標準エラー出力に出力されます。

出力抑止したメッセージは出力されません。

ただし,出力モードにかかわらず,出力する例外メッセージもあります。この例外メッセージは「 12.2 

メッセージの出力先 」を参照してください。

• メッセージ種別が W および I のメッセージ(KNAX7893-I および KNAX7896-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. バッチジョブの実行

JP1/Advanced Shell

232

(3) 子孫ジョブのスプールジョブをルートジョブのスプールジョブへマージ

した場合

SPOOLJOB_CHILDJOB パラメーターに MERGE を指定した場合,子孫ジョブのスプールジョブは,ルー

トジョブのスプールジョブへマージされます。その場合のジョブ実行ログの出力内容の概要を次に示しま

す。ジョブ実行ログの全体の出力例は,「 3.5.3 ジョブ実行ログの出力例(子孫ジョブのスプールジョブ

(a) 通常実行時

• JOBLOG

子孫ジョブの JOBLOG は,子孫ジョブ実行の読み替え規則に合致した旨のメッセージと,子孫ジョブ

実行コマンドの終了メッセージとの間に出力されます。

出力される JOBLOG の前後に,次の図のように子孫ジョブの JOBLOG 出力開始と出力終了を示す記

号を出力します。

• SCRIPT

ルートジョブの SCRIPT の下に,子孫ジョブの SCRIPT を出力します。子孫ジョブの出力部分には,

ヘッダ「******** ジョブ定義スクリプトの内容 ********」は出力しません。

• STDERR

子孫ジョブの標準エラー出力の前後に,次の図のように子孫ジョブの STDERR 出力開始と出力終了を

示す記号を出力します。

この記号は,子孫ジョブが簡潔出力モードまたは最小出力モードの場合は出力しません。

3. バッチジョブの実行

JP1/Advanced Shell

233

• STDOUT

STDOUT はマージされません。

(b) デバッグ実行時

• JOBLOG

通常実行時と同じ形式でマージされます。なお,子孫ジョブの終了直後に,標準エラー出力にも同じ内

容が出力されます。

• SCRIPT

通常実行時と同じ形式でマージされます。なお,SCRIPT の内容は標準エラー出力には出力されません。

• STDERR,STDOUT

子孫ジョブの標準エラー出力の前後に,次の図のように子孫ジョブの STDERR と STDOUT を合わせ

たものの出力開始と出力終了を示す記号を出力します。子孫ジョブの標準エラー出力や標準出力をリダ

イレクトしている場合でも,[STDERR,STDOUT]という記号は標準エラー出力に出力されます。

この記号は,子孫ジョブが簡潔出力モードまたは最小出力モードの場合は出力しません。

3. バッチジョブの実行

JP1/Advanced Shell

234

(c) ルートジョブと子孫ジョブで出力モードが異なる場合

SPOOLJOB_CHILDJOB 環境設定パラメーターに MERGE を指定し,かつルートジョブが拡張出力モー

ド,子孫ジョブが最小出力モードで動作する場合,JOBLOG と SCRIPT のマージ結果は次のようになり

ます。

• JOBLOG

• 最小出力モードで動作する子孫ジョブの JOBLOG に,メッセージが出力されていない場合

この子孫ジョブの JOBLOG はルートジョブの JOBLOG にマージされません。そのため,子孫ジョ

ブの JOBLOG の出力開始と出力終了を示す記号も出力されません。

• 最小出力モードで動作する子孫ジョブの JOBLOG に,メッセージが出力されている場合

この子孫ジョブの JOBLOG はルートジョブの JOBLOG にマージされます。また,子孫ジョブの

JOBLOG の出力開始と出力終了を示す記号も出力されます。

子孫ジョブの JOBLOG の出力開始と出力終了を示す記号は,通常実行時・デバッグ実行時とも

">>>>>> [JOBLOG] パス名"と"<<<<<< [JOBLOG] パス名"です。

• SCRIPT

子孫ジョブの SCRIPT は,ルートジョブの SCRIPT にマージされません。

また,子ジョブが最小出力モードで,そこから起動する孫ジョブが拡張出力モードまたは簡潔出力モー

ドの場合も,子ジョブの SCRIPT がマージされないため,子ジョブの SCRIPT にマージされた孫ジョ

ブの SCRIPT も出力されません。

3. バッチジョブの実行

JP1/Advanced Shell

235

ルートジョブが簡潔出力モードまたは最小出力モードの場合も同様です。ただし,その場合は標準エ

ラー出力に SCRIPT を出力しません。

3.5.2 ジョブ実行ログの出力例(子孫ジョブのスプールジョブをルートジョ

ブのスプールジョブへマージした場合)

環境設定パラメーター SPOOLJOB_CHILDJOB で MERGE を選択(子孫ジョブのスプールジョブをルー

トジョブのスプールジョブへマージ)した場合の,ジョブ実行ログの出力例を次に示します。

(1) 例 1(ch1.sh と ch2.sh を定義)

次のように,ルートジョブから起動する子孫ジョブ ch1.sh と,ルートジョブのジョブステップ内から起動

する子孫ジョブ ch2.sh を定義した場合について説明します。

3. バッチジョブの実行

JP1/Advanced Shell

236

この場合に標準エラー出力へ出力されるルートジョブのジョブ実行ログについて,構成と出力例を次に示

します。

(a) ジョブ実行ログの構成

ジョブ実行ログの構成と,子孫ジョブ ch1.sh と ch2.sh の実行結果の出力個所を次に示します。子孫ジョ

ブの実行結果が JOBLOG と SCRIPT にも出力されます。

3. バッチジョブの実行

JP1/Advanced Shell

237

(b) ジョブ実行ログの出力例

ジョブ実行ログの出力例を次に示します。

3. バッチジョブの実行

JP1/Advanced Shell

238

3. バッチジョブの実行

JP1/Advanced Shell

239

3. バッチジョブの実行

JP1/Advanced Shell

240

(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 などから参照できるジョブ実行ログ

3. バッチジョブの実行

JP1/Advanced Shell

241

3. バッチジョブの実行

JP1/Advanced Shell

242

• デバッグ実行時のジョブ実行ログ

(b) ジョブ実行ログの出力例

ジョブ実行ログの出力例を次に示します。

• JP1/AJS などから参照できるジョブ実行ログ

3. バッチジョブの実行

JP1/Advanced Shell

243

3. バッチジョブの実行

JP1/Advanced Shell

244

3. バッチジョブの実行

JP1/Advanced Shell

245

• デバッグ実行時のジョブ実行ログ

3. バッチジョブの実行

JP1/Advanced Shell

246

3. バッチジョブの実行

JP1/Advanced Shell

247

3.5.3 ジョブ実行ログの出力例(子孫ジョブのスプールジョブを削除した場合)

ルートジョブと子孫ジョブを実行した場合の,ジョブ実行ログの出力例を次に示します。

(1) 例 1(ch1.sh と ch2.sh を定義)

次のように,ルートジョブから起動する子孫ジョブ ch1.sh と,ルートジョブのジョブステップ内から起動

する子孫ジョブ ch2.sh を定義した場合について説明します。

3. バッチジョブの実行

JP1/Advanced Shell

248

この場合に標準エラー出力へ出力されるルートジョブのジョブ実行ログについて,構成と出力例を次に示

します。

(a) ジョブ実行ログの構成

ジョブ実行ログの構成と,子孫ジョブ ch1.sh と ch2.sh の実行結果の出力個所を次に示します。ch1.sh の

実行結果はジョブスコープ内に,ch2.sh の実行結果はステップスコープ内に出力されます。

(b) ジョブ実行ログの出力例

ジョブ実行ログの出力例を次に示します。

3. バッチジョブの実行

JP1/Advanced Shell

249

3. バッチジョブの実行

JP1/Advanced Shell

250

(2) 例 2(child1.sh,child2.sh,grandchild.sh を定義)

次のように子孫ジョブ child1.sh,child2.sh,さらに子孫ジョブ child2.sh から起動する grandchild.sh

を定義した場合について説明します。

3. バッチジョブの実行

JP1/Advanced Shell

251

この場合に標準エラー出力へ出力されるルートジョブのジョブ実行ログについて,構成と出力例を次に示

します。

(a) ジョブ実行ログの構成

ジョブ実行ログの構成と,子孫ジョブ child1.sh,child2.sh,grandchild.sh の実行結果の出力個所を次

に示します。grandchild.sh の実行結果は,子孫ジョブ child2.sh の実行結果の中に出力されます。

3. バッチジョブの実行

JP1/Advanced Shell

252

(b) ジョブ実行ログの出力例

ジョブ実行ログの出力例を次に示します。

3. バッチジョブの実行

JP1/Advanced Shell

253

3. バッチジョブの実行

JP1/Advanced Shell

254

3.5.4 ジョブ実行ログの出力例(簡潔出力モードまたは最小出力モードを選

択した場合)

環境設定パラメーター OUTPUT_MODE_ROOT または OUTPUT_MODE_CHILD で,簡潔出力モー

ドまたは最小出力モードを選択した場合の,ジョブ実行ログの出力例を次に示します。なお,簡潔出力モー

ドと最小出力モードでは,出力されるエラーメッセージが異なります。

(1) ジョブ実行ログの構成

ジョブ実行ログの構成を次に示します。

• JP1/AJS などから参照できるジョブ実行ログ

3. バッチジョブの実行

JP1/Advanced Shell

255

• デバッグ実行時のジョブ実行ログ

(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. バッチジョブの実行

JP1/Advanced Shell

256

• デバッグ実行時のジョブ実行ログ

3.5.5 ジョブ実行ログの出力例(標準エラー出力だけを出力する場合)

環境設定パラメーター JOBEXECLOG_PRINT で STDERR を選択(ジョブ実行ログに標準エラー出力だ

けを出力する)した場合の,ジョブ実行ログの出力例を次に示します。

この例では,次に示すジョブ定義スクリプト「sample.ash」「samplesub1.ash」「samplesub2.ash」が

定義されていることを前提としています。

• ジョブ定義スクリプト「sample.ash」の内容

#-adsh_job SAMPLEJOB echo JOB_STDERR_001 >&2 cd /home/user001/dir cd xxx cd /home/user001

3. バッチジョブの実行

JP1/Advanced Shell

257

#-adsh_step_start S1 -run always -onError cont echo STEP_STDERR_001 >&2 cd /home/user001/dir cd xxx cd /home/user001

#-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/user001/dir cd xxx cd /home/user001 echo JOB_STDERR_003 >&2

./samplesub2.ash

• ジョブ定義スクリプト「samplesub1.ash」の内容

#-adsh_job SAMPLE_SUB1 echo SUB1_JOB_STDERR_001 >&2 cd /home/user001/dir cd xxxSUB1 cd /home/user001

#-adsh_step_start SUB1_S1 -run always -onError cont echo SUB1_STEP_STDERR_001 >&2 cd /home/user001/dir cd xxxSUB1 cd /home/user001

#-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/user001/dir cd xxxSUB1 cd /home/user001 echo SUB1_JOB_STDERR_003 >&2

• ジョブ定義スクリプト「samplesub2.ash」の内容

#-adsh_job SAMPLE_SUB2 echo SUB2_JOB_STDERR_001 >&2 cd /home/user001/dir cd xxxSUB2 cd /home/user001

#-adsh_step_start SUB2_S1 -run always -onError cont echo SUB2_STEP_STDERR_001 >&2 cd /home/user001/dir cd xxxSUB2 cd /home/user001

#-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/user001/dir cd xxxSUB2

3. バッチジョブの実行

JP1/Advanced Shell

258

cd /home/user001 echo SUB2_JOB_STDERR_003 >&2

このときのジョブ実行ログの出力例を次に示します。

3. バッチジョブの実行

JP1/Advanced Shell

259

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 コマンドに置き換えて出力されま

す。(( ))コマンドの指定例と出力情報を次に示します。

3. バッチジョブの実行

JP1/Advanced Shell

260

ジョブ定義スクリプトの内容

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. バッチジョブの実行

JP1/Advanced Shell

261

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

ジョブ定義スクリプトの稼働実績情報は,ジョブで実行した各コマンドの実行時間,CPU 時間,出力され

たメッセージ,ジョブステップの実行結果などの情報です。ジョブの実行状況の把握や,ジョブの実行遅

延の原因の調査などに利用できます。

ジョブ定義スクリプトの稼働実績情報の採取と出力の流れを次に示します。

図 3-4 ジョブ定義スクリプトの稼働実績情報の採取と出力

1. ユーザーが adshexec コマンドでジョブを実行すると,adshexec コマンドがジョブのジョブ定義スク

リプトの稼働実績情報を採取し,スプールのイベントファイルに出力します。

2. adshevtout コマンドは,イベントファイル内の,ジョブ定義スクリプトの稼働実績情報を CSV 形式

で出力します。

CSV 形式のジョブ定義スクリプトの稼働実績情報は,表計算ソフトウェアなどを使用して解析します。

3.7.1 ジョブ定義スクリプトの稼働実績情報の採取

ジョブ定義スクリプトの稼働実績情報の採取の可否を次の表に示します。

環境

実行環境

開発環境

実行状態

通常

デバッガモード

(非該当)

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

×

×

(凡例)

○:採取できる

×:採取できない

標準では,adshexec コマンドでジョブを実行すると,adshexec コマンドがジョブのジョブ定義スクリプ

トの稼働実績情報を採取し,スプールのイベントファイルに出力します。

ただし,環境ファイルで次のように指定すると,adshexec コマンドはジョブ定義スクリプトの稼働実績

情報をイベントファイルに出力しません。

3. バッチジョブの実行

JP1/Advanced Shell

262

 #-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 コマンドは,スプールにあるイベントファイルを参照し,ジョブ定義スクリプトの稼働実績

情報を出力します。

3. バッチジョブの実行

JP1/Advanced Shell

263

adshevtout コマンドが参照するスプールは,adshexec コマンドと同じく,指定された環境ファイルから

決定します。 adshevtout コマンドで論理ホストを指定された場合,adshexec コマンドと同じく,論理ホストに対応づ

けられたスプールを参照します。

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

ジョブ定義スクリプトの稼働実績情報は,adshevtout コマンドの標準出力(stdout)へ出力します。

リダイレクト機能を使用すると,ファイルに出力することもできます。

3.7.3 稼働実績情報の日時とタイムゾーンの関係 adshevtout コマンドは実行されたときのタイムゾーンに従い,日時を年月日,時分秒の形式で解釈し,

出力します。タイムゾーンは環境変数 TZ で指定します。

次の例に示すように,同一の日時指定例 1 であっても,タイムゾーンが異なれば,年月日,時分秒の形式

での日時の表現は変わります。日時指定例 2,日時指定例 3 についても同様です。

タイムゾーン

UTC-2

UTC

UTC+3

UTC+9

日時指定例 1

2012-06-10 08:00:00

2012-06-10 10:00:00

2012-06-10 13:00:00

2012-06-10 19:00:00

日時指定例 2

2012-06-10 23:00:00

2012-06-11 01:00:00

2012-06-11 04:00:00

2012-06-11 10:00:00

日時指定例 3

2012-06-11 15:00:00

2012-06-11 17:00:00

2012-06-11 20: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

3. バッチジョブの実行

JP1/Advanced Shell

264

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. バッチジョブの実行

JP1/Advanced Shell

265

3.7.6 稼働実績情報の形式 adshevtout コマンドは,稼働実績情報を CSV 形式で出力します。

(1) 稼働実績情報の種類 adshevtout コマンドで出力される稼働実績情報は,大きく分けて次に示す情報があります。各情報が 1

個のレコードとなります。

• adshexec コマンドの実行開始

• 環境変数

• コマンド

• メッセージ

• ジョブステップの実行開始

• ジョブステップの実行終了

• ジョブステップの実行スキップ

• ジョブの実行終了

(2) 稼働実績情報の構成

稼働実績情報は,ジョブ単位に次に示す順序で出力します。

順序

1

2

3

4

出力項目

ヘッダ情報 adshexec コマンドの実行開始

環境変数

コマンド

メッセージ

ジョブステップの実行開始

ジョブステップの実行終了

ジョブステップの実行スキップ

ジョブの実行終了

備考

環境変数がある場合に出力

ジョブ定義スクリプトの実行に応じて出力

(凡例)

−:該当なし

メッセージと次に示すレコードの出力順序は前後することがあります。

• コマンド

• ジョブステップの実行開始

3. バッチジョブの実行

JP1/Advanced Shell

266

• ジョブステップの実行終了

• ジョブステップの実行スキップ

• ジョブの実行終了

また,次に示す項目の間で,稼働実績情報の出力順序は規定されていません。

• スプールジョブ間の出力順序

• スプールジョブ内の,ルートジョブ,子孫ジョブの出力順序

(3) 稼働実績情報のレコードの構成

稼働実績情報のレコードは,複数の項目から構成されます。

項目の値は,ダブルクォーテーション(")で囲まれます。項目の値がダブルクォーテーション(")を含

む場合,1 個のダブルクォーテーション(")を,連続する 2 個のダブルクォーテーション(")で表します。

項目は,コンマ(,)で区切ります。

3.7.7 CSV 形式の稼働実績情報のレコードと出力項目

次の表に,CSV 形式の稼働実績情報のレコードと出力項目の関係を示します。

表 3-2 稼働実績情報のレコードと出力項目

項目名

1 EvtName

2 RecTZ

3 RecTime

4 PhysicalHostName

5 LogicalHostName

6 OsName

7 Jp1ajsService

8 Jp1ajsRootJobnet

9 Jp1ajsJobName

10 Jp1ajsExecId

11 Jp1ajsJobId adshexe c コマン

ドの実行

開始

コマンド

(スクリ

プト拡張

コマン

ド)

○ ○ ○

○ ○ ○

○ ○ ○

○ ○ ○

△ △ △

○ ○ ○

△ △ △

△ △ △

△ △ △

△ △ △

△ △ △

メッ

セー

ジョブス

テップの

実行開始

ジョブス

テップの

実行終了

ジョブス

テップの

実行ス

キップ

ジョ

ブの

実行

終了

3. バッチジョブの実行

JP1/Advanced Shell

267

項目名

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 Jp1asJobParentJobNa me

27 Jp1asJobParentJobId

28 Jp1asJobParentJobTim e

29 Jp1asJobParentJobPid

30 Jp1asJobRc

31 Jp1asJobSig

32 EnvVar

33 Jp1asScriptLineNo

34 Jp1asStepSeq

35 Jp1asStepName

36 Jp1asStepSkip

37 Jp1asStepRc

38 Jp1asStepSig

○ adshexe c コマン

ドの実行

開始

○ ○ ○

○ ○ ○

○ ○ ○

○ ○ ○

○ ○ ○

○ ○ ○

○ ○ ○

○ ○ ○

△ △ △

コマンド

(スクリ

プト拡張

コマン

ド)

○ ○ ○

○ ○ ○

○ ○ ○

○ ○ ○

○ ○ ○

○ ○ ○

メッ

セー

×

×

×

×

×

×

×

×

×

△ △ △

△ △ △

△ △ △

× × ×

× × ×

○ × ×

× ○ ○

× ○ ○

× △ △

× × ×

× × ×

× × ×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

ジョブス

テップの

実行開始

ジョブス

テップの

実行終了

ジョブス

テップの

実行ス

キップ

ジョ

ブの

実行

終了

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

3. バッチジョブの実行

JP1/Advanced Shell

268

項目名

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

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

× adshexe c コマン

ドの実行

開始

× ○ ○

× ○ ○

× ○ ○

× ○ ○

× ○ ○

× △ △

× △ △

× △ △

コマンド

(スクリ

プト拡張

コマン

ド)

× ○ ○

× ○ ○

× △ △

× △ △

× ○ ○

× ○ ○

×

×

×

×

×

×

×

×

× × ×

× × ×

× × ×

× × ×

× × ×

× × ×

×

×

×

×

×

×

メッ

セー

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

ジョブス

テップの

実行開始

ジョブス

テップの

実行終了

ジョブス

テップの

実行ス

キップ

ジョ

ブの

実行

終了

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

(凡例)

○:項目の情報が出力されます。

△:項目の情報が出力されます。出力する情報がない場合は空文字列となります。

×:出力する情報がないため,空文字列となります。

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

3.7.8 CSV 形式の稼働実績情報の出力項目

次の表に,CSV 形式の稼働実績情報の出力項目(列)を示します。

3. バッチジョブの実行

JP1/Advanced Shell

269

表 3-3 稼働実績情報の出力項目(列)

項番

1

2

3

4

5

6

7

8

9

10

11

項目名

EvtName

RecTZ

RecTime

PhysicalHostName

LogicalHostName

OsName

Jp1ajsService

Jp1ajsRootJobnet

Jp1ajsJobName

Jp1ajsExecId

Jp1ajsJobId

内容

稼働実績情報(レコード)の種類を示す名前。

• adshStart:adshexec コマンドの実行開始

• envVar:環境変数

• command:コマンド

• function:関数

• message:メッセージ

• stepStart:ジョブステップの実行開始

• stepEnd:ジョブステップの実行終了

• stepSkip:ジョブステップの実行スキップ

• jobEnd:ジョブの実行終了 adshevtout コマンドの実行時のタイムゾーン

稼働実績情報の日時を表現するためのタイムゾーンとして使用します。

稼働実績情報の記録日時

物理ホスト名。

論理ホスト名。

論理ホストで実行していない場合,空文字列。

OS 名。

次に示す文字列。

• Windows

• Linux

• AIX

• HP-UX

• Solaris

JP1/AJS のスケジューラーサービス名。

JP1/AJS が環境変数 AJS_AJSCONF に設定する値。

JP1/AJS からジョブを起動した場合に出力します。

JP1/AJS のルートジョブネット名。

JP1/AJS が環境変数 AJSNETNAME に設定する値。

JP1/AJS からジョブを起動した場合に出力します。

JP1/AJS のジョブ名。

JP1/AJS が環境変数 AJSJOBNAME に設定する値。

JP1/AJS からジョブを起動した場合に出力します。

JP1/AJS のジョブの実行 ID。

JP1/AJS が環境変数 AJSEXECID に設定する値。

JP1/AJS からジョブを起動した場合に出力します。

JP1/AJS のジョブ番号。

JP1/AJS が環境変数 JP1JobID に設定する値。

3. バッチジョブの実行

JP1/Advanced Shell

270

項番

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

項目名

Jp1ajsJobId

Jp1asJobName

Jp1asJobId

Jp1asJobTime

Jp1asJobPid

Jp1asUid

Jp1asGid

Jp1asUserName

Jp1asGroupName

Jp1asScriptPath

Jp1asEnvPath

Jp1asSpoolPath

Jp1asJobLang

Jp1asJobEncode

RecTZExec

Jp1asJobParentJobName

Jp1asJobParentJobId

Jp1asJobParentJobTime

Jp1asJobParentJobPid

Jp1asJobRc

Jp1asJobSig

EnvVar

内容

JP1/AJS からジョブを起動した場合に出力します。

JP1/Advanced Shell のジョブ名。

JP1/Advanced Shell のジョブ識別子。 adshexec コマンドの実行開始日時

。 adshexec コマンドのプロセス id。 adshexec コマンドのプロセスのユーザー id。

Windows の場合,空文字列。 adshexec コマンドのプロセスのグループ id。

Windows の場合,空文字列。 adshexec コマンドのプロセスのユーザー名。 adshexec コマンドのプロセスのグループ名。

Windows の場合,空文字列。

ジョブ定義スクリプトのパス名

環境ファイルのパス名

スプールディレクトリのパス名

スプールジョブのディレクトリ名は,ジョブが終了した状態では「

ジョブ識別子

-

ジョブ名

」ですが,この項目は,「

ジョブ識別子

」と出力します。 adshexec コマンドの実行開始時の環境変数 LANG の値。 adshexec コマンドの実行開始時の文字コード

。 adshexec コマンドの実行時のタイムゾーン

このタイムゾーンは,稼働実績情報の日時を表現するためには使用しません。

親ジョブのジョブ名。

ルートジョブの場合,空文字列。

親ジョブのジョブ識別子。

ルートジョブの場合,空文字列。

親ジョブの実行開始日時

ルートジョブの場合,空文字列。

親ジョブのプロセス id。

ルートジョブの場合,空文字列。 adshexec コマンドの終了コード。 adshexec コマンドがシグナルで終了した場合のシグナル番号。

シグナルで終了しない場合,0。

Windows の場合,空文字列。 adshexec コマンドを起動した時の環境変数。

3. バッチジョブの実行

JP1/Advanced Shell

271

43

44

45

46

47

項番

32

項目名

EnvVar

33 Jp1asScriptLineNo

34 Jp1asStepSeq

35 Jp1asStepName

36 Jp1asStepSkip

37

38

Jp1asStepRc

Jp1asStepSig

39 Jp1asCmdExec

40

41

42

Jp1asCmdType

Jp1asCmdPath

Jp1asCmdArg

Jp1asLang

Jp1asCharEncode

Jp1asCmdStart

Jp1asCmdEnd

Jp1asCmdElaps

3. バッチジョブの実行

JP1/Advanced Shell

内容

「環境変数名=値」の形式。

詳細は「 項目 EnvVar の環境変数 」を参照してください。

ジョブ定義スクリプトの行番号。

詳細は「 項目 Jp1asScriptLineNo の行番号

」を参照してください。

ジョブステップ番号。

ステップ外の場合,空文字列。

ジョブステップ名。

ジョブステップ名の省略時,ステップ外の場合,空文字列。

ジョブステップの実行をスキップした時の先行コマンド,ジョブステップの状態。

• normal:正常であるためスキップ。

• abnormal:エラー終了が発生しているためスキップ。

ジョブステップの終了コード。

ジョブステップがシグナルで終了した場合のシグナル番号。

シグナルで終了しない場合,0。

Windows の場合,空文字列。

コマンドの実行形態。

• 空文字列:フォアグラウンド実行。

• back:バックグラウンド実行。

詳細は「 項目 Jp1asCmdExec のコマンド実行形態

」を参照してください。

コマンドの種類。

• assign:シェル変数更新のシェル標準コマンド。

• embStd:シェル標準コマンド,シェル拡張コマンド。

• embAdsh:スクリプト拡張コマンド。

• extCmd:外部コマンド。

• function:関数

コマンド名。

外部コマンドの場合,コマンドのパス名

詳細は「

項目 Jp1asCmdPath のコマンド名,コマンドのパス名 」を参照してくださ

い。

コマンドの引数。各引数はスペースで区切ります。

コマンドライン,ジョブ定義スクリプトに記述された引数そのものではなく,その

引数を評価(展開)した結果の文字列で,コマンドに引き渡す文字列です。

コマンド実行時の環境変数 LANG の値。

コマンド実行時の文字コード

コマンドの実行開始日時

コマンドの実行終了日時

コマンドの実行経過時間。

272

項番

47

48

49

54

55

56

57

58

50

51

52

53

項目名

Jp1asCmdElaps

Jp1asCmdRc

Jp1asCmdSig

Jp1asCmdPid

Jp1asCmdCpuUser

Jp1asCmdCpuSys

Reserved1

Reserved2

Jp1asMsgId

Jp1asMsgText

Jp1asMsgLang

Jp1asMsgEncode

内容

コマンドの実行開始日時と実行終了日時の差(単位:マイクロ秒)。

コマンドの終了コード(リターンコード)。

コマンドがシグナルで終了した場合のシグナル番号。

シグナルで終了しない場合,0。

Windows の場合,空文字列。

外部コマンドのプロセス id。

コマンドのユーザー CPU 時間

(単位:マイクロ秒)。

コマンドのシステム CPU 時間

(単位:マイクロ秒)。

予約項目。空文字列。

予約項目。空文字列。

メッセージ id。

メッセージテキスト。

メッセージ出力時の環境変数 LANG の値。

メッセージ出力時の文字コード

注※

出力項目の内容について次の表で説明します。

項目 出力内容

改行文字 各項目の値に含まれる改行文字はスペースに置換します。

具体的には,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

3. バッチジョブの実行

JP1/Advanced Shell

273

項目

タイム

ゾーン

文字コー

パス名

CPU

時間

出力内容

-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

上記以外の場合,次の値とします。

 OTHER(環境変数 LANG の値)

パス名の連続したディレクトリ区切り文字は,そのまま出力します。

連続したディレクトリ区切り文字を 1 個のディレクトリ区切り文字に置換しません。

たとえば,指定されたパス名が"C:

\\ dir"である場合,"C:

\ dir"とは出力しません。"C:

\\ dir"と出力します。

外部コマンドの場合

外部コマンドを実行したプロセスの CPU 時間。

外部コマンドでない場合

コマンドを実行した adshexec のプロセスの CPU 時間。

各コマンドを実行した時の CPU 時間ではありません。

(1) 項目 EnvVar の環境変数

出力する環境変数は次のとおりです。

• ジョブの起動時に設定されていた環境変数を出力します。

• 環境ファイルで環境変数を設定している場合,環境ファイルでの設定を反映したあとの環境変数を出力

します。

• adshexec コマンドが設定する環境変数を出力します。

• adshexec コマンドが削除した環境変数は出力しません。

• 環境変数 ADSH_JOB_NAME の値はジョブ名の標準値,ADSH xxxxxx

( xxxxxx

:ジョブ識別子)で

す。#-adsh_job で指定するジョブ名ではありません。

• 子孫ジョブについても上記と同様です。

3. バッチジョブの実行

JP1/Advanced Shell

274

(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. バッチジョブの実行

JP1/Advanced Shell

275

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. バッチジョブの実行

JP1/Advanced Shell

276

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 adshread

用途

事象通知メッセージを JP1 イ

ベントとして発行する

応答要求メッセージを応答待

ちイベントとして発行する

コマンド指定方法の記載個所

「 シェル拡張コマンド 」の「

adshecho コマンド(指定した事象通知

「 シェル拡張コマンド 」の「

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 から応答が

入力できます。

3. バッチジョブの実行

JP1/Advanced Shell

277

応答手順については JP1/IM のマニュアルを参照してください。JP1/IM - View から応答入力する場合に

[応答入力]画面に表示される状態と意味を次の表に示します。

表 3-4 JP1/IM - View の[応答入力]画面に表示される状態と意味

状態 意味

READY TO RESPOND

NO LONGER MANAGED BY

JP1/AS

応答を入力できる状態である。

応答要求メッセージが,JP1/Advanced Shell によって

管理されていないため,応答できない状態である。

RESPONDED SUCCESSFULLY 応答要求メッセージに対する応答に成功した。

ALREADY RESPONDED 応答要求メッセージに対する応答がすでに入力されてい

る。

INTERNAL ERROR JP1/Advanced Shell で内部エラーが発生したため,応

答できない。

JP1/IM - View からの応答入

力可否

×

×

×

×

(凡例)

○:応答できる。

×:応答できない。

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 は不要です。また,ユーザー応答機能管理デーモン・サービスを起動する必要はあ

りません。

3. バッチジョブの実行

JP1/Advanced Shell

278

また,次のパラメーターの指定は無効となります。

• 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

3. バッチジョブの実行

JP1/Advanced Shell

279

#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 < ポート数

3. バッチジョブの実行

JP1/Advanced Shell

280

 n

:MSL × 2(秒)の間にユーザー応答機能によって出力する JP1 イベントの数

• UNIX の場合,応答要求メッセージを共有メモリ上で管理するために,ユーザー応答機能管理デーモン

の起動時に次の名称のファイルをスプールディレクトリに作成します。

• .adsh_mqueue

• .adsh_mqueue_

論理ホスト名

(論理ホストのユーザー応答機能管理デーモンを起動した場合)

上記のファイルは,ユーザー応答機能管理デーモンの動作中は削除しないでください。なお,上記の

ファイルはユーザー応答機能管理デーモンを終了しても削除されないで,次のユーザー応答機能管理

デーモン起動時に再利用されます。

HP-UX の場合は,上記のファイルのほかに,次の名称のファイルをスプールディレクトリに作成しま

す。

• .adsh_mqueueS

• .adsh_mqueue_

論理ホスト名

S(論理ホストのユーザー応答機能管理デーモンを起動した場合)

上記のファイルは,ユーザー応答機能管理デーモンの動作中は削除しないでください。なお,上記の

ファイルはユーザー応答機能管理デーモンの終了時に削除されます。

• OS をシャットダウンする場合は,ユーザー応答機能管理デーモンおよびサービスを停止してからシャッ

トダウンしてください。ユーザー応答機能管理デーモンおよびサービスの停止時に応答待ち状態の応答

要求メッセージが存在する場合,これらのデーモンやサービスは,応答要求メッセージをキャンセルし

てから停止します。しかし,OS のシャットダウン処理が実行されると,応答要求メッセージのキャン

セルが実行される前にシャットダウンする場合があります。この場合,JP1/IM - View に応答待ちイ

ベントが滞留したままになります。

3. バッチジョブの実行

JP1/Advanced Shell

281

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

スプールに格納されたスプールジョブは,スプールディレクトリに保存されたまま,増加します。このた

め,定期的に古いスプールジョブを削除してディスクの空き容量を増やす必要があります。

• スプールジョブの削除方法

スプールジョブを削除するためには,次の adshhk コマンドを入力します。adshhk コマンドの指定方

法については「 8.3.9 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 end date

意味

ジョブ識別子

ジョブ名

ジョブの終了コード

ジョブの実行開始日時(yyyy/mm/dd hh:mm:ss の形式)。

デバッグモードで起動したときにデバッガ自身に割り当てるスプールは,ジョブの実行結果ではなく

デバッガのログ出力用のため,デバッグの開始日時が出力されます。

ジョブの終了日時(yyyy/mm/dd hh:mm:ss の形式)。

デバッグモードで起動したときにデバッガ自身に割り当てるスプールは,ジョブの実行結果ではなく

デバッガのログ出力用のため,ジョブ終了日時は出力されません。

3. バッチジョブの実行

JP1/Advanced Shell

282

見出し act info spool target days execute date

意味

適用した動作(keep:保存,delete:削除,error:削除処理中にエラー発生)

エラーの詳細情報

スプールディレクトリ

対象日数

コマンドの実行開始日時(yyyy/mm/dd hh:mm:ss の形式)

注意事項 

スプールのディレクトリの下に,JP1/Advanced Shell が作成するファイルやディレクトリ

ではないユーザー独自のファイルやディレクトリが存在する場合,adshhk コマンドは

KNAX4419-E メッセージなどを出力して終了します。

3. バッチジョブの実行

JP1/Advanced Shell

283

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 コマンド

カバレージ情報のマージ adshcvmerg コマンド

マージします。

エディタではマージできませ

ん。

3. バッチジョブの実行

JP1/Advanced Shell

284

環境

Windows の開

発環境

カバレージ情報の採取

実行環境の設定で「カバレージを蓄積す

る」を選択しないとカバレージ情報は採取

しません。

カバレージ採取の一括有効化機能は利用で

きません。

Windows の実

行環境

UNIX の実行

環境

ジョブ定義スクリプト実行時に adshexec

コマンドでカバレージの蓄積オプション

(-t)を指定して,カバレージ情報を採取し

ます。採取した情報はカバレージ情報ファ

イルに蓄積されます。

デバッグ機能は使用できません。 adshexec コマンドで次のオプションを指

定します。両方のオプションを指定するこ

ともできます。

• カバレージの蓄積オプション(-t)を指

定してカバレージ情報ファイルに採取

します。

• デバッグオプション(-d)を指定して

メモリに採取します。

カバレージ情報の表示

• JP1/Advanced Shell エ

ディタ adshcvshow コマンドで表示

します。

• カバレージ情報ファイルに

採取した場合, adshcvshow コマンドで

表示します。

• メモリに採取した場合, info coverage コマンドで

表示します。

カバレージ情報のマージ adshcvmerg コマンド

マージします。

エディタではマージできませ

ん。 adshcvmerg コマンド

マージします。

で adshcvmerg コマンド

マージします。

異なるプラットフォーム間でのカバレージ情報の相互運用で,次の注意が必要です。

• 異なるプラットフォーム間でカバレージ情報を転送しないでください。

• 採取したカバレージ情報ファイルは,他 OS のコマンドでは処理できません。

注※ adshcvmerg コマンドによって,1 回の実行につき 2 つのカバレージ情報ファイルのカバレージ情報を

マージできます。3 つ以上のカバレージ情報ファイルのカバレージ情報をマージする場合は,このコマ

ンドを複数回実行して,カバレージ情報のマージを繰り返してください。

3.10.2 カバレージ情報の管理

カバレージ情報はカバレージ情報ファイル(asc ファイル)で管理します。

(1) カバレージ情報ファイルのファイル名と格納ディレクトリ

(a) ファイル名

カバレージ情報はジョブ定義スクリプトとユーザー単位にまとめられます。このため,デフォルトの asc

ファイル名には,ジョブ定義スクリプト名とユーザー名が含まれます。

実行環境の場合,コマンドオプションで任意の asc ファイル名を指定できます。

3. バッチジョブの実行

JP1/Advanced Shell

285

エディタの場合,デフォルトの asc ファイル名となります。任意の asc ファイル名は指定できません。

デフォルトの asc ファイル名を次に示します。

ジョブ定義スクリプト名(拡張子を除きます)_ユーザー名.asc

asc ファイルの名称のバイト数が OS の上限値を超えた場合,カバレージの取得に失敗します。実行する

ジョブ定義スクリプトのファイル名の文字数に注意してください。

(b) 格納ディレクトリ

実行環境の場合,デフォルトの asc ファイルは,コマンド実行時のカレントディレクトリに作成します。

開発環境の場合,Windows のエディタからカバレージ情報を蓄積しているときは,ジョブ定義スクリプ

トファイルがあるディレクトリに asc ファイルを作成します。

(2) asc ファイルの更新 asc ファイルは,カバレージ情報の蓄積,またはマージ時に更新されます。 asc ファイルは複数のユーザーで同時に共用できません。ほかのユーザーで使用中の asc ファイルを使お

うとすると,KNAX6211-E メッセージを出力してコマンドがエラーとなります。

(3) asc ファイルの出力処理

ディスク容量不足などの理由で,asc ファイルへのカバレージ情報の書き込みが失敗すると,カバレージ

情報が失われます。

カバレージ情報を採取するとき,asc ファイルがすでに存在する場合は前に採取したカバレージ情報を失

わないように,次のように asc ファイルが更新されます。存在する asc ファイルは直接更新しません。

1. 一時 asc ファイルに新しいカバレージ情報を出力する。

2. 既存の asc ファイルをバックアップ asc ファイルに変更する。

3. 一時 asc ファイルを指定された asc ファイル(デフォルトの asc ファイル名の場合を含む)に変更する。

4. バックアップ asc ファイルを削除する。

このため,asc ファイルへのカバレージ情報の出力処理が途中で終了しても,コマンドの再実行時にカバ

レージ情報が適切に回復して,コマンドの処理を続行します。

一時 asc ファイルとバックアップ asc ファイルは,コマンドの処理が正常に終了した場合は残りません

が,asc ファイルへのカバレージ情報の出力処理が途中で終了すると残る場合があります。これらのファ

イルは,コマンドを再実行した場合,またはコマンドを処理して正常に終了した場合,削除されます。

一時 asc ファイルは手動で削除してもかまいませんが,バックアップ asc ファイルは削除しないでくださ

い。削除すると,コマンドがエラー終了する直前までに蓄積してきたカバレージ情報を失うことになります。

3. バッチジョブの実行

JP1/Advanced Shell

286

カバレージ機能を使用する場合,通常,上記のことを意識する必要はありません。

指定された 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. バッチジョブの実行

JP1/Advanced Shell

287

表 3-6 実行環境での一時 asc ファイルとバックアップ asc ファイルの使用 adshexec コマンドのオプション Windows

-t -d 一時 asc ファイル バックアップ asc

ファイル

なし

なし

なし

あり

×

×

あり

あり

なし

あり

UNIX

一時 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. バッチジョブの実行

JP1/Advanced Shell

288

表 3-8 adshexec コマンド実行時の asc ファイルの処理方法

コマンド起動時の状態 job.asc

adshexec_bac kup_job.asc

× ×

コマンドの処理 job.asc

新規作成 adshexec_bac kup_job.asc

なし asc ファイルの状態と処理方法

×

×

なし

このファイルを

使用

このファイルを

使用 job.asc へ名称

を変更

なし

このファイルを

削除

新旧の asc ファイルがない状態です。 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 オプションを指定した場合,エラーにはならないでカバレージ情報を上書きします。

3. バッチジョブの実行

JP1/Advanced Shell

289

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 ファイル)が存在する

• ジョブ定義スクリプトファイルが,すでに存在するカバレージ情報ファイルのカバレージ情報を採取し

たときと同一である

3. バッチジョブの実行

JP1/Advanced Shell

290

継続蓄積では,ジョブ定義スクリプトが前回カバレージ情報を採取したときと同一であることが継続蓄積

の条件の 1 つになっています。次に示す場合,ジョブ定義スクリプトは同一であると判断します。

• ジョブ定義スクリプトをバイナリ比較してサイズと内容が同一である

上記の条件が成立すれば,ジョブ定義スクリプトはファイル名やパスが異なっていても同一として取り扱

います。

(3) カバレージ情報ファイルに登録するジョブ定義スクリプトのファイル名

継続蓄積の場合,最後にカバレージ情報を採取したときのジョブ定義スクリプトのファイル名が有効とな

ります。

次のファイルは,ファイル名は異なりますが,同一のジョブ定義スクリプトとします。

• /dir1/file1

• /dir2/file2

出力 asc ファイルを out.asc として,上記のジョブ定義スクリプトを使用して,継続蓄積を実行する

と,out.asc 内のスクリプトファイル名は次に示すようになります。

1. adshexec -t -o out.asc /dir1/file1 を実行すると,out.asc 内のスクリプトファイル名は, /dir1/ file1 となります。

2. adshexec -t -o out.asc /dir2/file2 を実行すると,out.asc 内のスクリプトファイル名は, /dir2/ file2 となります。

3. 再び adshexec -t -o out.asc /dir1/file1 を実行すると,out.asc 内のスクリプトファイル名は, / dir1/file1 となります。

(4) カバレージ情報ファイルの拡張子

カバレージ情報ファイル(asc ファイル)の拡張子のデフォルトは,「.asc」です。ただし,カバレージ情

報ファイルの拡張子「.asc」でなくてもかまいません。カバレージ情報を取得する場合,カバレージ情報

ファイルとして指定した任意の拡張子のファイルを asc ファイルとして扱います。

(5) ジョブ定義スクリプトのサイズ

ジョブ定義スクリプトファイルのサイズは,2GB 未満とします。

(6) 蓄積したカバレージ情報の初期化

蓄積したカバレージ情報を初期化する場合は,該当する asc ファイルを rm コマンドなどで削除し,初回

蓄積として再度カバレージ情報を採取してください。

3. バッチジョブの実行

JP1/Advanced Shell

291

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ファイルのパス名

3. バッチジョブの実行

JP1/Advanced Shell

292

(2) カバレージ情報の表示形式

カバレージ情報の表示形式の説明を,次の表に示します。

表 3-9 カバレージ情報の表示形式の説明

項目

JP1/Advanced Shell カバレージ情報

(Advanced Shell Coverage Information)

日時(右上の部分)

説明

JP1/Advanced Shell で取得したカバレージ情報を示します。 adshcvshow コマンドを実行した日時を yyyy-mm-dd hh:mm:ss の形式

で表示します。月,日,時,分,秒が 1 桁の場合は,先頭に 0 を付加します。

見出し情報(Header Information) 見出しを示します。

ジョブ定義スクリプト名(Shellscript Name) ジョブ定義スクリプトの絶対パス名を表示します。 asc ファイルのバージョン(Asc version)

カバレージ情報の採取開始時刻(Coverage Start

Time)

カバレージ情報の採取終了時刻(Coverage End

Time)

カバレージ情報の採取回数(Test Count) asc ファイルのバージョン番号を表示します。

カバレージ情報の採取開始時刻を表示します。形式は,日時と同じです。

カバレージ情報の採取終了時刻を表示します。形式は,日時と同じです。

カバレージ情報を採取した回数を表示します。

カバレージ情報の採取回数が 9999 を超えた場合,「9999+」と表示します。

バッチジョブを実行するコマンド(adshexec コマンド)のオプションの

指定によって採取回数の数え方が変わります。 adshexec コマンド(-t と-d を指定)

• メモリ上のカバレージ情報の場合

・初期値 asc ファイルがあるときは,asc ファイルのカバレージ情報の採取回数

となります。 asc ファイルがないときは,0 となります。

・更新

デバッガの run コマンドの実行ごとにカバレージ情報の採取回数を 1 増

やします。

• asc ファイルの場合 adshexec コマンドの終了時にデバッガの run コマンドの実行回数だけ

カバレージ情報の採取回数を増やします。 adshexec コマンド(-t を指定)

 adshexec コマンドの終了時にカバレージ情報の採取回数を 1 増やします。 adshexec コマンド(-d を指定)

• メモリ上のカバレージ情報の場合

・初期値

カバレージ情報の採取回数の初期値は 0 になります。

・更新

デバッガの run コマンドの実行ごとにカバレージ情報の採取回数を 1 増

やします。

3. バッチジョブの実行

JP1/Advanced Shell

293

項目

カバレージ情報の採取回数(Test Count)

メイン情報(Main Information)

行番号(Line)

付加情報(Info)

説明

• asc ファイルの場合 asc ファイルは更新されません。

カバレージ情報(C0,C1 情報)を表示します。

1 から始まります。

行番号が 9999 を超えた場合,「9999+」と表示します。

C0,C1 情報の見出しです。カバレージ情報は,行単位に表示します。コ

マンドラインが複数行にまたがっている場合,コマンドが存在する行に

C0,C1 情報を表示します。

C0,C1 情報のどちらも 32 個以内ならカバレージ情報を記録でき,この項

目はスペースとなります。記録できない場合に表示される文字と意味を次

に示します。 overC0:C0 情報が 32 を超えています。 overC1:C1 情報が 32 を超えています。 over:C0 情報と C1 情報の両方が 32 を超えています。

C0 情報(C0)

C1 情報(C1)

C0 情報を表示します。

@:コマンドが実行されました。

-:コマンドは実行されていません。

行に複数のコマンドが存在する場合,行の先頭から最大 4 個のコマンドま

での C0 情報を 4 文字で表示します。

C1 情報を表示します。

@:実行パスが実行されました。

-:実行パスは実行されていません。

行に複数の実行パスが存在する場合,行の先頭から最大 4 個の実行パスま

での C1 情報を 4 文字で表示します。

ジョブ定義スクリプト(<Shellscript Image>) ジョブ定義スクリプトの内容を,行単位に表示します。範囲指定した場合,

指定された範囲の行だけを表示します。

合計の情報(Total Information) C0,C1 情報の合計を表示します。範囲指定した場合,合計の情報以降は,

表示されません。個数が 99999999 を超えた場合,「99999999+」と表示

します。

C0,C1 対象の総数(Target Total)

<C0>

<C0>に対象コマンドの総数,<C1>に実行パスの総数を表示します。

ジョブ定義スクリプト内のすべての C0 対象コマンドの個数を含みます。

C0 対象のコマンド数が 32 個を超える行が存在する場合でもすべての個数

がカウントされます。

<C1> ジョブ定義スクリプト内のすべての C1 対象実行パスの個数を含みます。

C1 対象の実行パス数が 32 個を超える行が存在する場合でもすべての個数

がカウントされます。

C0,C1 対象の実行した総数(Executed Total) <C0>に実行したコマンドの総数,<C1>に実行した実行パスの総数を表

示します。

3. バッチジョブの実行

JP1/Advanced Shell

294

項目

<C0>

<C1>

C0,C1 対象の未実行の総数(Unexecuted

Total)

<C0>

<C1>

実行比率(Coverage Rate)

<C0>

<C1>

説明

カバレージ情報として,実行を記録するのは,各行内で先頭から C0 対象

である 32 個のコマンドまでです。この 32 個のコマンド内の実行したコマ

ンドが,カウントされます。

カバレージ情報として,実行を記録するのは,各行内で先頭から C1 対象

である 32 個の実行パスまでです。この 32 個の実行パス内の実行した実行

パスが,カウントされます。

<C0>に未実行のコマンドの総数,<C1>に未実行の実行パスの総数を表

示します。

「C0 対象の総数(Target Total)−C0 対象の実行した総数(Executed

Total)」になります。

「C1 対象の総数(Target Total)−C1 対象の実行した総数(Executed

Total)」になります。

C0 と C1 の実行比率(%)を表示します。小数点第 2 位以下を切り捨てて

小数点第 1 位までを表示します。

「C0 対象の実行した総数(Executed Total)/C0 対象の総数(Target

Total)」になります。

C0 対象のコマンド数が 32 個を超える行が存在した場合,すべてのコマン

ドを実行しても 100%より小さくなります。

「C1 対象の実行した総数(Executed Total)/C1 対象の総数(Target

Total)」になります。

C1 対象の実行パス数が 32 個を超える行が存在した場合,すべての実行パ

スを実行しても 100%より小さくなります。

カバレージ情報を表示するコマンドの表示例を,C0,C1 に情報を行ごとに 1 個まで表示した場合と 4 個

まで表示した場合とに分けて示します。

(a) カバレージ情報を表示するコマンドの表示例(C0,C1 に情報を行ごとに 1 個まで

表示した場合)

この例では,C0 と C1 が取得されたことが,Main Information のところに 1 個の「@」と「-」で表示

されています。

* Advanced Shell Coverage Information *

2013-12-06 12:29:15

**** Header Information **************************************************

Shellscript Name : /home/testuser/sample

Asc version : 1.0

Coverage Start Time : 2013-12-06 12:21:38

Coverage End Time : 2013-12-06 12:21:39

Test Count : 1

**** Main Information **************************************************

Line Info C0 C1 <Shellscript Image>

1

3. バッチジョブの実行

JP1/Advanced Shell

295

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"の各コマンド

を実行したことを示します。

3. バッチジョブの実行

JP1/Advanced Shell

296

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 の

列の"@---"の各文字には表示しません。

* Advanced Shell Coverage Information *

2013-12-06 12:33:01

**** Header Information **************************************************

Shellscript Name : /home/testuser/sample1.ash

Asc version : 1.0

Coverage Start Time : 2013-12-06 12:21:49

Coverage End Time : 2013-12-06 12:21:50

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

3. バッチジョブの実行

JP1/Advanced Shell

297

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

3. バッチジョブの実行

JP1/Advanced Shell

298

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 があるときの表示方法

3. バッチジョブの実行

JP1/Advanced Shell

299

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を取得

3. バッチジョブの実行

JP1/Advanced Shell

300

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を取得しない

3. バッチジョブの実行

JP1/Advanced Shell

301

- 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を取得

3. バッチジョブの実行

JP1/Advanced Shell

302

- 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.

3. バッチジョブの実行

JP1/Advanced Shell

303

1. 関数を実行した場合には,関数が定義されているところには,C0 情報,C1 情報を表示しません。

2. 関数の本体には,実行したコマンド,実行パスの C0,C1 情報を表示します。

3. 関数を実行した場合には,関数を呼び出したところに 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 コマンドの引数として実行するコマンドは,カバレージ情報を採取しません。

3. バッチジョブの実行

JP1/Advanced Shell

304

• 例 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.のケースを実行できないためです。

1. 先行するすべてのジョブステップ,コマンドが正常終了している。

2. 先行するジョブステップ,コマンドで正常終了していないものがある。

この場合,デバッグ時にエラー注入モードを有効にして該当個所でエラーをシミュレートする方法があり

ます。これによって C1 情報が取得され,C1 実行比率を 100%にすることができます。エラーのシミュ

レート方法を次に示します。

• GUI でのデバッグの場合【Windows 限定】

3. バッチジョブの実行

JP1/Advanced Shell

305

JP1/Advanced Shell エディタのメニュー[エラー注入モード]でエラーをシミュレートできます。手

順については,「

(4) エラーをシミュレートする

」を参照してください。

• CUI でのデバッグ(adshexec コマンドの-d オプションで開始)の場合【UNIX 限定】 joberrmode コマンドを使用することでエラーをシミュレートできます。joberrmode コマンドについ

ては,「

6.2.21 エラー注入モードの有効/無効を設定する(joberrmode コマンド)

さい。

なお,エラー注入モードが有効かどうかは info status コマンドで確認できます。info status コマンド

については「

6.2.19 ステータスを表示する(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 コマンドのパラメーターを変更することなく,

カバレージを採取できるようにします。

3. バッチジョブの実行

JP1/Advanced Shell

306

次の環境設定パラメーターでカバレージ情報を採取するように設定しておけば,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. バッチジョブの実行

JP1/Advanced Shell

307

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 限定】

3.11.3 強制終了

注意事項 

Windows の場合,adshexec コマンドの起動時に adshexecsub コマンドをあわせて起動し, adshexec コマンドを強制終了すれば adshexecsub コマンドも終了します。そのため, adshexecsub コマンドは強制終了しないでください。adshexecsub コマンドを強制終了すると,

次の現象が発生する場合があります。

• 実行中の子孫プロセスが終了されません。

• 一時ファイルが残ったままとなる場合があります。

これらの現象が発生した場合は,taskkill コマンドやタスクマネージャーを使用して子孫プロセス

を強制終了させ,一時ファイルを手動で削除してください。

3. バッチジョブの実行

JP1/Advanced Shell

308

注意事項 

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

コマンドだけでなく,孫プロセス以下を含むすべての子孫プロセスが対象になります。

3. バッチジョブの実行

JP1/Advanced Shell

309

強制終了後に孫プロセス以下が残ってしまった場合は,残ってしまったプロセスのプロセス 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. バッチジョブの実行

JP1/Advanced Shell

310

表 3-10 環境設定パラメーター TRAP_ACTION_SIGTERM に DISABLE を指定した場合

※1 trap コマンドによる動作定義がない場合 trap コマンドによる動作定義がある

場合 trap コマンドで動作を定義できませ

ん。

※3

• ルートジョブが SIGTERM を受信した場合

1 回目:メッセージを出力し,後処理を実行してから,後続処理を実行しないで終

了します。このとき JP1/AJS からの起動でない場合は,自分に SIGTERM を送信

してシグナル終了します。

2 回目:即時終了します。

• 子孫ジョブが SIGTERM を受信した場合

SIGTERM を受信した子孫ジョブは,メッセージを出力し,後処理を実行してか

ら,後続処理を実行しないで終了します。このとき自分に SIGTERM を送信して

シグナル終了します。

また,子孫ジョブの親ジョブは,子プロセスが終了コード「128 + SIGTERM の

シグナル番号」で終了した場合の動作に従って,後続処理を実行します。

※2

注※1

環境設定パラメーター TRAP_ACTION_SIGTERM を指定しなかった場合も含みます。

注※2

子孫ジョブのシグナル受信時の動作の詳細については,「

(3) シグナル受信時の子孫ジョブの動作

」を

参照してください。

注※3 trap コマンドで SIGTERM に対する動作を定義しようとすると,trap コマンドがエラーとなりジョブ

が終了します。

表 3-11 環境設定パラメーター TRAP_ACTION_SIGTERM に TERM を指定した場合 trap コマンドによる動作定義がない場合

• ルートジョブが SIGTERM を受信した場合

1 回目:メッセージを出力し,後処理を実行してから,後続処理を実行し

ないで終了します。このとき JP1/AJS からの起動でない場合は,自分に

SIGTERM を送信してシグナル終了します。

2 回目:即時終了します。

• 子孫ジョブが SIGTERM を受信した場合

SIGTERM を受信した子孫ジョブは,メッセージを出力し,後処理を実行

してから,後続処理を実行しないで終了します。このとき自分に

SIGTERM を送信してシグナル終了します。

また,子孫ジョブの親ジョブは,子プロセスが終了コード「128 +

SIGTERM のシグナル番号」で終了した場合の動作に従って,後続処理を

実行します

。 trap コマンドによる動作定義がある場合

• ルートジョブが SIGTERM を受信した場合

メッセージを出力し,trap コマンドで

SIGTERM に対して定義したアクションを

実行します。アクションを実行した後は後

続処理を実行しないで終了します。JP1/AJS

からの起動でない場合は,自分に SIGTERM

を送信してシグナル終了します。

• 子孫ジョブが SIGTERM を受信した場合

メッセージを出力し,trap コマンドで

SIGTERM に対して定義したアクションを

実行します。アクションを実行した後は後

続処理を実行しないで終了します。

また,子孫ジョブの親ジョブは,子プロセ

スが SIGTERM を受信した動作結果に従っ

て,後続処理を実行します

3. バッチジョブの実行

JP1/Advanced Shell

311

注※

子孫ジョブのシグナル受信時の動作の詳細については,「

(3) シグナル受信時の子孫ジョブの動作

」を

参照してください。

表 3-12 環境設定パラメーター TRAP_ACTION_SIGTERM に CONT を指定した場合

ジョブの起動方法

JP1/AJS から起動した場合

(カスタムジョブからの起動,または環境変数

AJS_BJEX_STOP に TERM を設定した状態での起動)

JP1/AJS 以外から起動した場合

(上記以外の方法による起動) trap コマンドによる動作定義が

ない場合 trap コマンドによる動作定義が

ある場合

ジョブ定義スクリプトを実行しないでジョブがエラー終了します

(環境ファイル解析時のエラー)。

• ルートジョブが SIGTERM

を受信した場合

1 回目:メッセージを出力

し,後処理を実行してから,

後続処理を実行しないで終

了します。このとき自分に

SIGTERM を送信してシグ

ナル終了します。

2 回目:即時終了します。

• 子孫ジョブが SIGTERM を

受信した場合

SIGTERM を受信した子孫

ジョブの動作は,ルート

ジョブと同じです。

また,子孫ジョブの親ジョ

ブは,子プロセスが終了

コード「128 + SIGTERM

のシグナル番号」で終了し

た場合の動作に従って,後

続処理を実行します

• ルートジョブが SIGTERM

を受信した場合

メッセージを出力し,trap

コマンドで SIGTERM に対

して定義したアクションを

実行します。アクションを

実行した後はジョブ定義ス

クリプトの後続処理を続行

します。

• 子孫ジョブが SIGTERM を

受信した場合

SIGTERM を受信した子孫

ジョブの動作は,ルート

ジョブと同じです。

また,子孫ジョブの親ジョ

ブは,子プロセスが

SIGTERM を受信した動作

結果に従って,後続処理を

実行します

注※

子孫ジョブのシグナル受信時の動作の詳細については,「

(3) シグナル受信時の子孫ジョブの動作

」を

参照してください。

表 3-13 環境設定パラメーター TRAP_ACTION_SIGTERM に AUTO を指定した場合

ジョブの起動方法 trap コマンドによる動作定義がな

い場合 trap コマンドによる動作定義がある

場合

TERM を指定した場合と同じ動作です。 JP1/AJS から起動した場合

(カスタムジョブからの起動,または環境変数

AJS_BJEX_STOP に TERM を設定した状態で

の起動)

JP1/AJS 以外から起動した場合

(上記以外の方法による起動)

CONT を指定した場合と同じ動作です。

3. バッチジョブの実行

JP1/Advanced Shell

312

(b) SIGTERM 以外の場合

表 3-14 シグナル受信時の動作

シグナルの種類

終了要求

シグナル

異常通知

シグナル

SIGHUP,SIGINT,SIGXCPU,

SIGXFSZ,SIGQUIT,

SIGUSR1,SIGUSR2,SIGPIPE,

SIGALRM,SIGVTALRM,

SIGPROF

SIGLOST trap コマンドによる動作定義がない

場合

• ルートジョブがシグナルを受信し

た場合

子孫プロセスの終了や一時ファイ

ルの削除などの後処理を実行して

から,後続命令を実行しないでシ

グナルによってエラー終了しま

す。

• 子孫ジョブがシグナルを受信した

場合

受信した子孫ジョブの動作はルー

トジョブ受信時と同じです。

ここで受信した子孫ジョブの親の

ジョブは,終了した子孫ジョブの

結果に従って,後続処理を実行し

ます。

※1 trap コマンドによる動作定義がある

場合

• ルートジョブがシグナルを受信

した場合 trap コマンドで定義した動作に

従います。

• 子孫ジョブがシグナルを受信し

た場合

受信した子孫ジョブの動作はルー

トジョブ受信時と同じです。

ここで受信した子孫ジョブの親

のジョブは,子孫ジョブの結果

に従って,後続処理を実行しま

す。

SIGMSG,SIGDANGER,

SIGMIGRATE,SIGPRE,

SIGVIRT,SIGALRM1,

SIGRECONFIG,SIGCPUFAIL,

SIGGRANT,SIGRETRACT,

SIGSOUND

上記と同様です。

【AIX 限定】

SIGLOST

SIGILL,SIGTRAP,SIGABRT,

SIGFPE,SIGBUS,SIGSEGV,

SIGSYS

上記と同様です。

【AIX 限定】

上記と同様です。

【HP-UX,Solaris 限定】

• ルートジョブがシグナルを受信し

た場合

対象シグナルに対する OS のデ

フォルトの動作に従ってプログラ

ムを終了します。

• 子孫ジョブがシグナルを受信した

場合

受信した子孫ジョブの動作はルー

トジョブ受信時と同じです。

ここで受信した子孫ジョブの親の

ジョブは,終了した子孫ジョブの

結果に従って,後続処理を実行し

ます。

※1

上記と同様です。

【HP-UX,Solaris 限定】

• ルートジョブがシグナルを受信

した場合 trap コマンドで定義した動作に

従います。

• 子孫ジョブがシグナルを受信し

た場合

受信した子孫ジョブの動作はルー

トジョブ受信時と同じです。

ここで受信した子孫ジョブの親

のジョブは,子孫ジョブの結果

に従って,後続処理を実行しま

す。

SIGIOT,SIGEMT 上記と同様です。

【AIX,HP-UX,Solaris 限定】

上記と同様です。

【AIX 限定】

上記と同様です。

【AIX,HP-UX,Solaris 限定】

上記と同様です。

【AIX 限定】

3. バッチジョブの実行

JP1/Advanced Shell

313

シグナルの種類

上記以外 trap コマンドによる動作定義がない

場合

• ルートジョブがシグナルを受信し

た場合

対象シグナルに対する OS のデ

フォルトの動作に従います。

• 子孫ジョブがシグナルを受信した

場合

受信した子孫ジョブの動作はルー

トジョブ受信時と同じです。

ここで受信した子孫ジョブの親の

ジョブは,子孫ジョブの結果に

従って,後続処理を実行します。

※1 trap コマンドによる動作定義がある

場合

• ルートジョブがシグナルを受信

した場合 trap コマンドで定義した動作に

従います。

※2

• 子孫ジョブがシグナルを受信し

た場合

受信した子孫ジョブの動作はルー

トジョブ受信時と同じです。

ここで受信した子孫ジョブの親

のジョブは,子孫ジョブの結果

に従って,後続処理を実行しま

す。

注※1

子孫ジョブのシグナル受信時の動作の詳細については,「

(3) シグナル受信時の子孫ジョブの動作

」を

参照してください。

注※2

SIGKILL と SIGSTOP については,trap コマンドで動作を定義できません。

SIGWAITING については,trap コマンドで動作を定義できません。【AIX 限定】

注意事項 

• trap コマンド使用時,動作に「-」を設定するとシグナル受信時の動作がデフォルトに戻ります。

• デバッグ実行時の動作がこれらの表と異なるシグナルがあります。trap コマンドによる動作定

義の有無とシグナルの動作の差異については,「

(2) デバッグ実行時 」を参照してください。

(2) デバッグ実行時

表 3-15 デバッグ実行時のシグナル受信時の動作

シグナルの種類

SIGINT trap コマンドによる動作定義がな

い場合

デバッガがジョブ定義スクリプト

の実行を停止させて,デバッガの

コマンド入力待ちとなります。

SIGCHLD,

SIGTSTP,

SIGTTOU,

SIGURG,

後続処理を続行します。 trap コマンドによる動作定義がある

場合

デバッガがジョブ定義スクリプトの実行

を停止させて,デバッガのコマンド入力

待ちとなります。

また,trap コマンドで定義した動作に

従います。 trap コマンドで定義した動作に従いま

す。

3. バッチジョブの実行

JP1/Advanced Shell

314

シグナルの種類

SIGWINCH,

SIGIO,

SIGPWR

SIGSTKFLT

【Linux 限定】

SIGWAITING,SIGLWP,SIGFREEZE,

SIGTHAW,SIGCANCEL,SIGXRES,

SIGJVM1,SIGJVM2

【Solaris 限定】

リアルタイムシグナル

【HP-UX,Linux,Solaris 限定】 trap コマンドによる動作定義がな

い場合

後続処理を続行します。 trap コマンドによる動作定義がある

場合 trap コマンドで定義した動作に従いま

す。

注※

ジョブ定義スクリプトの停止については,「 6.2 CUI のデバッガ【UNIX 限定】

3.11.3 強制終了時のジョブの動作【Windows 限定】

Windows での強制終了時のジョブの動作を次に示します。

なお,trap コマンドによって,TerminateProcess などによるプロセス即時終了に対する動作を定義する

場合,TRAP_ACTION_SIGTERM パラメーターに TERM を指定してください。

表 3-16 強制終了時のジョブの動作

強制終了方法

制御信号 CTRL + C

CTRL + BREAK

CTRL_CLOSE_EVENT trap コマンドによる動作定

義がない場合 trap コマンドによる動作定義

がある場合

制御信号は,ルートジョブ,

子孫ジョブ,およびコマンド

として動作するすべてのプロ

セスグループに対して送信さ

れます。

• 制御信号を受信したルー

トジョブ

(adshexec.exe)の場合

子プロセス adshexecsub.exe が後

続のスクリプトを実行し

ないで後処理を実行して

終了します。制御信号を

受信した adshexec.exe

は子プロセスの終了を

待ってから終了します。 trap コマンドで動作を定義で

きません

3. バッチジョブの実行

JP1/Advanced Shell

315

強制終了方法

制御信号 CTRL + C

CTRL + BREAK

CTRL_CLOSE_EVENT

CTRL_LOGOFF_EVEN

T

CTRL_SHUTDOWN_E

VENT

TerminateProcess などによるプロセス即時終了 trap コマンドによる動作定

義がない場合

OS のログオフやシャットダ

ウン処理を優先するため,後

処理を実行しないで即時終了

します。 trap コマンドによる動作定義

がある場合

• 制御信号を受信したルー

トジョブ

(adshexecsub.exe)お

よび子孫ジョブの動作

制御信号を受信した adshexecsub.exe は,

メッセージ KNAX7896-

I を出力し,後続のスクリ

プトを実行しないで後処

理を実行して終了します。 trap コマンドで動作を定義で

きません trap コマンドで動作を定義で

きません

• 即時終了の対象がルート

ジョブ(adshexec.exe)

の場合

対象となる adshexec.exe は即時終

了しますが,その子プロ

セスの adshexecsub.exe およ

び子孫ジョブは後続のス

クリプトを実行しないで

後処理を実行して終了し

ます。

• 即時終了の対象がルート

ジョブ

(adshexecsub.exe)の

場合

対象となる adshexecsub.exe は後

処理を実行しないで即時

終了します(このプロセ

スは即時終了しないでく

ださい)。

• 即時終了の対象が子孫

ジョブの場合

対象となる子孫ジョブは

後処理を実行しないで即

時終了します(このプロ

セスは即時終了しないで

ください)。このとき,終

了させられた子孫ジョブ

の親のジョブは,子プロ

セスが終了コード 1 でエ

• 即時終了の対象がルート

ジョブ(adshexec.exe)

の場合

対象となる adshexec.exe は即時終

了しますが,その子プロ

セスの adshexecsub.exe およ

び子孫ジョブは trap コマ

ンドで定義した動作を実

行し,後処理を実行して

終了します。

• 即時終了の対象がルート

ジョブ

(adshexecsub.exe)の

場合

対象となる adshexecsub.exe は後

処理を実行しないで即時

終了します(このプロセ

スは即時終了しないでく

ださい)。

• 即時終了の対象が子孫

ジョブの場合

対象となる子孫ジョブは

後処理を実行しないで即

時終了します(このプロ

セスは即時終了しないで

ください)。このとき,終

了させられた子孫ジョブ

の親のジョブは,子プロ

セスが終了コード 1 でエ

3. バッチジョブの実行

JP1/Advanced Shell

316

強制終了方法

TerminateProcess などによるプロセス即時終了 trap コマンドによる動作定

義がない場合

ラー終了した場合の動作

に従って,後処理を実行

します。 trap コマンドによる動作定義

がある場合

ラー終了した場合の動作

に従って,後処理を実行

します。

注意事項 trap コマンド使用時,動作に「-」を設定すると,該当強制終了要求を受けたときの動作が無効になり,

何も設定されていない状態に戻ります。

3. バッチジョブの実行

JP1/Advanced Shell

317

3.12 アプリケーション実行エージェント機能を使用する【Windows 実行

環境限定】

アプリケーション実行エージェント機能は,ログオン空間で動作させたいアプリケーション(コンソール

アプリケーション,バッチプログラム,choice コマンドなど)を実行アプリケーションとして起動できる

ようにします。

この機能を使用することによって,JP1/AJS から GUI を表示し,入力待ちになる実行アプリケーションを

ジョブとして実行できるようになります。

3.12.1 前提条件

ジョブを実行するユーザーでログインします。

3.12.2 実行方法

実行アプリケーションに Windows 標準のアプリケーションである notepad.exe を使用し,JP1/AJS の

PC ジョブから実行した場合を例にして,実行方法を次に示します。

1. JP1/AJS の PC ジョブ定義を行います。

• 実行アプリケーションの実行終了を待つ場合

実行ファイル名に JP1/Advanced Shell の GUI アプリケーション実行プログラム(インストール

先フォルダ¥JP1ASE¥bin¥adshappexec.exe)を指定します。

パラメーターに-w と実行アプリケーション名を指定します。ここでの例は「-w notepad.exe」と

します。

• 実行アプリケーションの実行終了を待たない場合

実行ファイル名に JP1/Advanced Shell の GUI アプリケーション実行プログラム(インストール

先フォルダ¥JP1ASE¥bin¥adshappexec.exe)を指定します。

パラメーターは-n と実行アプリケーション名を指定します。ここでの例は「-n notepad.exe」とし

ます。

2. アプリケーション実行エージェントを起動します。

JP1/AJS のジョブを実行するユーザーでログインして,次の操作を行います。

Windows の[スタート]メニューから,[すべてのプログラム]−[Advanced Shell]−[アプリ

ケーション実行エージェント]を選択すると,タスクバーの通知領域に[アプリケーション実行エー

ジェント]アイコンが表示されます。

3. バッチジョブの実行

JP1/Advanced Shell

318

すでにアプリケーション実行エージェントがスタートアップに登録されている場合は,この操作は不要

です。

3. JP1/AJS のジョブの実行を行います。

• 実行アプリケーションの実行終了を待つ場合

JP1/AJS のジョブを実行すると notepad.exe が起動します。 notepad.exe を閉じると,ジョブが終了します。

• 実行アプリケーションの実行終了を待たない場合 notepad.exe を閉じるのを待たずにジョブが終了します。

3.12.3 アプリケーション実行エージェントの操作

アプリケーション実行エージェントの操作を次に示します。

(1) アイコンの左クリックメニュー

[アプリケーション実行エージェント]アイコンを左クリックすると,ポップアップメニューに,現在起動

中の実行アプリケーションが表示されます。

ポップアップメニューには,次の形式で表示されます。

実行状態  [JP1/AJSのジョブの実行ID]  表示名

実行アプリケーション情報を出力しているエントリを選択した場合,選択した実行アプリケーションのタ

スクバーを 5 秒間点滅させフォアグランドさせます。

ウィンドウが最小化されていた場合は,最小化のままとします。

GUI を持たないものなど実行アプリケーションによってはフォアグランドしないものもあります。

ポップアップに表示される内容を次に示します。

実行状態 何も表示されていない場合は,実行アプリケーションが正常に起動していることを示しま

す。

が表示されているエントリは,実行アプリケーションが起動している状態で,JP1/AJS

からの強制終了などによってジョブが終了した場合を意味します。

が表示されている実行アプリケーションは,終了することを推奨します。

3. バッチジョブの実行

JP1/Advanced Shell

319

実行状態

JP1/AJS のジョブの実行 ID

表示名

終了 adshappexec コマンドの同時実行数の対象になるため,同時実行数が増えると adshappexec コマンドの起動で待ち状態が発生します。

実行アプリケーションを起動した JP1/AJS ジョブの実行 ID が表示されます。 adshappexec コマンドを JP1/AJS から起動していない場合,または JP1/AJS のジョブの

実行 ID が求められなかった場合は「-----」と表示されます。

JP1/AJS から実行した場合,ジョブ定義スクリプトからの起動でも JP1/AJS ジョブの実

行 ID は表示されます。

起動中の実行アプリケーションの表示名(adshappexec コマンドの引数-v で指定した内

容)が表示されます。 adshappexec コマンドの引数-v を省略した場合は,実行アプリケーション名が表示され

ます。

アプリケーション実行エージェント機能を使用しない場合に選択します。アプリケーショ

ン実行エージェントを終了し,タスクバーの通知領域から[アプリケーション実行エー

ジェント]アイコンを削除します。

表示順序は,共有メモリの格納順となりますが,エントリは空き領域を探して登録するため順序は変動し

ます。

実行アプリケーションを表示しているエントリを選択した場合,選択した実行アプリケーションをフォア

グランドできます。GUI を持たないものなど実行アプリケーションによってはフォアグランドできないも

のもあります。

(2) アイコンの右クリックメニュー

[アプリケーション実行エージェント]アイコンを右クリックすると,次のポップアップメニューが表示さ

れます。

ポップアップに表示される内容を次に示します。

スタートアップ登録

スタートアップ解除

終了

アプリケーション実行エージェントをスタートアップに登録します。スタートアップが登録され

ていない場合,「スタートアップ登録」は活性化され,スタートアップに登録できます。

すでにスタートアップに登録されている場合,「スタートアップ登録」が非活性になり,スタート

アップに登録できません。

アプリケーション実行エージェントをスタートアップから削除します。スタートアップが登録さ

れている場合,「スタートアップ解除」は活性化され,スタートアップから削除できます。

スタートアップ登録されていない場合,「スタートアップ解除」が非活性になり,スタートアップ

解除はできません。

アプリケーション実行エージェント機能を使用しない場合に選択します。アプリケーション実行

エージェントを終了し,タスクバーの通知領域からアプリケーション実行エージェントアイコン

を削除します。

3. バッチジョブの実行

JP1/Advanced Shell

320

3.12.4 注意事項

• アンインストール時にはアプリケーション実行エージェントを終了し,アプリケーション実行エージェ

ントをスタートアップに登録したユーザーでログインし,スタートアップに登録したアプリケーション

実行エージェントを削除する必要があります。

スタートアップに登録したアプリケーション実行エージェントを削除しないでアンインストールした場

合,再度 JP1/Advanced Shell をインストールし,スタートアップが残っているユーザーでログイン

し,スタートアップに残っているアプリケーション実行エージェントを削除する必要があります。

• アプリケーション実行エージェントをユーザーが手動でスタートアップに追加した場合,アプリケー

ション実行エージェントをスタートアップに新たに追加する必要はありません。追加した場合は,ログ

イン時に二重にアプリケーション実行エージェントが起動します。

• アプリケーション実行エージェントアイコンを左クリックしても,次の場合,実行アプリケーションが

点滅やフォアグランドしないことがあります。

1. GUI を持たない実行アプリケーション

2. 実行アプリケーションの初期化に時間が掛かったもの(5 秒以上)

3. バッチジョブの実行

JP1/Advanced Shell

321

4

JP1/Advanced Shell - Developer を使用する

【Windows 限定】

JP1/Advanced Shell - Developer を使用して,Windows 環境でジョブ定義スクリプトを開発

するための JP1/Advanced Shell エディタの操作方法について説明します。エディタを使用した

ジョブ定義スクリプトファイルのデバッグ方法についても説明します。

JP1/Advanced Shell

322

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) スタートメニューからの起動方法

1.[スタート]から[すべてのプログラム]−[Advanced Shell - Developer]を選択する。

2. Advanced Shell - Developer のグループから「エディタ」アイコンを選択する。

(2) 右クリックメニューからの起動方法

1. エクスプローラからジョブ定義スクリプトファイルを右クリックする。

2.[編集]を選択する。

4.1.2 JP1/Advanced Shell - Developer の終了

JP1/Advanced Shell - Developer を終了するには,JP1/Advanced Shell エディタウィンドウで次のど

ちらかの操作を実行します。

•[ファイル]−[終了]を選択します。

• ツールバーの[終了]ボタンをクリックします。

これによってエディタ機能が終了します。

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

JP1/Advanced Shell

323

4.2 JP1/Advanced Shell エディタの状態【Windows 限定】

エディタには編集モードとデバッグモードがあります。

4.2.1 編集モード

ジョブ定義スクリプトファイルを作成・編集している状態です。エディタの起動時に設定されるモードです。

4.2.2 デバッグモード

作成したジョブ定義スクリプトファイルをデバッグしている状態です。エディタの編集画面はグレーアウ

トされ,ジョブ定義スクリプトの編集はできません。デバッグモードには,次の 2 つの機能があります。

• 文法チェック

[デバッグ]−[文法チェック]メニューを選択する,またはツールバーの[文法チェック]ボタンを

クリックすると文法チェックが行われます。

• デバッグ実行

次のメニューを選択またはボタンをクリックすると,デバッグが実行されます。

•[デバッグ]−[ブレークポイントまで実行]メニューを選択する,またはツールバーの[ブレーク

ポイントまで実行]ボタンをクリックする

•[デバッグ]−[ステップイン],[ステップオーバー]もしくは[ステップアウト]メニューを選択

する,またはツールバーの[ステップイン],[ステップオーバー]もしくは[ステップアウト]ボ

タンをクリックする

文法チェックについては「 4.4.4 文法をチェックする

」を,デバッグについては「

4.4.6 デバッグをす

る 」を参照してください。

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

JP1/Advanced Shell

324

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) trap コマンドのアクションを実

行する

• メッセージ出力モードを変更する

• デバッグ実行時のカバレージ情報を表示する( 4.4.7 カバレージ情報を表示する )

• 既存のジョブ定義スクリプトを編集する( 4.5 既存のジョブ定義スクリプトを編集する【Windows

• ジョブ定義スクリプトを保存する(

4.6 ジョブ定義スクリプトを保存する【Windows 限定】

• ジョブ定義スクリプトファイルの内容を印刷する

• 直前の操作を元に戻す

• 直前の操作をやり直す

• 選択した文字列をクリップボードに切り抜く

• 選択した文字列をクリップボードにコピーする

• クリップボードの文字列を指定の位置に貼り付ける

• すべての文字列を選択する

• 実行ポイント行へジャンプする

• ツールバーの表示・非表示を切り替える

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

JP1/Advanced Shell

325

• アプリケーションの外観を切り替える

• ステータスバーの表示・非表示を切り替える

• ルーラーの表示・非表示を切り替える

• 縦スクロールバーの表示・非表示を切り替える

• 横スクロールバーの表示・非表示を切り替える

• 行番号の表示・非表示を切り替える

• ファイルの先頭を表示する

• ファイルの末尾を表示する

• ヘルプを表示する

• 入力支援機能を使用する

注※

これらの操作はこのマニュアルでは特に説明していません(これらは,Windows の標準の操作に準じ

ているか,メニュー一覧で該当するメニューを選択するだけで実行できる操作です)。

4.3.1 JP1/Advanced Shell エディタウィンドウ

JP1/Advanced Shell エディタウィンドウ,およびウィンドウの各部の名称を,次の図に示します。

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

(1) ツールバー

ツールバーには,メニューバーから選択できるコマンドの中から,頻繁に使用するコマンドだけをボタン

の形で表示しています。ボタンをマウスでクリックするだけで,該当するコマンドを実行できます。表示

メニューによって非表示にすることもできます。なお,ボタンにマウスを移動させると説明が表示されます。

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

JP1/Advanced Shell

326

ツールバーのボタンと機能を次の表に示します。

ボタン

[新規作成]ボタン

[開く]ボタン

[保存]ボタン

[印刷]ボタン

[終了]ボタン

[ヘルプ]ボタン

[元に戻す]ボタン

[やり直し]ボタン

[切り抜き]ボタン

[コピー]ボタン

[貼り付け]ボタン

[すべて選択]ボタン

[オプション]ボタン

[文法チェック]ボタン

[ブレークポイントまで実行]ボタン

[スクリプトの停止]ボタン

[デバッグの中止]ボタン

[ステップイン]ボタン

[ステップオーバー]ボタン

[ステップアウト]ボタン

[ブレークポイントの設定/解除]ボタン

[ブレークポイントをすべて解除]ボタン

機能

新規にジョブ定義スクリプトファイルを作成します。

既存のジョブ定義スクリプトファイルを開きます。

作業中のジョブ定義スクリプトファイルを保存します。

作業中のジョブ定義スクリプトファイルを印刷します。

JP1/Advanced Shell エディタを終了し,ファイルを保存する

かどうかを選択します。

JP1/Advanced Shell のオンラインヘルプを表示します。

直前に行った動作を元に戻します。

直前に行った動作をやり直します。

選択範囲を切り取ってクリップボードに保存します。

選択範囲をコピーしてクリップボードに保存します。

クリップボードの内容を指定の位置に貼り付けます。

ファイル全体を選択します。

エディタの動作環境を設定します。

記述したジョブ定義スクリプトの文法をチェックします。

ブレークポイントまでの実行スタート,およびリスタートをし

ます。

ジョブ定義スクリプトを停止します。[スクリプトの停止]ボ

タンをクリックしたときに実行していたコマンドはそのまま実

行を続け,次のコマンドの実行に移る前に停止します。

[デバッグの中止]ボタンをクリックしたときに実行していた

コマンドはそのまま実行を続け,次のコマンドの実行に移る前

に停止します。そのあとジョブ定義スクリプトを停止し,デ

バッグを中止します。

次のコマンドまたはステートメントを 1 つずつ実行します。

関数を呼び出す場合は,その関数の中も 1 行ずつ実行して停

止します。

次のコマンドまたはステートメントを 1 つずつ実行します。

関数を呼び出す場合,関数の中は 1 行ずつ停止しませんが,

ブレークポイントがあるときは停止します。

関数の呼び出し元まで実行します。関数を呼び出した次の行ま

たはブレークポイントで停止します。

ブレークポイントを設定,または解除します。

設定されているブレークポイントをすべて解除します。

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

JP1/Advanced Shell

327

ボタン

[実行環境の設定]ボタン

[カバレージ情報の表示]ボタン

[検索]ボタン

[前検索]ボタン

[次検索]ボタン

機能

スクリプトファイルの実行環境を設定します。

デバッグ実行時のカバレージ情報を表示します。

検索または置換する文字列を入力します。

文字列を上に向かって検索または置換します。

文字列を下に向かって検索または置換します。

(2) ルーラー

行のカラム数を表示する目盛です。

(3) 行番号

ジョブ定義スクリプトの行番号を表示するための領域です。

(4) ブレークポイントエリア

ブレークポイントを示す記号(

スの終了を示す記号(

)と,次に実行する位置を示す記号(

)を表示するための領域です。

)およびデバッガのプロセ

(5) ステータスバー

ステータスバーは,JP1/Advanced Shell エディタが現在実行している処理に関するメッセージや,処理

終了後の状態に関するメッセージを表示するための領域です。JP1/Advanced Shell エディタウィンドウ

のステータスバーの機能を次の表に示します。

表 4-1 JP1/Advanced Shell エディタウィンドウのステータスバーの機能

ステータスバー 機能

ジョブ識別子

現在位置

全体

上書き状態

デバッグ実行したジョブのジョブ識別子を表示します。

カーソルの位置を表示します。

編集中のジョブ定義スクリプトファイルの行数を表示します。

Insert キーで切り替える上書き状態を表示します。次の 2 つのモードがあります。デフォルトは挿

入モードです。

• 上書:上書きモード

• 挿入:挿入モード

(6) クライアントエリア

クライアントエリアには,ジョブ定義スクリプトファイルの内容が表示されます。

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

JP1/Advanced Shell

328

(7) メッセージ出力ウィンドウ

メッセージ出力ウィンドウには,デバッグ実行中に発生したエラーメッセージが表示されます。

(8) 変数ウィンドウ

変数ウィンドウには,デバッグ実行中に変数名と変数の値が表示されます。

4.3.2 JP1/Advanced Shell エディタウィンドウのメニュー

JP1/Advanced Shell エディタウィンドウのメニューバーに表示されるメニュー,および JP1/Advanced

Shell エディタウィンドウで表示されるポップアップメニューについて説明します。

(1) メニューバーのメニュー

エディタウィンドウのメニューについて説明します。エディタウィンドウのメニューを次の表に示します。

表 4-2 JP1/Advanced Shell エディタウィンドウのメニュー

メニュー

[ファイル]

[編集]

[デバッグ]

[新規作成]

[開く]

[保存]

[名前を付けて保存]

[印刷]

[終了]

(ファイル名)

[元に戻す]

[やり直し]

[切り抜き]

[コピー]

[貼り付け]

[すべて選択]

[オプション]

[文法チェック]

[ブレークポイントまで実

行]

機能

新規にジョブ定義スクリプトファイルを作成します。

既存のジョブ定義スクリプトファイルを開きます。

作業中のジョブ定義スクリプトファイルを保存します。

作業中のジョブ定義スクリプトファイルに名前を付けて保存します。

作業中のジョブ定義スクリプトファイルを印刷します。

エディタを終了し,ファイルを保存するかどうかを選択します。

指定のファイルを開きます。

直前に保存したジョブ定義スクリプトファイルが最大 9 個表示されます。

直前に行った動作を元に戻します。

直前に行った動作をやり直します。

選択範囲を切り取ってクリップボードに保存します。

選択範囲をコピーしてクリップボードに保存します。

クリップボードの内容を指定の位置に貼り付けます。

ファイル全体を選択します。

エディタの動作環境を設定します。

ジョブ定義スクリプトの文法をチェックします。

デバッグモードで,ブレークポイントまでの実行スタート,およびリス

タートします。

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

JP1/Advanced Shell

329

メニュー

[デバッグ]

[表示]

[スクリプトの停止]

[デバッグの中止]

[ステップイン]

[ステップオーバー]

[ステップアウト]

[ブレークポイントの設定/

解除]

[ブレークポイントをすべて

解除]

機能

ジョブ定義スクリプトの実行を次の行で停止します。[スクリプトの停

止]を選択したときに実行していたコマンドはそのまま実行を続け,次

のコマンドの実行に移る前に停止します。

[デバッグの中止]を選択したときに実行していたコマンドはそのまま実

行を続け,次のコマンドの実行に移る前に停止します。そのあとジョブ

定義スクリプトを停止し,デバッグを中止します。

デバッグモードで,次のコマンドまたはステートメントを 1 つずつ実行

します。関数を呼び出すときは,その関数の中も 1 行ずつ実行して停止

します。

デバッグモードで,次のコマンドまたはステートメントを 1 つずつ実行

します。関数を呼び出すときは,関数の中は 1 行ずつ停止しませんが,

ブレークポイントがあるときは停止します。

関数の呼び出し元まで実行します。関数を呼び出した次の行またはブレー

クポイントで停止します。

ブレークポイントを設定,または解除します。

設定されているブレークポイントをすべて解除します。

[実行環境の設定]

[ウォッチへ変数の追加]

[エラー注入モード]

スクリプトファイルの実行環境を設定します。

指定した変数をウォッチウィンドウへ追加します。

ジョブ定義スクリプトの実行停止中にエラー注入モードを有効,または

無効にします。 trap コマンドのアクションを実行し,ブレークポイントまで実行します。 [トラップアクションの実

行]

[メッセージ出力モード]

[実行ポイント行へジャン

プ]

[ツールバーとドッキング

ウィンドウ]−[ツール

バー]

実行中のスクリプトのメッセージ出力モードを切り替えます。

現在の実行ポイント行へジャンプします。

ツールバーの表示・非表示を切り替えます。

[ツールバーとドッキング

ウィンドウ]−[メッセー

ジ出力]

[ツールバーとドッキング

ウィンドウ]−[変数名と

変数値]

メッセージ出力ウィンドウの表示・非表示を切り替えます。

変数ウィンドウの表示・非表示を切り替えます。

[ステータスバー] ステータスバーの表示・非表示を切り替えます。

[アプリケーションの外観] ウィンドウの外観を変更します。

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

JP1/Advanced Shell

330

メニュー

[表示]

[検索]

[ヘルプ]

[ルーラー]

[縦スクロールバー]

[横スクロールバー]

[行番号を表示]

[ファイルの先頭を表示]

[ファイルの末尾を表示]

[カバレージ情報の表示]

[検索]

[置換]

[前検索]

[次検索]

[ヘルプを開く]

[使用例題を表示]

[バージョン情報]

機能

ルーラーの表示・非表示を切り替えます。

縦スクロールバーの表示・非表示を切り替えます。

横スクロールバーの表示・非表示を切り替えます。

行番号の表示・非表示を切り替えます。

ジョブ定義スクリプトファイルの先頭を表示します。

ジョブ定義スクリプトファイルの末尾を表示します。

デバッグ実行時のカバレージ情報を表示します。

検索または置換する文字列を入力します。

文字列を指定した文字列に置換します。

文字列を上に向かって検索または置換します。

文字列を下に向かって検索または置換します。

JP1/Advanced Shell オンラインヘルプを表示します。

入力支援機能として,使用例題を表示します。

プログラムの情報,バージョンおよび著作権を表示します。

(2) ポップアップメニュー

JP1/Advanced Shell エディタウィンドウのクライアントエリアでマウスの右ボタンをクリックすると,

ポップアップメニューが表示されます。ポップアップメニューの内容は編集モードの場合とデバッグモー

ドの場合とで異なります。

• 編集モードのポップアップメニュー

編集モードの場合に表示されるポップアップメニューを次の表に示します。

ポップアップメニュー

[新規作成]

[開く]

[保存]

[元に戻す]

[やり直し]

[切り抜き]

[コピー]

[貼り付け]

[すべて選択]

機能

新規にジョブ定義スクリプトファイルを作成します。

既存のジョブ定義スクリプトファイルを開きます。

作業中のジョブ定義スクリプトファイルを保存します。

直前に行った動作を元に戻します。

直前に行った動作をやり直します。

選択範囲を切り取ってクリップボードに保存します。

選択範囲をコピーしてクリップボードに保存します。

クリップボードの内容を指定の位置に貼り付けます。

ファイル全体を選択します。

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

JP1/Advanced Shell

331

• デバッグモードのポップアップメニュー

デバッグモードの場合に表示されるポップアップメニューを次の表に示します。

ポップアップメニュー

[コピー]

[ブレークポイントの設定/解除]

機能

選択範囲をコピーしてクリップボードに保存します。

ブレークポイントを設定,または解除します。

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+K

Ctrl+F1

Ctrl+N

Ctrl+O

編集モード

デバッグモード

×

×

×

×

機能

ファイル全体を選択します。

選択範囲をコピーします。

スクリプトファイルの実行環境を設定します。

検索または置換する文字列を入力します。

文字列を指定した文字列に置換します。

入力支援機能として,使用例題を表示します。

新規にジョブ定義スクリプトファイルを作成します。

既存のジョブ定義スクリプトファイルを開きます。

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

JP1/Advanced Shell

332

F7

F9

F11

F1

F3

F5

操作

Ctrl+P

Ctrl+S

Ctrl+V

Ctrl+X

Ctrl+Z

Ctrl+Home

Ctrl+End

Alt+F4

Shift+F3

Shift+F5

Shift+F9

Shift+F11

Shift+Ctrl+F11

Shift+Ctrl+Z

Enter

×

編集モード

デバッグモード

×

×

×

×

×

×

×

×

機能

作業中のジョブ定義スクリプトファイルを印刷します。

作業中のジョブ定義スクリプトファイルを保存します。

クリップボードの内容を指定の位置に貼り付けます。

選択範囲を切り取ります。

直前に行った動作を元に戻します。

ジョブ定義スクリプトファイルの先頭を表示します。

ジョブ定義スクリプトファイルの末尾を表示します。

JP1/Advanced Shell ヘルプを表示します。

文字列を下に向かって検索または置換します。

ブレークポイントまでの実行スタート,およびリスタート

します。

ジョブ定義スクリプトの文法をチェックします。

ブレークポイントを設定,または解除します。

次のコマンドまたはステートメントを 1 つずつ実行します。

関数を呼び出すときは,その関数の中も 1 行ずつ実行して

停止します。

JP1/Advanced Shell エディタを終了し,ファイルを保存

するかどうかを選択します。

文字列を上に向かって検索または置換します。

ジョブ定義スクリプトを停止し,デバッグを中止します。

指定ブレークポイントをすべて解除します。

関数の呼び出し元まで実行します。関数を呼び出した次の

行またはブレークポイントで停止します。

次のコマンドまたはステートメントを 1 つずつ実行します。

関数を呼び出すときは,関数の中は 1 行ずつ停止しません

が,ブレークポイントがあるときは停止します。

直前に行った動作をやり直します。

行頭からのスペースとタブをコピーして新しい行を作成し

ます。「{」の次に改行を入力したときは,次の行にはタブ

を追加し,さらにその次の行に「}」を追加します。

(凡例)

○:操作できる機能

△:一部操作できる機能

×:操作できない機能

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

JP1/Advanced Shell

333

4.4 新規にジョブ定義スクリプトを作成する【Windows 限定】

JP1/Advanced Shell エディタで新規にジョブ定義スクリプトを作成する方法について説明します。

4.4.1 ジョブ定義スクリプトを新規に作成する

ジョブ定義スクリプトファイルを新規に作成します。

1.[ファイル]−[新規作成]メニューを選択する。

新規に JP1/Advanced Shell エディタウィンドウが表示されます。

4.4.2 エディタの動作環境を設定する

エディタの動作環境を設定します。

1.[編集]−[オプション]メニューを選択する。

[オプション(書式)]ダイアログボックスが表示されます。

ダイアログボックスの設定方法については「

4.7.1 オプション(書式)ダイアログボックス

」を参照

してください。

2. 書式に関する情報を設定する。

3.[色]タブをクリックする。

[オプション(色)]ダイアログボックスが表示されます。

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

JP1/Advanced Shell

334

4. 表示色に関する情報を設定する。

すべての項目の表示色をデフォルトに戻すには[すべてリセット]ボタンをクリックしてください。

ダイアログボックスの設定方法については,「 4.7.2 オプション(色)ダイアログボックス 」を参照し

てください。

5.[OK]ボタンをクリックする。

エディタの動作環境が設定され,ダイアログボックスが閉じます。

4.4.3 ジョブ定義スクリプトの実行環境を設定する

ジョブ定義スクリプトファイルごとに,実行時パラメーター,実行時ディレクトリ,ジョブ環境ファイル,

および論理ホストを設定できます。設定した情報は,デバッグ情報ファイルに保存されます。

1.[デバッグ]−[実行環境の設定]メニューを選択する。

[実行環境の設定]ダイアログボックスが表示されます。

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

JP1/Advanced Shell

335

ダイアログボックスの設定方法については,「 4.7.3 実行環境の設定ダイアログボックス 」を参照して

ください。

2.[OK]ボタンをクリックする。

実行環境が設定され,ダイアログボックスが閉じます。

カバレージの蓄積で「蓄積しない」を選択している場合,カバレージ情報は採取されません。

4.4.4 文法をチェックする

ジョブ定義スクリプトファイルの文法をチェックします。ジョブ定義スクリプトの文法が正しいかどうか

のチェックだけ行い,実行しません。カバレージを蓄積するオプションを指定しても実行しないため,蓄

積しません。adshexec コマンドの-c オプションの指定に相当します。

コンソールは表示されません。エラーはエラーウィンドウに表示されます。

1.[デバッグ]−[文法チェック]メニューを選択する。

エディタがデバッグモードになり,文法チェックが開始されます。

文法チェック時は一瞬,画面が暗くなります。

• 文法チェック中の表示

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

JP1/Advanced Shell

336

• 文法チェック終了の表示

文法エラーがある場合はメッセージ出力ウィンドウにエラー内容が表示されます。

2. メッセージ出力ウィンドウの内容を確認する。

メッセージ出力ウィンドウについては,「 4.7.5 メッセージ出力ウィンドウ 」を参照してください。

注意事項

• デバッグモードのときは,メニューがグレーアウトされて[デバッグ]−[文法チェック]は選択

できません。

• ファイル名のないジョブ定義スクリプトファイルに対して文法チェックを実行しようとすると,ファ

イル名を付けて保存するためのダイアログボックスが表示されます。ジョブ定義スクリプトファイ

ル名(.ash)を付けて保存しないと,文法チェックは実行できません。

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

JP1/Advanced Shell

337

• ジョブ定義スクリプトファイルの内容が更新されている場合,ファイルを更新するかどうかを問い

合わせるメッセージが表示されます。更新する場合はファイルを保存して文法チェックを実行して

ください。

4.4.5 文字列を検索および置換する

ジョブ定義スクリプトファイル中の文字列の検索および置換について説明します。

(1) 文字列を検索する

ジョブ定義スクリプトファイル中の文字列を検索します。

1.[検索]−[検索]メニューを選択する。

[検索]ダイアログボックスが表示されます。

ダイアログボックスの設定方法については,「 4.7.4 検索ダイアログボックス

」を参照してください。

2.[置換する]がチェックされていないことを確認する。

[置換する]がチェックされている場合は,チェックを外してください。

3.[検索]に検索文字列を指定する。また,必要に応じて[大文字/小文字の区別],および[単語の検

索]をチェックする。

4.[前検索]ボタン,または[次検索]ボタンをクリックする。

検索文字列が検索されます。検索文字列がない場合は,ビープ音が鳴ります。

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

JP1/Advanced Shell

338

5. 検索を終了する場合は,[キャンセル]ボタンをクリックする。

[検索]ダイアログボックスが閉じます。

(2) 文字列を置換する

ジョブ定義スクリプトファイル中の文字列を置換します。

1.[検索]−[置換]メニューを選択する。

[検索]ダイアログボックスが表示されます。

ダイアログボックスの設定方法については,「 4.7.4 検索ダイアログボックス

」を参照してください。

2.[置換する]がチェックされていることを確認する。

[置換する]がチェックされていない場合は,チェックしてください。

3.[検索]に置換前の文字列を指定する。また,必要に応じて[大文字/小文字の区別],および[単語の

検索]をチェックする。

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

JP1/Advanced Shell

339

4.[置換]に置換後の文字列を指定する。

5.[前検索]ボタン,または[次検索]ボタンをクリックする。

指定した内容で置換が始まります。置換するための文字列がない場合は,ビープ音が鳴ります。

6. 置換を終了する場合は,[キャンセル]ボタンをクリックする。

[検索]ダイアログボックスが閉じます。

4.4.6 デバッグをする

ジョブ定義スクリプトファイルの動作を確認しながらデバッグ実行することをデバッグといいます。 adshexec コマンドの-d オプションの指定に相当します。デバッグをすると,コンソールが表示されます。

エラーメッセージはエラーウィンドウに表示されます。

コンソールの内容を確認するためにプロセス終了の直前で停止します。初期化処理や構文解析でエラーが

あった場合,プロセス終了前で停止しないでエラーウィンドウにエラーメッセージが表示されます。

デバッグの方法には,次の 2 種類があります。

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

JP1/Advanced Shell

340

方法

実行

ステップ実行

操作

[デバッグ]−[ブレークポイ

ントまで実行]メニュー

[デバッグ]−[ステップイ

ン]メニュー

[デバッグ]−[ステップオー

バー]メニュー

[デバッグ]−[ステップアウ

ト]メニュー

概要

ブレークポイントまでの実行スタート,およびリスタートをします。

ジョブ定義スクリプトを 1 行ずつ実行して停止します。関数を呼び

出す場合は,その関数の中も 1 行ずつ実行して停止します。

ジョブ定義スクリプトを 1 行ずつ実行して停止します。関数を呼び

出す場合,関数の中は 1 行ずつ停止しませんが,ブレークポイント

があるときは停止します。

関数を呼び出した次の行またはブレークポイントで停止します。

注意事項

• ファイル名のないジョブ定義スクリプトファイルに対してデバッグを実行しようとすると,ファイ

ル名を付けて保存するためのダイアログボックスが表示されます。ジョブ定義スクリプトファイル

名(.ash)を付けて保存しないと,デバッグは実行できません。

• ジョブ定義スクリプトファイルの内容が更新されている場合,ファイルを更新するかどうかを問い

合わせるメッセージが表示されます。ファイルを更新するとデバッグが実行できます。

•「プログラムの終了」のダイアログで「すぐに終了」を選択したときなど,デバッグ実行中にエディ

タが強制終了された場合,デバッガのプロセスである adshesub.exe だけ終了せずに,コンソール

を表示し続ける場合があります。その場合,taskkill コマンドまたはタスクマネージャーから adshesub.exe プロセスを終了させてください。

(1) デバッグ実行時のブレークポイントを設定・解除する

デバッグの実行時に,一時的に実行を停止させる位置を設定,または解除します。

JP1/Advanced Shell エディタの場合,カーソルがある行にブレークポイントを設定するため,外部スク

リプトには設定できません。事前に外部スクリプトにブレークポイントを設定していても,外部スクリプ

トのブレークポイントでは停止しません。設定できるブレークポイントの数の上限は 999 です。

(a) ブレークポイントを設定する

1. ブレークポイントを設定したい行にカーソルを移動させる。

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

JP1/Advanced Shell

341

2.[デバッグ]−[ブレークポイントの設定]メニューを選択する。

カーソルのある行にブレークポイントが設定されます。ブレークポイントは,行の左側に で表示さ

れます。ジョブ定義スクリプトは,ブレークポイントを設定した行の先頭(実行前)まで実行して停止

します。

(b) 一部のブレークポイントを解除する

1. ブレークポイントを解除したい行にカーソルを移動させる。

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

JP1/Advanced Shell

342

2.[デバッグ]−[ブレークポイントの解除]メニューを選択する。

カーソルのある行のブレークポイントが解除されます。

(c) すべてのブレークポイントを解除する

1. ブレークポイントが設定されているジョブ定義スクリプトを表示する。

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

JP1/Advanced Shell

343

2.[デバッグ]−[ブレークポイントをすべて解除]メニューを選択する。

表示されているジョブ定義スクリプトファイルのブレークポイントがすべて解除されます。

注意事項

• 編集モードの場合は,任意の行にブレークポイントを設定できます。デバッグモードの場合,ブレー

クポイントを設定できるのは,実行対象となっているコマンド,またはステートメント単位に限ら

れます。

• 実行できない行にブレークポイントが設定されている場合は,デバッグモード開始時に,エディタ

が自動的に下方向に適切な位置を検索して,そこにブレークポイントを設定します。

• ブレークポイントは,999 個まで指定できます。

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

JP1/Advanced Shell

344

(2) デバッグを実行・中止する

(a) ブレークポイントまで実行する場合

1.[デバッグ]−[ブレークポイントまで実行]メニューを選択する,またはツールバーの[ブレークポ

イントまで実行]ボタンをクリックする。

JP1/Advanced Shell エディタがデバッグモードになり,デバッグが始まります。次に実行される行の

左側には,実行する位置を示す記号( )が表示されます。コメント行やスペース行は無視されます。

ブレークポイント( )を指定している行まで実行されると,実行が一時的に停止されます。

ブレークポイントの設定方法については,「

(1) デバッグ実行時のブレークポイントを設定・解除す

」を参照してください。

ジョブ定義スクリプトの最後の行まで実行すると,デバッガのプロセスの終了を示す記号(

示されます。

)が表

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

JP1/Advanced Shell

345

2. 実行中のジョブ定義スクリプトを停止させたい場合は,[デバッグ]−[スクリプトの停止]メニュー

を選択する,またはツールバーの[スクリプトの停止]ボタンをクリックする。

[スクリプトの停止]ボタンをクリックしたときに実行していたコマンドはそのまま実行を続け,次の

コマンドの実行に移る前に停止します。

3. デバッグを中止したい場合は,[デバッグ]−[デバッグの中止]メニューを選択する,またはツール

バーの[デバッグの中止]ボタンをクリックする。

メニューを選択した時点で,デバッグが中止され,メッセージを出力して後処理をして終了します。プ

ロセス終了前で停止しないでデバッグを終了します。エディタは編集モードに戻ります。

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

JP1/Advanced Shell

346

(b) 1 行ずつ実行(関数の中もステップ実行)する場合

1.[デバッグ]−[ステップイン]メニューを選択する,またはツールバーの[ステップイン]ボタンを

クリックする。

エディタがデバッグモードになり,デバッグが始まります。

CUI とは異なって,外部スクリプトを実行する場合,外部スクリプトでは停止しないで,エディタで

表示しているジョブ定義スクリプトの次のコマンドで停止します。

2. デバッグを中止したい場合は,[デバッグ]−[デバッグの中止]メニューを選択する,またはツール

バーの[デバッグの中止]ボタンをクリックする。

メニューを選択した時点で,デバッグが中止され,メッセージを出力して後処理をして終了します。な

お,プロセス終了前で停止しないでデバッグを終了します。エディタは編集モードに戻ります。

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

JP1/Advanced Shell

347

(c) 1 行ずつ実行(関数の中はステップ実行しない)する場合

1.[デバッグ]−[ステップオーバー]メニューを選択する,またはツールバーの[ステップオーバー]

ボタンをクリックする。

エディタがデバッグモードになり,デバッグが始まります。

2. デバッグを中止したい場合は,[デバッグ]−[デバッグの中止]メニューを選択する,またはツール

バーの[デバッグの中止]ボタンをクリックする。

メニューを選択した時点で,デバッグが中止され,メッセージを出力して後処理をして終了します。な

お,プロセス終了前で停止しないでデバッグを終了します。エディタは編集モードに戻ります。

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

JP1/Advanced Shell

348

(d) 関数の終わりまで実行する場合

1.[デバッグ]−[ステップアウト]メニューを選択する,またはツールバーの[ステップアウト]ボタ

ンをクリックする。

エディタがデバッグモードになり,デバッグが始まります。

(3) デバッグ中に変数値を参照・更新する

変数ウィンドウには,ジョブ定義スクリプト停止時に変数名とその変数の値が更新して表示されます。

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

JP1/Advanced Shell

349

変数値領域を選択するとフィールドの値を変更できます。編集中に Esc キーを押すことで編集前の値に戻

せます。

読み込み専用属性の変数は,変数名および変数値を淡色表示しています。この状態のときには,変数値を

変更できません。

整数型として宣言された変数に,整数値以外を設定しようとしたときには,元の値に戻ります。また,空

文字列を指定した場合は,0 が設定されます。

(4) エラーをシミュレートする

ジョブ定義スクリプト内のすべての実行パスを実行しても,C1 実行比率が 100%とならない場合がありま

す。この現象は,#-adsh_step_start コマンドのジョブステップに先行するジョブステップまたはエラー

となるコマンドがない場合に発生します。

この場合,#-adsh_step_start コマンド以前に実行する個所でエラーをシミュレートすることで,先行の

ジョブステップ,またはジョブ定義スクリプトが異常な C1 情報を取得することが可能になり,C1 実行比

率を 100%にすることができます。なお,エラー注入モードを有効にした場合のジョブ定義スクリプトの

動作は,「 6.2.21 エラー注入モードの有効/無効を設定する(joberrmode コマンド)

い。

手順を次に示します。

1. エラーをシミュレートしたい行にカーソルを移動させ,ブレークポイントを設定する。

ブレークポイントの設定方法については,「

(1) デバッグ実行時のブレークポイントを設定・解除す

」を参照してください。

2. エラーをシミュレートしたい行までデバッグを実行する。

1.で設定したブレークポイントまでデバッグを実行します。ブレークポイントまで実行するとデバッグ

の実行が一時的に停止します。デバッグをブレークポイントまで実行する方法については,「

(2) デ

バッグを実行・中止する

」を参照してください。

3.[デバッグ]−[エラー注入モード]メニューを選択する。

[エラー注入モード]メニューは,ブレークポイントなどでジョブ定義スクリプトが停止している場合

だけ選択できます。

これによってエラー注入モードが有効になります。

この状態でデバッグを再開することでエラーがシミュレートされ,C1 情報が取得されます。

エラー注入モードを解除するには,デバッグを再開する前に[エラー注入モード]メニューを再選択し

てください。

4. デバッグを再開する。

ステップイン,ステップオーバー,ステップアウトまたはブレークポイントまで実行することで,エ

ディタがデバッグモードになり,デバッグが再開されます。

ジョブ定義スクリプトの最後の行まで実行が終了すると,エラー注入モードは解除されます。

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

JP1/Advanced Shell

350

注意事項

• CMDRC_CMDGRP_CHECK パラメーターに FUNCTION を指定した場合,関数内で停止中に

[デバッグ]-[エラー注入モード]を選択しても,エラー注入モードを有効にすることはできません。

(5) trap コマンドのアクションを実行する

ジョブコントローラが強制終了要求を受けた場合の動作は,trap コマンドのアクションによって定義でき

ます。デバッグ実行時に trap コマンドのアクションを実行する方法を次に示します。

1. デバッグ実行によって,トラップアクションが定義された後の任意の行でジョブ定義スクリプトを停止

する。

デバッグ実行の方法については,「

(2) デバッグを実行・中止する

」を参照してください。

2.[デバッグ]-[トラップアクションの実行]メニューを選択する。

[トラップアクションの実行]メニューは,ブレークポイントなどでジョブ定義スクリプトが停止して

いる場合にだけ選択できます。

メニュー選択後,ブレークポイントまで実行されます。このとき,次の順序でコマンドが実行されます。

1) 現在停止している位置のコマンドを実行

2) アクション部分のコマンドを実行

3) 1) の後続のコマンドを実行

なお,環境設定パラメーター TRAP_ACTION_SIGTERM に DISABLE を指定している場合,または trap コマンドによるアクションの定義がない場合,このメニューを選択しても trap コマンドのアク

ションを実行しないでブレークポイントまで実行されます。

注意事項

• trap コマンドのアクションの実行中に,ジョブ定義スクリプトの実行は停止できません。

• この機能によるアクションの実行中にジョブが終了した場合,ジョブを強制終了した場合とは異な

り,最後に実行したコマンドの終了コードがジョブの終了コードに反映されます。例えば,この機

能を使用して,アクションで「exit 2」を実行した場合,終了コード 2 でジョブが終了しますが,

ジョブを強制終了してアクションで「exit 2」が実行された場合,終了コード 1 でジョブがエラー

終了します。

• このメニューを選択した後,直後のコマンドの実行がスキップされる場合

,アクションは実行さ

れません。

注※ 例えば,次に示す場合にコマンドの実行がスキップされます。

・エラー注入モードを有効にする。

・onError 属性に stop を指定したジョブステップ内のコマンドがエラー終了する。

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

JP1/Advanced Shell

351

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

カバレージを採取している場合,エディタで開いているジョブ定義スクリプトまたはデバッグ実行中のジョ

ブ定義スクリプトに対してカバレージ情報を表示します。デバッグ中の場合は採取中のカバレージ情報が

表示され,デバッグ終了後の場合は最後に採取したカバレージ情報が表示されます。カバレージ情報は一

時ファイルに出力され,メモ帳(notepad.exe)で表示されます。

カバレージ情報を表示するための[カバレージ情報の表示]メニューは,[実行環境の設定]でカバレージ

を[蓄積する]に設定した場合に有効となります。[蓄積する]に設定していない場合,メニューがグレー

アウトされ,選択できません。

エディタの終了やデバッグの終了時でも,メモ帳は表示されたままです。デバッグ実行中にカバレージ情

報が変更されても,表示内容は更新されません。

カバレージ情報を表示したあと,カバレージ情報の表示を中止する手順を次に説明します。

1.[表示]−[カバレージ情報の表示]メニューを選択する,またはツールバーの[カバレージ情報の表

示]ボタンをクリックする。

メモ帳を開いて,カバレージ情報が表示されます。表示されたカバレージ情報は任意のファイル名で保

存することもできます。

2. カバレージ情報の表示を終了する場合は,メモ帳を閉じて終了する。

カバレージ情報の表示を終了します。

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

JP1/Advanced Shell

352

4.5 既存のジョブ定義スクリプトを編集する【Windows 限定】

JP1/Advanced Shell エディタで既存のジョブ定義スクリプトを編集する方法について説明します。ジョ

ブ定義スクリプトファイルを編集するには,3 つの開始方法があります。

右クリックメニューからの開始方法

1. エクスプローラからジョブ定義スクリプトファイルを右クリックする。

2.[編集]を選択する。

ドラッグアンドドロップでの開始方法

1. エクスプローラからジョブ定義スクリプトファイルをドラッグする。

2.「エディタ」アイコン,またはすでに起動しているエディタウィンドウにドロップする。

なお,エディタウィンドウについては,「 4.3 JP1/Advanced Shell エディタの操作【Windows 限定】

を参照してください。

エディタのメニューからの開始方法

1.[ファイル]−[開く]メニューを選択する,または[ファイル]−編集履歴から編集を開始する。

2. 編集する既存のジョブ定義スクリプトファイルを選択する。

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

JP1/Advanced Shell

353

4.6 ジョブ定義スクリプトを保存する【Windows 限定】

JP1/Advanced Shell エディタでジョブ定義スクリプトを保存する方法について説明します。

1. ジョブ定義スクリプトファイルを上書き保存したい場合は,[ファイル]−[保存]メニューを選択する。

ジョブ定義スクリプトファイルを上書き保存します。

2. ジョブ定義スクリプトファイルを別名で保存したい場合は,[ファイル]−[名前を付けて保存]メ

ニューを選択する。

ジョブ定義スクリプトファイルを別名で保存します。

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

JP1/Advanced Shell

354

4.7 JP1/Advanced Shell エディタウィンドウの画面の詳細【Windows 限

定】

JP1/Advanced Shell エディタウィンドウの操作中に表示されるダイアログボックスおよびウィンドウの

一覧を,次に示します。

• オプション(書式)ダイアログボックス

• オプション(色)ダイアログボックス

• 実行環境の設定ダイアログボックス

• メッセージ出力ウィンドウ

• 検索ダイアログボックス

• 変数ウィンドウ

• コンソール

4.7.1 オプション(書式)ダイアログボックス

JP1/Advanced Shell エディタウィンドウで,[編集]−[オプション]メニューを選択すると,[オプショ

ン]ダイアログボックスが表示されます。

[オプション]ダイアログボックスには,「書式」と「色」のタブがあります。

「書式」タブを選択すると,[オプション(書式)]ダイアログボックスが表示されます。

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

JP1/Advanced Shell

355

(1) ダイアログボックスの項目

フォント名

現在使用している文字のフォント名が表示されます。フォントを変更するには,[フォントの指定]ボ

タンをクリックします。

デフォルトでは「FixedSys」が設定されています。

フォントサイズ

現在使用している文字のフォントサイズを指定します。フォントサイズを変更するには,[フォントの

指定]ボタンをクリックします。

デフォルトでは「14」が設定されています。

文字の折り返し

文字を折り返す方法を選択します。

デフォルトでは「ウィンドウ幅で折り返す」が選択されています。

ウィンドウ幅で折り返す

文字をウィンドウ幅で折り返す場合に選択します。

文字数を指定する

文字を固定の文字数で折り返す場合に選択します。

折り返し文字数

折り返す文字数を指定します。

「文字数を指定する」が選択されている場合にだけ指定できます。

20〜512(単位:バイト)の範囲で指定してください。

デフォルトでは「100」が指定されています。

タブの文字数

タブの文字数(単位:バイト)を選択します。

デフォルトでは「4」が選択されています。

タブ記号を表示する

タブを示す記号の表示/非表示を指定します。

デフォルトではチェックされています。

改行記号を表示する

改行を示す記号の表示/非表示を指定します。

デフォルトではチェックされています。

全角スペース記号を表示する

全角スペースを表す記号の表示/非表示を指定します。

デフォルトではチェックされています。

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

JP1/Advanced Shell

356

「元に戻す」の実行回数

[編集]−[元に戻す]を何回まで実行できるようにするかを指定します。

10〜999 の範囲で指定してください。デフォルトでは「100」が指定されています。

(2) ダイアログボックスでの操作

•[OK]ボタンをクリックすると,指定した書式が設定されてダイアログボックスが閉じます。

•[キャンセル]ボタンをクリックすると,書式を変更しないでダイアログボックスが閉じます。

4.7.2 オプション(色)ダイアログボックス

JP1/Advanced Shell エディタウィンドウで,[編集]−[オプション]メニューを選択すると,[オプショ

ン]ダイアログボックスが表示されます。

[オプション]ダイアログボックスには,「書式」と「色」のタブがあります。

「色」タブを選択すると,[オプション(色)]ダイアログボックスが表示されます。

(1) ダイアログボックスの項目

テキスト

テキストの色を指定します。

デフォルトでは「システムカラー」が設定されています。

編集時の背景

編集モードのときの背景色を指定します。

デフォルトでは「システムカラー」が設定されています。

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

JP1/Advanced Shell

357

デバッグ時の背景

デバッグモードのときの背景色を指定します。

デフォルトでは「灰色」が設定されています。

コメント行

コメント行の色を指定します。

デフォルトでは「緑色」が設定されています。

改行記号

改行記号の色を指定します。

デフォルトでは「赤色」が設定されています。

組み込みコマンド

組み込みコマンドの色を指定します。

デフォルトでは「青色」が設定されています。

予約語

予約語および「]]」の色を指定します。

デフォルトでは「青色」が設定されています。

拡張コマンド

拡張コマンドの色を指定します。

デフォルトでは「青色」が設定されています。

文字列

文字列の色を指定します。

デフォルトでは「暗紫色」が設定されています。

更新行番号

更新行番号の色を指定します。

デフォルトでは「黄色」が設定されています。

現在位置カーソル

現在位置を示すカーソルの色を指定します。

デフォルトでは「青色」が設定されています。

すべてリセット

すべての項目に対する色の指定をデフォルト値に戻します。

(2) ダイアログボックスでの操作

•[すべてリセット]以外の各項目のボタンをクリックすると,[色の設定]ダイアログボックスが表示さ

れ,色が選択できます。さらに,[色の設定]ダイアログボックスの[色の作成]ボタンをクリックす

ると,[色の作成]ダイアログボックスが表示され,色を作成して指定できます。

•[OK]ボタンをクリックすると,指定した色が設定されてダイアログボックスが閉じます。

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

JP1/Advanced Shell

358

•[キャンセル]ボタンをクリックすると,色を変更しないでダイアログボックスが閉じます。

4.7.3 実行環境の設定ダイアログボックス

JP1/Advanced Shell エディタウィンドウで,[デバッグ]−[実行環境の設定]メニューを選択すると,

[実行環境の設定]ダイアログボックスが表示されます。

(1) ダイアログボックスの項目

実行時パラメーター

ジョブ定義スクリプトに渡す実行時パラメーターを指定します。

ファイル名が「a.ash」のジョブ定義スクリプトを使用する場合,実行時パラメーターに「ABC」

を指定すると,「ABC」が「a.ash」に対する第 1 引数になります。

実行時ディレクトリ

ジョブ定義スクリプトを実行するカレントドライブ,またはフォルダを指定します。

指定がない場合は,エディタのカレントフォルダになります。

エディタのカレントフォルダは次のどれかになります。

• ジョブ定義スクリプトファイルがあるフォルダ

• プログラムフォルダ

• プログラムのカレントフォルダ

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

JP1/Advanced Shell

359

• ショートカットの作業フォルダ

ジョブ定義スクリプト名が 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 カバレージ情報を取得する 」を参照してください。

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

JP1/Advanced Shell

360

シェルオプション

シェルオプション xtrace を指定するかどうかを指定します。

• xtrace を指定しない

デバッグ実行開始時にシェルオプション xtrace を指定しません。adshexec コマンドに-x オプショ

ンを指定しない場合に相当します。

• xtrace を指定する

デバッグ実行開始時にシェルオプション xtrace を指定します。adshexec コマンドに-x オプション

を指定する場合に相当します。

この項目を選択すると,実行したコマンドとその引数がトレース情報として標準エラー出力へ出力

されます。詳細については,「

3.6 実行したコマンドとその引数を出力する

」を参照してください。

デフォルトでは「xtrace を指定しない」が選択されています。

このほかにシェルオプションには,使用できる機能の制限や,実行モードの切り替えをするための機能

があります。シェルオプションについては,「 5.6 シェルオプション

」を参照してください。

(2) ダイアログボックスでの操作

•[OK]ボタンをクリックすると,ダイアログボックスで設定した情報が各実行環境ファイルとして作成

されます。

•[キャンセル]ボタンをクリックすると,実行環境ファイルを作成しないでダイアログボックスが閉じ

ます。

4.7.4 検索ダイアログボックス

JP1/Advanced Shell エディタウィンドウで,[検索]−[検索]メニューを選択すると,[検索]ダイア

ログボックスが表示されます。

[検索]−[検索]メニューを選択しないで[検索]−[前検索],または[次検索]メニューを選択した

場合も,[検索]ダイアログボックスが表示されます。

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

JP1/Advanced Shell

361

(1) ダイアログボックスの項目

置換する

文字列を置換する場合はチェックします。

デフォルトではチェックされていません。

検索

検索する文字列を指定します。

置換

検索文字列を置き換える文字列を指定します。「置換する」がチェックされている場合だけ,指定でき

ます。

大文字/小文字の区別

大文字と小文字を区別して検索する場合はチェックします。

デフォルトではチェックされていません。

単語の検索

単語だけを検索する場合にチェックします。

デフォルトではチェックされていません。

(2) ダイアログボックスでの操作

•[前検索]ボタンをクリックすると,検索文字列を上方向に検索します。

•[次検索]ボタンをクリックすると,検索文字列を下方向に検索します。

•[すべて置換]ボタンをクリックすると,ジョブ定義スクリプトファイル中にあるすべての検索文字列

を「置換」で指定した文字列に置換します。

•[キャンセル]ボタンをクリックすると,ダイアログボックスが閉じます。

(3) 注意事項

•「置換」,および「検索」に指定した文字列は,過去 10 件分だけドロップダウンリストに記憶されます。

• 検索文字列がない場合はビープ音が鳴ります。

4.7.5 メッセージ出力ウィンドウ

デバッグ実行で発生したエラーを表示します。ジョブ定義スクリプト停止中に表示します。

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

JP1/Advanced Shell

362

(1) クライアントエリア

内容

エラーの内容を表示します。

(2) エラーウィンドウの操作

• 現在編集中のジョブ定義スクリプトファイルで発生したエラーの場合,エラーメッセージが表示されて

いる行をダブルクリックすると,該当するエラー行の先頭にカーソルが移動します。

• 現在編集中のジョブ定義スクリプトファイルで発生したエラーの場合,エラーメッセージが表示されて

いる行を右クリックすると,該当するエラーの個所にカーソルを移動するための,[ジャンプ]ポップ

アップメニューが表示されます。

• Ctrl キーと同時に左クリックをすると複数行を選択することができます。Shift キーと同時に左クリッ

クをすると,連続した行を選択することができます。選択した行は右クリックすると表示される[コ

ピー]ポップアップメニューまたは Ctrl+C でクリップボードにコピーすることができます。

4.7.6 変数ウィンドウ

デバッグ実行時に変数名と変数値を表示します。

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

JP1/Advanced Shell

363

(1) 変数名エリア

現在実行中のジョブ定義スクリプトで定義されている変数名が表示されます。

(2) 変数値エリア

変数の値が表示されます。読み込み専用属性の場合は淡色表示になります。

(3) カテゴリエリア

変数のカテゴリを表示します。次に示す文字列を表示します。

• シェル変数

「エクスポート属性が付いている変数(環境変数)と配列」以外の変数を表示します。

• 配列

配列を表示します。配列カテゴリの下には,配列名をカテゴリ名として表示します。

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

JP1/Advanced Shell

364

• 環境変数

エクスポート属性が付いている変数(環境変数)を表示します。

(4) 説明エリア

選択された変数の属性を表示します。次に示す文字列を表示します。

斜体は可変文字列です。

• 変数名:

変数名

配列の場合は,配列名称と添え字を合わせて表示します。配列以外は変数名をそのまま表示します。

• 環境変数

エクスポートされている変数の場合に表示します。

• 整数型 typeset –i で指定された変数の場合に表示します。変数値エリアで,整数値以外を指定することができ

ません。

• 文字列型 typeset –i で指定されていない変数の場合に表示します。

• ステップローカル属性

スクリプト拡張コマンドの#-adsh_step_start コマンドの stepVar 属性に指定したシェル変数の場合に

表示します。

• 読み込み専用属性

読み込み専用の変数の場合に表示します。

• パス変換属性

パス変換が有効な場合に,パス変換の対象となる変数の場合に表示します。

(5) 変数ウィンドウの操作

変数値をダブルクリックすると,変数の値を編集することができます。

4.7.7 コンソール

デバッグ実行時に,標準出力,標準エラー出力およびジョブ実行ログ相当の情報を表示します。

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

JP1/Advanced Shell

365

(1) コンソールの操作

• デバッグ対象のジョブが終了するとコンソールは閉じます。環境ファイルおよびジョブ定義スクリプト

の文法エラーなどがある場合,エラーウィンドウおよびジョブ識別子を基にスプールに出力されている

実行結果を参照して対応してください。

• プロパティの設定方法はコマンドプロンプトの設定方法と同じです。

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

JP1/Advanced Shell

366

5

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

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

JP1/Advanced Shell

367

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

この節では,ジョブ定義スクリプトを構成する基本要素について説明します。

注意事項 

ジョブ定義スクリプトを記述する際は次の点に注意してください。

• ジョブ定義スクリプトの 1 行は 8,191 バイト以下にしてください。1 行が 8,192 バイト以上の

場合,ジョブ定義スクリプトはエラー終了します。

ただし,継続行については異なる行として扱います。継続行については,「

(3) 行継続 」を参

照してください。

• スクリプト拡張コマンドを使用した行については,スクリプト拡張コマンドの制限事項に従っ

て,継続する行を含めて,8,191 バイト以下にしてください。

スクリプト拡張コマンドの制限事項については,「 (1) 制限事項 」を参照してください。

• ファイルの入出力時にファイルパスを変換する場合は,ファイル入出力が発生するタイミング

でバイト数が変わります。そのため,変換による 1 行の上限を超えたときでもエラーとはしな

いで処理を継続します。

5.1.1 予約語

JP1/Advanced Shell では,ジョブ定義スクリプト内で使用する特殊な字句を予約語として登録していま

す。予約語はコマンドの最初の単語として使用された場合に意味を持ち,引用符で囲まれていないかぎり

予約語として認識されます。予約語をコマンドの 2 番目以降に使用した場合,通常の変数として扱われま

す。そのため,予約語と同じ字句を使用する場合は注意が必要です。

予約語の確認はシェル標準コマンドの command -V,whence -v で行います。command コマンドおよ

び whence コマンドについては,「

9.3 シェル標準コマンド

」の「 command コマンド(コマンドを実行

する)

」を参照してください。

予約語を次に示します。

! [[ { } case do done elif else esac  fi  for function if in select then time  until while

5.1.2 変数

変数とはジョブ定義スクリプト内で値を代入する領域のことです。変数の作成および変数の値を参照でき

ます。また,変数は,エクスポートによって子プロセスに環境変数として引き継がせることができます。

変数のことをシェル変数ともいいます。

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

JP1/Advanced Shell

368

(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

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

JP1/Advanced Shell

369

• シェル変数をエクスポートした場合,そのシェル変数のスコープ内で同じスペルのシェル変数の export 属性は無効になります。配列でもすべての要素の export 属性が無効になります。

ローカルシェル変数の場合,そのシェル変数のスコープ外の同じスペルのシェル変数の export 属性

は有効になり,関数の処理を抜けると環境変数値は回復します。

コマンドやパラメーターで小文字を指定できるかどうかは,VAR_ENV_NAME_LOWERCASE パラメー

ターの設定によって次のように異なります。

コマンドまたはパラメーター export パラメーター(環境設定パラメーター) export コマンド, typeset -x コマンド set コマンド

(-a オプション)

VAR_ENV_NAME_LOWERCASE パラメーターの設定値

DISABLE ENABLE

同左 大文字・小文字を指定できるが,

区別はされない。

小文字のシェル変数名は指定でき

ない。 set コマンド以降のシェル変数を

すべてエクスポートするが,小文

字のシェル変数に値を設定すると

エラーになる。

シェル変数名なので小文字を指定

できる。

小文字のシェル変数名も指定で

きるが,環境変数名の大文字・

小文字は区別されない。

ただし,シェル変数としては大

文字・小文字は区別され,別の

シェル変数と見なされる。 set コマンド以降のシェル変数

をすべてエクスポートするが,

小文字のシェル変数でも値を設

定すると,そのシェル変数がエ

クスポートされる。

ただし,環境変数名の大文字・

小文字は区別されない。

同左 unset コマンド, readonly コマンド, read コマンド

#-adsh_file コマンド,

#-adsh_file_temp コマンド,

#-adsh_spoolfile コマンド

#-adsh_step_start コマンド

#-adsh_path_var コマンド

スクリプト拡張コマンドの{ 環境変数名 }による置換

GUI デバッガでウォッチするシェル変数

ファイル環境変数定義名には小文

字を指定できない。

ファイル環境変数定義名に小文

字を指定できる。

ただし,環境変数名の大文字・

小文字は区別されない。

ジョブステップ名はステップの戻

り値を格納するシェル変数名に使

用されるが,小文字を指定できる。

-stepVar で指定するシェル変数

名は小文字を指定できる。

同左

変数名に小文字を指定できる。 同左

環境変数名に小文字を指定できる。 同左

シェル変数名に小文字を指定でき

る。

同左

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

JP1/Advanced Shell

370

コマンドまたはパラメーター adshread コマンド adshvarconv コマンド for シェル変数

VAR_ENV_NAME_LOWERCASE パラメーターの設定値

DISABLE ENABLE

シェル変数名に小文字を指定でき

る。

同左 awk コマンドの ENVIRON 組み込み変数

シェル変数名に小文字を指定でき

る。

添え字に環境変数名を指定できる

が,小文字も指定できる。

同左

同左 adshjava コマンドのバッチアプリケーションに渡す引数 システムプロパティで環境変数名

を指定できるが,adshjava コマ

ンドは文字種別をチェックしない。

同左

稼働実績情報取得機能で採取する環境変数 同左

PATH_CONV_VAR パラメーター

PATH_CONV_NOVAR パラメーター

環境変数名と値を採取するが,環

境変数名の文字種別をチェックし

ない。

シェル変数名に小文字を指定でき

る。

同左

(2) 変数の作成と値の代入

変数を作成,および値を代入する場合の書式を次に示します。

変数名=値

変数は=の左項に変数名を記述することで作成されます。作成された変数には,値の書き込みおよび値の

読み込みができます。変数に値を代入する場合は,=の右項に値を記述します。変数は次の点に注意して

作成してください。

• 変数の属性が読み込み専用の場合,変数への値の代入はエラー終了し,ジョブは終了します。変数の属

性を読み込み専用に変更する場合は,シェル標準コマンドの readonly コマンドを使用します。

readonly コマンドについては,「 9.3 シェル標準コマンド

」の「 readonly コマンド(変数の属性を読

• 変数名に未作成の変数を指定した場合は,変数の作成と同時に値が代入されます。変数に代入する値が

文字列の場合,何文字でも代入できます。

しかし,typeset コマンドで整数型に定義した変数に数値を代入する場合や,変数に代入した数値を使

用して算術演算する場合は,変数の値および算術結果が-2147483648〜2147483647 の範囲内でなけ

ればなりません。範囲外の値を指定した場合,正しい結果を求めることができません。

• =の両脇にはスペースを入力しないでください。スペースが入っていた場合,変数は作成されません。

• 変数にスペースやメタキャラクタを含む文字列を代入する場合は,クォーテーション('または")で囲

んでメタキャラクタを無効化にするか,エスケープ文字を使用してください。メタキャラクタおよびメ

タキャラクタの無効化については,「 5.1.6 メタキャラクタ

」を参照してください。

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

JP1/Advanced Shell

371

(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

」を指定します。

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

JP1/Advanced Shell

372

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 進数と判別されます。

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

JP1/Advanced Shell

373

・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

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

JP1/Advanced Shell

374

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}

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

JP1/Advanced Shell

375

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}

→「おかき」が標準出力に出力される。

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

JP1/Advanced Shell

376

• 変数 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"

• ジョブ定義スクリプトの内容

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

JP1/Advanced Shell

377

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 ファイルの内容

******** 実行ジョブの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 次元配列を作成できます。また,2

つの要素番号からなる配列で最大 65,536×64 個の要素を保持できる 2 次元配列を作成できます。要素を

1つも指定しなかった場合,配列は設定されません。

(1) 配列の作成

配列の作成方法を次に示します。

• 複数の要素を一度に作成する場合(set コマンドを使用する方法)

1 次元配列 set -A 配列名 値 値 … set +A 配列名 値 値 …

2 次元配列

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

JP1/Advanced Shell

378

set -D 配列名 { 値 値 … } { 値 値 … } … set +D 配列名 { 値 値 … } { 値 値 … } …

1 次元配列の場合,作成する配列名と配列に登録する要素は区切り文字として半角スペースを 1 つ以上

指定します。 set △-A△配列名△値△値△…

△には半角スペースを 1 つ以上指定してください。

使用例(1 次元配列) set -A abc 1 2 3 echo ${abc[1]}

→2 が標準出力に出力されます。

2 次元配列の場合,作成する配列名と配列要素を括る”{“や”}”,および配列に登録する要素は区切り文

字として半角スペースを 1 つ以上指定します。 set△-D△配列名△{△値△値△…△}△{△値△値△…△}△…

△には半角スペースを 1 つ以上指定してください。

使用例(2 次元配列) set -D abc { 1 2 3 } { 4 5 6 } echo ${abc[1][1]}

→5 が標準出力に出力されます。

この方法では複数の要素を一度に作成できます。set -A コマンドおよび set –D コマンドについては,

「 9.3 シェル標準コマンド 」の「

set コマンド(シェルオプションを設定する,配列を作成する,また

• 1 つの要素を作成する場合

1 次元配列

配列名[要素番号]=値

2 次元配列

配列名[要素番号1][要素番号2]=値

使用例(1 次元配列) abc[0]=1 abc[1]=2 abc[2]=3 echo ${abc[1]}

→2 が標準出力に出力されます。

使用例(2 次元配列) abc[0][0]=1 abc[0][1]=2

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

JP1/Advanced Shell

379

abc[0][2]=3 echo ${abc[0][1]}

→2 が標準出力に出力されます。

この方法では要素を 1 つずつ作成します。複数の要素を作成する場合は,作成する要素分実行してくだ

さい。また,要素番号 0(abc[0]または abc[0][0])の配列は,変数と同じになります。

• 複数の要素を一度に作成する場合(set コマンドを使用しない方法)

1 次元配列

配列名=(値 値 …)

2 次元配列

配列名[]=({ 値 値 … } { 値 値 … } …)

1 次元配列の場合,作成する配列名の要素は区切り文字として半角スペースを 1 つ以上指定します。

配列名=(値△値△…)

△には半角スペースを 1 つ以上指定してください。

使用例(1 次元配列) abc=(1 2 3) echo ${abc[1]}

→2 が標準出力に出力されます。

2 次元配列の場合,作成する配列名の要素を括る”{“や”}”,および配列に登録する要素は区切り文字と

して半角スペースを 1 つ以上指定します。

配列名[]=({△値△値△…△}△{△値△値△…△}△…

△には半角スペースを 1 つ以上指定してください。

使用例(2 次元配列) abc[]=({ 1 2 3 } { 4 5 6 }) echo ${abc[1][2]}

→6 が標準出力に出力されます。

この方法では複数の要素を一度に作成できます。作成方法の詳細については,「

(2)  配列名 =( 値 値

…)による配列の作成

」を参照してください。

(2) 配列名=(値 値 …)による配列の作成

「 配列名 =( 値 値 …)」の形式で定義した 1 次元配列は,「set -A 配列名 値 値 …」の形式で登録されます。

「 配列名[] =({ 値 値 … } { 値 値 … } …)」の形式で定義した 2 次元配列は,「set -D 配列名 { 値 値 … } { 値

値 … }」の形式で登録されます。

JOBLOG には「 配列名 =( 値 値 … )」および「 配列名[] =({ 値 値 … } { 値 値 … } …)」の形式でなく,「set

コマンド」が実行されたように出力されます。

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

JP1/Advanced Shell

380

配列を「 配列名 =( 値 値 …)」の形式で作成した場合も,配列要素の管理方法はほかの配列と同じです。例

えば,次の定義で作成した 1 次元配列は,「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

2

3

4 n

0

1

要素 x1 x2 x3 x4 x5

注※ n は配列要素番号を示します。

2 次元配列についても,配列を「 配列名[] =({ 値 値 … } { 値 値 … } …)」の形式で作成した場合,配列要

素の管理方法は set -D コマンドで作成した配列と同じです。例えば,次の定義で作成した 2 次元配列は,

「set -D ARRAY { x1 x2 x3 } { x4 x5 x6 }」で作成した配列と同じです。

ARRAY[]=({ x1 x2 x3 } { x4 x5 x6 })と定義した場合の配列要素

ARRAY[0][0]=x1

ARRAY[0][1]=x2

ARRAY[0][2]=x3

ARRAY[1][0]=x4

ARRAY[1][1]=x5

ARRAY[1][2]=x6 n

※1

0

1 m

※2

0 x1 x4

注※1 n は配列要素番号を示します。

注※2 m は 2 次元配列要素番号を示します。

1 x2 x5

2 x3 x6

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

JP1/Advanced Shell

381

したがって,JOBLOG への出力,カバレージの採取,およびシェルオプション xtrace の出力は,set コ

マンドで配列定義をした場合と同じ出力結果になります。

なお,「 配列名 =()」と定義した場合は,名称が" 配列名 "で値が空文字列のシェル変数が作成されます。こ

れは「 配列名 =」と定義した場合と同じです。

(a) 配列の生成例

次に示す変数を使用して,シェル変数を含む配列要素を生成する例を表に示します。

A=a

B=b

C=c

MA=' a b c'

MB=d

注※

「'」はスペースの有無を明確にするために便宜的に記載しています。実際の変数値には含まれません。

表 5-3 配列要素の生成例

配列定義 生成される配列の内容 生成される配列の数

(a b c)

($A $B $C)

(${A}${B}${C})

($A $B `echo 1`)

($A$B $C)

(${A}xyz ${B}stu)

($MA $MB)

($MA$MB)

[0]=a [1]=b [2]=c

[0]=a [1]=b [2]=c

[0]=a [1]=b [2]=c

[0]=a [1]=b [2]=1

[0]=ab [1]=c

[0]=axyx [1]=bstu

[0]=a [1]=b [2]=c [3]=d

[0]=a [1]=b [1]=cd

4

3

2

2

3

3

3

3

(b) 配列を使用した場合の JOBLOG の出力例

配列の定義例と,それによる JOBLOG の出力例を示します。

• 1 次元配列 SEQ1 に配列数 3 の配列要素(x1 x2 x3)を設定する。

SEQ1=(x1 x2 x3) echo ${SEQ1[@]}

→ "x1 x2 x3"が標準出力に出力されます。

配列 SEQ1 を使用した JOBLOG の出力例を次に示します。

KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ちま

す。

KNAX0724-I ジョブ識別子を割り当てました。Jobid=046187

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

JP1/Advanced Shell

382

---------------------------------------------------------------

Advanced Shell 11-00

[ジョブ情報]

ジョブ識別子 : 046187

スプールジョブディレクトリパス : /var/opt/jp1as/spool/046187/

実行日付 : 2015/10/29

システム環境ファイルパス :

ジョブ環境ファイルパス :

ホスト名 : host01

[Automatic Job Management Systemから渡された環境変数]

---------------------------------------------------------------

******** ジョブコントローラのメッセージ出力 ********

14:46:13 046187 KNAX0091-I ADSH046187 ジョブが開始しました。

14:46:13 046187 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセス

の完了を待ちます。

14:46:13 046187 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

14:46:13 046187 KNAX6112-I コマンド(set, 行番号=1)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

14:46:13 046187 KNAX6112-I コマンド(echo, 行番号=2)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

14:46:13 046187 KNAX0098-I ADSH046187 ジョブが終了しました。rc=0 E-Time=0.001s C-

Time=0.010s

******** ジョブ定義スクリプトの内容 ********

***** /home/user001/SAMPLE_JOB6.ash *****

0001 : SEQ1=(x1 x2 x3)

0002 : echo ${SEQ1[@]}

0003 :

***** パス変換情報 *****

******** 実行ジョブのSTDERRファイルの内容 ********

KNAX0098-I ADSH046187 ジョブが終了しました。rc=0 E-Time=0.001s C-Time=0.010s

******** ジョブステップの出力 ********

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="/var/opt/jp1as/spool/046187-ADSH046187/"

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。rc=0

******** 実行ジョブのSTDOUTファイルの内容 ******** x1 x2 x3>

• 2 次元配列 SEQ2 に配列数 3x2 の配列要素({ x1 x2 x3 } { x4 x5 x6 })を設定する。

SEQ2[]=({ x1 x2 x3 }{ x4 x5 x6 }) echo ${SEQ2[@]}

→ "x1 x2 x3 x4 x5 x6"が標準出力に出力されます。

配列 SEQ2 を使用した JOBLOG の出力例を次に示します。

KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ちま

す。

KNAX0724-I ジョブ識別子を割り当てました。Jobid=046189

---------------------------------------------------------------

Advanced Shell 11-00

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

JP1/Advanced Shell

383

[ジョブ情報]

ジョブ識別子 : 046189

スプールジョブディレクトリパス : /var/opt/jp1as/spool/046189/

実行日付 : 2015/10/29

システム環境ファイルパス :

ジョブ環境ファイルパス :

ホスト名 : host01

[Automatic Job Management Systemから渡された環境変数]

---------------------------------------------------------------

******** ジョブコントローラのメッセージ出力 ********

15:01:31 046189 KNAX0091-I ADSH046189 ジョブが開始しました。

15:01:31 046189 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセス

の完了を待ちます。

15:01:31 046189 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

15:01:31 046189 KNAX6112-I コマンド(set, 行番号=1)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:01:31 046189 KNAX6112-I コマンド(echo, 行番号=2)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:01:31 046189 KNAX0098-I ADSH046189 ジョブが終了しました。rc=0 E-Time=0.001s C-

Time=0.000s

******** ジョブ定義スクリプトの内容 ********

***** /home/user001/SAMPLE_JOB7.ash *****

0001 : SEQ2[]=({ x1 x2 x3 } { x4 x5 x6 })

0002 : echo ${SEQ2[@]}

***** パス変換情報 *****

******** 実行ジョブのSTDERRファイルの内容 ********

KNAX0098-I ADSH046189 ジョブが終了しました。rc=0 E-Time=0.001s C-Time=0.000s

******** ジョブステップの出力 ********

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="/var/opt/jp1as/spool/046189-ADSH046189/"

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。rc=0

******** 実行ジョブのSTDOUTファイルの内容 ******** x1 x2 x3 x4 x5 x6

• 1 次元配列 SEQ1 に,次のように配列要素を代入した変数名を定義し,配列数 3 の配列を設定する。

ARR1=x1

ARR2=x2

ARR3=x3

SEQ1=($ARR1 $ARR2 $ARR3) echo ${SEQ1[@]}

→ "x1 x2 x3"が標準出力に出力されます。

配列 SEQ1 を使用した JOBLOG の出力例を次に示します。

KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ちま

す。

KNAX0724-I ジョブ識別子を割り当てました。Jobid=046191

---------------------------------------------------------------

Advanced Shell 11-00

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

JP1/Advanced Shell

384

[ジョブ情報]

ジョブ識別子 : 046191

スプールジョブディレクトリパス : /var/opt/jp1as/spool/046191/

実行日付 : 2015/10/29

システム環境ファイルパス :

ジョブ環境ファイルパス :

ホスト名 : host01

[Automatic Job Management Systemから渡された環境変数]

---------------------------------------------------------------

******** ジョブコントローラのメッセージ出力 ********

15:10:08 046191 KNAX0091-I ADSH046191 ジョブが開始しました。

15:10:08 046191 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセス

の完了を待ちます。

15:10:08 046191 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

15:10:08 046191 KNAX6110-I コマンド(ARR1=x1, 行番号=1)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:10:08 046191 KNAX6110-I コマンド(ARR2=x2, 行番号=2)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:10:08 046191 KNAX6110-I コマンド(ARR3=x3, 行番号=3)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:10:08 046191 KNAX6112-I コマンド(set, 行番号=4)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:10:08 046191 KNAX6112-I コマンド(echo, 行番号=5)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:10:08 046191 KNAX0098-I ADSH046191 ジョブが終了しました。rc=0 E-Time=0.002s C-

Time=0.000s

******** ジョブ定義スクリプトの内容 ********

***** /home/user001/SAMPLE_JOB8.ash *****

0001 : ARR1=x1

0002 : ARR2=x2

0003 : ARR3=x3

0004 : SEQ1=($ARR1 $ARR2 $ARR3)

0005 : echo ${SEQ1[@]}

***** パス変換情報 *****

******** 実行ジョブのSTDERRファイルの内容 ********

KNAX0098-I ADSH046191 ジョブが終了しました。rc=0 E-Time=0.002s C-Time=0.000s

******** ジョブステップの出力 ********

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="/var/opt/jp1as/spool/046191-ADSH046191/"

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。rc=0

******** 実行ジョブのSTDOUTファイルの内容 ******** x1 x2 x3

• 2 次元配列 SEQ2 に,次のように配列要素を代入した変数名を定義し,配列数 3x2 の配列を設定する。

ARR1=x1

ARR2=x2

ARR3=x3

ARR4=x4

ARR5=x5

ARR6=x6

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

JP1/Advanced Shell

385

SEQ2[]=({ $ARR1 $ARR2 $ARR3 } { $ARR4 $ARR5 $ARR6 }) echo ${SEQ2[@]}

→ "x1 x2 x3 x4 x5 x6"が標準出力に出力されます。

配列 SEQ2 を使用した JOBLOG の出力例を次に示します。

KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ちま

す。

KNAX0724-I ジョブ識別子を割り当てました。Jobid=046193

---------------------------------------------------------------

Advanced Shell 11-00

[ジョブ情報]

ジョブ識別子 : 046193

スプールジョブディレクトリパス : /var/opt/jp1as/spool/046193/

実行日付 : 2015/10/29

システム環境ファイルパス :

ジョブ環境ファイルパス :

ホスト名 : host01

[Automatic Job Management Systemから渡された環境変数]

---------------------------------------------------------------

******** ジョブコントローラのメッセージ出力 ********

15:17:35 046193 KNAX0091-I ADSH046193 ジョブが開始しました。

15:17:35 046193 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセス

の完了を待ちます。

15:17:35 046193 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

15:17:35 046193 KNAX6110-I コマンド(ARR1=x1, 行番号=1)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:17:35 046193 KNAX6110-I コマンド(ARR2=x2, 行番号=2)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:17:35 046193 KNAX6110-I コマンド(ARR3=x3, 行番号=3)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:17:35 046193 KNAX6110-I コマンド(ARR4=x4, 行番号=4)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:17:35 046193 KNAX6110-I コマンド(ARR5=x5, 行番号=5)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:17:35 046193 KNAX6110-I コマンド(ARR6=x6, 行番号=6)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:17:35 046193 KNAX6112-I コマンド(set, 行番号=7)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:17:35 046193 KNAX6112-I コマンド(echo, 行番号=8)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

15:17:35 046193 KNAX0098-I ADSH046193 ジョブが終了しました。rc=0 E-Time=0.003s C-

Time=0.000s

******** ジョブ定義スクリプトの内容 ********

***** /home/user001/SAMPLE_JOB9.ash *****

0001 : ARR1=x1

0002 : ARR2=x2

0003 : ARR3=x3

0004 : ARR4=x4

0005 : ARR5=x5

0006 : ARR6=x6

0007 : SEQ2[]=({ $ARR1 $ARR2 $ARR3 } { $ARR4 $ARR5 $ARR6 })

0008 : echo ${SEQ2[@]}

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

JP1/Advanced Shell

386

***** パス変換情報 *****

******** 実行ジョブのSTDERRファイルの内容 ********

KNAX0098-I ADSH046193 ジョブが終了しました。rc=0 E-Time=0.003s C-Time=0.000s

******** ジョブステップの出力 ********

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="/var/opt/jp1as/spool/046193-ADSH046193/"

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。rc=0

******** 実行ジョブのSTDOUTファイルの内容 ******** x1 x2 x3 x4 x5 x6

(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 次元配列の 1 要素の値を参照する場合

${配列名[要素番号]}

使用例 set -A abc 1 2 3 echo ${abc[1]}

→2 が標準出力に出力されます。

• 2 次元配列の 1 要素の値を参照する場合

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

JP1/Advanced Shell

387

${配列名[要素番号1][要素番号2]}

使用例 set -D abc { 1 2 3 } { 4 5 6 } echo ${abc[1][2]}

[]

[n]

[@]

[*]

→6 が標準出力に出力されます。

2 次元配列も 1 次元配列と同様に,配列要素番号に@または*を指定した場合,配列に定義されている

値の全要素を参照できます。1 次元配列と異なるのは,配列要素番号の指定が 2 つあるためそれぞれに

別々の記号や配列番号を指定できることから,@や*が指定されても,配列要素すべての参照指定とは

なりません。${array[n][m]}を指定した場合の参照範囲について次に示します。

表 5-4 ${array[n][m]}を指定した場合の参照範囲 n m

指定なし array[0][0]の値 array[n][0]の値 array すべて array すべて

[] array[0][0]の値 array[n][0]の値 array すべて array すべて

[m] array[0][m]の値 array[n][m]の値 m 列すべて m 列すべて

[@] array すべて n 行のすべて array すべて array すべて

[*] array すべて n 行のすべて array 全て aray 全て

@と*が混在して指定されている場合,要素番号 1 に指定した記号を優先します。 array[@][*]と指定した場合 array[@][@]とみなし,array[*][@]と指定した場合は array[*][*]とみなし

ます。

• 配列の要素の値を参照する場合

• 1 次元配列の要素の値を参照する場合

参照方法 1

${配列名[*]}

使用例 set -A abc 1 2 3 echo ${abc[*]}

→1 2 3 が標準出力に出力されます。

参照方法 2

${配列名[@]}

使用例 set -A abc 1 2 3 echo ${abc[@]}

→1 2 3 が標準出力に出力されます。

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

JP1/Advanced Shell

388

参照方法 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 が標準出力に出力されます。

• 2 次元配列の素の値を参照する場合

参照方法 1

${配列名[*][*]}

使用例 set -D abc { 1 2 3 } { 4 5 6 } echo ${abc[*][*]}

→1 2 3 4 5 6 が標準出力に出力されます。

参照方法 2

${配列名[@][@]}

使用例 set -D abc { 1 2 3 } { 4 5 6 } echo ${abc[@][@]}

→1 2 3 4 5 6 が標準出力に出力されます。

参照方法 3

${配列名[1][*]}

使用例 set -D abc { 1 2 3 } { 4 5 6 } echo ${abc[1][*]}

→4 5 6 が標準出力に出力されます。

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

JP1/Advanced Shell

389

参照方法 4

${配列名[1][@]}

使用例 set -D abc { 1 2 3 } { 4 5 6 } echo ${abc[1][@]}

→4 5 6 が標準出力に出力されます。

参照方法 5

${配列名[*][1]}

使用例 set -D abc { 1 2 3 } { 4 5 6 } echo ${abc[*][1]}

→2 5 が標準出力に出力されます。

参照方法 6

${配列名[@][1]}

使用例 set -D abc { 1 2 3 } { 4 5 6 } echo ${abc[@][1]}

→2 5 が標準出力に出力されます。

これら以外の指定の組み合わせについては,「

表 5-4 ${array[n][m]}を指定した場合の参照範囲

を参照してください。

配列の値の参照例を次に示します。

ジョブ定義スクリプトの内容 set -A myArray a01 a02 a03 #myArrayを配列として定義する。 for myElement in ${myArray[*]} #myArrayの全要素をfor文のwordlistsに展開する。 do

echo $myElement done

標準出力への出力結果 a01 a02 a03

(4) 大量の配列要素を確保する場合のメモリ所要量について

2 次元配列では,最大 65,536×64 個の配列要素の生成ができます。

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

JP1/Advanced Shell

390

しかし,2 次元配列の生成を実行するプロセスに与えられている使用可能なメモリ量によっては,最大配

列要素数を確保できない場合があります。

2 次元配列の生成に必要なメモリ量の見積もり式は次のとおりです。

(324+x) × y x:平均配列要素データ長(8の倍数単位に切り上げて指定) y:生成する最大配列要素数(1〜65,536×64)

上記のメモリ所要量と,他の構文などで使用するメモリ所要量との合計が,プロセスで使用可能なメモリ

量を超えていないかを確認してください。

5.1.4 関数

同じジョブ定義スクリプトファイル内や外部ファイルに関数を定義すると使用できます。関数を定義する

場合の書式を次に示します。

書式 1

関数名() {

command

:

(略)

}

書式 2 function 関数名 {

command

:

(略)

}

関数名の命名規則は変数と同じです。また,シェル標準コマンド,シェル拡張コマンド,および次のコマ

ンド名と同名の関数は定義できません。

• bg

• bind

• fc

• fg

変数の命名規則については,「

(1) 変数の命名規則

」を参照してください。

関数を実行するジョブ定義スクリプトと異なるファイルに定義した場合,関数を実行する前に.(ドット)

コマンド,または#-adsh_script コマンドで関数を定義したジョブ定義スクリプトを呼び出す必要があり

ます。

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

JP1/Advanced Shell

391

書式を次に示します。.(ドット)コマンドについては,「

9.3 シェル標準コマンド 」の「 .コマンド(シェ

ルスクリプトを実行する)

9.5 スクリプト拡張コマンド 」の「

#adsh_script コマンド(実行中のジョブ定義スクリプトから外部のジョブ定義スクリプトファイルを呼び

. 関数を定義したファイル名

または

#-adsh_script 関数を定義したファイル名

ジョブ定義スクリプト内で定義した関数の名称が,同一ジョブ定義スクリプト内,.(ドット)コマンドで

呼び出したジョブ定義スクリプト内,または#-adsh_script コマンドで呼び出したジョブ定義スクリプト

内で定義したほかの関数と重複していた場合,関数を実行する位置の直前に定義された関数が実行されます。

関数を実行する場合の書式を次に示します。関数には引数を指定できます。指定した引数は関数内では位

置パラメーター$1 以降に格納されます。

関数名 [args]

なお,関数内の位置パラメーター$0 には,書式に応じて次の内容が格納されます。

• 書式 1 で定義した関数の場合,シェルスクリプト名称が格納される。

• 書式 2 で定義した関数の場合,関数名が格納される。

関数の引数の指定有無と位置パラメーターの関係を次の表に示します。

表 5-5 関数の引数の指定有無と位置パラメーターの関係

関数呼び出し元の位置パラメー

ター

指定あり

指定あり

指定なし

関数の引数

指定あり

指定なし

指定あり

関数開始時の位置パラメー

ター

引数に指定された値

値なし

引数に指定された値

指定なし 指定なし 値なし

関数からの回復時の位置パラメーター

関数呼び出し元の位置パラメーターの値

関数呼び出し元の位置パラメーターの値

値なし(関数呼び出し元の位置パラメー

ターの値)

値なし(関数呼び出し元の位置パラメー

ターの値)

(1) 関数内ローカル変数

JP1/Advanced Shell では,関数内で typeset コマンドを使用して変数を定義すると,関数内で有効なロー

カル変数を定義できます。定義した変数は,関数が完了した時点で関数実行前の状態に回復されます。関

数内ローカル変数の実行例を次に示します。

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

JP1/Advanced Shell

392

ジョブ定義スクリプトの内容

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 ファイルの内容

******** 実行ジョブの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/ readonly ADSH_DIR_PARTS_EN=/opt/jp1as/parts/en/ readonly ADSH_DIR_PARTS_JA=/opt/jp1as/parts/ja/

123 ←10行目の結果。関数完了後,変数varの値は回復 readonly ADSH_DIR_BIN=/opt/jp1as/bin/ readonly ADSH_DIR_CMD=/opt/jp1as/cmd/ readonly ADSH_DIR_PARTS_EN=/opt/jp1as/parts/en/ readonly ADSH_DIR_PARTS_JA=/opt/jp1as/parts/ja/ typeset -i var ←12行目の結果。8行目の出力結果と同じ

(2) トレースモード

関数のトレースモードを有効にすることで,関数に記述されたコマンドを実行すると同時にコマンドの内

容を標準エラー出力に出力できます。

関数のトレースモードへの切り替えはシェル標準コマンドの typeset コマンドで実行します。typeset コ

マンドについては,「

9.3 シェル標準コマンド

」の「

typeset コマンド(変数や関数の属性と値を明示的

例として,typeset コマンドの指定内容と,標準エラー出力への出力結果を次に示します。

ジョブ定義スクリプトの内容

0001 : fn(){

0002 : echo "--- `date`"

0003 : }

0004 : typeset -ft fn

0005 : fn

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

JP1/Advanced Shell

393

関数のトレースモードによる標準エラー出力への出力結果

+ date

+ echo --- 2015年 10月 29日 木曜日 15:41:00 JST

(3) 関数のオートロード機能

関数のオートロード機能を使用すると,実行するシェルスクリプト内で使用する関数だけが実行時に定義

されます。オートロード機能を使用しない場合と比べて,共通化された関数が実行有無に関係なく一度に

実行されることがなくなるため,バッチジョブの実行性能が向上します。

関数のオートロード機能を使用する手順は次のとおりです。

1. 関数を定義したファイル(関数定義ファイル)を作成し,関数名と同じファイル名で保存する。

関数定義ファイル内に複数の関数を定義した場合,記述したすべての関数が定義されます。そのため,

関数定義ファイルで定義した関数名がすでに定義されている関数と重複していた場合,関数の定義内容

が上書きされるため,注意してください。

なお,関数定義ファイル内にコマンドなど関数定義以外の内容を記述した場合は,外部スクリプトと同

等に動作します。

2. ジョブ定義スクリプトに次のコマンドを指定して,関数のオートロード機能を有効にする。 typeset -fu 関数名 [関数名2...]

関数名 には,関数定義ファイル名と同じ名前の関数を指定します。

また,JP1/Advanced Shell では「typeset -fu」コマンドの別名として autoload を提供します。 autoload の形式は次のとおりです。 autoload 関数名 [関数名2...] typeset コマンドについては,「

9.3 シェル標準コマンド

」の「

typeset コマンド(変数や関数の属性

autoload については,「

5.1.5 コマンドの別名定義 」を参照してください。

3. シェル変数 FPATH に,関数定義ファイルを格納したディレクトリを指定する。

オートロード機能を有効にした関数が関数定義ファイルに定義されていない場合,シェル変数 FPATH

に指定されたディレクトリから関数名と一致する関数定義ファイルの内容を読み込んで,記述されてい

るすべての関数を定義します。シェル変数 FPATH は,ジョブ定義スクリプトおよび環境ファイルで指

定できます。

(a) オートロード機能の使用例(typeset -fu コマンドを使用した場合) typeset -fu コマンドを使用した関数のオートロード機能の使用例を次に示します。なお,JP1/Advanced

Shell では typeset -fu コマンドのエイリアスとして autoload を提供しています。この例では関数 auto1,関数 auto2,関数 auto3 に対してオートロード機能を実行しています。

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

JP1/Advanced Shell

394

関数定義ファイル(/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を実行

実行結果

******** ジョブコントローラのメッセージ出力 ********

14:40:16 152262 KNAX0091-I ADSH152262 ジョブが開始しました。

14:40:16 152262 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセス

の完了を待ちます。

14:40:16 152262 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

14:40:16 152262 KNAX6112-I コマンド(export, 行番号=1)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

14:40:16 152262 KNAX6112-I コマンド(typeset, 行番号=3)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

14:40:16 152262 KNAX6112-I コマンド(typeset, 行番号=4)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

14:40:16 152262 KNAX6112-I コマンド(echo, 行番号=2)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

14:40:16 152262 KNAX6112-I コマンド(return, 行番号=3)が正常終了しました。rc=11 E-

Time=0.000s C-Time=0.000s

14:40:16 152262 KNAX6046-E 関数("auto2")が関数定義ファイル("/home/jp1as/autoload/ auto2")内に定義されていません。filename="/home/jp1as/test.ash" line=7

14:40:16 152262 KNAX6044-E FPATHシェル変数に指定されたディレクトリに関数("auto3")の定義

ファイルが見つかりません。filename="/home/jp1as/test.ash" line=8

14:40:16 152262 KNAX0101-E ADSH152262 ジョブを実行中にエラーが発生しました。

14:40:16 152262 KNAX0098-I ADSH152262 ジョブが終了しました。rc=127 E-Time=0.003s C-

Time=0.000s

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

JP1/Advanced Shell

395

注※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を再度実行

標準出力への出力結果

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

JP1/Advanced Shell

396

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 functions integer local

定義内容 typeset -fu typeset -f typeset -i typeset

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

JP1/Advanced Shell

397

エイリアス名 type

定義内容 whence -v

5.1.6 メタキャラクタ

メタキャラクタとは,ジョブ定義スクリプト内で特別な意味を持つキャラクタのことです。JP1/Advanced

Shell のメタキャラクタを次に示します。

|

 & ; < > ( ) $ ` ' 

\

 " ~ # 

*

 [ ] ?

メタキャラクタを一般的な文字として使用したい場合,メタキャラクタの無効化を行う必要があります。

メタキャラクタの無効化の方法を次の表に示します。

表 5-6 メタキャラクタの無効化の方法

無効化の方法

'str'

"str"

\ char

意味

文字列 str は'以外のすべての文字をそのままの文字として処理します。

文字列 str は$,

\

,`以外の文字をそのままの文字として処理します。

ただし,

\

の直後の文字が$,

\

,`,"の場合,

\

はメタキャラクタとして有効となります。文字列 str

にそのままの文字として

\

を含める場合は,

\\

と記述してください。

文字 char の特殊な意味を無効(エスケープ文字)にします。

ただし,メタキャラクタを無効化した内容を出力する場合は,echo コマンドおよび print コマンドなど,

出力する組み込みコマンドの仕様に従って処理されます。

ジョブ定義スクリプトの内容 echo 'JP1/AS\n' # 1.

echo "JP1/AS\n" # 2.

echo JP1/AS\\n # 3.

echo 'JP1/AS\\n' # 4.

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

JP1/AS ←1.の結果 echoコマンドが\nを改行として出力

JP1/AS ←2.の結果

JP1/AS ←3.の結果

JP1/AS\n ←4.の結果 \をエスケープ扱いで\nを文字として出力

メタキャラクタを使用した機能について説明します。

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

JP1/Advanced Shell

398

(1) 位置パラメーター

ジョブ定義スクリプトを実行する場合,ジョブ定義スクリプトファイル名の後ろに実行時パラメーターを

指定すると,ジョブ定義スクリプトに引数として渡すことができます。JP1/Advanced Shell はこの引数

を「位置パラメーター」と呼ぶ特殊な変数に代入します。位置パラメーターは「$0」から「$9」の 10 個

が用意されており,「$0」には実行したジョブ定義スクリプトファイル名が代入されます。$1 から$9 には

指定した順に引数が代入されます。JP1/Advanced Shell の位置パラメーターおよび関連する特殊文字に

ついて次の表に示します。

表 5-7 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) 行継続

複数行にわたってコマンドを記述する場合の記述手順を次に示します。

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

JP1/Advanced Shell

399

1. 行の終端に

\

を付けて改行します。

2. 行の終端をクォーテーションで囲まないで改行し,複数行の最初と最後だけクォーテーションで囲みま

す。

このように記述すると行が継続していると判断し,同一行として処理されます。

(4) コメント

ジョブ定義スクリプト内にコメントを記述できます。行中に「#」を記述すると,「#」以降から行末まで

をコメントとして扱い,処理を行います。ただし,「#」の後ろに「-adsh」が記述されている場合は,次

のように処理をします。

• 行の先頭に#-adsh を記述している場合

スクリプト拡張コマンドとして扱います。

• 前の行から継続して#-adsh を記述している場合

コメント行として扱います。例を次に示します。 echo ABC \

#-adsh

ただし,前の行から継続していない,かつ行の先頭に記述していないときは,エラーになります。

• #-adsh 以外を記述している場合

コメント行として扱います。

なお,スクリプト拡張コマンドの行にはコメントを記述できません。

(5) ワイルドカード

条件に合致するファイル名やディレクトリ名の特定,任意の文字列との比較などに,ワイルドカードが使

用できます。

JP1/Advanced Shell で使用できるワイルドカードを次の表に示します。

表 5-8 JP1/Advanced Shell で使用できるワイルドカード

ワイルド

カード

?

意味

*

[…]

{ str

,...}

任意の 1 文字に合致します。ただし,ドットファイルのドット「.」は除きます。

0 文字以上の文字列に合致します。ただし,ドットファイルのドット「.」は除きます。

[ ]に囲まれた文字列のどれか 1 文字に合致します。[ ]に囲まれた文字列の先頭に!を付加した場合,[ ]に囲まれて

いない文字に合致します。]を文字として指定する場合は,文字列の先頭に指定してください。

ハイフン(-)で区切ると,ハイフンで区切られたその間にある任意の文字(その 2 文字も含む)に合致します。

ハイフンを文字として指定する場合は,文字列の先頭または末尾に指定してください。記述例を次の表に示します。

ブレース展開によって,コンマで区切られた文字列 str を展開します。ただし,次の場合は展開しません。

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

JP1/Advanced Shell

400

ワイルド

カード

{ str

,...}

意味

• braceexpand シェルオプションが無効の場合

• noglob シェルオプションが有効の場合

ワイルドカード[ ]の記述例を次の表に示します。

表 5-9 ワイルドカード[ ]の記述例

記述例

[]a]

[!abc]

[0-9]

[a-z]

[A-Z]

[0-9a-zA-Z]

[-abc]

[!-abc]

意味

文字列]a と合致します。

文字列 abc 以外と合致します。

0 から 9 までのどれかに合致します。

英小文字に合致します。

英大文字に合致します。

英数字に含まれます。

文字列-abc と合致します。

文字列-abc 以外と合致します。

(6) 置換

置換機能として次の 3 つの機能があります。

• 変数置換

変数の状態,変数の値の文字列長(単位:バイト),変数が配列の場合の要素数,変数の値と指定され

たパターンとのマッチングによって,展開する変数の値を置き換えます。

• コマンド置換

コマンドの標準出力を変数の値として扱って処理します。

• ファイル名置換

*

」や「?」などのワイルドカードを使用し,条件に合致するファイル名を展開します。ただし,シェ

ルオプションの noglob が有効の場合は,ファイル名置換は行われません。シェルオプションの noglob

については「

5.6.1 set コマンドで設定できるシェルオプション

」を参照してください。

(a) 変数置換

変数置換には,変数の状態によって実行される変数置換,変数の値の文字列長や配列の要素数への変数置

換,パターンマッチングの結果によって実行される変数置換,部分文字列展開があります。

• 変数の状態によって実行される変数置換

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

JP1/Advanced Shell

401

変数の状態によって実行される変数置換の書式を次の表に示します。variable には変数名,word には variable の状態によって展開される変数を指定します。また,使用例および結果の a は未定義の変数, b=NULL,c=1 とします。

表 5-10 変数の状態によって実行される変数置換の書式

書式 説明 使用例 結果

${ variable

:word

}

${ variable

word

}

${ variable

:= word

}

${ variable

= word

}

${ variable

:?[ word

]} variable を変数として定義しかつ値を代入している場合, variable の値を返します。 variable は定義されていて NULL または未定義の場合, word の展開結果を返します。variable の値は変更しません。 cnt=${a:-7} cnt=${b:-8} cnt=${c:-9} variable を変数として定義しかつ値を代入している場合, variable の値を返します。 variable は定義されていて NULL の場合,variable の値

(NULL)を返します。variable が未定義のときは,word の

展開結果を返します。variable の値は変更しません。 variable を変数として定義しかつ値を代入している場合, variable の値を返します。 variable は定義されていて NULL または未定義の場合, word の展開結果を variable に代入し,variable の値を返

します。ただし,この書式は変数だけに使用でき,位置パ

ラメーターには使用できません。 cnt=${a-7} cnt=${b-8} cnt=${c-9} cnt=${a:=7} cnt=${b:=8} cnt=${c:=9} variable を変数として定義しかつ値を代入している場合, variable の値を返します。 variable は定義されていて NULL の場合,variable の値

(NULL)を返します。 variable が未定義の場合,word の展開結果を variable に

代入し,variable の値を返します。ただし,この書式は変

数だけに使用でき,位置パラメーターには使用できません。 cnt=${a=7} cnt=${b=8} cnt=${c=9} variable を変数として定義しかつ値を代入している場合, variable の値を返します。 word を指定し,かつ variable は定義されていて NULL ま

たは未定義の場合,word の展開結果を標準エラー出力に出

力し,ジョブ定義スクリプトは終了します。 word を省略し,かつ variable は定義されていて NULL ま

たは未定義の場合,未定義を表す KNAX6050-E メッセー

ジを出力し,ジョブ定義スクリプトは終了します。 variable の値は変更しません。 cnt=${a:?7} cnt=${a:?} cnt=${b:?8} cnt に 7 を代入 cnt に 8 を代入 cnt に c の値を

代入 cnt に 7 を代入 cnt に NULL を

代入 cnt に c の値を

代入 a に 7 を代入し, cnt に a の値を

代入 b に 8 を代入し, cnt に b の値を

代入 cnt に c の値を

代入 cnt に 7 を代入 cnt に NULL を

代入 cnt に c の値を

代入

展開結果を標準

エラー出力に出

力し,シェル

終了

メッセージを出

力し,シェル

終了

展開結果を標準

エラー出力に出

力し,シェル

終了

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

JP1/Advanced Shell

402

書式

${ variable

:?[ word

]}

${ variable

?[ word

]}

${ variable

:+ word

}

${ variable

+ word

}

説明 variable を変数として定義しかつ値を代入している場合, variable の値を返します。 word を指定し,かつ variable は定義されていて NULL ま

たは未定義の場合,word の展開結果を標準エラー出力に出

力し,ジョブ定義スクリプトは終了します。 word を省略し,かつ variable は定義されていて NULL ま

たは未定義の場合,未定義を表す KNAX6050-E メッセー

ジを出力し,ジョブ定義スクリプトは終了します。 variable の値は変更しません。 variable を変数として定義しかつ値を代入している場合, variable の値を返します。 variable は定義されていて NULL の場合,variable の値

(NULL)を返します。 word を指定し,かつ variable が未定義の場合,word の

展開結果を標準エラー出力に出力し,ジョブ定義スクリプ

トは終了します。 word を省略し,かつ variable が未定義の場合,未定義を

表す KNAX6050-E メッセージを出力し,ジョブ定義スク

リプトは終了します。 variable の値は変更しません。 variable を変数として定義しかつ値を代入している場合, word の展開結果を返します。それ以外の場合は,NULL

を返します。 variable の値は変更しません。 variable を変数として定義しかつ値を代入している場合ま

たは NULL の場合,word の展開結果を返します。それ以

外の場合は,NULL を返します。 variable の値は変更しません。

使用例 cnt=${c:?9} cnt=${a?7} cnt=${a?} cnt=${b?8} cnt=${c?9} cnt=${a:+7} cnt=${b:+8} cnt=${c:+9} cnt=${a+7} cnt=${b+8} cnt=${c+9}

結果 cnt に c の値を

代入

展開結果を標準

エラー出力に出

力し,シェル

終了

メッセージを出

力し,シェル

終了 cnt に NULL を

代入 cnt に c の値を

代入 cnt に NULL を

代入 cnt に NULL を

代入 cnt に 9 を代入 cnt に NULL を

代入 cnt に 8 を代入 cnt に 9 を代入

• 変数の値の文字列長や配列の要素数への変数置換

変数の値の文字列長,および配列の要素数への変数置換の書式を次の表に示します。variable には変

数名,array には配列名を指定します。

表 5-11 変数の値の文字列長および配列の要素数への変数置換の書式

書式 説明

${# variable

} variable が「

*

」または「@」の場合,位置パラメーターの番号に置換されます。それ以外の

場合は,環境設定パラメーター VAR_SHELL_GETLENGTH の指定に応じて次のように置換

されます。

• BYTE variable に格納されている値の長さをバイト数に置換

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

JP1/Advanced Shell

403

書式

${# variable

}

${# array

[

*

]}

${# array

[@]}

${# array

[n][*]}

${# array

[n][@]}

${# array

[*][m]}

${# array

[@][m]}

${# array

[*][*]}

${# array

[@][@]}

${?MAX: array

}

説明

• CHARACTER variable に格納されている値の長さを文字数に置換

環境設定パラメーター VAR_SHELL_GETLENGTH が指定されていない場合は,環境設定パ

ラメーター VAR_SHELL_GETLENGTH に BYTE を指定した場合と同じ動作となります。 array で指定された配列の要素数に置換されます。 array[n][*]で指定された配列の行の要素数に置換されます。 array[n][@]で指定された配列の行の要素数に置換されます。 array[*][m]で指定された配列の列の要素数に置換されます。 array[@][m]で指定された配列の列の要素数に置換されます。 array で指定された配列の要素数に置換されます。 array で指定された配列の最大行数(1 次元配列)と最大列数(2 次元配列)に置換される。

• ${#array[*]}書式の使用例

ARRAY=(a b c d e f g h i j k l m n o) echo ${#ARRAY[*]}

→15

• ${#array[n][*]}書式の使用例

ARRAY[]=({ a b c d e } { f g h i j } { k l m n o }) echo ${#ARRAY[1][*]}

→5

• ${#array[*][m]}書式の使用例

ARRAY[]=({ a b c d e } { f g h i j } { k l m n o }) echo ${#ARRAY[*][1]}

→3

• ${#array[*][*]}書式の使用例

ARRAY[]=({ a b c d e } { f g h i j } { k l m n o }) echo ${#ARRAY[*][*]}

→15

• ${?MAX:array}書式の使用例

ARRAY[]=({ a1 a2 a3 a4 a5 } { b1 b2 b3 b4 b5 } { c1 c2 c3 c4 c5 } \

{ d1 d2 d3 d4 d5 } { e1 e2 e3 e4 e5 } { f1 f2 f3 f4 f5 } \

{ g1 g2 g3 g4 g5 } { h1 h2 h3 } { i1 i2 i3 i4 })

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

JP1/Advanced Shell

404

unset ARRAY[2][3]

ARRAY[2][5]=c6 echo ${?MAX:ARRAY}

6

7

4

5

8

2

3

0

1

→9 6 n

※1 b1 c1 d1 e1 m

※2

0 a1 f1 g1 h1 i1 d2 e2 f2 g2

1 a2 b2 c2 h2 i2 d3 e3 f3 g3

2 a3

b3 h3 i3 -

d4 e4 f4 g4

3 a4 b4 c4

-

d5 e5 f5 g5

4 a5 b5 c5

-

-

-

-

-

-

-

5

c6

注※1

1 次元配列要素番号を示します。

注※2

2 次元配列要素番号を示します。

• パターンマッチングの結果によって実行される変数置換

パターンマッチングの結果によって実行される変数置換の書式を次の表に示します。variable には変

数名,pattern には variable とパターンマッチングを行う文字列を指定します。pattern にはワイルド

カードによる指定もできます。

表 5-12 パターンマッチングの結果によって実行される変数置換の書式

分類

前方一致

書式

${ variable

# pattern

}

後方一致

${ variable

## pattern

}

${ variable

% pattern

}

説明 pattern が変数の値の先頭と一致する場合,一致する部分で

最も短い部分を削除した値に置換します。それ以外の場合は variable の値に置換します。 pattern が変数の値の先頭と一致する場合,一致する部分で

最も長い部分を削除した値に置換します。それ以外の場合は variable の値に置換します。 pattern が変数の値の終端と一致する場合,一致する部分で

最も短い部分を削除した値に置換します。それ以外の場合は variable の値に置換します。

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

JP1/Advanced Shell

405

分類

後方一致

書式

${ 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 ファイルの内容

******** 実行ジョブの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 ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ******** abcd1234xyz987abcd ←1.の結果 最後尾の1234を削除 abcd1234xyz987abc ←2.の結果 d…4の最後尾の文字列を削除(最短一致) abc ←3.の結果 d…4の最後尾の文字列を削除(最長一致) abcd1234xyz987abcd12 ←4.の結果 34以降の文字列を削除(最短一致) abcd12 ←5.の結果 34以降の文字列を削除(最長一致) abcd1234xyz987abcd1234 ←6.の結果 最後尾が一致しない場合abcの値を出力

• 部分文字列展開

部分文字列展開の結果によって実行される変数置換の書式を次の表に示します。

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

JP1/Advanced Shell

406

表 5-13 部分文字列展開の書式

書式

${ variable

: offset

}

${ variable

: offset

: length

}

${ array

[*]: offset

}

${ array

[*]: offset

: length

}

${ array

[@]: offset

}

${ array

[@]: offset

: length

}

${ array

[*][m]: offset

}

${ array

[*][m]: offset

: length

}

${ array

[n][*]: offset

}

${ array

[n][*]: offset

: length

}

${ array

[@][m]: offset

}

${ array

[@][m]: offset

: length

}

${ array

[n][@]: offset

}

${ array

[n][@]: offset

: length

}

${ array

[*][*]: offset

}

${ array

[*][*]: offset

: length

}

${ array

[@][@]: offset

}

${ array

[@][@]: offset

: length

}

説明 variable の展開結果から文字を取り出します。取り出す文字の先頭位置は offset で指定します。 variable の展開結果から最大 length 文字を取り出します。取り出す文字の先

頭位置は offset で指定します。

配列の${ array [ offset ]}を先頭とする要素を取り出します。

配列の${ array [ offset ]}を先頭とする要素を length 個取り出します。

配列の${ array [ offset ]}を先頭とする要素を取り出します。

配列の${ array [ offset ]}を先頭とする要素を length 個取り出します。

配列の${ array

[ offset

][m]}を先頭とする m 列の要素を取り出します。

配列の${ array

[ offset

][m]}を先頭とする m 列の要素を length

個取り出します。

配列の${ array

[n][ offset

]}を先頭とする行の要素を取り出します。

配列の${ array

[n][ offset

]}を先頭とする行の要素を length

個取り出します。

配列の${ array

[ offset

][m]}を先頭とする m 列の要素を取り出します。

配列の${ array

[ offset

][m]}を先頭とする m 列の要素を length

個取り出します。

配列の${ array

[n][ offset

]}を先頭とする行の要素を取り出します。

配列の${ array

[n][ offset

]}を先頭とする行の要素を length

個取り出します。

配列の${ array

[ offset

]}を先頭とする要素を取り出します。

配列の${ array

[ offset

]}を先頭とする要素を length

個取り出します。

配列の${ array

[ offset

]}を先頭とする要素を取り出します。

配列の${ array

[ offset

]}を先頭とする要素を length

個取り出します。

(凡例) variable :変数名を指定します。 array :配列名を指定します。 offset :部分展開する文字列および配列要素の先頭位置を指定します。 length :展開する文字数および配列要素数を指定します。 n :2 次元配列の行を指定します。 m :2 次元配列の列を指定します。

• ${array[*]:offset} 書式の使用例

ARRAY=(a b c d e f g h i j k l m n o) echo ${ARRAY[*]:3}

→d e f g h i j k l m n o

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

JP1/Advanced Shell

407

• ${array[*]:offset:length} 書式の使用例

ARRAY=(a b c d e f g h i j k l m n o) echo ${ARRAY[*]:3:3}

→d e f

• ${array[*][m]:offset} 書式の使用例

ARRAY[]=({ a b c d e } { f g h i j } { k l m n o } { p q r s t }) echo ${ARRAY[*][1]:1}

→g l q

• ${array[*][m]:offset:length} 書式の使用例

ARRAY[]=({ a b c d e } { f g h i j } { k l m n o } { p q r s t }) echo ${ARRAY[*][1]:1:2}

→g l

• ${array[n][*]:offset} 書式の使用例

ARRAY[]=({ a b c d e } { f g h i j } { k l m n o } { p q r s t }) echo ${ARRAY[1][*]:1}

→g h i j

• ${array[n][*]:offset:length} 書式の使用例

ARRAY[]=({ a b c d e } { f g h i j } { k l m n o } { p q r s t }) echo ${ARRAY[1][*]:1:2}

→g h

• ${array[*][*]:offset} 書式の使用例

ARRAY[]=({ a b c d e } { f g h i j } { k l m n o } { p q r s t }) echo ${ARRAY[*][*]:3}

→d e f g h i j k l m n o p q r s t

• ${array[*][*]:offset:length} 書式の使用例

ARRAY[]=({ a b c d e } { f g h i j } { k l m n o } { p q r s t }) echo ${ARRAY[*][*]:3:3}

→d e f

(b) コマンド置換

コマンド置換の書式を次の表に示します。command には実行するコマンド名および引数を指定します。

Windows の場合,CMDSUB_PROCESS パラメーターに CURRENT を指定すると,コマンド置換は外

部コマンドを除いてカレントプロセスで実行されます(デフォルト値は CURRENT です)。

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

JP1/Advanced Shell

408

表 5-14 コマンド置換の書式

書式名

$( )形式

逆引用符形式

書式

$( command

)

` command

`

説明 command の文字列に「

\

」が含まれていても「

\

」は意味を持ちません。 command の文字列に「

\

」が含まれていると「

\

」は意味を持ちます。

コマンド置換の中にコマンド置換を記述する場合,`command

\

`command

\

``の

ように内側の逆引用符の直前に「

\

」を記述してください。

逆引用符形式では command の文字列内の「

\

」はメタキャラクタとして扱われるため,$( )形式と逆引用

符形式では,command の文字列に「

\

」が含まれている場合の実行結果が異なります。そのため,$( )形

式の使用をお勧めします。

実行例および実行結果を次に示します。

• $( )形式の場合

実行例

VAL=$(echo '\$x')

実行結果(VAL に代入される値)

\$x

• 逆引用符形式の場合

実行例

VAL=`echo '\$x'`

実行結果(VAL に代入される値)

$x

次のときコマンド置換はデータの受け渡しのために一時ファイルを使用します。

• Windows の場合

CMDSUB_PROCESS パラメーターに CURRENT を指定したとき(デフォルト値)。

• UNIX の場合

COMPATIBLE_CMDSUB パラメーターと同時に,PIPE_CMD_LAST パラメーターに CURRENT

を指定した環境で,パイプ(|)でつながれた 1 つのコマンド群だけをコマンド置換したとき。例を次

に示します。

例:

• 次の処理の場合,cmd2 によって標準出力に出力されるデータは,一時ファイルに出力されてから,

ジョブ定義スクリプト中に文字列として展開されます。

`cmd1 | cmd2`

• 次の処理の場合は,コマンド群が 2 つあるため,一時ファイルは作成されません。

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

JP1/Advanced Shell

409

`cmd1 | cmd2; cmd3 | cmd4`

一時ファイルは,環境設定パラメーター TEMP_FILE_DIR で指定された場所に作成します。

CMDSUB_PROCESS パラメーターについては,「 7. 環境ファイルで設定するパラメーター

」の「 7.3.11 

参照してください。

COMPATIBLE_CMDSUB パラメーターについては,「

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

」の

「 7.3.14 COMPATIBLE_CMDSUB パラメーター(コマンド置換の動作を定義する)【UNIX 限定】

参照してください。

(c) ファイル名置換

ファイル名置換の書式を次の表に示します。pattern はパターンマッチングを行う文字列を指定します。 pattern にはワイルドカードによる指定もできます。

表 5-15 複数パターンによるファイル名置換の書式

書式

?( pattern|pattern

...)

*

( pattern|pattern

...)

+( pattern|pattern

...)

@( pattern|pattern

...)

!( pattern|pattern

...)

意味 pattern に指定された文字列のうち,どれか

1 つと合致します。 pattern に指定された文字列のうち,0 また

は 1 つ以上と合致します。 pattern に指定された文字列のうち,1 つ以

上と合致します。 pattern に指定された文字列のうち,1 つだ

け合致します。 pattern に指定された文字列のうち,1 つを

除くすべてと合致します。

使用例

?(h)

*

(h)

+(h)

@(h)

!(h)

一致する文字列

空文字列,h

空文字列,h,h,hh, hhh,… h,hh,hhh,… 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以外のファイル名を表示

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

JP1/Advanced Shell

410

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブの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 ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

99 ←xに代入されている値は99

(8) 入出力リダイレクト

ジョブ定義スクリプトでは,コマンド実行前に実行結果の出力先の変更やコマンド実行に必要な情報の入

力先を変更できます。これを入出力リダイレクトといいます。JP1/Advanced Shell で使用できる入出力

リダイレクトについて説明します。

(a) リダイレクト

使用例(2 次元配列) JP1/Advanced Shell で使用できるリダイレクトを次の表に示します。リダイレク

トは左から右に解釈されます。

表 5-16 JP1/Advanced Shell で使用できるリダイレクト

リダイレクト 意味

> file

< file file を標準出力として使用します。 file が存在しない場合は,ファイルを作成します。すでに file が

存在する場合は,上書きします。

※1 file を標準入力として使用します。

※1

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

JP1/Advanced Shell

411

リダイレクト command_1 | command_2

>> file

>

|file

<> file

<< label n

> file n

< file

>& n

<& n

>&-

<&-

|

&

※2

>& p

※3

<& p

※3

意味

パイプです。command_1 の標準出力を command_2 の標準入力とします。 file を標準出力として使用します。 file が存在しない場合は,ファイルを作成します。すでに file が

存在する場合は,追記します。

※1 file を標準出力として使用します。 file が存在しない場合は,ファイルを作成します。すでに file が

存在する場合は,上書きします。

※1 file を読み取りと書き込みのために標準入力としてオープンします。

※1

ヒアドキュメントです。 n 番のファイルディスクリプタの出力先を file にします。

※1 n 番のファイルディスクリプタは file から入力します。

※1

標準出力を n 番ファイルディスクリプタにコピーします。

標準入力を n 番ファイルディスクリプタからコピーします。

標準出力をクローズします。

標準入力をクローズします。

親プロセスからの入出力を伴うバックグラウンドプロセスを起動します。

コマンドの出力先をバックグラウンドプロセスにリダイレクトします。

コマンドへの入力をバックグラウンドプロセスにリダイレクトします。

注※1 file にシンボリックリンクを指定した場合はリンク先が入出力の対象となります。なお,出力のための

リダイレクト(>,>>,>|,<>)に対して,リンク先が存在しないシンボリックリンクを指定した場

合,UNIX 版と Windows 版で動作が異なります。

UNIX 版

Windows 版

リンク先にファイルを作成します。

ファイルに対するシンボリックリンクの場合はリンク先にファイルを作成します。ディレク

トリに対するシンボリックリンクの場合はファイルの作成に失敗します。

注※2

|

&」を使用して,親プロセスからの入出力を伴うバックグラウンドプロセスを複数起動しようとする

と,KNAX6029-E メッセージが出力され,ジョブ定義スクリプトがエラー終了する場合があります。

そのため,「

|

&」を使用する場合は,wait コマンドなどを使用し,バックグラウンドプロセスを複数

同時に起動しないようにしてください。

注※3

UNIX 版では,バックグラウンドプロセスへの入力を異なるファイルディスクリプタに再割り当てする

ことで,複数のバックグラウンドプロセスを起動できます。Windows 版では,バックグラウンドプロ

セスへの入力を異なるファイルディスクリプタに再割り当てしても,2 つ以上バックグラウンドプロセ

スを起動できません。

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

JP1/Advanced Shell

412

(b) ファイルディスクリプタ

JP1/Advanced Shell の入出力種別ごとのファイルディスクリプタを次の表に示します。

表 5-17 JP1/Advanced Shell の入出力種別ごとのファイルディスクリプタ

入出力種別

標準入力

標準出力

標準エラー出力

上記以外

0

1

ファイルディスクリ

プタ

2

3〜9

備考

− adshexec コマンドの-s オプションおよび環境ファイルの

OUTPUT_STDOUT パラメーターに SPOOL を指定した場合,JP1/

Advanced Shell がシェルからスプールの STDOUT への出力(stdout)と

して使用しているため,このファイルディスクリプタで端末をオープンしてい

ません。

JP1/Advanced Shell がシェルからスプールの STDERR への出力(stderr)

として使用しているため,このファイルディスクリプタで端末をオープンして

いません。

ユーザーがジョブ定義スクリプト内で使用できるファイルディスクリプタです。

(凡例)

−:特になし。

(c) ヒアドキュメント

ヒアドキュメントとは,標準入力をジョブ定義スクリプト内で生成することです。ヒアドキュメントに関

する書式を次の表に示します。なお,ヒアドキュメントではデータの受け渡しに一時ファイルを使用しま

す。一時ファイルは,環境設定パラメーター TEMP_FILE_DIR で指定されたディレクトリに作成します。

表 5-18 ヒアドキュメントに関する書式

書式

<< label document label

意味 label に囲まれた document の部分が標準入力に渡されます。document の部分に記述

された変数は置換され,スペース,タブ文字はそのまま標準入力に渡されます。

<<- label document label label に囲まれた document の部分が標準入力に渡されます。document の部分に記述

された変数は置換され,スペースはそのまま標準入力に渡されます。しかし,各行の行

頭のタブ文字は削除されます。 label に囲まれた document の部分が標準入力に渡されます。document の部分に記述

された変数は置換されません。

<<

\label document label

<< ' label

' document label

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

JP1/Advanced Shell

413

(d) パイプ

複数のコマンドを接続し,1 つのコマンドの標準出力を別のコマンドの標準入力として使用したい場合に,

パイプでコマンドを接続します。パイプで接続されたコマンドのセットをパイプラインと呼びます。

パイプラインは左から右へ処理が実行されます。最後のコマンドをカレントプロセス

と別プロセスのど

ちらで実行するかは PIPE_CMD_LAST パラメーターで定義できます。デフォルトはカレントプロセスです。

注※

別プロセスで実行するコマンド(外部コマンド,子孫ジョブ,UNIX 互換コマンド,シェル運用コマン

ド,サブシェル,バックグラウンド指定のコマンド,バックグラウンドプロセス指定のコマンド)は除

きます。

• Windows の場合

パイプラインのコマンドはカレントプロセスで逐次的に実行して,コマンド間のデータの受け渡しに一

時ファイルを使用します。また,一時ファイルは環境設定パラメーター TEMP_FILE_DIR で指定され

たディレクトリに作成します。パイプラインのコマンドを別々のプロセスとして実行したい場合は,

PIPE_CMD_LAST パラメーターで定義できます。

入力側のコマンドが実行終了してプロセスが存在しない状態で出力側のコマンドがパイプへ出力する

と,出力側のコマンドはエラー終了します。

• UNIX の場合

パイプラインのコマンドは別々のプロセスとして実行されます。

複数のコマンドをパイプで接続して実行する場合,入力側のコマンドが実行終了してプロセスが存在し

ない状態で,出力側のコマンドがパイプへ出力すると,出力側のコマンドが SIGPIPE を受信する場合

があります。

JP1/Advanced Shell では,コマンドが SIGPIPE をハンドリングしている場合を除き,KNAX6522-

E メッセージを出力してエラー終了します。

PIPE_CMD_LAST パラメーターについては,「

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

」の「

7.3.37 

い。

(9) コマンドセパレータ

コマンドセパレータを使用すると,ジョブ定義スクリプトの 1 行に複数のコマンドを記述できます。コマ

ンドセパレータに関する書式を次の表に示します。

表 5-19 コマンドセパレータに関する書式

書式 command

; command_1

0

&&△

0 command_2

意味

セミコロン(;)までをコマンドおよびコマンド引数として解釈します。

AND 制御演算子です。左項のコマンドが終了コード 0 で終了すると,右項のコマンド

を実行します。

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

JP1/Advanced Shell

414

書式 command_1

0

||

0 command_2

意味

OR 制御演算子です。左項のコマンドが終了コード 0 以外で終了すると,右項のコマン

ドを実行します。

また,コマンドセパレータは,グループ化したコマンドを 1 つのコマンド群として扱い,実行できます。

(10) コマンドのグループ化

コマンドをグループ化すると,複数のコマンドをまとめて実行できます。また,グループ化したコマンド

群をグループ化することもできます。コマンドのグループ化に関する書式を次の表に示します。

表 5-20 コマンドのグループ化に関する書式

書式

( command_1

;△

0 command_2

; ... )

( command_1

(改行) command_2

(改行)

... )

{△

1 command_1

;△

0 command_2

; ...;}

}

{△

1 command_1

(改行) command_2

(改行)

...(改行)

意味

別プロセスでグループ化されたコマンドを実行します。コマンド実行中

に環境を変更しても変更内容はカレントシェルに引き継がれません。グ

ループ化するコマンドはセミコロンまたは改行文字で区切ります。

カレントプロセスでグループ化されたコマンドを実行します。コマンド

実行中に環境を変更すると変更内容がコマンド終了後も引き継がれます。

グループ化するコマンドはセミコロンまたは改行文字で区切ります。

この書式の場合,「{」の後ろに 1 つ以上のスペースを挿入しかつ最後の

コマンドにセミコロン(;)または改行文字を挿入してください。

(11) そのほかのメタキャラクタ

そのほかに,次の表に示すメタキャラクタが使用できます。

表 5-21 使用できるメタキャラクタ

メタキャラクタ

~

※1

~

任意の文字列

~+

※1

~-

※1

&

意味

シェル変数の HOME

※2

に置き換えられます。

【UNIX 限定】

/または引数区切り文字までの文字列と一致するユーザー名が/etc/passwd ファイルに登録されて

いるか確認します。

登録されている場合は,一致するユーザーのログインディレクトリに置き換えられます。

登録されていない場合は,そのままの文字列として解釈されます。

シェル変数の PWD に置き換えられます。

シェル変数の OLDPWD に置き換えられます。

ジョブ定義スクリプトや関数をバックグラウンドで実行します。

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

JP1/Advanced Shell

415

注※1

「~」,「~+」および「~-」は,クォーテーションで囲んだり,クォーテーションで囲まれた文字列やエ

スケープ文字(

\

)の直前に記述されたりすると,対応するシェル変数に置き換わりません。このよう

な場合はシェル変数を使用してください。

注※2

シェル変数の HOME は自動では設定されません。環境変数として定義してください。

5.1.7 別プロセスでの実行

ジョブ定義スクリプト内に次の書式が記述されていた場合,カレントプロセスとは異なるプロセスで実行

します。別プロセスで変更した内容については,カレントプロセスには引き継がれません。

書式 command_1 | command_2

$(command) , ` command `

(command) command & command |&

詳細記載個所

(d) パイプ

(b) コマンド置換

(10) コマンドのグループ化

(11) そのほかのメタキャラクタ

(a) リダイレクト

別プロセスで実行する使用例を次に示します。

パイプ(

|

)による別プロセスの実行

パイプ(

|

)による別プロセス実行は,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コマンドの出力結果を名称とするコマンドを実行

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

JP1/Advanced Shell

416

|

&によるバックグラウンドプロセスの実行

(例) 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を実行

実行ジョブのジョブ実行ログファイルの内容

<省略>

******** ジョブコントローラのメッセージ出力 ********

16:01:06 152285 KNAX0091-I ADSH152285 ジョブが開始しました。

16:01:06 152285 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセス

の完了を待ちます。

16:01:06 152285 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

16:01:06 152285 KNAX6110-I コマンド(ls=ls -lt, 行番号=1)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

16:01:06 152285 KNAX6112-I コマンド(alias, 行番号=2)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

16:01:06 152285 KNAX6116-I コマンド($ls, 行番号=3)が正常終了しました。rc=0 E-

Time=0.001s C-Time=0.000s

16:01:06 152285 KNAX6116-I コマンド(/opt/jp1as/cmd/grep, 行番号=3)が正常終了しました。 rc=0 E-Time=0.001s C-Time=0.000s

16:01:06 152285 KNAX0098-I ADSH152285 ジョブが終了しました。rc=0 E-Time=0.013s C-

Time=0.000s

上記の書式で指定したコマンドに対して#-adsh_rc_ignore コマンドの指定を有効にする場合,#adsh_rc_ignore コマンドの引数に指定するコマンド名は,置換前の文字列のベース名を指定する必要があ

ります。

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

JP1/Advanced Shell

417

次のコマンドは別プロセスで実行しないでください。

種類

シェル運用コマンド

シェル拡張コマンド

スクリプト拡張コマンド

コマンド adshfile adshmsvcd【Windows 限定】 adshmsvce【Windows 限定】 adshmdctl【UNIX 限定】 adshecho adshread adshjoberr adshcmdrc

すべて

Windows 版と UNIX 版の差異

次のコマンドを別プロセス化する場合,別プロセス実行には Windows 版と UNIX 版で違いがあります。

• シェル標準コマンド

• スクリプト制御文

• シェル拡張コマンド

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

• 代入式

• 関数

• コマンド置換を含むコマンド(例:cmdA $(cmdB) (cmdA,cmdB は外部コマンドとする))

• 別プロセスで,次のケースでは,定義されたエイリアスが有効になります。

定義されたエイリアスによる置換を実行したくない場合は,コマンド名をクォーテーション('または")

で囲んでください。

ケース 1

次のすべてに該当するとき。

1. エイリアスの定義がされていないときに読み込んだスクリプトを別プロセスで実行する。

2. エイリアスを定義する。

3. 別プロセスで実行するコマンドが,定義されたエイリアスの置換対象である。

例: fn(){

(ls) #3の条件

}

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

JP1/Advanced Shell

418

alias ls='ls -l' #2の条件 fn #1の条件

ケース 2

次のすべてに該当するとき。

1. 別プロセスでエイリアスを定義する。

2. 1 と同一のプロセスで実行するコマンドが,定義されたエイリアスの置換対象である。

例:

(alias ls='ls -l' #1の条件

ls) #2の条件

UNIX 版と比較した Windows 版の別プロセス実行の違いは次のとおりです。

• ルートジョブが拡張出力モードで,別プロセスでエラーが発生した場合,エラーの情報は標準エラー出

力に出力されます。また,エラー情報にファイル名と行番号は出力されません。

• 子孫ジョブを別プロセス実行した際に,子孫ジョブは SPOOLJOB_CHILDJOB パラメーターに

DELETE を指定した場合と同様の動作をする場合があります。

• 別プロセスは環境ファイルの設定内容を使用します。そのため,環境変数 ADSH_ENV に相対パスを

指定したとき,カレントディレクトリを移動した状態で別プロセスを起動すると,環境ファイルを読み

込めずにエラー終了します。

• 関数を別プロセス実行した場合,それ以降の関数情報配列の関数呼び出し行番号配列は,関数を別プロ

セス実行した行番号になります。

• 別プロセスにファイルディスクリプタが引き継がれないで,クローズされます。例えば,別プロセスで

実行するスクリプト内で,親プロセスがオープンしている最中のファイルディスクリプタに対して,別

プロセスが再度オープンしないで入出力を行うとエラーになります。標準出力と標準エラー出力は再度

オープンされた状態です。

• 別プロセスは最小出力モードで動作します。そのため,別プロセスは情報メッセージを表示せず,エ

ラーメッセージの出力先も最小出力モードに従います。

• 別プロセスは SPOOLJOB_CREATE パラメーターに NO を指定した状態で動作します。

SPOOLJOB_CREATE パラメーターに NO を指定した状態の動作については,「 (a) スプールジョブ

作成抑止機能の使用有無を決定する 」を参照してください。

• #-adsh_path_var コマンドで指定した変数は,別プロセスではパスを扱う変数として定義されません。

別プロセスでもパスを扱う変数として定義したい場合は,PATH_CONV_VAR パラメーターと

PATH_CONV_NOVAR パラメーターで指定してください。

注意事項 

別プロセスで次のシェル標準コマンドを実行した場合,コマンドの実行結果が正常終了とエラー終

了のどちらになるかは,カレントプロセスで実行した場合と異なります。異なる点は次のとおりで

す。

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

JP1/Advanced Shell

419

• let コマンド

別プロセスで実行した場合,算術式を指定しないで実行すると,終了コード 1 で正常終了します。

• exit コマンド,return コマンド

別プロセスで実行した場合,引数に数字以外を指定して実行すると,終了コード 1 で正常終了

します。

• getopts コマンド

別プロセスで実行した場合,オプションの終了を検出すると,終了コード 1 でエラー終了しま

す。#-adsh_step_start コマンドの successRC 属性や,#-adsh_rc_ignore コマンドを使用し

て,エラー終了とならないようにしてください。

• read コマンド

別プロセスで実行した場合,ファイルの終了(EOF)を検出すると,終了コード 1 でエラー終

了します。#-adsh_step_start コマンドの successRC 属性や,#-adsh_rc_ignore コマンドを

使用して,エラー終了とならないようにしてください。

UNIX 版では,別プロセスでの実行中に,そのプロセスが終了要求シグナルを受信すると,シグナ

ルの種類によっては別プロセスでの実行を継続する場合があります。別プロセスで実行した内容を

確実に強制終了したい場合は,そのプロセスに 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. ジョブ定義スクリプトの作成

JP1/Advanced Shell

420

5.1.9 エスケープ文字

(1) エスケープ文字の種類 echo コマンドと print コマンドでは,次の表に示す文字をエスケープ文字として解釈します。

\ c

\ f

\ a

\ b

\ n

\ r

\ t

\ v

\

0 nnn

※1

\ x nn

※2

\\

エスケープ文字 意味

アラート文字(ベル)

バックスペース文字

行末の改行を抑止する(

\ c の後ろに指定した文字は出力されない)

フォームフィード文字(改ページ)

改行文字

復帰文字

タブ文字

垂直タブ文字

1〜3 桁の 8 進数で表された ASCII コードの文字(0〜7)

1〜2 桁の 16 進数で表された ASCII コードの文字(0〜9,a〜f,A〜F)

1 つのバックスラッシュ文字 echo コマ

ンド

(凡例)

○:指定できます。

×:指定できません。

注※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 コード文字をエスケープ文字

print コマ

ンド

×

指定した ASCII コード文字が 1 桁の場合,前に 0 を付けて 2 桁で指定しても,同じ意味として解釈さ

れます。例えば,次の 2 つの指定は同じ意味として解釈され,改行文字が 2 回出力されます。

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

JP1/Advanced Shell

421

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 パラ

さい。

5.1.10 スクリプト拡張コマンドの指定

ジョブ定義スクリプトの行の先頭に「#-adsh」が記述されている場合,スクリプト拡張コマンドへの要求

と見なされ,スクリプト拡張コマンドを実行します。

スクリプト拡張コマンドについては,「

9.5 スクリプト拡張コマンド

」を参照してください。

5.1.11 外部コマンドの指定

ジョブ定義スクリプトの組み込みコマンド以外のプログラムを外部コマンドと総称します。外部コマンド

には,UNIX 互換コマンド,OS が提供するコマンドおよびユーザーが独自に作成したプログラムなどが

該当します。ジョブ定義スクリプト中にこれらをコマンド名として記述することで,外部コマンドを実行

できます。

外部コマンドの指定方法を次に示します。

$ 外部コマンドのパス

(1) Windows での外部コマンドの実行

(a) 外部コマンドの拡張子の定義

Windows の場合,拡張子「.com」,「.exe」,「.cmd」,「.bat」の実行ファイルは,ジョブ定義スクリプト

から実行できます。ただし,環境変数 PATHEXT にこれらの拡張子を登録しておくと,ジョブ定義スクリ

プトに拡張子の指定が不要になります。

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

JP1/Advanced Shell

422

ジョブ定義スクリプトから外部コマンドを実行する場合,環境変数 PATHEXT に登録されている拡張子の

順に実行されます。例えば,環境変数 PATHEXT の値に「.COM;.EXE;」が指定され,シェル変数 PATH

の示す場所に「ls.com」と「ls.exe」がある場合は,最初に「ls.com」が実行されます。

外部コマンドの検索例を次に示します。環境変数 PATHEXT の値が「.COM;.EXE;」である場合,次のよ

うに実行されます。 ls ←拡張子がないため,「.com」「.exe」の順に拡張子を付与して検索し実行される。 ls.exe ←拡張子があるため,「ls.exe」が実行される。

ただし,シンボリックリンクを使用して実行ファイルを実行する場合は,シンボリックリンクだけに拡張

子を付与して検索をします。シンボリックリンクが指す実行ファイルには拡張子「.com」,「.exe」,

「.cmd」,「.bat」のどれかを指定してください。

(b) 外部コマンド実行前の処理のスキップ

外部コマンドを実行する前に,外部コマンドのパス,およびその引数に対して次の処理が実行されます。

これらの処理が不要な場合,command コマンドに-w オプションを指定して,外部コマンドを実行してく

ださい。

• "(ダブルクォーテーション)の前の「

\

」を「

\\

」に変換する処理

• "(ダブルクォーテーション)の前に「

\

」を付与する処理

• "(ダブルクォーテーション)で囲む処理(COMPATIBLE_CMD_EXEC パラメーターに V10 を指定

した場合)

command コマンドの-w オプションについては,「 9.3 シェル標準コマンド 」の「

command コマンド

使用例 command -w ."\\prog.exe" "ABC"

(c) バッチファイルの実行時の制限

バッチファイルパス,および引数にスペース,&,(,),[,],{,},^,=,;,!,',+,,,`,~を含むバッ

チファイルを実行する場合,次の制限があります。

• バッチファイルは次のように実行してください。

<cmd.exeパス> /c <バッチファイルパス> [<引数1> <引数2> … <引数n>]

• バッチファイルパスに&,(,),[,],{,},^,=,;,!,',+,,,`,~を含む場合,バッチファイルパス

中の記号を"'¥でエスケープしてください。

• スペースまたは&,(,),[,],{,},^,=,;,!,',+,,,`,~を含む引数は,スペースや記号を"'¥で

エスケープしてください。

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

JP1/Advanced Shell

423

• 環境設定パラメーター COMPATIBLE_CMD_EXEC に V10 を指定した環境で実行する場合,引数は"で

囲まれたものがバッチファイルに渡ります。また,最後の引数は先頭にだけ"が付きます。このため,

バッチファイルから引数を参照するときは"を自動的に取り除く%~1, %~2 … %~n の形式で参照して

ください。

(2) UNIX での外部コマンドの実行

実行権限が付与された実行形式のバイナリファイルのときは,ジョブ定義スクリプトから実行できます。

また,実行権限の付与されたテキストファイルは,ファイルの先頭に「#!

実行プログラムパス

」を記述す

ることで,ジョブ定義スクリプトから実行できます。この場合,#!の指定に従って実行プログラムが実行

されます。

(3) コマンドの実行方法の優先順序

ジョブコントローラはジョブ定義スクリプトに指定されたファイルを実行する場合,次の順に条件判定し

てファイルを実行します。

【Windows 限定】

1. CHILDJOB_PGM パラメーターの条件を満たした場合,子孫ジョブとして実行します。

2. CHILDJOB_SHEBANG パラメーターの条件を満たした場合,子孫ジョブとして実行します。

3. CHILDJOB_SHEBANG パラメーターのデフォルト定義に合致した場合,子孫ジョブとして実行し

ます。

4. CHILDJOB_EXT パラメーターの条件を満たした場合,子孫ジョブとして実行します。

5. 拡張子が exe,bat,cmd,または com のファイルの場合,コマンドとして実行します。

6. 上記条件のどれにも該当しない場合,コマンドの起動に失敗します。ただし,ジョブの実行は継続

されます。

【UNIX 限定】

1. CHILDJOB_PGM パラメーターの条件を満たした場合,子孫ジョブとして実行します。

2. ファイルの実行権限がある場合,手順 3.以降の判定を実施します。実行権限がない場合,コマンド

の起動に失敗しエラー終了します。ただし,ジョブの実行は継続します。

3. CHILDJOB_SHEBANG パラメーターの条件を満たした場合,子孫ジョブとして実行します。

4. CHILDJOB_SHEBANG パラメーターのデフォルト定義に合致した場合,子孫ジョブとして実行し

ます。

5. CHILDJOB_EXT パラメーターの条件を満たした場合,子孫ジョブとして実行します。

6. ファイルがバイナリファイルの場合,コマンドとして実行します。

7. ファイルがテキストファイルの場合,スクリプトとして実行します。

#!が指定されている場合は,#!に指定された実行プログラムで実行します。

#!が指定されていない場合は,「/bin/sh」で実行します。

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

JP1/Advanced Shell

424

子孫ジョブ関連のパラメーターを同時に指定した場合の使用例を次に示します(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

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

JP1/Advanced Shell

425

→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

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

JP1/Advanced Shell

426

■ジョブ定義スクリプトの内容

/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 に指定されたディレクトリ内に関

数と同名の関数定義ファイルが存在する場合は,次の順に判定します。

1. 環境変数 PATH に指定されたディレクトリに関数と同名のジョブ定義スクリプト,または外部コマ

ンドが存在する場合は,子孫ジョブまたは外部コマンドが実行されます。

2. 環境変数 PATH に指定されたディレクトリに該当するジョブ定義スクリプト,または外部コマンド

が存在しない場合は,関数が実行されます。

• 環境変数 PATH とシェル変数 FPATH に指定されたディレクトリのどちらにも該当するファイルが存

在しない場合は,実行するコマンドが存在しないためエラー終了します。

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

JP1/Advanced Shell

427

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 コマンドでジョブ定義スクリプトファイルを実行すると,ジョブ定義スクリプトファイルに記

述された字句の書式チェックをしてから実行します。ただし,ジョブ定義スクリプトファイル内で.(ドッ

ト)コマンドで読み込んでいる外部ファイルについては,書式チェックをしません。

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

JP1/Advanced Shell

428

ジョブ定義スクリプトを実行しないで字句の書式チェックだけを実行する場合は,adshexec コマンドにc オプションを指定して実行してください。

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

JP1/Advanced Shell

429

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 文の条件

指定した任意のコマンドの終了コードは,ジョブおよびジョブステップの終了コードに反映されません。

制御文の実行が完了した時点でのジョブおよびジョブステップの終了コードは制御文のブロック内で最後

に実行されたコマンドの終了コードになります。

ただし,次の条件のどれかに該当する場合は,指定した任意のコマンドの終了コードは,ジョブおよびジョ

ブステップの終了コードに反映されます。ジョブステップが完了した時点でのジョブおよびジョブステッ

プの終了コードは,指定したコマンドの終了コードになります。

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

JP1/Advanced Shell

430

1. 指定したコマンドがコマンド置換ではなく,exit コマンドまたは return コマンドである場合

2. 指定したコマンドがコマンド置換ではなく,特殊組み込みコマンドであり,かつエラーとなった場合

3. 指定した 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 条件式

条件式では,数値比較,文字列比較,ファイル属性,論理演算子および三項演算子を使用します。

条件式の共通仕様を次に説明します。

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

JP1/Advanced Shell

431

• test コマンドまたは let コマンドを使用して条件評価を行います。 test コマンドは代替書式である[]および[[]]を含みます。また,let コマンドは代替書式である(())を含み

ます。

• test コマンドを使用して条件評価する場合,変数と演算子の間にスペースを入れてください。[[]]を使

用する場合は,「[[」の直後と「]]」の直前にスペースを入れてください。

[[]]を使用して条件判定するときの使用例を次に示します。 if [[ $arg1 -eq $args ]]; then

  echo TRUE fi

• let コマンドの引数に test コマンドの引数(-eq など)を指定した場合,let コマンドは変数と解釈して

動作します。

(1) 数値比較

数値の比較に使用する演算子を次の表に示します。なお,数値 1,および数値 2 は-2147483648〜

2147483647 の範囲内で指定してください。範囲外の値を指定した場合,正しい結果を求めることができ

ないため,注意してください。

表 5-22 test コマンドで数値を比較するときに使用する演算子

演算子を使った条件式

数値 1 -eq 数値 2

数値 1 -ne 数値 2

数値 1 -ge 数値 2

数値 1 -gt 数値 2

数値 1 -le 数値 2

数値 1 -lt 数値 2

判定

数値 1 と数値 2 が等しい場合は真。

数値 1 と数値 2 が等しくない場合は真。

数値 1 が数値 2 以上の場合は真。

数値 1 が数値 2 より大きい場合は真。

数値 1 が数値 2 以下の場合は真。

数値 1 が数値 2 より小さい場合は真。

表 5-23 let コマンドで数値を比較する時に使用する演算子

演算子を使った条件式

数値 1 == 数値 2

数値 1 != 数値 2

数値 1 >= 数値 2

数値 1 > 数値 2

数値 1 < 数値 2

数値 1 <= 数値 2

判定

数値 1 と数値 2 が等しい場合は真。

数値 1 と数値 2 が等しくない場合は真。

数値 1 が数値 2 以上の場合は真。

数値 1 が数値 2 より大きい場合は真。

数値 1 が数値 2 より小さい場合は真。

数値 1 が数値 2 以下の場合は真。

数値比較の使用例を次に示します。

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

JP1/Advanced Shell

432

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) 文字列比較

文字列の比較に使用する演算子を次の表に示します。文字列比較の演算子は test コマンド,[[ ]],[ ]で使

用できます。let コマンド,(( ))では使用できません。

表 5-24 文字列の比較に使用する演算子

演算子を使った条件式 判定

文字列

-n 文字列

-z 文字列

-o 文字列

文字列 = pattern

文字列 == pattern

文字列 != pattern

文字列 1 < 文字列 2

文字列 1 > 文字列 2

文字列の長さが 1 文字以上の場合は真。ただし,[[ ]]コマンドでは使用できません。

文字列の長さが 1 文字以上の場合は真。

文字列の長さが 0 なら,KNAX6041-E メッセージを出力し,終了コード 2 でエラー終

了します。ただし,[[ ]]コマンドで文字列を指定しなかった場合は書式不正となり,

KNAX6041-E メッセージを出力し,終了コード 1 でエラー終了します。

文字列の長さが 0 の場合は真。

文字列が現在有効に設定されているシェルオプションの文字列と一致する場合は真。

シェルオプションの文字列については,「

5.6.1 set コマンドで設定できるシェルオプ

ション

」を参照してください。

文字列と pattern が一致する場合は真。

文字列と pattern が一致する場合は真。

文字列と pattern が不一致の場合は真。

文字列 1 と文字列 2 を ASCII コード順に比較します。文字列 1 より文字列 2 が大きい

場合は真。

文字列 1 と文字列 2 を ASCII コード順に比較します。文字列 1 より文字列 2 が小さい

場合は真。

注※

[[ ]]で使用できます。その他の書式では使用できません。

比較する文字列にはスペースなどが含まれる場合があるため,"(ダブルクォーテーション)で囲むことを

推奨します。使用例を次に示します。

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

JP1/Advanced Shell

433

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) ワイルドカード

」を参照してください。

(3) ファイル属性

ファイルの形式や権限などの属性を評価する場合に使用する演算子を次の表に示します。ファイル属性評

価の演算子は test コマンド,[[ ]],[ ]で使用できます。let コマンド,(( ))では使用できません。

表 5-25 ファイルの形式や権限などの属性を評価する演算子

演算子を使った条件式 判定

-a file

-b file

-c file

-d file

-e file

-f file

-g file

-h file

-k file

-p file file が存在する場合は真。 file が存在し,ブロック型デバイスの場合は真。 file が存在し,キャラクタ型デバイスの場合は真。 file が存在し,ディレクトリの場合は真。 file が存在する場合は真。 file が存在し,通常ファイルの場合は真。 file が存在し,setgid ビットがセットされている場合は真。 file が存在し,シンボリックリンクの場合は真。 file が存在し,スティッキービットがセットされている場合は真。 file が存在し,パイプファイルの場合は真。

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

JP1/Advanced Shell

434

-t fd

-u file

-w file

-x file

演算子を使った条件式

-r file

-s file

-G file

-L file

-O file

-S file file1 -ef file2 file1 -nt file2

判定

Windows の場合, file が存在する場合は真。

UNIX の場合, file が存在し,カレントプロセスから読み込み可能なときは真。

次の条件をすべて満たす場合は真。

【Windows の場合】

• file が存在する

• file がフォルダ以外である

• ファイルサイズが 1 バイト以上である

【UNIX の場合】

• file が存在する

• ファイルサイズが 1 バイト以上,またはディレクトリである

-s は UNIX と Windows で真の条件が異なるため,ディレクトリまたはフォルダの存在チェッ

クには-d を使用してください。

端末をオープンしている fd の場合は真。 file が存在し,setuid ビットがセットされている場合は真。

Windows の場合,読み取り専用属性が設定されていないか,またはディレクトリのときは真。

UNIX の場合, file が存在し,カレントプロセスから書き込み可能なときは真。

【Windows の場合】

次のどれかに該当するときは真。

• file がシンボリックリンク以外の場合

・拡張子が「.com」,「.exe」,「.cmd」または「.bat」である

・ディレクトリである

・環境ファイルの CHILDJOB_EXT パラメーターまたは CHILDJOB_SHEBANG パラ

メーター(デフォルト定義含む)で設定した条件に一致するファイルである

• file がシンボリックリンクの場合

・シンボリックリンク,およびリンク先ファイルの拡張子が「.com」,「.exe」,「.cmd」

または「.bat」である

・ディレクトリへのシンボリックリンク,かつ参照先がディレクトリである。

【UNIX の場合】 file が存在し,カレントプロセスから実行可能なときは真。 file が存在し, file が属するグループが呼び出し元のプロセスの実効グループ ID と一致して

いる場合は真。 file が存在し,シンボリックリンクの場合は真。 file が存在し,所有者がプロセスの有効ユーザー ID の場合は真。 file が存在し,ソケットの場合は真。 file1 と file2 が存在し, file1 と file2 の実体が同じ(シンボリックリンク先が同じまたはハー

ドリンク先が同じ)場合は真。 file1 と file2 が存在し, file1 の最終修正日時が file2 よりも新しい場合は真。また, file1 が

存在し, file2 が存在しない場合も真。

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

JP1/Advanced Shell

435

演算子を使った条件式 file1 -ot file2

判定 file1 と file2 が存在し, file1 の最終修正日時が file2 よりも古い場合は真。また, file2 が存

在し, file1 が存在しない場合も真。

常に偽。 -H file

注※

CHILDJOB_SHEBANG パラメーターの詳細については,「

7.3.7 CHILDJOB_SHEBANG パラメー

を参照してください。

CHILDJOB_EXT パラメーターの詳細については,「 7.3.5 CHILDJOB_EXT パラメーター(子孫ジョ

ファイル属性の演算子を使用する際の注意事項を次に示します。

• file にシンボリックリンクを指定した場合,リンク先が評価の対象となります。ただし,次の演算子は

評価の対象が異なります。

• -h,-L はシンボリックリンクが評価の対象となります。

• -x はシンボリックリンク,リンク先の両方が評価の対象となります【Windows 版】。

• 次の演算子は Windows 環境では,存在しないファイル種別やフラグについて判定されるため,常に

偽となります【Windows 版】。

-b,-c,-g,-k,-p,-u,-S

• 次の演算子は UNSUPPORT_TEST パラメーターを指定することで,メッセージを出力してエラーと

したり,正常にしたりすることもできます。パラメーターの詳細については,「 7.3 環境設定パラメー

ター 」の「

7.3.47 UNSUPPORT_TEST パラメーター(サポートしていない条件式の実行時の動作

-G,-O

• 次の演算子は UNSUPPORT_TEST パラメーターを指定すると,パラメーターの指定に従い判定結果

を返します。演算子として判定を行う場合は次の演算子に対して UNSUPPORT_TEST パラメーター

を指定しないでください【Windows 版】。

-h,-L,-ef

• 演算子-t の引数には 10 以上の値を指定しないでください。指定した場合,値は保証できません。

ファイル属性の使用例を次に示します。

FILE="$HOME/script/test.ash" if [[ -a $FILE ]]; then

echo "$FILE exists." else

echo "$FILE does not exist." fi

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

JP1/Advanced Shell

436

(4) 論理演算

論理演算で評価する場合に使用する演算子を次の表に示します。

表 5-26 論理演算で評価する場合に使用する演算子

演算子を使った条件式 判定 expr1

-a expr2 expr1

-o expr2 expr1

&& expr2 expr1 || expr2

! expr expr1 と expr2 の結果が両方とも真の場合,真。 expr1 と expr2 の結果がどちらか一方でも真の場合,真。 expr1 と expr2 の結果が両方とも真の場合,真。 expr1 と expr2 の結果がどちらか一方でも真の場合,真。 expr の結果が偽の場合,真。

(凡例)

○:使用できます。

×:使用できません。

注※

[[ ]]では使用できません。

論理演算の使用例を次に示します。 test コマン

ドでの使用

可否

○ let コマンド

での使用

可否

×

×

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

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

JP1/Advanced Shell

437

echo "False" fi if test "$a" != "$b" || test "$a" != "$c"; then

echo "True" else

echo "False" fi

(5) 三項演算子 if-else の省略記法である三項演算子を使用できます。JP1/Advanced Shell で使用できる三項演算子を次

の表に示します。三項演算子は let コマンド,(( ))で使用できます。test コマンド,[[ ]],[ ]では使用でき

ません。

表 5-27 JP1/Advanced Shell で使用できる三項演算子

演算子を使った条件式 判定 expr1 ?

expr2 : expr3 expr1 の結果が真であれば expr2 の結果,偽であれば expr3 の結果を返

します。

三項演算子の使用例を次に示します。

VAR1=3

VAR2=2

ANSWER=0

((ANSWER=VAR1>VAR2?8+VAR1:8*VAR2)) echo $ANSWER

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

JP1/Advanced Shell

438

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-28 JP1/Advanced Shell で使用できる算術演算子

算術演算子

num num1*num2 num1

/ num2 num1

% num2 num1

+ num2 num1

num2 num1

** num2

意味

単項マイナス演算子です。num の値を負の値にします。 num1 と num2 を掛けた結果を返します。 num1 を num2 で割った結果を返します。 num1 を num2 で割ったときの余りを返します。 num1 と num2 を足した結果を返します。 num1 から num2 を引いた結果を返します。 num1 を num2 で累乗した結果を返します。 num2 に 0 より小さい値を指定した場合は KNAX6068-E メッセージを出力し,終了コード 2 でエ

ラー終了します。

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

JP1/Advanced Shell

439

5.3.2 増分・減分演算子

増分・減分演算子は,同一変数への増分,減分処理を簡潔に表現するための演算子です。JP1/Advanced

Shell で使用できる増分・減分演算子を次の表に示します。

表 5-29 JP1/Advanced Shell で使用できる増分・減分演算子

増分・減分演算子 num

++ num

--

++ num

-num

意味 num を参照したあと,num を 1 加算します。 num を参照したあと,num を 1 減算します。 num を 1 加算したあと,num の値を参照します。 num を 1 減算したあと,num の値を参照します。

5.3.3 ビットごとの論理演算子

ビットごとの演算子は,変数の値に対してビット単位で論理演算処理をするための演算子です。JP1/

Advanced Shell で使用できるビットごとの論理演算子を次の表に示します。

表 5-30 JP1/Advanced Shell で使用できるビットごとの論理演算子

ビットごとの論理演算子 num1

& num2 num1|num2 num1

^ num2 num1

<< num2 num1

>> num2

~ num

意味 num1 と num2 をビット単位で論理積演算した結果を返します。 num1 と num2 をビット単位で論理和演算した結果を返します。 num1 と num2 をビット単位で排他的論理和演算した結果を返します。 num1 を num2 ビットだけ左シフトした結果を返します。 num1 を num2 ビットだけ右シフトした結果を返します。 num をビット否定した結果です。1 の補数を返します。

5.3.4 代入演算子

代入演算子は,変数への値の代入を行うための演算子です。また,変数の四則演算,ビットごとの論理演

算を行った結果を代入できます。JP1/Advanced Shell で使用できる代入演算子を次の表に示します。

表 5-31 JP1/Advanced Shell で使用できる代入演算子

代入演算子 意味 num1

= num2 num1 に num2 を代入します。 num1*

= num2 num1 と num2 を掛けた結果を num1 に代入します。

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

JP1/Advanced Shell

440

代入演算子 num1

/= num2 num1

%= num2 num1

+= num2 num1

-= num2 num1

<<= num2 num1

>>= num2 num1

&= num2 num1|

= num2 num1

^= num2

意味 num1 を num2 で割ったときの結果を num1 に代入します。 num1 を num2 で割ったときの余りを num1 に代入します。 num1 と num2 を足した結果を num1 に代入します。 num1 から num2 を引いた結果を num1 に代入します。 num1 を num2 ビットだけ左シフトした結果を num1 に代入します。 num1 を num2 ビットだけ右シフトした結果を num1 に代入します。 num1 と num2 をビット単位で論理積演算した結果を num1 に代入します。 num1 と num2 をビット単位で論理和演算した結果を num1 に代入します。 num1 と num2 をビット単位で排他的論理和演算した結果を num1 に代入します。

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

JP1/Advanced Shell

441

5.4 条件判定と算術演算の優先順位

優先順位は,let コマンドで使用できる次の演算子を対象とします。

• 数値比較

• 論理演算子

• 三項演算子

• 算術演算子

条件式および算術演算の優先順位を次の表に示します。優先順位は項番 1 が最も高く,以降項番の順に低

くなります。演算処理は優先順位が高い方から順に行われます。

表 5-32 演算子の優先順位

優先順位

9

10

11

12

13

14

7

8

5

6

3

4

1

2

演算子

-(単項マイナス演算子),!,++,--,~

**

*

,/,%

+,-

<<,>>

<,<=,>,>=

==,!=

&

^

|

&&

||

?:(三項演算子)

=,+=,-=,

*

=,/=,%=,&=,^=,

|

=,<<=,>>=

例えば次の計算式では,「**」の方が「*」よりも優先順位が高いため,「3**3」が先に計算されます。その

結果,a に代入される値は 54 になるため,「54」が標準出力に出力されます。 let a=2*3**3 ← 3の3乗に2を掛ける echo $a ← aとして「54」が標準出力に出力される

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

JP1/Advanced Shell

442

5.5 シェル変数

シェル変数とは,値を定義してからジョブ定義スクリプトが終了するまで引き継がれる変数のことです。

JP1/Advanced Shell はシェル変数を設定および使用できます。シェル変数の値を参照・変更すると,ジョ

ブ定義スクリプトを実行する環境をカスタマイズできます。

Windows の場合,システムのプロパティで設定した環境変数など,ジョブコントローラ起動時に設定さ

れている環境変数の名前は,VAR_ENV_NAME_LOWERCASE パラメーターを次のように指定すること

で,大文字に変換されてシェル変数として取り込まれます。

VAR_ENV_NAME_LOWERCASE パラメーター

の指定

ENABLE

ジョブコントローラ起動時に設定されている環境変数名の変換

DISABLE

環境変数の名称は HOME,PATH,SHELL だけ大文字に変換し,それ以

外の環境変数名はそのままの名称でシェル変数として取り込みます。

環境変数の名称はすべて大文字に変換して,シェル変数として取り込みま

す。

また,ジョブコントローラ起動時に設定されている環境変数の名前が JP1/Advanced Shell で使用できる

変数の命名規則に一致しない場合,シェル変数に取り込まれますが,そのシェル変数を使用することはで

きません。変数の命名規則については,「 (1) 変数の命名規則 」を参照してください。

5.5.1 JP1/Advanced Shell が設定するシェル変数

JP1/Advanced Shell が設定するシェル変数を次の表に示します。これらのシェル変数に対して,値の設

定,属性の変更,設定の解除はしないでください。

表 5-33 JP1/Advanced Shell が設定するシェル変数

?

$

-

シェル変数名

#

_

設定される値

現在のジョブ定義スクリプトまたは関数に渡された引数の数が設定されます。

シェルに設定されているシェルオプションの省略形の文字列が設定されます。

ただし,省略形の文字がないシェルオプションは,この変数には設定されません。

直前に実行したコマンドの終了コードが設定されます。

シェルのプロセス ID として,次に示すプログラムのプロセス ID が設定されます。

【Windows 限定】 adshexecsub.exe または adshesub.exe のプロセス ID

【UNIX 限定】 adshexec のプロセス ID adshexec コマンド起動時に設定されている値が設定されます。値が設定されていない場合は, adshexec コマンド起動時の argv[0]の内容が設定されます。

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

JP1/Advanced Shell

443

!

シェル変数名

_

ADSH_DIR_BIN

※1

ADSH_DIR_CMD

※1

ADSH_DIR_PARTS_J

A

※1

ADSH_DIR_PARTS_

EN

※1

ADSH_RC_STEPLAS

T

※1

ADSH_RC_STEPMA

X

※1

設定される値

また,子プロセスとして起動した外部コマンド,子孫ジョブの起動時には,argv[0]の内容が設定さ

れます。

最後にバックグラウンドで実行したコマンドのプロセス ID が設定されます。

JP1/Advanced Shell のプログラムフォルダ(bin)のパス名が設定されます。

※2

JP1/Advanced Shell の UNIX 互換コマンドのフォルダ(cmd)のパス名が設定されます。

※3

JP1/Advanced Shell のスクリプト開発部品フォルダ(parts)配下の日本語フォルダ(ja)のパス

名が設定されます。

JP1/Advanced Shell のスクリプト開発部品フォルダ(parts)配下の英語フォルダ(en)のパス名

が設定されます。

過去に実行した最終ジョブステップの終了コードが設定されます。

ジョブステップが 1 つも実行されていない場合は,シェル変数が未定義です。

過去に実行した全ジョブステップの終了コードの最大値が設定されます。

ジョブステップが 1 つも実行されていない場合は,シェル変数が未定義です。

ADSH_RC_STEPMI

N

※1

過去に実行した全ジョブステップの終了コードの最小値が設定されます。

ジョブステップが 1 つも実行されていない場合は,シェル変数が未定義です。

ADSH_STEPRC_

ジョ

ブステップ名

※1

ジョブステップ名

」で示すジョブステップの終了コードが設定されます。「

ジョブステップ名

」で示

すジョブステップが実行されていない場合は,シェル変数が未定義です。

重複するジョブステップ名が存在する場合,最後に実行されたジョブステップの終了コードが格納さ

れます。

LINENO

OLDPWD

OPTARG

OPTIND

PPID

実行中のジョブ定義スクリプトの現在行の行番号が設定されます。 cd コマンドで設定された直前の作業ディレクトリが設定されます。 getopts コマンドで処理された最後のオプション引数の値が設定されます。 getopts コマンドで処理された最後のオプション引数のインデックスが設定されます。

Windows の場合は 0 が設定されます。

UNIX の場合はシェルの親のプロセス番号が設定されます。

PWD

RANDOM

REPLY

SECONDS

関数情報配列

※1

現在の作業ディレクトリが設定されます。

0 から 32767(=0x7FFF)までの整数の乱数が設定されます。

引数を指定しない read コマンドによって読み込まれた内容が設定されます。

シェルが起動してからの経過秒数が設定されます。 adshexec コマンドで実行中の関数の情報が一次元配列で設定されます。次に示す配列があります。

• 呼び出し関数名称配列

• 関数呼び出し行番号配列

• 関数定義スクリプトファイル名配列

関数情報配列については,「 関数情報配列

」を参照してください。

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

JP1/Advanced Shell

444

注※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. ジョブ定義スクリプトの作成

JP1/Advanced Shell

445

表 5-34 JP1/Advanced Shell で使用できるシェル変数

シェル変

数名

CDPATH

ユーザーが設定する値

ENV

FPATH

HOME

IFS

PATH

PS4

SHELL

TMPDIR

ADSH_PA

RSER_LAN

G cd コマンドで移動するディレクトリが作業ディレクトリの下に存在しない場合,検索する候補のパスを指定し

ます。

•【Windows,Linux 限定】

KSH_ENV_READ パラメーターが YES,または省略されていた場合,シェル起動時に読み込む.env ファイ

ル名を指定します。

•【AIX,HP-UX,Solaris 限定】

KSH_ENV_READ パラメーターが YES の場合,シェル起動時に読み込む.env ファイル名を指定します。

関数定義ファイルの格納ディレクトリを指定します。オートロード機能が有効な関数が参照された場合,または

実行する関数が定義されていない場合に,指定したディレクトリを検索します。関数名と同じ名称のファイルの

内容を読み込み,現在の環境で定義して実行します。

ホームディレクトリを指定します。

Internal Field Separator の略です。指定された文字によって文字列の区切りを示します。また,IFS の先頭文

字は「$

*

」を置換用の引数を区切る文字として使用します。初期値はスペース,タブ文字,改行文字です。

コマンドの検索パスを指定します。

シェルオプション xtrace が有効の場合に,各行の先頭に配置されるプロンプト文字列です。初期値は+です。

シェル実行時に保持されるシェルのパス名を指定します。

一時ファイルはすべて環境設定パラメーター TEMP_FILE_DIR に指定されたディレクトリに作成されるため,

このシェル変数を変更しても無効となります。

JP1/Advanced Shell が動作する環境の環境変数 LANG の値と異なるエンコーディングの JSON データを入力

する場合,このシェル変数に値を設定しておくことで,adshparsejson コマンドを実行する間はエンコーディ

ングを統一して動作させることができます。

このほかに,PATH_CONV_VAR パラメーター,または#-adsh_path_var コマンドを使用した場合,

Windows と UNIX 間でディレクトリのパスを変換するためのシェル変数を定義して使用できます。シェ

ル変数の定義については,「 5.8.5 パス名を扱うシェル変数を定義する 」を参照してください。

5.5.3 関数情報配列 adshexec コマンドが実行する関数の情報は,一次元配列である関数情報配列に格納されます。

関数情報配列の使用有無は環境設定パラメーター VAR_SHELL_FUNCINFO で定義します。配列名も環

境設定パラメーター VAR_SHELL_FUNCINFO の指定によって決まります。環境設定パラメーター

VAR_SHELL_FUNCINFO については,「

VAR_SHELL_FUNCINFO パラメーター(関数情報配列の使

関数情報配列の特徴は次のとおりです。

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

JP1/Advanced Shell

446

• 関数情報配列はジョブ定義スクリプトの実行時から終了まで存在します。ただし,.env ファイル内で

関数を実行した場合,関数情報配列は存在しません。

• 要素数の範囲は 0〜65,535 です。

• 属性は文字列書式属性へ変更できます。属性を関数内ローカル変数へ変更することはできません。

• 関数情報配列は読み込み専用属性です。そのため,配列の値の参照はできますが,値の設定や配列の無

効化はできません。

(1) 関数情報配列の種類

関数情報配列には次の表に示す種類があります。

表 5-35 関数情報配列の種類と配列名

配列の種類 説明

呼び出し関数名称配列 呼び出しスタックにあるすべての関数名を格納す

る配列です。

要素番号 0 には現在実行中の関数名を格納しま

す。最も下の要素には"main"を格納します。

シェル標準コマンドの.(ドット)コマンド,およ

びスクリプト拡張コマンドの#-adsh_script で外

部スクリプトを呼び出した場合は"source"を格納

します。

関数呼び出し行番号

配列

※1

呼び出しスタックにあるすべての関数が呼び出さ

れたスクリプトファイルの行番号を格納する配列

です。

要素番号 0 には現在実行中の関数を呼び出した行

番号を格納します。最も下の要素には"0"を格納し

ます。

外部スクリプトの場合はシェル標準コマンドの.

(ドット)コマンド,およびスクリプト拡張コマ

ンドの#-adsh_script を実行した行番号を格納し

ます。

属性は整数型へ変更することもできます。

関数定義スクリプト

ファイル名配列

※2

呼び出しスタックにある関数が定義されたスクリ

プトファイル名を格納する配列です。

要素番号 0 には現在実行中の関数を定義したスク

リプトファイル名を格納します。最も下の要素に

はジョブ定義スクリプト名を絶対パスで格納しま

す。

外部スクリプトの場合は外部スクリプトファイル

を絶対パスで格納します。

配列名

VAR_SHELL_FUNCIN

FO に TYPE_A を指定

した場合

VAR_SHELL_FUNCIN

FO に TYPE_B を指定

した場合

ADSH_FUNCNAME FUNCNAME

ADSH_LINENO

ADSH_SOURCE

BASH_LINENO

BASH_SOURCE

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

JP1/Advanced Shell

447

注※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 の実行によって次の図のように遷移します。

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

JP1/Advanced Shell

448

(3) 関数情報配列に関する注意事項

• 関数情報配列はジョブ定義スクリプト内で変更できません。そのため,CUI や GUI でのデバッグ時

は,値の参照(watch,print,および info variables コマンド)はできますが,更新(set コマンド)

はできません。

• 関数情報配列をエクスポートすると,次のように動作します。

• 配列ではなく,変数として要素 0 の内容が引き継がれます。ただし,関数情報配列はジョブ起動時

に再設定されるため,子孫ジョブの場合は上書きされてしまいます。

• 子孫ジョブの稼働実績情報には,上書き前のエクスポートされた値が出力されます。

• #-adsh_step_start コマンドの stepVar 属性には,関数情報配列の名称は指定できません。指定すると

KNAX6312-E メッセージを出力してエラー終了します。

•【Windows 版限定】関数定義スクリプトファイル名配列には「

\

」を含むスクリプトファイルの絶対パ

スが格納されます。echo コマンド,print コマンドではシェル変数展開後の「

\

」をエスケープ文字と

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

JP1/Advanced Shell

449

して扱います。そのため,echo コマンド,print コマンドで関数定義スクリプトファイル名配列の値を

出力する場合は,次のように指定し実行してください。

• echo コマンドで出力する場合は-E オプションを指定するか,または環境設定パラメーター

ESCAPE_SEQ_ECHO_DEFAULT に NO を指定してください。

• print コマンドで出力する場合は-r オプションを指定してください。

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

JP1/Advanced Shell

450

5.6 シェルオプション

シェルオプションは,使用できる機能を制限したり,実行モードの切り替えをしたりできます。シェルオ

プションの設定方法は 2 つあります。

• ジョブ定義スクリプト内で set コマンドを実行し,設定します。

• adshexec コマンドのオプションとして設定します。

5.6.1 set コマンドで設定できるシェルオプション set コマンドで設定できるシェルオプションを次の表に示します。set コマンドについては「

9.3 シェル

標準コマンド

」の「 set コマンド(シェルオプションを設定する,配列を作成する,または変数の値を表示

表 5-36 set コマンドで設定できるシェルオプション

名称 allexport

※1 braceexpand bgnice

※2 noglob

設定方法 シェルオプションを設定した場合の意味

-a

-o allexport

変数をすべて自動的にエクスポートします。

-o braceexpand ブレース展開を有効にします。ブレース展開とは,ブレース({ })で囲ん

だ部分を複数の単語にする展開のことです。ブレースで囲まれた 1 つ

以上のコンマで区切られた文字をブレースの前後の文字と結合し,1

つの変数として展開します。例えば,a{1,2,3}は a1,a2,a3 に展開さ

れます。

-o bgnice すべてのバックグラウンドジョブの優先順位を下げて実行します。

-f

-o noglob

ファイル名置換を禁止します。ファイル名置換については,「 置換

」を

参照してください。

また,ブレース展開を無効にします。ブレース展開を有効にする場合

は,noglob シェルオプションを無効にしてください。シェルオプショ

ンを無効にする方法については,「 シェル標準コマンド 」の「

set コマ

ンド(シェルオプションを設定する,配列を作成する,または変数の

デフォル

ト値

無効

有効

無効

無効 nounset verbose

※3 xtrace

-u

-o nounset

-v

-o verbose

-x

-o xtrace

置換対象の変数に値が設定されていない場合,ジョブはエラー終了し,

シェルが終了します。

無効

ジョブ定義スクリプトから読み込んだ内容をコマンド実行前に標準エ

ラー出力に出力します。

シェル変数 PS4 の値を行の先頭に配置した上で,実行されたコマンド

とその引数を標準エラー出力に出力します。ただし,[[ ]]コマンド,ス

クリプト拡張コマンドおよびその引数は出力しません。また,(( ))に

よる算術演算は let コマンドに置き換えられて出力されます。

無効

無効

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

JP1/Advanced Shell

451

注※1

Windows 版では,環境設定パラメーターで VAR_ENV_NAME_LOWERCASE DISABLE を指定し

た場合は,変数名に英小文字を含む変数をエクスポートできません。そのため,allexport シェルオプ

ションを有効にしたあとに,英小文字を含むシェル変数を定義または値を更新すると,エラーメッセー

ジを出力してバッチジョブを終了します。

注※2

Windows 版では,adshjava コマンドの優先度は変更されません。また,

COMPATIBLE_CMD_EXEC パラメーターに V10 を指定した場合,UAP などの外部コマンドの優先

度も変更されません。

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

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

JP1/Advanced Shell

452

注意事項

実行時パラメーターや JP1/Advanced Shell エディタでデバッグ実行をする場合,コマンドの実行結

果は標準エラー出力へ出力されます。set コマンドで verbose オプションを指定すると,コマンドの実

行結果のメッセージは次の行の内容を出力したあとで出力されます。例を次に示します。

ジョブ定義スクリプト

001: set -o verbose

002: echo "Line 002"

003: echo "Line 003"

デバッグ実行時の出力例を次に示します。

KNAX7018-I ブレークポイント "1": ファイル名="test.ash" 行番号=1

KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。

1: set -o verbose

現在位置: set

(adshdb) step ←ジョブ定義スクリプトの001行目のsetコマンドを実行 echo "Line 002" ←ジョブ定義スクリプトの002行目を読み込んだ内容を出力

KNAX6112-I コマンド(set, 行番号=1)が正常終了しました。rc=0 E-Time=0.000s C-

Time=0.000s ←ジョブ定義スクリプトの001行目のsetコマンドの結果出力

KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。

2: echo "Line 002"

現在位置: echo

(adshdb) step

Line 002

:

5.6.2 adshexec コマンドで設定できるシェルオプション adshexec コマンドで設定できるシェルオプションを次の表に示します。adshexec コマンドについては

「 8.3 シェル運用コマンド 」の「

adshexec コマンド(バッチジョブを実行する)

表 5-37 adshexec コマンドで設定できるシェルオプション

名称 noexec xtrace

設定方法

-c

-x

シェルオプションを設定した場合の意味

コマンドを読み取り,構文エラーがないかをチェックします。ただし,コマンドは実行しませ

ん。

シェルオプション xtrace を有効にした場合と同じ動作になります。詳細については,「

実行し

たコマンドとその引数を出力する

」を参照してください。

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

JP1/Advanced Shell

453

5.7 ジョブ情報の環境変数

ジョブ開始時やジョブステップ開始時に,ジョブ名,ジョブ識別子およびジョブステップ名を環境変数に

設定し,ジョブ定義スクリプトファイルやユーザープログラムから参照できます。

• ADSH_JOB_NAME(ジョブ開始時にジョブ名が設定される)

• ADSH_JOBID(ジョブ開始時にジョブ識別子が設定される)

• ADSH_STEP_NAME(ジョブステップ開始時にジョブステップ名が設定される)

これらの環境変数については,「 2.5 環境変数を設定する 」を参照してください。

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

JP1/Advanced Shell

454

5.8 ジョブ,ジョブステップおよびコマンドを定義する

スクリプト拡張コマンドを使用してジョブ名を宣言したり,ジョブ,ジョブステップおよびコマンドの定

義をしたりできます。スクリプト拡張コマンドについては,「

9.5 スクリプト拡張コマンド

」を参照して

ください。

5.8.1 ジョブ名を宣言する

#-adsh_job コマンドを使用して,ジョブ定義スクリプトのジョブ名を宣言します。

指定方法を次に示します。指定方法 1 または指定方法 2 のどちらかの方法で指定してください。

指定方法 1

1行目:#!任意文字列

2行目:△

0

#-adsh_job ジョブ名

指定方法 2

1行目:△

0

#-adsh_job ジョブ名

#-adsh_job コマンドを指定しない場合,デフォルトの属性値は次の表のようになります。

属性

ジョブ名

省略または未宣言時の仮定値

ADSH

ジョブ識別子

ジョブ識別子が 000010 の場合:ADSH000010

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

#-adsh_job_stop コマンドを使用して,ジョブステップ終了時に,ジョブを打ち切るかどうかを判断する

条件を定義します。

(1) 判定するタイミング

ジョブステップ終了時に,終了コードがこの属性で定義されているかを毎回判定します。定義されていれ

ば後続のジョブ定義スクリプトを実行しないでジョブが終了します。

(2) 有効範囲

指定した個所以降のジョブ定義スクリプトの実行で有効になります。また,先行ジョブ定義スクリプトで

このコマンドが指定されている場合,先行ジョブ定義スクリプトの指定はリセットされ,新たに指定した

条件だけが有効になります。

指定例を次に示します。

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

JP1/Advanced Shell

455

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. ジョブ定義スクリプトの作成

JP1/Advanced Shell

456

5.8.3 ジョブステップを定義する

#-adsh_step で始まるジョブステップ定義コマンドを使用して,ジョブ定義スクリプトの一部分を,ジョ

ブステップとしてグループ化します。ジョブステップとは,グループ化した一まとまりのコマンド群のこ

とです。

(1) グループ化の方法

ジョブステップとして通常実行するコマンド群は,#-adsh_step_start コマンドから#-adsh_step_error

コマンドまたは#-adsh_step_end コマンドまでのブロック内に記述します。このブロックをジョブステッ

プ正常ブロックと呼びます。

ジョブステップ正常ブロック内の最後のコマンドがエラー終了した場合にだけ実行するコマンド群を,#adsh_step_error コマンドから#-adsh_step_end コマンドまでのブロック内に記述します。このブロック

をジョブステップエラーブロックと呼びます。

(2) ジョブステップ実行の流れ

ジョブステップ実行の流れを,次に示します。

1. エラー終了した先行ジョブステップやエラー終了したコマンドの有無と run 属性の指定によって,ジョ

ブステップをスキップするかどうかを決定します。run 属性については,「 9.5 スクリプト拡張コマン

」の「

#-adsh_step_start コマンド,#-adsh_step_error コマンド,#-adsh_step_end コマンド

2. ジョブステップ正常ブロック内のコマンドを順に実行します。コマンドがエラー終了した場合,onError

属性が stop のときは,後続コマンドを実行しないでジョブステップ正常ブロックを抜けます。onError

属性が cont のときは後続コマンドを実行してからジョブステップ正常ブロックを抜けます。

3. #-adsh_step_error が定義されている場合,ジョブステップ正常ブロック内で最後に実行したコマンド

がエラー終了したときだけ,ジョブステップエラーブロック内のコマンドを順に実行します。

(3) ジョブステップ内でだけ有効なシェル変数の宣言 stepVar 属性を指定すると,このジョブステップ内でだけ有効なシェル変数を宣言できます。宣言したシェ

ル変数をエクスポートしても,ジョブステップ内でだけエクスポートされた状態になります。

ジョブステップ開始時,JP1/Advanced Shell が自動的にシェル変数を未定義の状態とします。ただし,

ジョブステップ内で有効なシェル変数として PATH を指定した場合は,ジョブステップ開始前の値を引き

継ぎます。

ジョブステップ終了時,JP1/Advanced Shell が自動的にシェル変数をジョブステップ開始時の状態に戻

します。

宣言するシェル変数は,ジョブステップ外のシェル変数と同名のシェル変数を宣言できます。その場合の

注意事項を次に示します。

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

JP1/Advanced Shell

457

• 宣言したシェル変数は,ジョブステップ外の同名シェル変数とは,まったく別の変数として扱います。

• ジョブステップ開始時は,宣言したシェル変数は未定義状態になります。ジョブステップ外の同名シェ

ル変数の値は,別のシェル変数として扱うため引き継ぎません。

• ジョブステップ外の同名シェル変数を,ジョブステップ内で参照・更新できません。

• ジョブステップ終了後は,再びジョブステップ外の同名シェル変数が参照・更新できます。

使用例を次に示します。

ジョブ定義スクリプトファイルの使用例

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 と仮定します。

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

JP1/Advanced Shell

458

#-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 シェル変数へのパス追加の例の番号は,次に示す説明の順番と対応して

います。

1. PATH の初期値は「a:b」とする。

2. ジョブステップ内で有効。PATH の値は「x:a:b」になる。

3. stepVar に PATH を指定する。シェル変数は削除されないで,値は「x:a:b」のまま。

4. ジョブステップ内で有効。PATH の値は「y:x:a:b」になる。

5. PATH をジョブステップ開始時の値に戻す。PATH の値は「x:a:b」になる。

PATH_CONV_VAR パラメーター,または#-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 コマンドに引数を指定しないで実行した場合は,ジョブステップ

正常ブロック内で最後に実行したコマンドの終了コードがジョブステップの終了コードとなります。

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

JP1/Advanced Shell

459

ジョブステップエラーブロック内で 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

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

JP1/Advanced Shell

460

#-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

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

JP1/Advanced Shell

461

ジョブステップがエラーとなった場合,後続ジョブステップを実行するかどうかは後続ジョブステップの 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 です。

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

JP1/Advanced Shell

462

• 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 コマンドの定義は,指定した個所以降のジョブ定義スクリプト実行で有効となります。

ジョブステップ外に指定した場合はジョブ定義スクリプト全体に有効で,ジョブステップ内に指定した場

合はジョブステップ内だけで有効です。ジョブステップ内に指定した場合,指定した個所以降からジョブ

ステップ終了まで有効となり,ジョブステップ外に指定した値は一時的に無効になります。また,ジョブ

ステップ内に指定するまではジョブステップ外に指定した値が有効になります。

指定例を次に示します。

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

JP1/Advanced Shell

463

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

(3) 終了コードが 0 以外でも正常終了となる機能の優先順位

CMDRC_THRESHOLD_DEFINE パラメーター,#-adsh_rc_ignore コマンド,#-adsh_step_start コマ

ンドの successRC 属性,および adshcmdrc コマンドを同時に指定したときの優先順位は次のようになり

ます。数字が小さい方が優先順位が高くなります。また,CMDRC_THRESHOLD_USE_PRESET パラ

メーターの対象となるコマンドに対して定義する場合は,CMDRC_THRESHOLD_USE_PRESET パラ

メーターは優先順位 7 となります。

1. ジョブステップ内に定義した#-adsh_rc_ignoreコマンド

2. ジョブステップ外に定義した#-adsh_rc_ignoreコマンド

3. ジョブステップ内に定義したadshcmdrcコマンド

4. #-adsh_step_startコマンドのsuccessRC属性

5. ジョブステップ外に定義したadshcmdrcコマンド

6. CMDRC_THRESHOLD_DEFINEパラメータ

7. CMDRC_THRESHOLD_USE_PRESETパラメータ

コマンド名

のコマンドに対して,終了コードが 0 以外でも正常終了となる各機能を定義したときの例を次

に示します。

ジョブ定義スクリプト

#-adsh_rc_ignore adshcmdrc

コマンド名

…2

コマンド名

1 …5

#-adsh_step_start STEP1 -successRC 2 …4

#-adsh_rc_ignore

adshcmdrc

コマンド名

コマンド名

…1

3 …3

コマンド名

#-adsh_step_end

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

JP1/Advanced Shell

464

環境ファイル

#-adsh_conf CMDRC_THRESHOLD_DEFINE コマンド名 10 …6

5.8.5 パス名を扱うシェル変数を定義する

PATH_CONV_VAR パラメーター,または#-adsh_path_var コマンドを使用すると,パス名を扱うシェ

ル変数を定義できます。パス名を扱うシェル変数を使用すると,それらを含む文字列のパス区切り文字お

よびディレクトリ区切り文字を Windows や UNIX などの環境に合わせて変換できます。

PATH_CONV_NOVAR パラメーターを使用することで,パス名を扱わないシェル変数名を定義できま

す。PATH_CONV_VAR の指定と組み合わせて,複雑な指定ができます。

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 コマンドおよび

PATH_CONV_VAR パラメーターに定義する例を次に示します。

(a) Windows の場合

• 環境ファイルの指定

#-adsh_conf PATH_CONV_ENABLE / : ←パス変換の有効化

#-adsh_conf PATH_CONV_RULE 1 ←パス変換ルール1を選択

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

JP1/Advanced Shell

465

#-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_conf PATH_CONV_VAR DIR3 ←シェル変数の定義1

• ジョブ定義スクリプトの指定

#-adsh_path_var PATH,DIR ←シェル変数の定義2

DIR="/home/hitachi/bin" ←「DIR="C:\\hitachi\\bin"」にパス文字列の置換1で変換

"$DIR/myprog" ←シェル変数の定義2に従い「"$DIR\\myprog"」に変換

"${DIR}/myprog" ←シェル変数の定義2に従い「"${DIR}\\myprog"」に変換

DIR2=$DIR

"$DIR2/myprog" ←「$DIR2」はシェル変数の定義1,2にないため,変換されな

$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" ←シェル変数の定義2に従い「..\\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_conf PATH_CONV_VAR DIR3 ←シェル変数の定義1

• ジョブ定義スクリプトの指定

#-adsh_path_var PATH,DIR ←シェル変数の定義2

DIR="C:\\hitachi\\bin" ←パス文字列の置換1に従い「DIR="/home/hitachi/bin"」に変

"$DIR\\myprog" ←シェル変数の定義2に従い「"$DIR/myprog"」に変換

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

JP1/Advanced Shell

466

"${DIR}\\myprog" ←シェル変数の定義2に従い「"${DIR}/myprog"」に変換

DIR2=$DIR

"$DIR2\\myprog" ←「$DIR2」はシェル変数の定義1,2にないため,変換されない

$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" ←シェル変数の定義2に従い「../bin/:$DIR」に変換

パス区切り文字も変換

"$DIR2\\myprog" > nul ←ファイル入出力時のファイルパスの変換に従い「/dev/null」

に変換

(c) PATH_CONV_VAR パラメーターと PATH_CONV_NOVAR パラメーターの使用例

• 環境ファイルの指定

#-adsh_conf PATH_CONV_VAR DIR* ←シェル変数の定義1

#-adsh_conf PATH_CONV_NOVAR DIRNO* ←シェル変数の定義2

シェル変数の定義 1 は,名称の先頭が DIR のシェル変数はパス名を扱うシェル変数として定義してい

ます。シェル変数の定義 2 は,名称の先頭が DIRNO のシェル変数はパス名を扱わないシェル変数と

して定義しています。後続の指定が優先するため,名称の先頭が DIRNO のシェル変数を除き,名称

の先頭が DIR のシェル変数はパス名を扱うシェル変数として定義したことになります。

• ジョブ定義スクリプトの指定

#-adsh_path_var DIRNORTH ←シェル変数の定義3

DIRNORTH はパス名を扱うシェル変数として定義しています。#-adsh_path_var コマンドの定義は

環境ファイルの定義よりも優先します。このため,名称の先頭が DIRNO であっても DIRNORTH は

パス名を扱う変数となります。

(2) ジョブ定義スクリプトイメージへの出力例

ジョブ実行ログには,パスを変換する前のジョブ定義スクリプトに加え,変換したあとの行も出力します。

また,ジョブ定義スクリプト中で合致した変換規則,ジョブ定義スクリプト名および行番号をメッセージ

として出力します。

******** ジョブコントローラのメッセージ出力 ********

(省略)

19:41:24 000071 KNAX6803-I PATH_CONV_ACCESSパラメーターの変換規則に合致しました。

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

JP1/Advanced Shell

467

filename="D:\home\user001\path_conv.ash" line=4 rule_str="./local.log":".\\mylog"

(省略)

******** ジョブ定義スクリプトの内容 ********

***** D:\home\user001\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

***** パス変換行(D:\home\user001\path_conv.ash) *****

0003 : DIR="c:\\Program Files"; DIR2="c:\\temp\\tmpfile"

0004 : "$DIR\\myprog" > ./local.log

***** パス変換情報 *****

KNAX6800-I パスの変換規則に合致しました。 filename="D:\home\user001\path_conv.ash" line=3 rule_str="/home/hitachi/bin":"c:\\Program Files"

KNAX6800-I パスの変換規則に合致しました。 filename="D:\home\user001\path_conv.ash" line=3 rule_str="/tmp":"c:\\temp"

KNAX6801-I パスを扱うシェル変数による変換規則に合致しました。 filename="D:\home

\user001\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

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

JP1/Advanced Shell

468

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-38 .(ドット)コマンドと#-adsh_script コマンドの違い

項番 比較項目 .(ドット)コマンド #-adsh_script コマンド

1 コメントとして扱います スクリプト拡張コマンドとして扱います

4

5

2

3

6

外部のジョブ定義スクリプト内での

スクリプト拡張コマンドの扱い

スクリプトイメージへの出力

相対パス指定時の動作

ジョブ内で使用できる上限数

外部のジョブ定義スクリプト内から

のコマンド実行

出力されません

相対パスで指定できます

ただし,環境変数 PATH の値を

参照してパスを解決します

制限がありません

実行できます

指定できます

出力されます

相対パスで指定できます

ただし,環境変数 PATH の値を参照しな

いで,adshexec 起動時のカレントディレ

クトリからの相対パスとして解釈します

4,095 個が上限です

実行できます

ただし,同じ外部のジョブ定義スクリプト

を再帰的に呼び出し,実行することはでき

ません

指定できません

7

外部のジョブ定義スクリプトへの引

数の指定

CUI デ

バッガ break コマンドによる

外部のジョブ定義スク

リプト内へのブレーク

ポイントの設定

設定できません 設定できます

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

JP1/Advanced Shell

469

項番

8

比較項目

CUI デ

バッガ

9

10 info function コマン

ドによる外部のジョブ

定義スクリプト内で定

義した関数の情報表示

.(ドット)コマンド

表示できません

ただし,外部のジョブ定義スク

リプト内での関数定義が完了し

た時点で表示できるようになり

ます

表示できません list コマンドによる外

部のジョブ定義スクリ

プト内容の表示

ジョブ定義スクリプト

の実行を停止した際に

表示される内容

行番号:表示できます

ソースファイル行:表示できま

せん

コマンド文字列:表示できます

#-adsh_script コマンド

表示できます

表示できます

行番号:表示できます

ソースファイル行:表示できます

コマンド文字列:表示できます

(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. ジョブ定義スクリプトの作成

JP1/Advanced Shell

470

5.8.7 スクリプト拡張コマンドの終了コードとエラー発生時の動作

スクリプト拡張コマンドの終了コードを次の表に示します。終了コードは環境設定パラメーターで定義で

きます。

表 5-39 スクリプト拡張コマンドの終了コード

スクリプト拡張コマンド 実行結果

#-adsh_file

#-adsh_file_temp

#-adsh_job

#-adsh_job_stop

#-adsh_path_var

#-adsh_rc_ignore

#-adsh_spoolfile

#-adsh_step_start

#-adsh_step_error

#-adsh_step_end

正常終了

エラー終了

ジョブステップ正常終了

ジョブステップエラー終了

0

1

終了コードのデフォル

ト値

ジョブステップ正常ブ

ロック内で最後に終了し

たコマンドの終了コード exit コマンドの引数

#-adsh_script

ジョブステップエラーブロッ

ク内で引数を指定した exit コ

マンドを実行して終了

#-adsh_step_end 自身のエ

ラー終了

正常終了

1

エラー終了

呼び出した外部スクリプ

ト内で最後に終了したコ

マンドの終了コード

1

終了コードを設定する環境設定パラメー

ター

ADSHCMD_RC_SUCCESS

ADSHCMD_RC_ERROR

ADSHCMD_RC_ERROR

ADSHCMD_RC_ERROR

(凡例)

−:該当しません。

スクリプト拡張コマンドを実行して,エラー終了またはジョブステップエラー終了となった場合,次のと

おり動作します。

• run 属性に abnormal または always が指定されている場合,ジョブステップを実行します。

• run 属性が省略されているまたは normal が指定されている場合,ジョブステップを実行しません。

• ジョブステップ外のコマンドは実行しません。

実行例を次に示します。

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

JP1/Advanced Shell

471

#-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 になります。

ただし,ジョブの中でエラーが発生していた場合は,エラーメッセージを出力します。

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

JP1/Advanced Shell

472

(2) ジョブステップの終了コード

ジョブステップの終了コードは,ジョブステップ正常ブロック内で最後に実行したコマンドの終了コード

になります。ただし,ジョブステップエラーブロックで exit コマンドに引数を指定して実行すると,exit

コマンドの引数をジョブステップの終了コードにできます。それ以外でジョブステップエラーブロック内

で実行したコマンドの終了コードは,ジョブステップの終了コードに影響しません。ジョブステップの正

常終了およびエラー終了について説明します。

• ジョブステップの正常終了

ジョブステップ正常ブロック内で最後に実行したコマンドが正常終了しています。

• ジョブステップのエラー終了

ジョブステップ正常ブロック内で最後に実行したコマンドがエラー終了しています。

(3) 外部コマンドの終了コード

外部コマンドの終了コードは,各コマンドで定められた終了コードになります。

外部コマンドがリターンできる値の範囲は,プラットフォームや外部コマンドを記述したプログラム言語

の言語仕様などによって異なりますが,0〜255 とすることを推奨します。この範囲を超えた場合,JP1/

Advanced Shell では,次に示す値を外部コマンドの終了コードとして扱います。

【UNIX 限定】

外部コマンドがリターンする値の下位 8 ビット

【Windows 限定】

• 外部コマンドがリターンする値が 0 以上の場合,値の下位 8 ビット

• 外部コマンドがリターンする値が 0 未満の場合,255

• 外部コマンドで例外

が発生して終了した場合,例外コードの下位 8 ビット

注※

例外として扱う例外コードと意味は次のとおりです。

表 5-40 例外として扱う例外コードと意味

項番

1

2

3

4

5

例外コード

0xC0000005

0x80000003

0x80000002

0x80000004

0xC000008C

意味

スレッドがアクセス権を持っていない仮想アドレスへアクセスしようとしました。

ブレークポイントに到達しました。

メモリアクセスに関してアライメント規約の存在するハードウェア上で,ミスアライメントさ

れたデータにアクセスしました(例えば,16 ビット値が 2 バイト境界にまたがったり,32

ビット値が 4 バイト境界にまたがったりすることはできません)。

トレースまたはシングルステップ機構による 1 命令ごとの実行です。

スレッドが配列の範囲外にアクセスしようとしたことが,ハードウェアによって検出されまし

た。

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

JP1/Advanced Shell

473

項番

6

11

12

13

14

9

10

7

8

15

16

例外コード

0xC000008D

0xC000008E

0xC000008F

0xC0000030

0xC0000091

0xC0000032

0xC0000033

0xC0000094

0xC0000035

0xC0000096

0xC0000025

意味

浮動小数点演算で,オペランドのうち少なくとも 1 つが非正規化数(普通の浮動小数点フォー

マットでは表現できないほど小さな値)です。

スレッドが,浮動小数点演算で 0 による除算をしようとしました。

浮動小数点演算の結果,正確な値が計算できませんでした。

この表に列挙した以外の浮動小数点演算の例外です。

浮動小数点演算の結果,指数部の値が制限範囲を超えました。

浮動小数点演算の結果,スタックがオーバーフローまたはアンダーフローを起こしました。

浮動小数点演算の結果,指数部の値が制限範囲を下回りました。

スレッドが,整数演算で 0 による除算をしようとしました。

整数演算の結果,オーバーフローが発生しました。

現在のマシンモードでは実行できない命令(特権命令)を実行しようとしました。

継続できない例外を起こした命令に対して,再実行を試みました。

外部コマンドの実行結果が次の表のどれかに該当する場合,その外部コマンドがエラー終了したと見なし

ます。

外部コマンド実行結果

外部コマンドの終了コードが 0 ではない場合(successRC 属性,

CMDRC_THRESHOLD_USE_PRESET パラメーター,

CMDRC_THRESHOLD_DEFINE パラメーター,adshcmdrc コマンドで値を変更

できる)

外部コマンドがシグナル終了した場合

終了コード

外部コマンドの終了コード

指定された外部コマンドに実行権限がなく,実行できなかった場合

指定された外部コマンドが存在しないで,実行できなかった場合

外部コマンドが定めるシグナル終了時の

終了コード

126

127

注※

シグナルを受信すると,受信したシグナルの種別を示す文字列を標準エラー出力に出力することがあり

ます。

なお,#-adsh_rc_ignore コマンドで指定した外部コマンドは,終了コードに関係なくエラーにはなりませ

ん。

(4) 組み込みコマンドの終了コード

組み込みコマンドの終了コードは,各コマンドで定められた終了コードになります。組み込みコマンドの

場合,実行結果の正常・エラーは,終了コードの値ではなく各コマンドの実行時にエラーとなる現象が発

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

JP1/Advanced Shell

474

生したかどうかで判定されます。ただし,#-adsh_rc_ignore コマンドで指定した組み込みコマンドは,コ

マンドの実行結果に関係なく,常に正常終了します。

各コマンドが正常・エラーとなる条件については,「

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

に記載している各コマンドの終了コードをご確認ください。

(5) 関数の終了コード

関数では,関数内で最後に実行したコマンドの終了コードが関数の終了コードになります。

CMDRC_CMDGRP_CHECK パラメータに FUNCTION を指定して実行することで,関数の終了コード

に従ってジョブおよびジョブステップのエラー判定ができるようになります。

CMDRC_CMDGRP_CHECK パラメータの詳細については,「

7.3.8 CMDRC_CMDGRP_CHECK パラ

については「 5.1.4 関数 」を参照してください。

(6) 注意事項

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 属性による指定は,ジョ

ブステップ内のすべてのコマンドに対して有効となります。

• ジョブステップ内またはジョブステップ外に指定した対象コマンドに対して,正常かエラーかをコマン

ドの仕様に従って判定する場合は,adshcmdrc コマンドの引数に対象コマンドと正常終了と見なす終

了コードしきい値を指定します。

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

JP1/Advanced Shell

475

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. ジョブ定義スクリプトの作成

JP1/Advanced Shell

476

5.8.10 ジョブ実行中にエラーが発生した場合の動作

ジョブ実行中にエラーが発生した場合の,後続のコマンド・制御文の動作について説明します。発生する

エラーの種類を次に示します。

• スクリプト拡張コマンドのエラー

#-adsh_file コマンドでファイル割り当てに失敗したときなどで発生します。

• シェル標準コマンドのエラー

• 続行できる場合

指定したコマンド名が見つからないとき,正規組み込みコマンドがエラーになったときなどで発生

します。

• 続行できない場合

特殊組み込みコマンドのエラーなどで発生します。

(1) ジョブステップ外でエラーが発生した場合

ジョブステップ外でエラーが発生した場合の動作を次の表に示します。

表 5-41 ジョブステップ外でエラーが発生した場合の動作

発生したエラーの種類

スクリプト拡張コマンドのエラー

シェル標準コマンドのエラー(続行

できる場合)

シェル標準コマンドのエラー(続行

できない場合)

後続のコマンド・制御文の動作

• run 属性が abnormal または always のジョブステップを実行します。

• 上記以外のすべてのコマンド・制御文は実行しません。

• run 属性が normal のジョブステップは実行しません。

• 上記以外のすべてのコマンド・制御文を実行します。

ジョブ定義スクリプトの実行を終了します。

ジョブステップ外でエラーが発生した場合の例を次に示します。

表 5-42 ジョブステップ外でエラーが発生した場合の例

ジョブ定義スクリプトのコーディング例

#-adsh_file JOBFILE jobfile cmdA shift $n cmdB

スクリプト拡

張コマンドの

エラー

×

シェル標準コマンドのエラー

続行できる

場合

続行できない

場合

×

×

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

JP1/Advanced Shell

477

ジョブ定義スクリプトのコーディング例

#-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-43 ジョブステップ正常ブロック内でエラーが発生した場合の動作

発生したエラーの種類

スクリプト拡張コマンドのエラー

シェル標準コマンドのエラー(続行

できる場合)

後続のコマンド・制御文の動作

• ジョブステップ正常ブロック内のすべてのコマンド・制御文は実行しません。

• ジョブステップエラーブロックが定義されている場合,ジョブステップエラーブロッ

クを実行します。

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

JP1/Advanced Shell

478

発生したエラーの種類

スクリプト拡張コマンドのエラー

シェル標準コマンドのエラー(続行

できる場合)

シェル標準コマンドのエラー(続行

できない場合)

後続のコマンド・制御文の動作

• ジョブステップがエラー終了します。後続のコマンド・制御文の動作はジョブステッ

プ外でスクリプト拡張コマンドのエラーが発生したときの動作と同一です。

ジョブ定義スクリプトの実行を終了します。

注※ onError 属性が cont の場合,シェル標準コマンドのエラー(続行できる場合)がジョブステップ正常

ブロック内の最後のコマンドであるときに限り,ジョブステップ正常ブロック内でエラーが発生したと

見なします。

ジョブステップ正常ブロック内でエラーが発生した場合の例を,次に示します。

表 5-44 ジョブステップ正常ブロック内でエラーが発生した場合の例

ジョブ定義スクリプトのコーディング例 スクリプ

ト拡張コ

マンドの

エラー

シェル標準コマンドのエラー

続行でき

る場合

続行できる場合

(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

×

×

×

続行でき

ない場合

×

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

JP1/Advanced Shell

479

ジョブ定義スクリプトのコーディング例

#-adsh_step_end

#-adsh_step_start AL -run always

 echo "run always step"

 cmdAlways

#-adsh_step_end

スクリプ

ト拡張コ

マンドの

エラー

シェル標準コマンドのエラー

続行でき

る場合

続行できる場合

(onError 属性が cont の場合)

続行でき

ない場合

(凡例)

○:実行します。

△:実行しません。

×:エラーになります。

−:該当しません。

空行の個所は何も指定していないことを示します。

(3) ジョブステップエラーブロック内でエラーが発生した場合

ジョブステップエラーブロック内でエラーが発生した場合の,後続のコマンド・制御文の動作を次の表に

示します。

表 5-45 ジョブステップエラーブロック内でエラーが発生した場合の動作

発生したエラーの種類

スクリプト拡張コマンドのエラー

シェル標準コマンドのエラー(続行

できる場合)

シェル標準コマンドのエラー(続行

できない場合)

後続のコマンド・制御文の動作

• ジョブステップエラーブロック内のすべてのコマンド・制御文を実行しません。

• ジョブステップがエラー終了します。後続のコマンド・制御文の動作はジョブステッ

プ外でスクリプト拡張コマンドのエラーが発生したときの動作と同一です。

• ジョブステップエラーブロック内のすべてのコマンド・制御文を実行します。

• ジョブステップがエラー終了します。後続のコマンド・制御文の動作はステップ外で

スクリプト拡張コマンドのエラーが発生したときの動作と同一です。

ジョブ定義スクリプトの実行を終了します。

ジョブステップエラーブロック内でエラーが発生した場合の例を,次に示します。

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

JP1/Advanced Shell

480

表 5-46 ジョブステップエラーブロック内でエラーが発生した場合の例

ジョブ定義スクリプトのコーディング例 スクリプト拡

張コマンドの

エラー

#-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

×

×

シェル標準コマンドのエラー

続行できる

場合

続行できない

場合

×

(凡例)

○:実行します。

△:実行しません。

×:エラーになります。

−:該当しません。

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

JP1/Advanced Shell

481

空行の個所は何も指定していないことを示します。

(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) バックグラウンド実行時の注意事項

「&」および「

|

&」を付与してバックグラウンド実行したコマンドの終了メッセージ出力の場合,次の点に

注意してください。

• バックグラウンド実行のコマンドがすべて完了するのを待ってからジョブ終了するため,終了メッセー

ジを必ず出力します。

• ジョブステップ内で起動したコマンドでも,コマンドの終了はジョブステップ終了後の可能性がありま

す。その場合は,コマンドを起動したジョブステップの終了メッセージ出力後に,コマンドの終了メッ

セージを出力します。なお,「&」および「

|

&」を付与してバックグラウンド実行したコマンドの終了

コードはジョブステップやジョブの終了コードには影響しません。

• バックグラウンド実行したコマンドのジョブ実行ログへの出力順序は,実際のプロセス開始順序や終了

順序とは関係なく,順不同となります。「

|

」を使って連結したコマンド群についても同様です。

• バックグラウンド実行したコマンドの実行時間は,ジョブコントローラがコマンドの終了を検知した際

に計測します。そのため,入力待ちなどによってジョブコントローラが停止している間にバックグラウ

ンド実行したコマンドが終了した場合,出力される実行時間は,実際にかかった時間よりも長く表示さ

れることがあります。

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

JP1/Advanced Shell

482

(3) builtin コマンド,command コマンド,eval コマンド,time コマン

ド,.(ドット)コマンド,exec コマンドの注意事項

それぞれのコマンドを実行したときの,実行結果の出力についての注意事項を次に示します。

• 組み込みコマンドの builtin コマンド,command コマンド,eval コマンド,time コマンド,exec コ

マンドの場合

引数として指定したコマンドの実行結果だけを出力します。builtin コマンド,command コマンド, eval コマンド,time コマンド,および exec コマンド自身の実行結果は出力しません。また,ジョブ

やジョブステップの正常終了またはエラー終了の判定にも使用しません。 command コマンドに対して,実行中のプラットフォームではサポートしないオプションを指定した場

合は,command コマンドの実行結果を出力してジョブやジョブステップの正常終了またはエラー終了

を判定します。

• 組み込みコマンドの.(ドット)コマンドの場合

指定した外部スクリプト内の各コマンドの実行結果だけを出力します。

.(ドット)コマンド自身は正常終了しますが,その実行結果は出力しません。また,ジョブやジョブ

ステップの正常終了またはエラー終了の判定にも使用しません。

指定した外部スクリプトがなく,.(ドット)コマンドがエラー終了した場合は,.(ドット)コマンド

の実行結果を出力してジョブやジョブステップの正常終了またはエラー終了を判定します。

(4) コマンドの書式によるコマンド実行結果出力の違い

コマンドを次の書式で指定して実行した場合,変換前のコマンド名がコマンドの実行結果に出力されます。

• パイプ(

|

)による別プロセスの実行

• コマンド置換($(),``)による別プロセスの実行

|

&によるバックグラウンドプロセスの実行

• 単一コマンドのグループ化によるサブシェル実行

• &によるバックグラウンド実行

例を次に示します。

• 変数をコマンドとして実行した場合は,変数展開前の文字列がコマンド名として出力されます。

ジョブ定義スクリプトの定義

01: $CMD &

実行結果の出力

KNAX6116-I コマンド($CMD, 行番号=1)が正常終了しました。rc=0 E-Time=0.001s C-Time=0.000s

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

JP1/Advanced Shell

483

• 環境ファイルの CHILDJOB_PGM パラメーターに定義した規則に一致する文字列をコマンドとして実

行した場合は,CHILDJOB_PGM パラメーターによって読み替えられる前の文字列がコマンド名とし

て出力されます。

環境ファイルの定義

#-adsh_conf CHILDJOB_PGM /bin/sh

ジョブ定義スクリプトの定義

01: /bin/sh ./test.ash &

実行結果の出力

KNAX6116-I コマンド(/bin/sh, 行番号=1)が正常終了しました。rc=0 E-Time=0.010s C-

Time=0.000s

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

JP1/Advanced Shell

484

5.9 ファイルの割り当ておよび後処理をする

スクリプト拡張コマンドまたは adshfile コマンドを使用して,通常ファイル,一時ファイルおよびプログ

ラム出力データファイルに対して,割り当ておよび後処理ができます。

割り当てとは,各コマンド実行時の動作であり,ジョブステップやジョブ終了時の各ファイルの扱いを登

録したり,ファイル名称やファイル実体を生成したりすることをいいます。

後処理とは,ジョブステップやジョブ終了時の動作であり,割り当て時の定義に従って各ファイルを削除

したり残したりすることをいいます。

スクリプト拡張コマンドについては,「

9.5 スクリプト拡張コマンド

」を参照してください。 adshfile コ

マンドについては,「

adshfile コマンド(通常ファイルの割り当ておよび後処理を指定する)

ください。

5.9.1 通常ファイルの割り当ておよび後処理をする

#-adsh_file コマンド(スクリプト拡張コマンド)または adshfile コマンド(シェル運用コマンド)を使

用して,次の作業を実施します。

• 該当するジョブステップまたはジョブの結果によって,割り当てたファイルの後処理をします。

• #-adsh_file コマンドの場合は,ジョブ,ジョブステップ,およびこれらから起動するコマンドで使用

する通常ファイルについて,ファイルパスをシェル変数および環境変数に割り当てます。

#-adsh_file コマンドと adshfile コマンドの機能差異を次の表に示します。 #-adsh_file コマンドについて

は「 #-adsh_file コマンド(通常ファイルの割り当ておよび後処理を指定する)

adshfile コマンドについては「

adshfile コマンド(通常ファイルの割り当ておよび後処理を指定する)

参照してください。 adshfile コマンド 機能

環境変数へのファイルパス

設定

ファイルの後処理のタイミ

ング

.コマンドで記述する外部スク

リプトでの記述可否

繰り返し処理内での記述可否

関数内での記述可否

#-adsh_file コマンド

• ステップ外の場合

ジョブ終了時

• ステップ内の場合

ステップ終了時

×

×

×

×

ジョブ終了時またはステップ終了時を指定

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

JP1/Advanced Shell

485

機能

ファイル割り当て処理中にエ

ラーとなった場合の割り当て

済み通常ファイルの後処理

#-adsh_file コマンド keep を仮定し,ファイルを削除しません。

詳細については「

#-adsh_file コマンドの場

」を参照してください。

(凡例)

○:実行できます。

×:実行できません。 adshfile コマンド

引数-a の指定に従います。

詳細については「

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

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

JP1/Advanced Shell

486

#-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_temp コマンドの一時ファイル

割り当て処理中にエラー

後続の #-adsh_spoolfile コマンドのプログラム

出力データファイル割り当て処理中にエラー

#-adsh_file コマンドの割り当て済み

通常ファイルの後処理

無条件に keep が仮定される adshfile コマンドの割り当て済み通

常ファイルの後処理

各 adshfile コマンドの-a オプション

に従う

(keep は仮定されない)

各 #-adsh_file コマンドの-abnormal

オプションに従う

無条件に keep が仮定される

各 adshfile

に従う

コマンドの-a オプション

各 adshfile コマンドの-a オプション

に従う

(keep は仮定されない)

無条件に keep が仮定される 各 adshfile コマンドの-a オプション

に従う

(keep は仮定されない)

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

JP1/Advanced Shell

487

ジョブステップやジョブがエラーとなる要因

後続の上記以外のコマンドやプログラムなどの

エラー

#-adsh_file コマンドの割り当て済み

通常ファイルの後処理

各 #-adsh_file コマンドの-abnormal

オプションに従う adshfile コマンドの割り当て済み通

常ファイルの後処理

各 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 属性の指

定に従って通常ファイルは削除しません。

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

JP1/Advanced Shell

488

• 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

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

JP1/Advanced Shell

489

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 の指定に従っ

て通常ファイルを削除しません。

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

JP1/Advanced Shell

490

• VAL04 に割り当てた通常ファイルは,ジョブステップ終了時に後処理をします。-a の指定に従っ

て通常ファイルを削除します。

• VAL05 の割り当て処理は動作しません。

例 4

正常終了した場合

• VAL01 に割り当てた通常ファイルは,ジョブ終了時に後処理をします。-n の指定に従って通常ファ

イルは削除しません。

• VAL02 に割り当てた通常ファイルは,ジョブステップ終了時に後処理をします。-n の指定に従っ

て通常ファイルを削除します。

• VAL03 に割り当てた通常ファイルは,ジョブステップ終了時に後処理をします。-n の指定に従っ

て通常ファイルは削除しません。

• VAL04 に割り当てた通常ファイルは,ジョブステップ終了時に後処理をします。-n の指定に従っ

て通常ファイルは削除しません。

• VAL05 に割り当てた通常ファイルは,ジョブ終了時に後処理をします。-n の指定に従って通常ファ

イルを削除します。

(3) 

adshfile

コマンドの指定例(繰り返し処理内に指定した場合)

UNIX で adshfile コマンドを繰り返し処理内に指定する例を次に示します。

KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ちます。

KNAX0724-I ジョブ識別子を割り当てました。Jobid=046257

---------------------------------------------------------------

Advanced Shell 11-00

[ジョブ情報]

ジョブ識別子 : 046257

スプールジョブディレクトリパス : /var/opt/jp1as/spool/046257/

実行日付 : 2015/10/30

システム環境ファイルパス :

ジョブ環境ファイルパス : sample.ase

ホスト名 : host01

[Automatic Job Management Systemから渡された環境変数]

---------------------------------------------------------------

******** ジョブコントローラのメッセージ出力 ********

10:17:20 046257 KNAX0091-I LOOP ジョブが開始しました。

10:17:20 046257 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの

完了を待ちます。

10:17:20 046257 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

10:17:20 046257 KNAX6112-I コマンド(echo, 行番号=3)が正常終了しました。rc=0 E-Time=0.000s

C-Time=0.000s

10:17:20 046257 KNAX6116-I コマンド(/bin/ls, 行番号=4)が正常終了しました。rc=0 E-

Time=0.001s C-Time=0.000s

10:17:20 046257 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=8)が正常終了しました。 rc=0 E-Time=0.002s C-Time=0.000s

10:17:20 046257 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=9)が正常終了しました。 rc=0 E-Time=0.001s C-Time=0.000s

10:17:20 046257 KNAX6112-I コマンド(echo, 行番号=10)が正常終了しました。rc=0 E-

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

JP1/Advanced Shell

491

Time=0.000s C-Time=0.000s

10:17:20 046257 KNAX6112-I コマンド(echo, 行番号=11)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

10:17:20 046257 KNAX6116-I コマンド(/bin/cat, 行番号=12)が正常終了しました。rc=0 E-

Time=0.001s C-Time=0.000s

10:17:20 046257 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=8)が正常終了しました。 rc=0 E-Time=0.001s C-Time=0.000s

10:17:20 046257 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=9)が正常終了しました。 rc=0 E-Time=0.001s C-Time=0.000s

10:17:20 046257 KNAX6112-I コマンド(echo, 行番号=10)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

10:17:20 046257 KNAX6112-I コマンド(echo, 行番号=11)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

10:17:20 046257 KNAX6116-I コマンド(/bin/cat, 行番号=12)が正常終了しました。rc=0 E-

Time=0.001s C-Time=0.000s

10:17:20 046257 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=8)が正常終了しました。 rc=0 E-Time=0.001s C-Time=0.000s

10:17:20 046257 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=9)が正常終了しました。 rc=0 E-Time=0.001s C-Time=0.000s

10:17:20 046257 KNAX6112-I コマンド(echo, 行番号=10)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

10:17:20 046257 KNAX6112-I コマンド(echo, 行番号=11)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

10:17:20 046257 KNAX6116-I コマンド(/bin/cat, 行番号=12)が正常終了しました。rc=0 E-

Time=0.001s C-Time=0.000s

10:17:20 046257 KNAX1890-I ファイル割り当て処理指定("keep")に従って解放しました。path=/ home/user001/test.txt

10:17:20 046257 KNAX1890-I ファイル割り当て処理指定("del")に従って解放しました。path=/ home/user001/output_test.txt

10:17:20 046257 KNAX1604-I 後処理指定値によってファイル(/home/user001/output_test.txt)を削

除しました。

10:17:20 046257 KNAX1890-I ファイル割り当て処理指定("keep")に従って解放しました。path=/ home/user001/test01.txt

10:17:20 046257 KNAX1890-I ファイル割り当て処理指定("del")に従って解放しました。path=/ home/user001/output_test01.txt

10:17:20 046257 KNAX1604-I 後処理指定値によってファイル(/home/user001/output_test01.txt)を

削除しました。

10:17:20 046257 KNAX1890-I ファイル割り当て処理指定("keep")に従って解放しました。path=/ home/user001/test02.txt

10:17:20 046257 KNAX1890-I ファイル割り当て処理指定("del")に従って解放しました。path=/ home/user001/output_test02.txt

10:17:20 046257 KNAX1604-I 後処理指定値によってファイル(/home/user001/output_test02.txt)を

削除しました。

10:17:20 046257 KNAX0098-I LOOP ジョブが終了しました。rc=0 E-Time=0.025s C-Time=0.010s

******** ジョブ定義スクリプトの内容 ********

***** /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

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

JP1/Advanced Shell

492

0011 : echo -E "<<< output_$MEMBER >>>" >&2

0012 : cat output_$MEMBER >&2

0013 : done

***** パス変換情報 *****

******** 実行ジョブの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 ジョブが終了しました。rc=0 E-Time=0.025s C-Time=0.010s

******** ジョブステップの出力 ********

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="/var/opt/jp1as/spool/046257-LOOP/"

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。rc=0

(4) 

adshfile

コマンドの指定例(関数内に指定した場合)

UNIX で adshfile コマンドを関数内に指定する例を次に示します。

KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ちます。

KNAX0724-I ジョブ識別子を割り当てました。Jobid=046260

---------------------------------------------------------------

Advanced Shell 11-00

[ジョブ情報]

ジョブ識別子 : 046260

スプールジョブディレクトリパス : /var/opt/jp1as/spool/046260/

実行日付 : 2015/10/30

システム環境ファイルパス :

ジョブ環境ファイルパス : sample.ase

ホスト名 : host01

[Automatic Job Management Systemから渡された環境変数]

---------------------------------------------------------------

******** ジョブコントローラのメッセージ出力 ********

10:31:28 046260 KNAX0091-I FUNCTION ジョブが開始しました。

10:31:28 046260 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの

完了を待ちます。

10:31:28 046260 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

10:31:28 046260 KNAX0092-I FUNCTION.STEP001 ステップが開始しました。

10:31:28 046260 KNAX6112-I コマンド(echo, 行番号=15)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=4)が正常終了しました。 rc=0 E-Time=0.003s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=5)が正常終了しました。 rc=0 E-Time=0.003s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/cmd/cp, 行番号=6)が正常終了しました。rc=0

E-Time=0.002s C-Time=0.000s

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

JP1/Advanced Shell

493

10:31:28 046260 KNAX6112-I コマンド(echo, 行番号=7)が正常終了しました。rc=0 E-Time=0.000s

C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/cmd/cat, 行番号=8)が正常終了しました。rc=0

E-Time=0.001s C-Time=0.000s

10:31:28 046260 KNAX6112-I コマンド(echo, 行番号=15)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=4)が正常終了しました。 rc=0 E-Time=0.002s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=5)が正常終了しました。 rc=0 E-Time=0.003s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/cmd/cp, 行番号=6)が正常終了しました。rc=0

E-Time=0.002s C-Time=0.000s

10:31:28 046260 KNAX6112-I コマンド(echo, 行番号=7)が正常終了しました。rc=0 E-Time=0.000s

C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/cmd/cat, 行番号=8)が正常終了しました。rc=0

E-Time=0.002s C-Time=0.010s

10:31:28 046260 KNAX6112-I コマンド(echo, 行番号=15)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=4)が正常終了しました。 rc=0 E-Time=0.003s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=5)が正常終了しました。 rc=0 E-Time=0.003s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/cmd/cp, 行番号=6)が正常終了しました。rc=0

E-Time=0.002s C-Time=0.010s

10:31:28 046260 KNAX6112-I コマンド(echo, 行番号=7)が正常終了しました。rc=0 E-Time=0.000s

C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/cmd/cat, 行番号=8)が正常終了しました。rc=0

E-Time=0.002s C-Time=0.000s

10:31:28 046260 KNAX6112-I コマンド(echo, 行番号=15)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=4)が正常終了しました。 rc=0 E-Time=0.003s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/bin/adshfile, 行番号=5)が正常終了しました。 rc=0 E-Time=0.003s C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/cmd/cp, 行番号=6)が正常終了しました。rc=0

E-Time=0.002s C-Time=0.000s

10:31:28 046260 KNAX6112-I コマンド(echo, 行番号=7)が正常終了しました。rc=0 E-Time=0.000s

C-Time=0.000s

10:31:28 046260 KNAX6116-I コマンド(/opt/jp1as/cmd/cat, 行番号=8)が正常終了しました。rc=0

E-Time=0.002s C-Time=0.010s

10:31:28 046260 KNAX1890-I ファイル割り当て処理指定("del")に従って解放しました。path=/ home/user001/infile1

10:31:28 046260 KNAX1604-I 後処理指定値によってファイル(/home/user001/infile1)を削除しまし

た。

10:31:28 046260 KNAX1890-I ファイル割り当て処理指定("del")に従って解放しました。path=/ home/user001/outfile1

10:31:28 046260 KNAX1604-I 後処理指定値によってファイル(/home/user001/outfile1)を削除しま

した。

10:31:28 046260 KNAX1890-I ファイル割り当て処理指定("del")に従って解放しました。path=/ home/user001/infile2

10:31:28 046260 KNAX1604-I 後処理指定値によってファイル(/home/user001/infile2)を削除しまし

た。

10:31:28 046260 KNAX1890-I ファイル割り当て処理指定("del")に従って解放しました。path=/ home/user001/outfile2

10:31:28 046260 KNAX1604-I 後処理指定値によってファイル(/home/user001/outfile2)を削除しま

した。

10:31:28 046260 KNAX1890-I ファイル割り当て処理指定("del")に従って解放しました。path=/ home/user001/infile3

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

JP1/Advanced Shell

494

10:31:28 046260 KNAX1604-I 後処理指定値によってファイル(/home/user001/infile3)を削除しまし

た。

10:31:28 046260 KNAX1890-I ファイル割り当て処理指定("del")に従って解放しました。path=/ home/user001/outfile3

10:31:28 046260 KNAX1604-I 後処理指定値によってファイル(/home/user001/outfile3)を削除しま

した。

10:31:28 046260 KNAX1890-I ファイル割り当て処理指定("del")に従って解放しました。path=/ home/user001/infile4

10:31:28 046260 KNAX1604-I 後処理指定値によってファイル(/home/user001/infile4)を削除しまし

た。

10:31:28 046260 KNAX1890-I ファイル割り当て処理指定("del")に従って解放しました。path=/ home/user001/outfile4

10:31:28 046260 KNAX1604-I 後処理指定値によってファイル(/home/user001/outfile4)を削除しま

した。

10:31:28 046260 KNAX6597-I FUNCTION.STEP001 ジョブステップが正常終了しました。rc=0 E-

Time=0.055s C-Time=0.050s

10:31:28 046260 KNAX6112-I コマンド(echo, 行番号=21)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

10:31:28 046260 KNAX0098-I FUNCTION ジョブが終了しました。rc=0 E-Time=0.057s C-Time=0.050s

******** ジョブ定義スクリプトの内容 ********

***** /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

***** パス変換情報 *****

******** 実行ジョブのSTDERRファイルの内容 ********

KNAX6597-I FUNCTION.STEP001 ジョブステップが正常終了しました。rc=0 E-Time=0.055s C-

Time=0.050s

JOB_FUNCTION_END

KNAX0098-I FUNCTION ジョブが終了しました。rc=0 E-Time=0.057s C-Time=0.050s

******** ジョブステップの出力 ********

KNAX0719-I STEP ステップ番号=0001 ステップ名=STEP001 出力先=STDERR

<<< outfile1 >>> dddd1

<<< outfile2 >>>

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

JP1/Advanced Shell

495

dddd2

<<< outfile3 >>> dddd3

<<< outfile4 >>> dddd4

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="/var/opt/jp1as/spool/046260-FUNCTION/"

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。rc=0

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 を指定し,先行ジョブステップで指定した一時ファイル識別名を指定します。

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

JP1/Advanced Shell

496

先行ジョブステップで作成していない一時ファイルおよび先行ジョブステップの後処理で削除した一時ファ

イルの識別名は指定できません。

割り当てた一時ファイルを後続のジョブステップで使用する場合は,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_

ジョブ通し番号

_

ジョブ名

_

一意の名称

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

JP1/Advanced Shell

497

(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

1. 後続ジョブステップで使用できる一時ファイルを作成し割り当てる。一時ファイル識別名には TEST1

を指定する。

2. 1.で作成した一時ファイル(識別名:TEST1)を割り当てる。割り当てた一時ファイルは,後続

ジョブステップで使用可能とする。

3. 後続ジョブステップで使用できる一時ファイルを作成し割り当てる。一時ファイル識別名には TEST2

を指定する。

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

JP1/Advanced Shell

498

4. 2.で使用した一時ファイル(識別名:TEST1)を割り当てる。割り当てた一時ファイルは,ジョブ

ステップ(ジョブステップ名:STEP4)終了時に削除する。

5. 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) プログラム出力データファイルの割り当て

プログラム出力データファイルのファイルパスを自動生成し,指定されたファイル環境変数定義名と同名

のシェル変数および環境変数に割り当てます。これらの変数は,ジョブステップまたはジョブ終了時に割

り当て前の値に戻します。ファイルの実体は作成しません。

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

JP1/Advanced Shell

499

(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 バイトをジョブ名とします。

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

JP1/Advanced Shell

500

ステップ名

#-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.

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

JP1/Advanced Shell

501

#-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. ジョブ定義スクリプトの作成

JP1/Advanced Shell

502

5.10 シェル変数の値を変換する adshvarconv コマンドでシェル変数の値を変換できます。

5.10.1 パス変換ルールによる変換

シェル変数の値を PATH_CONV_ENABLE パラメーター,PATH_CONV パラメーターに従って変換し

ます。変換ではあらかじめ環境変数に設定しているパス名やジョブ定義スクリプトの引数に格納されたパ

ス名などを変換できます。

• 環境ファイル

#-adsh_conf PATH_CONV_ENABLE / :

#-adsh_conf PATH_CONV /home d:\\home

• ジョブ定義スクリプト(script.ash) infile=$1 adshvarconv –p infile

“${ADSH_DIR_CMD}cat” ${infile}

• ファイル(d:¥home¥user001¥test.txt)

This is test data.

• 実行例

D:\home\user01> adshexec -m MINIMUM script.ash /home/user001/test.txt

This is test data.

5.10.2 文字列による変換

シェル変数の値の文字列置換ができます。これによって,変換ルールの事前定義が困難なパス名の置換が

できます。

• ジョブ定義スクリプト(script.ash) while read LINE do

adshvarconv -b "/home/user1" -a "$1" LINE

adshvarconv -b "/" -a "\\" LINE

echo -E "$LINE" >&2 done < input.txt

• ファイル(input.txt)

/home/user1/data001

/home/user1/data002

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

JP1/Advanced Shell

503

• 実行例

D:\home\user001>adshexec –m MINIMUM script.ash D:\home\winuser001

D:\home\winuser001\data001

D:\home\winuser001\data002

5.10.3 ¥の増加

シェル変数の値に含まれる¥の数を増加することができます。これによって,awk コマンドに渡した値の

¥が多重的に削除されることに,容易に対応できます。

• ジョブ定義スクリプト(script.ash) aa=d:\\g1234z\\azzzz echo -E 'hitachi' | "$ADSH_DIR_CMD"awk -v VVV1=$aa '/hitachi/ { \ print "VVV1=" VVV1 ; \

}' >&2 adshvarconv -i 1 aa echo -E 'hitachi' | "$ADSH_DIR_CMD"awk -v VVV1=$aa '/hitachi/ { \ print "VVV1=" VVV1 ; \

}' >&2

• 実行例

D:\home\user001>adshexec -m MINIMUM script.ash

VVV1=d:g1234zzzzz

VVV1=d:\g1234z\azzzz

5.10.4 変数の値のコード変換

シェル変数の値をコード変換できます。これによって,UTF-8 で記述された値を変数に格納し,コード変

換してスクリプト上で利用することができます。

• Shift-JIS で記述されたジョブ定義スクリプト(script.ash)

"${ADSH_DIR_CMD}rm" –f outfile.txt

while read LINE do

adshvarconv -e UTF8 SJIS LINE

LINE='駅名='$LINE

adshvarconv -e SJIS UTF8 LINE

echo -E "$LINE" >>outfile.txt

done < input.txt

• UTF-8 で記述したファイル(input.txt)

東京

京都

• 実行例

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

JP1/Advanced Shell

504

D:\home\user001>adshexec -m MINIMUM script.ash

• 作成された UTF-8 のファイル( outfile.txt

駅名=東京

駅名=京都

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

JP1/Advanced Shell

505

5.11 ジョブ定義スクリプトファイルの記述例

ジョブ定義スクリプトファイルの記述例を次に示します。

#!/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. ジョブ全体の制御

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

JP1/Advanced Shell

506

ジョブステップに制御を渡したり,ジョブを終了したりする。

2. ジョブステップ 1 の処理

• 入出力ファイル定義

• パラメーターファイル定義

• ユーザープログラムの実行

• エラー時の処理

3. ジョブステップ 2 の処理

ジョブステップ 1 が正常時の場合の処理。

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

JP1/Advanced Shell

507

6

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

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

JP1/Advanced Shell

508

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. ジョブ定義スクリプトのデバッグ

JP1/Advanced Shell

509

図 6-1 デバッグの実行の概要(GUI の場合)

1. エディタからジョブ定義スクリプトをデバッグします。

2. ブレークポイントを設定します。

3. ジョブ定義スクリプトを実行するとブレークポイントで停止します。

4. デバッグを中止します。

(1) 出力

デバッグ実行時,ジョブ定義スクリプトを対話的に実行するため,標準出力および標準エラー出力は実行

に合わせてコンソールにタイムリーに表示されます。通常実行時のように実行終了後に出力しません。た

だし,エラーメッセージはエラーウィンドウにも表示されます。エラーウィンドウについては,「

4.7.5 

メッセージ出力ウィンドウ

」を参照してください。また,スプールジョブディレクトリには標準出力およ

び標準エラー出力のファイルを作成しません。

通常実行時はジョブ定義スクリプト完了後にジョブ実行ログを標準エラー出力に出力していますが,デバッ

グ実行時は実行に合わせてジョブ実行ログ相当の情報を標準エラー出力に出力しています。

(2) 情報の初期化

ジョブ定義スクリプトを一度実行したあとに,再びジョブ定義スクリプトを実行すると,前の実行で設定

したシェル変数および環境変数の情報が初期化されます。

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

JP1/Advanced Shell

510

(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. ジョブ定義スクリプトのデバッグ

JP1/Advanced Shell

511

図 6-2 デバッグの実行の概要(CUI の場合)

1. adshexec コマンドの-d オプションを入力すると,デバッガを起動します。

2. break コマンドを入力すると,ブレークポイントが設定されます。

3. run コマンドを入力すると,ジョブ定義スクリプトを実行してブレークポイントで停止します。

4. continue コマンドを入力すると,ブレークポイントから継続実行されます。

5. kill コマンドを入力すると,ジョブ定義スクリプトを終了します。

6. quit コマンドを入力すると,デバッガを終了します。

(1) 出力

デバッグ実行時,ジョブ定義スクリプトを対話的に実行するため,標準出力および標準エラー出力は実行

に合わせてタイムリーに表示されます。通常実行時のように実行終了後に出力しません。また,スプール

ジョブディレクトリには標準出力および標準エラー出力のファイルを作成しません。

通常実行時はジョブ定義スクリプト完了後にジョブ実行ログを標準エラー出力に出力していますが,デバッ

グ実行時は実行に合わせてジョブ実行ログ相当の情報を標準エラー出力に出力しています。

(2) 情報の初期化 run コマンドでジョブ定義スクリプトを一度実行したあとに,再び run コマンドでジョブ定義スクリプト

を実行すると,前回実行時の設定情報のうち,次に示す情報が初期化されます。

• シェル変数

• 環境変数

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

JP1/Advanced Shell

512

• エラー注入モード

また,次に示す情報はデバッガを終了するまで引き継がれます。

• ブレークポイントおよびウォッチポイントの情報

• デバッガの作業ディレクトリパス

• ファイル

注※

スクリプト拡張コマンドで作成したファイルについては,該当する後処理に従います。

(3) スプール

CUI デバッグ実行では,デバッガと run コマンドで実行したジョブ定義スクリプトの 2 種類のスプール

ジョブディレクトリを作成します。一度のデバッグ実行でデバッガのスプールジョブディレクトリは 1 つ,

ジョブ定義スクリプトのスプールジョブディレクトリは run コマンドを実行した回数分作成します。デバッ

ガとジョブ定義スクリプトのスプールジョブディレクトリについて説明します。

(a) デバッガ

デバッガではジョブ定義スクリプトを実行しません。一度のデバッグで実行したジョブ定義スクリプトの

数を管理ファイルに格納したり,デバッガの内部データを記述したファイルを格納したりするために,ス

プールジョブディレクトリを作成します。

デバッガのスプールジョブディレクトリには,次のファイルを格納します。

• スクリプトイメージ:実行したスクリプトの内容

• ジョブ実行ログ:JP1/Advanced Shell のメッセージ(生成したプロセスの pid など)

• ブレークポイント情報(.DBG):デバッガの内部データを記述する

• sysout 管理ファイル(.sysout)

(b) ジョブ定義スクリプト run コマンドを実行するたびにスプールジョブディレクトリを作成し,次のファイルを格納します。

• スクリプトイメージ:実行したスクリプトの内容スクリプトイメージ

• ジョブ実行ログ:JP1/Advanced Shell のメッセージ

• 出力ファイル: #-adsh_spoolfile コマンドの実行で作成したファイル

• sysout 管理ファイル(.sysout)

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

JP1/Advanced Shell

513

(4) 注意事項

「[[条件式]]」で条件判定を行った場合,またはコマンド間をパイプで連結した場合は,実行結果のメッセー

ジに含まれる E-Time に,デバッガの処理時間が含まれることがあります。

6.1.3 GUI デバッガの機能一覧【Windows 限定】

GUI デバッガの機能と,このマニュアルでの参照先を次の表に示します。

表 6-1 GUI デバッガの機能

機能

ジョブ定義スクリプトを実行する

デバッグを中止する

ジョブ定義スクリプトを停止する

ブレークポイントを設定する

ブレークポイントを解除する

逐次実行する

継続実行する

関数を実行する

変数の値を設定または表示する

ステータスを表示する

エラー注入モードを変更する

トラップアクションを実行する

マニュアルの参照先

4.4.6 デバッグをする

(2) デバッグを実行・中止

する

(d) 関数の終わりまで実行

する場合

(1) デバッグ実行時のブ

レークポイントを設定・解

除する

(1) デバッグ実行時のブ

レークポイントを設定・解

除する

(b) 1 行ずつ実行(関数の

中もステップ実行)する場

(c) 1 行ずつ実行(関

数の中はステップ実行しな

い)する場合

(a) ブレークポイントまで

実行する場合

(d) 関数の終わりまで実行

する場合

4.7.6 変数ウィンドウ

(1) ツールバー

(1) ツールバー

(5) trap コマンドのアク

ションを実行する

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

JP1/Advanced Shell

514

6.1.4 デバッガのコマンド一覧【UNIX 限定】

デバッガのコマンドをアルファベット順で次の表に示します。また,各コマンドの短縮形と,このマニュ

アルでの参照先を示します。

表 6-2 デバッガコマンドの一覧

コマンド名 break cd continue delete exec finish help info breakpoints info coverage info functions info jobsteps

機能

ブレークポイントを設定します。

ディレクトリを移動します。

継続実行をします。

ブレークポイント・ウォッチポイントを削除します。

ログインシェルを起動します。

関数を実行します。

ヘルプを表示します。 f

コマンドの

短縮形 b cd c d ex h

ブレークポイントとウォッチポイントの情報を表示します。 i b

マニュアルの参照先

6.2.4 ブレークポイ

ントを設定する

(break コマンド)

6.2.26 ディレクトリ

を移動する(cd コマ

ンド)

6.2.9 継続実行をす

る(continue コマン

ド)

6.2.6 ブレークポイ

ント・ウォッチポイン

トを削除する(delete

コマンド)

6.2.27 ログインシェ

ルを起動する(exec

コマンド)

6.2.10 関数を実行す

る( finish コマンド)

6.2.28 ヘルプを表示

する(help コマンド)

6.2.13 ブレークポイ

ント・ウォッチポイン

トの情報を表示する

(info breakpoints コ

マンド)

デバッグ途中のカバレージ情報を表示します。

関数情報を表示します。

ジョブステップ情報を表示します。 i c i f i j

6.2.14 カバレージ情

報を表示する(info coverage コマンド)

6.2.15 関数情報を表

示する(info functions コマンド)

6.2.16 ジョブステッ

プ情報を表示する

(info jobsteps コマン

ド)

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

JP1/Advanced Shell

515

quit return run set kill list next print

コマンド名 info pathvars info signals info status info variables joberrmode

機能 コマンドの

短縮形

変数名がパス名を扱う変数であるかどうかを表示します。 i p

シグナル情報を表示します。

ステータスを表示します。

変数情報を表示します。

エラー注入モードの有効/無効を設定します。

ジョブ定義スクリプトを終了します。

ソースファイルを表示します。

関数内で停止しないで逐次実行をします。

変数の値を表示します。

デバッガを終了します。

関数を終了します。

ジョブ定義スクリプトを実行します。

変数の値を設定します。 r l i si i st i v jem k n p q ret set

マニュアルの参照先

6.2.17 パスを扱う変

数名情報を表示する

(info pathvars コマ

ンド)

6.2.18 シグナル情報

を表示する(info signals コマンド)

6.2.19 ステータスを

表示する(info status

コマンド)

6.2.20 シェル変数情

報を表示する(info variables コマンド)

6.2.21 エラー注入

モードの有効/無効を

設定する

(joberrmode コマン

ド)

6.2.3 ジョブ定義ス

クリプトを終了する

(kill コマンド)

6.2.25 ソースファイ

ルを表示する(list コ

マンド)

6.2.8 逐次実行をす

る(step コマンド, next コマンド)

6.2.23 変数の値を表

示する(print コマン

ド)

6.2.1 デバッガを終

了する(quit コマン

ド)

6.2.11 関数を終了す

る(return コマンド)

6.2.2 ジョブ定義ス

クリプトを実行する

(run コマンド)

6.2.22 変数の値を設

定する(set コマンド)

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

JP1/Advanced Shell

516

コマンド名 signal step watch where

機能

シグナルを送信します。

関数内も含んで逐次実行をします。

ウォッチポイントを設定します。

バックトレースを表示します。

コマンドの

短縮形 si

マニュアルの参照先 s wa whe

6.2.12 シグナルを送

信する(signal コマン

ド)

6.2.8 逐次実行をす

る(step コマンド, next コマンド)

6.2.5 ウォッチポイ

ントを設定する

(watch コマンド)

6.2.24 バックトレー

スを表示する(where

コマンド)

デバッガコマンドを使用する場合,次の点に注意してください。

• 上の表にないコマンド名またはコマンドの短縮形をコマンドとして入力しないでください。

• 引数を指定できるコマンドで,引数の個数の上限を超えて指定しないでください。

• 引数を指定できないコマンドに引数を指定しないでください。

• デバッガの標準入力への入力文字数の上限は 4,094 バイトです。それ以上の文字を入力しないでくだ

さい。

6.1.5 ジョブ定義スクリプトの構成要素に対する停止可否

ジョブ定義スクリプトの各要素に対して,停止できるかどうかを次の表に示します。次の表で示す要素で

は,ブレークポイントや逐次実行などによる停止ができます。

表 6-3 ジョブ定義スクリプトの各要素に対しての停止可否

ジョブ定義スクリプトで使用する要素 内容 for 文 case 文 if 文 while 文 until 文 elif 文 else 文 for 文であることを示します。 case 文であることを示します。 if 文であることを示します。 while 文であることを示します。 until 文であることを示します。 elif 文であることを示します。 else 文であることを示します。

停止の可否

×

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

JP1/Advanced Shell

517

ジョブ定義スクリプトで使用する要素 case のパターン文

条件文の終端

ブロック終端

関数定義開始

関数定義終了

関数実行開始

関数実行終了

スクリプト拡張コマンド

シェル標準コマンド

シェル拡張コマンド

外部コマンド

代入演算,算術演算

ジョブ定義スクリプト終端(EOF)

コメントおよびスペース

(凡例)

○:停止できます。

×:停止できません。

内容 case 文に指定するパターン文であることを示します。パター

ン文の内部の処理は含みません。 if 文,elif 文の then,または for 文,while 文,until 文の do

など,条件文の終端を示します。 for 文,while 文,until 文の done,case 文の esac,if 文の fi など,ブロック終端を示します。

関数定義開始を示します。

関数定義終了を示します。

関数が開始することを示します。

関数が終了することを示します。

#-adsh で始まるスクリプト拡張コマンドを示します。

シェルに組み込まれたコマンドを示します。

シェル拡張コマンドを示します。

実行可能な外部コマンドを示します。

代入演算および算術演算を示します。

メインのジョブ定義スクリプトが終了することを示します。

コメントおよびスペースを示します。

停止の可否

×

×

×

×

×

×

×

注意事項

• 別プロセスで実行されるコマンドでは停止しません。

 1: funcA(){

 2: a=100

 3: echo $a

 4: }

 5: funcA &

 6: pwd

上記ジョブ定義スクリプトで,5 行目の「funcA &」の実行前で停止しているときに step コマンドを

実行すると,6 行目の「pwd」の実行前で停止します。&の指定によって,関数 funcA の内部のコマ

ンドは別プロセスで実行されるため,停止しません。

• シェルコマンドの引数に指定したコマンドでは停止しません。

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

JP1/Advanced Shell

518

• 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 行で記述してください。複数行にわたって記述する

と,設定したブレークポイントで停止できません。例を次に示します。

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

JP1/Advanced Shell

519

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. ジョブ定義スクリプトのデバッグ

JP1/Advanced Shell

520

6.2 CUI のデバッガ【UNIX 限定】

UNIX の実行環境の場合,デバッガはコマンドを利用して実行できます。CUI のデバッガのコマンドの記

述形式を次に示します。

0

コマンド名[△

1

オプション]…[△

1

オプション][△

1

オペランド]

• 最初にオプションを指定し,次にオペランドを指定します。オペランドとは,オプション名とオプショ

ン値のほかにコマンドに指定できる引数のことです。オプションの前にオペランドを指定した場合は,

指定内容をすべてオペランドとして処理します。

• オプションは「オプション名 [△

1

順序は任意です。

値 ]」の形式で指定します。オプションを複数指定する場合,指定

• 値のないオプションは連続して指定できます(例:「-a -b -c」と「-abc」は同じです)。その場合,最

後のオプションには値を指定できます(例:「-abc xyz」の「xyz」は,オプション-c の値となります)。

• 不当なオプション,または指定できる範囲外の値を指定した場合,エラーとなります。

デバッガを起動する

デバッガは,バッチジョブを実行するコマンド(adshexec コマンド)に-d オプションとジョブ定義ス

クリプトファイルのパス名を指定することで起動できます。

起動したデバッガはプロンプト文字列”(adshdb)”を出力し,ユーザーからの入力待ち状態となります。

ユーザーからのコマンド入力を受け付けたデバッガは,コマンドに対応する処理を実行します。処理が

終了したら,プロンプト文字列を出力し,入力待ち状態となります。この動作をデバッガが終了するま

で続けます。

入力待ち状態時にシグナルを受信し,再度入力待ちに戻る場合にも,プロンプト文字列「(adshdb)」

を出力します。

デバッガを起動する形式を次に示します。バッチジョブを実行するコマンドについては,「 8.3 シェル

運用コマンド 」の「

adshexec コマンド(バッチジョブを実行する)

adshexec -d ジョブ定義スクリプトファイルのパス名

ジョブ定義スクリプトを一時停止する

デバッグ実行中に Ctrl + C を入力することで,ジョブ定義スクリプトを一時停止できます。ジョブ定

義スクリプトが無限ループしている場合などに停止させる手段として有効です。

注意事項

・スクリプト拡張コマンド,シェル拡張コマンド,シェル標準コマンドまたはスクリプト予約語コ

マンドの実行時に Ctrl + C を入力すると,コマンドの実行完了後に,次に停止可能な命令の前で停

止します。

・外部コマンドをフォアグラウンドで実行しているときに Ctrl + C を入力した場合は,外部コマン

ドの動作に従います。

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

JP1/Advanced Shell

521

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 を入力してください。

ジョブ定義スクリプトが実行されていないときは,実行を開始するメッセージのあとに,指定した引数

を実行時パラメーターとして定義してジョブ定義スクリプトを実行します。

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

JP1/Advanced Shell

522

注意事項

• 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 コマンドの引数に関数名を指定すると,指定した関数にブレークポイントを設定します。

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

JP1/Advanced Shell

523

ジョブステップ名を指定する場合 break -s [ジョブ定義スクリプトファイル名:]ジョブステップ名

-s オプションを指定し,ジョブステップ名を指定すると,ジョブステップ名が定義されている行にブレー

クポイントを設定できます。

引数に”:”を使用すれば,ジョブ定義スクリプトファイル名を指定してブレークポイントを設定できます。

ただし,関数名を指定する場合はそのとき有効になっている 1 個の関数が対象となるため,ファイル名を

指定する必要はありません。 break コマンドを実行した場合の動作を次に示します。 break コマンドの後ろに引数を指定しない場合

現在停止中の行にブレークポイントを設定します。ただし,ジョブ定義スクリプトが実行されていない

ときは,1 行目以降で最初に停止できる行にブレークポイントを設定します。設定したブレークポイン

トの情報を表示します。 break コマンドの後ろに引数を指定した場合

指定した引数によって動作が異なります。詳細を次に示します。

• 行番号

引数に指定した行にブレークポイントを設定します。設定したブレークポイントの情報を表示しま

す。指定した行がない場合,エラーとなります。

• 関数名

引数に指定した関数にブレークポイントを設定します。設定したブレークポイントの情報を表示し

ます。ブレークポイントの位置は,関数定義内で最初に停止できる行になります。指定した関数が

ない場合,エラーとなります。

• -s ジョブステップ名

引数に指定したジョブステップにブレークポイントを設定します。設定したブレークポイントの情

報を表示します。指定したジョブステップがない場合,エラーとなります。

• ジョブ定義スクリプトファイル名

指定するファイル名には,バッチジョブを実行するコマンドに指定したファイルまたはスクリプト

拡張コマンドの#-adsh_script に指定したファイルを指定してください。指定したファイル名をブ

レークポイント設定の対象とします。また,ファイル名の指定を省略すると,カレントファイルを

ブレークポイント設定の対象とします。

注意事項

• ジョブ定義スクリプトファイル名の指定は,最後に入力された”:”の前までの文字列をファイル名と

見なします。

• 行番号は 0 以上の整数を入力してください。先頭に「+」は付けません。

• 行番号の指定時に int 型の範囲を超えた数値を入力した場合,int 型の上限値に丸めて扱います。

• 同じ名称のジョブステップが複数存在する場合,それらすべてにブレークポイントを設定します。

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

JP1/Advanced Shell

524

• 設定できるブレークポイントとウォッチポイントの番号を合わせて上限は 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

KNAX7018-I ブレークポイント "1": ファイル名="test.ash" 行番号=8

(adshdb) run

KNAX7007-I ジョブ定義スクリプトの実行を開始します。: /home/test/test.ash

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

JP1/Advanced Shell

525

KNAX7018-I ブレークポイント "1": ファイル名="test.ash" 行番号=8

KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。

8: funcA

現在位置: funcA

(adshdb)

6.2.5 ウォッチポイントを設定する(watch コマンド)

ウォッチポイントを設定するコマンドは,watch コマンドです。watch コマンドの短縮形は"wa"です。

設定したウォッチポイントには,1 から順に番号が割り当てられます。番号割り当てはブレークポイント

と共通です。watch コマンドの形式を次に示します。 watch 変数名 watch コマンドの引数には変数名を指定します。指定した変数の値が更新された場合,ジョブ定義スクリ

プトは次に停止可能なコマンドの前で実行を停止し,ウォッチポイント情報を表示します。 watch コマンドを実行した場合の動作を次に示します。 watch コマンドの後ろに引数を指定した場合

指定した変数にウォッチポイントを設定します。また,設定したウォッチポイントの情報を表示します。 watch コマンドの後ろに引数を指定しない場合

エラーメッセージが出力されます。

ウォッチポイントによってジョブ定義スクリプトの実行が停止した場合,ウォッチポイント情報として更

新前の値,更新後の値および変数を更新した行の行番号を表示します。表示形式を次に示します。

更新前の値 = 更新前の値

更新後の値 = 更新後の値

行番号 = 行番号

• 更新前の値 :更新される前のウォッチ対象の変数の値です。値がない場合,<No value>と表示します。

• 更新後の値 :更新されたあとのウォッチ対象の変数の値です。値がない場合,<No value>と表示しま

す。

• 行番号 :変数を更新した行の行番号です。trap コマンドの action を実行中の場合は,<Trap action>

と表示します。ジョブ定義スクリプト終端の場合,<EOF>と表示します。

注意事項

• 変数名に配列を指定する場合は,要素ごとに指定します。

 通常の変数指定:aaa

 配列指定:aaa[1]または aaa[0][1]

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

JP1/Advanced Shell

526

• 変数とその配列の 0 番目(例:aaa,aaa[0],および aaa[0][0])は同じです。ただし,ウォッチ

ポイントはそれぞれに設定できます。

• 変数名に$を付けると変数名として認識されません。

• 引数に変数名を指定する段階では,指定した変数が存在するかどうかは判断しません。

• 変数の命名規則から外れた変数名を指定した場合,エラーメッセージが出力されます。

• 更新前の変数の値と同じ値が代入された場合でも,ウォッチポイントとして停止します。

• シェル標準コマンドの typeset コマンドを使用して変数の値を文字列型から整数型に変更した場合,

または整数型から文字列型に変更した場合,ウォッチポイントとして停止します。

• 関数名と変数名の命名規則が同じため,引数に関数名を指定するとウォッチポイントとして設定で

きます。ただし,設定した関数名と同名の変数の値が更新されないかぎり,ジョブ定義スクリプト

の実行は停止しません。

• 1 行に複数のコマンドがあり,ウォッチ対象の変数の値が更新された場合,同じ行であっても次に

停止できるコマンドの前で停止します。

• 設定できるブレークポイントとウォッチポイントの番号を合わせて上限は 999 です。合計数が上限

の 999 に達してから新たにブレークポイントまたはウォッチポイントを設定したい場合は,デバッ

ガをいったん終了してください。上限値に達した場合,delete コマンドでブレークポイントやウォッ

チポイントを削除しても,設定できません。

• ジョブ定義スクリプトが停止しているときに set コマンドでウォッチ対象の変数の値を変更し,ジョ

ブ定義スクリプトの実行を再開すると,次に停止できるコマンドの前で実行を停止します。

• 同一の変数に設定できるウォッチポイントの数は 1 個です。ウォッチポイントとして設定済みの変

数は,ウォッチポイントとして設定できません。

• 次のコマンドでウォッチ対象の変数の値が更新された場合,ジョブ定義スクリプトの実行は停止し

ません。

・バックグラウンドで実行したコマンド(&または

|

&)

・パイプで連結したコマンド

・「(」「)」で囲んでコマンドのグループ化をしたコマンド群

・外部コマンドのように別プロセスで実行されるコマンド

 1: a=1 &

 2: b=2

 3: c=3

上記の例で変数 a にウォッチポイントを設定し,ジョブ定義スクリプトを実行した場合,代入式

「a=1」はバックグラウンドで実行されるため,ジョブ定義スクリプトの実行は停止しません。

使用例

次のジョブ定義スクリプトに対して「watch b」と指定すると,変数 b にウォッチポイントを設定でき

ます。

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

JP1/Advanced Shell

527

1: echo "start"

2: a=1

3: b=5

4: c=10

5: echo "end"

その後,ジョブ定義スクリプトを実行して代入式「b=5」が実行されると,ウォッチポイント情報を表

示し,4 行目の「c=10」の実行前で停止します。

KNAX7023-I ウォッチポイント "1": 変数名 "b"

更新前の値 = <No value>

更新後の値 = 5

行番号 = 3

KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。

4: c=10

現在位置: c=10

(adshdb)

6.2.6 ブレークポイント・ウォッチポイントを削除する(delete コマンド)

ブレークポイントまたはウォッチポイントを削除するコマンドは,delete コマンドです。delete コマンド

の短縮形は"d"です。delete コマンドの形式を次に示します。 delete[ ブレークポイント・ウォッチポイント番号[-ブレークポイント・ウォッチポイント番号]] delete コマンドの引数に番号を指定すると,対応するブレークポイントまたはウォッチポイントを削除で

きます。また,”-”を使用して番号の範囲を指定できます。例えば,番号 1 から番号 5 までのポイントを削

除したい場合は,「1-5」と指定します。引数を省略すると,すべてのブレークポイントとウォッチポイン

トを削除します。 delete コマンドを実行した場合の動作を次に示します。 delete コマンドの後ろに引数を指定しない場合

ブレークポイントまたはウォッチポイントが 1 つ以上設定されているときは,すべてのブレークポイン

トとウォッチポイントを削除するかどうかの確認メッセージが出力されます。削除する場合は,y また

は Y を入力してください。

ブレークポイントまたはウォッチポイントが 1 つも設定されていないときは,エラーメッセージが出力

されます。 delete コマンドの後ろに引数を指定した場合

• ブレークポイント・ウォッチポイント番号

指定した番号のブレークポイントまたはウォッチポイントを削除します。指定した番号が存在しな

い場合,エラーメッセージが出力されます。

• 番号-番号

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

JP1/Advanced Shell

528

「-」の前の番号から後ろの番号までの範囲にあるブレークポイントとウォッチポイントを削除しま

す。指定した範囲内に含まれる番号のウォッチポイントおよびブレークポイントがすべて削除され

ます。指定した範囲内にウォッチポイントおよびブレークポイントがひとつも含まれない場合,エ

ラーメッセージが出力されます。

• 上記以外

エラーメッセージが出力されます。

注意事項

• 引数の番号は 0 以上の整数を入力してください。先頭に「+」は付けません。

• 番号を範囲指定した場合,前の値と後ろの値が等しいときは,その番号だけを対象とします。

• 番号を範囲指定した場合,前の値より後ろの値が小さいときは,エラーメッセージが出力されます。

• 番号の指定時に int 型の範囲を超えた数値を入力した場合,int 型の上限値に丸めて扱います。

6.2.7 ジョブ定義スクリプトの実行を再開するコマンド

ジョブ定義スクリプトの実行を再開する場合,次の 3 つの方法があります。

• 逐次実行

ジョブ定義スクリプトが停止した位置から 1 つのコマンドを実行します。逐次実行をするコマンドは, step コマンドおよび next コマンドです。

• 継続実行

停止したジョブ定義スクリプトの実行を継続します。継続実行をするコマンドは,continue コマンド

です。

• 関数を実行

関数の中で実行を停止しているときに,関数からリターンするまでジョブ定義スクリプトを実行しま

す。関数を実行するコマンドは, finish コマンドです。

また,関数を終了するコマンドは,return コマンドです。ジョブ定義スクリプトにシグナルを送信するコ

マンドは,signal コマンドです。

コマンドを実行したあとにジョブ定義スクリプトの実行が停止すると,メッセージ,次に実行予定の行番

号,ソースファイル行を表示します。表示形式を次に示します。

バッチジョブを実行するコマンドに指定したジョブ定義スクリプトファイルおよびスクリプト拡張コマン

ドの#-adsh_script に指定したジョブ定義スクリプトファイルの場合

行番号: ソースファイル行

現在位置: コマンド文字列

行番号

:次に実行するコマンドの行番号です。

ソースファイル行

:行番号に対応するソースファイルの行の内容です。

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

JP1/Advanced Shell

529

コマンド文字列

:次に実行するコマンド文字列です。

スクリプト拡張コマンドの#-adsh_script に指定していない外部スクリプトの場合

行番号: 行番号

現在位置 コマンド文字列

行番号

:次に実行するコマンドの行番号です。

コマンド文字列

:次に実行するコマンド文字列です。

注意事項

• 別プロセスで実行されるジョブ定義スクリプトの場合,コマンド文字列に<Another process script>

と表示されます。

• デバッグ中のジョブ定義スクリプトが trap コマンドの action を実行中の場合は,次の表示形式に

なります。

  行番号: <Trap action>

  現在位置: コマンド文字列

• ジョブ定義スクリプト終端(EOF)の場合は,次の表示形式になります。

  現在位置: <EOF>

出力例

次に実行予定の行番号とソースファイル行を表示します。

バッチジョブを実行するコマンドに指定したジョブ定義スクリプトファイルおよびスクリプト拡張コマ

ンドの#-adsh_script に指定したジョブ定義スクリプトファイルの場合

100: echo "aaa" ←次に実行する処理は100行目の「echo "aaa"」

現在位置: echo ←その時に実行されるコマンドは「echo」

スクリプト拡張コマンドの#-adsh_script に指定していない外部スクリプトの場合

行番号: 50 ←次に実行されるのは外部スクリプトの50行目にある処理

現在位置: num=1 ←その時に実行される処理は「num=1」

6.2.8 逐次実行をする(step コマンド,next コマンド)

ジョブ定義スクリプトが停止した位置から 1 つのコマンドを実行するコマンドは,step コマンドおよび next コマンドです。step コマンドは停止した位置の 1 つのコマンドで関数が呼ばれている場合,関数内

に入ります。next コマンドは停止した位置の 1 つのコマンドで関数が呼ばれていても,関数内で停止しな

いで実行します。step コマンドの短縮形は"s",next コマンドの短縮形は"n"です。

(1) step コマンド step コマンドの形式を次に示します。

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

JP1/Advanced Shell

530

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

現在位置: val=1

(adshdb) step

KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。

7: num=2

現在位置: num=2

(adshdb)

8 行目の関数呼び出し「funcA」の実行前で停止しているときに step コマンドを実行すると,2 行目の

「echo」の実行前で停止します。

8: funcA

現在位置: funcA

(adshdb) step

KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。

2: echo "funcA"

現在位置: echo

(adshdb)

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

JP1/Advanced Shell

531

(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

現在位置: val=1

(adshdb) next

KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。

7: num=2

現在位置: num=2

(adshdb)

8 行目の関数呼び出し「funcA」の実行前で停止しているときに next コマンドを実行すると,9 行目

の「echo」の実行前で停止します。

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

JP1/Advanced Shell

532

8: funcA

現在位置: funcA

(adshdb) next

KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。

9: echo $num

現在位置: 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 コマンドの後ろに引数を指定しない場合

関数内で停止しているときは,現在の関数の終わりまで実行するというメッセージが出力され,関数の

終わりまでジョブ定義スクリプトを実行します。ジョブ定義スクリプトの実行が停止すると,停止位置

のフレーム情報を表示し,次に実行予定の行番号とそのソースファイル行を表示します。停止位置のフ

レーム情報の表示形式を次に示します。

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

JP1/Advanced Shell

533

停止位置のフレーム情報

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"

現在位置: echo

(adshdb) finish

KNAX7036-I 現在の関数の終わりまで実行します。

Num Function File:Line

0 <main> test.ash:9

KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。

9: echo $num

現在位置: echo

(adshdb)

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

JP1/Advanced Shell

534

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: }

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

JP1/Advanced Shell

535

5:

6: val=1

7: num=2

8: funcA

9: echo $num

2: echo "funcA"

現在位置: echo

(adshdb) return

KNAX7037-I 現在の関数を終了しますか?(y または n) y

KNAX7068-I 関数の終わりまでコマンドをスキップします。

Num Function File:Line

0 <main> test.ash:9

KNAX7032-I ジョブ定義スクリプトファイル("test.ash")の中で実行を停止しました。

9: echo $num

現在位置: echo

(adshdb)

6.2.12 シグナルを送信する(signal コマンド)

ジョブ定義スクリプトにシグナルを送信するコマンドは,signal コマンドです。signal コマンドの短縮形

は"si"です。signal コマンドの形式を次に示します。 signal {シグナル名|シグナル番号}

引数にシグナル名またはシグナル番号を指定すると,対応するシグナルを送信し,ジョブ定義スクリプト

を継続実行します。引数に指定できるシグナルの情報を表示するには,info signals コマンドを使用して

ください。また,シグナル受信時の動作については,「 3.11.2 シグナル受信時の動作【UNIX 限定】

参照してください。 signal コマンドを実行した場合の動作を次に示します。 signal コマンドの後ろに引数を指定した場合

ジョブ定義スクリプトが実行されている状態で signal コマンドを実行すると,次のようになります。

シグナル番号およびシグナル名

指定したシグナルを送信するというメッセージが出力されます。そのあと,指定したシグナルをジョ

ブ定義スクリプトに送信し,ジョブ定義スクリプトを継続実行します。

存在しないシグナルのときおよびジョブ定義スクリプトが実行されていないときは,エラーメッセージ

が出力されます。 signal コマンドの後ろに引数を指定しない場合

ジョブ定義スクリプトが実行中で停止している状態で signal コマンドを実行すると,エラーメッセー

ジが出力されます。

ジョブ定義スクリプトが実行されていないときも,エラーメッセージが出力されます。

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

JP1/Advanced Shell

536

注意事項

• 引数の番号は 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 コマンドを実行した場合の動作を次に示します。

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

JP1/Advanced Shell

537

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. ジョブ定義スクリプトのデバッグ

JP1/Advanced Shell

538

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. ジョブ定義スクリプトのデバッグ

JP1/Advanced Shell

539

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. ジョブ定義スクリプトのデバッグ

JP1/Advanced Shell

540

6.2.17 パスを扱う変数名情報を表示する(info pathvars コマンド) info pathvars コマンドは,次の情報を標準エラー出力に表示します。

• 指定したシェル変数名が「パス名を扱うシェル変数」であるか「パス名を扱わないシェル変数」であ

るか info pathvars コマンドの形式を次に示します。 info pathvars シェル変数名 info pathvars コマンドの動作を次に示します。

引数

存在する変数名

上記以外

動作内容

指定したシェル変数がパス名を扱う変数名であるかどうかを表

示します(表示形式 1)。

パス名を扱わない変数として,同等の表示をします。

表示形式 1

種別 : シェル変数名

• 種別:「パス名を扱うシェル変数」または「パス名を扱わないシェル変数」を示します。 var:「パス名を扱うシェル変数」 novar:「パス名を扱わないシェル変数」

• シェル変数名:コマンドで指定したシェル変数名です。

6.2.18 シグナル情報を表示する(info signals コマンド)

シグナルの情報を表示するコマンドは,info signals コマンドです。info signals コマンドの短縮形は"i si"

です。info signals コマンドの形式を次に示します。 info signals[ シグナル名| シグナル番号]

引数にシグナル名またはシグナル番号を指定すると,対応するシグナルの情報を表示します。引数を省略

すると,すべてのシグナルの情報を表示します。表示形式を次に示します。

Num Signal Stop Print

シグナル番号 シグナル名 Yes/No Yes/No

シグナル番号

:シグナル番号です。シグナル番号を昇順に並べて表示します。左詰めで 2 桁まで表示で

きます。

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

JP1/Advanced Shell

541

シグナル名

:シグナル名です。左詰めで 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.19 ステータスを表示する(info status コマンド)

デバッグ中のジョブ定義スクリプトのステータスを表示するコマンドは,info status コマンドです。info status コマンドの短縮形は"i st"です。info status コマンドの形式を次に示します。 info status[ joberrmode]

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

JP1/Advanced Shell

542

引数に joberrmode を指定するか,または引数を省略すると,ジョブ定義スクリプトのエラー注入モード

の状態を表示します。joberrmode の短縮形は"jem"です。

出力例

ジョブ定義スクリプトのステータス(エラー注入モードが有効の場合)を表示します。 joberrmode:on

ジョブ定義スクリプトのステータス(エラー注入モードが無効の場合)を表示します。 joberrmode:off

6.2.20 シェル変数情報を表示する(info variables コマンド)

すべてのシェル変数情報を表示するコマンドは,info variables コマンドです。info variables コマンド

の短縮形は"i v"です。info variables コマンドの形式を次に示します。 info variables[ 変数名]

引数に変数名を指定すると,指定したシェル変数情報を表示します。引数を省略すると,すべてのシェル

変数情報を表示します。表示形式を次に示します。

変数名 = 変数値 [(ステップローカル変数)]

変数名

:シェル変数名です。変数名を ASCII コード順に並べて表示します。

変数値

:シェル変数の値です。ジョブステップ内でだけ有効なシェル変数の場合,補足情報(ステップ

ローカル変数)を付けて表示します。ジョブステップ内でだけ有効なシェル変数とは,スクリプト拡張

コマンドの#-adsh_step_start コマンドの stepVar 属性に指定したシェル変数です。

値を持っていない変数の場合,「=」と変数値を表示しません。表示形式を次に示します。

変数名[(ステップローカル変数)] info variables コマンドを実行した場合の動作を次に示します。 info variables コマンドの後ろに引数を指定しない場合

すべてのシェル変数情報を表示します。 info variables コマンドの後ろに引数を指定した場合

表示する変数名が存在するときは,指定したシェル変数情報を表示します。

表示する変数名が存在しないときは,エラーメッセージが出力されます。

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

JP1/Advanced Shell

543

注意事項

• run コマンドによるジョブ定義スクリプト実行中以外では変数が定義されていないため,変数を表

示できません。

• 変数名に配列を指定する場合は,要素ごとに指定します。

• 変数とその配列の 0 番目(例:aaa,aaa[0],および aaa[0][0])は同一のものであるため,ジョ

ブ定義スクリプト内で配列となっているときは添え字を付けて表示し,配列となっていないときは

添え字を付けないで表示します。

• シェルは配列を作成すると配列の 0 番目が自動的に作成されるため,すべてのシェル変数を表示す

る場合,それらを含めて表示されます。

出力例

すべてのシェル変数情報を表示します。

SHELL = /bin/sh

TEMPFILE = /tmp/file01 num = 1 (ステップローカル変数) val = 100

6.2.21 エラー注入モードの有効/無効を設定する(joberrmode コマンド)

デバッグ中のジョブ定義スクリプトのエラー注入モードを有効または無効にするには,joberrmode コマ

ンドを実行します。joberrmode コマンドの短縮形は"jem"です。joberrmode コマンドの形式を次に示し

ます。 joberrmode {on|off} on を選択した場合

エラー注入モードを有効にします。これによって,ジョブ内でエラーが発生した場合のケースをテスト

できます。すべての実行パスを実行しても C1 実行比率が 100%とならない場合に,エラーをシミュ

レートするために使用します。C1 実行比率が 100%とならないケースについては,「

(5) C1 実行比率

100%とならないケース

」を参照してください。

エラー注入モードが有効な場合は次のように動作します。このとき,終了コードは変更しません。

• run 属性に abnormal または always が指定されている場合,ジョブステップを実行する。

• run 属性が省略されているまたは normal が指定されている場合,ジョブステップを実行しない。

• ジョブステップ外のコマンドは実行しない。

• ステップ正常ブロック内でエラー注入した場合,そのステップのステップエラーブロック内のコマ

ンドは実行する。onError 属性に cont が指定されていても,そのステップ内の後続のコマンドは実

行しないで,ステップエラーブロックを実行する。

エラー注入モードが on の場合に run コマンドを実行すると,エラー注入モードは off に戻ります。

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

JP1/Advanced Shell

544

CMDRC_CMDGRP_CHECK パラメータに FUNCTION を指定した場合,関数内で停止中に

「joberrmode on」を実行しても,エラー注入モードは on に変更できません。 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 ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ち

ます。

KNAX0724-I ジョブ識別子を割り当てました。Jobid=000004

(adshdb) b 2 ←2.

KNAX7015-W 指定した行番号("2")にブレークポイントを設定できません。次に設定できる行に

ブレークポイントを設定します。

KNAX7018-I ブレークポイント "1": ファイル名="joberrmode.ash" 行番号=3

(adshdb) b 17 ←3.

KNAX7018-I ブレークポイント "2": ファイル名="joberrmode.ash" 行番号=17

(adshdb) run ←4.

KNAX7007-I ジョブ定義スクリプトの実行を開始します。: /home/jobuser1/joberrmode/ joberrmode.ash

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

JP1/Advanced Shell

545

KNAX0724-I ジョブ識別子を割り当てました。Jobid=000005

KNAX0091-I ADSH000005 ジョブが開始しました。

KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

KNAX7018-I ブレークポイント "1": ファイル名="joberrmode.ash" 行番号=3 ←5.

KNAX7032-I ジョブ定義スクリプトファイル("joberrmode.ash")の中で実行を停止しました。

3: #-adsh_step_start STEP001

現在位置: #-adsh_step_start STEP001

(adshdb) info status ←6.

joberrmode:off ←7.

(adshdb) joberrmode on ←8.

KNAX7126-I エラー注入モードを "on" に設定しました。

(adshdb) info status ←9.

joberrmode:on ←10.

(adshdb) c ←11.

KNAX7034-I ジョブ定義スクリプトの実行を継続します。

KNAX6508-I ADSH000005.STEP001 先行のジョブステップまたはコマンドがエラー終了したため,

ジョブステップをスキップしました。

KNAX0092-I ADSH000005.STEP002 ステップが開始しました。

KNAX7018-I ブレークポイント "2": ファイル名="joberrmode.ash" 行番号=17 ←12.

KNAX7032-I ジョブ定義スクリプトファイル("joberrmode.ash")の中で実行を停止しました。

17: ./cmd4

現在位置: ./cmd4

(adshdb) joberrmode off

KNAX7127-E エラー注入モードの再設定に失敗しました。 ←13.

(adshdb) c ←14.

KNAX7034-I ジョブ定義スクリプトの実行を継続します。 cmd4 start cmd4 end

KNAX6116-I コマンド(./cmd4, 行番号=17)が正常終了しました。rc=0 E-Time=0.001s C-

Time=0.000s

KNAX6597-I ADSH000005.STEP002 ジョブステップが正常終了しました。rc=0 E-Time=4.666s C-

Time=0.000s

KNAX0101-E ADSH000005 ジョブを実行中にエラーが発生しました。

KNAX0098-I ADSH000005 ジョブが終了しました。rc=0 E-Time=15.203s C-Time=0.000s

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="/home/jobuser1/test6/spool/000005-ADSH000005/"

(adshdb) quit

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="/home/jobuser1/test6/spool/000004-ADSH000004/"

KNAX7999-I ルートジョブのジョブコントローラがバッチジョブを終了しました。rc=0

実行結果の右側に付加した番号に従って解説します。

デバッグを開始する。

スクリプトの途中で停止させる。

エラー時に実行するステップ内で停止させる。

スクリプトを実行する。

最初のブレークポイントで停止する。

ステータスを表示する。

エラー注入モードは無効。

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

JP1/Advanced Shell

546

エラー注入モードを有効にする。

ステータスを表示する。

エラー注入モードは有効。

デバッグを再開する。

エラー時に実行するステップ内で停止する。

エラー注入モードの切り替えはできない。

デバッグを再開する。

実行結果 2

ステップ内で停止し,joberrmode コマンドでエラー注入モードを有効にした場合の例を示します。

行の右側に付加した番号に対する説明は,実行結果の下を参照してください。

[jobuser1@HOST01 joberrmode]$ adshexec -d joberrmode.ash ←1.

KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ち

ます。

KNAX0724-I ジョブ識別子を割り当てました。Jobid=000006

(adshdb) b 5 ←2.

KNAX7018-I ブレークポイント "1": ファイル名="joberrmode.ash" 行番号=5

(adshdb) b 17 ←3.

KNAX7018-I ブレークポイント "2": ファイル名="joberrmode.ash" 行番号=17

(adshdb) run ←4.

KNAX7007-I ジョブ定義スクリプトの実行を開始します。: /home/joberrmode/joberrmode/ joberrmode.ash

KNAX0724-I ジョブ識別子を割り当てました。Jobid=000007

KNAX0091-I ADSH000007 ジョブが開始しました。

KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

KNAX0092-I ADSH000007.STEP001 ステップが開始しました。

KNAX7018-I ブレークポイント "1": ファイル名="joberrmode.ash" 行番号=5 ←5.

KNAX7032-I ジョブ定義スクリプトファイル("joberrmode.ash")の中で実行を停止しました。

5: ./cmd1

現在位置: ./cmd1

(adshdb) info status ←6.

joberrmode:off ←7.

(adshdb) joberrmode on ←8.

KNAX7126-I エラー注入モードを "on" に設定しました。

(adshdb) info status ←9.

joberrmode:on ←10.

(adshdb) c ←11.

KNAX7034-I ジョブ定義スクリプトの実行を継続します。 cmd2 start cmd2 end

KNAX6116-I コマンド(./cmd2, 行番号=9)が正常終了しました。rc=0 E-Time=0.001s C-

Time=0.000s

KNAX6596-E ADSH000007.STEP001 ジョブステップがエラー終了しました。rc=0 E-Time=13.568s

C-Time=0.010s

KNAX0092-I ADSH000007.STEP002 ステップが開始しました。

KNAX7018-I ブレークポイント "2": ファイル名="joberrmode.ash" 行番号=17 ←12.

KNAX7032-I ジョブ定義スクリプトファイル("joberrmode.ash")の中で実行を停止しました。

17: ./cmd4

現在位置: ./cmd4

(adshdb) joberrmode off

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

JP1/Advanced Shell

547

KNAX7127-E エラー注入モードの再設定に失敗しました。 ←13.

(adshdb) c ←14.

KNAX7034-I ジョブ定義スクリプトの実行を継続します。 cmd4 start cmd4 end

KNAX6116-I コマンド(./cmd4, 行番号=17)が正常終了しました。rc=0 E-Time=0.001s C-

Time=0.000s

KNAX6597-I ADSH000007.STEP002 ジョブステップが正常終了しました。rc=0 E-Time=15.496s C-

Time=0.000s

KNAX0101-E ADSH000007 ジョブを実行中にエラーが発生しました。

KNAX0098-I ADSH000007 ジョブが終了しました。rc=0 E-Time=29.066s C-Time=0.010s

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="/home/joberrmode/test6/spool/000007-ADSH000007/"

実行結果の右側に付加した番号に従って解説します。

デバッグを開始する。

ステップ内のスクリプトの途中で止める。

エラー時に実行するステップ内で止める。

スクリプトを実行する。

最初のブレークポイントで停止する。

ステータスを表示する。

エラー注入モードは無効。

エラー注入モードを有効にする。

ステータスを表示する。

エラー注入モードは有効。

デバッグを再開する。

エラー時に実行するステップ内で停止する。

エラー注入モードの切り替えはできない。

デバッグを再開する。

実行例 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 コマンドを投入して実行した場合の例を示します。

行の右側に付加した番号に対する説明は,実行結果の下を参照してください。

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

JP1/Advanced Shell

548

[jobuser1@HOST01 joberrmode]$ adshexec -d test_cont.ash ←1.

KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ち

ます。

KNAX0724-I ジョブ識別子を割り当てました。Jobid=000008

(adshdb) b 4 ←2.

KNAX7018-I ブレークポイント "1": ファイル名="test_cont.ash" 行番号=4

(adshdb) r ←3.

KNAX7007-I ジョブ定義スクリプトの実行を開始します。: /home/jobuser1/joberrmode/ test_cont.ash

KNAX0724-I ジョブ識別子を割り当てました。Jobid=000009

KNAX0091-I JOB001 ジョブが開始しました。

KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

KNAX0092-I JOB001.STEP001 ステップが開始しました。 cmd1 start cmd1 end

KNAX6116-I コマンド(./cmd1, 行番号=3)が正常終了しました。rc=0 E-Time=0.001s C-

Time=0.000s

KNAX7018-I ブレークポイント "1": ファイル名="test_cont.ash" 行番号=4 ←4.

KNAX7032-I ジョブ定義スクリプトファイル("test_cont.ash")の中で実行を停止しました。

4: ./cmd2

現在位置: ./cmd2

(adshdb) info status ←5.

joberrmode:off ←6.

(adshdb) jem on ←7.

KNAX7126-I エラー注入モードを "on" に設定しました。

(adshdb) info status ←8.

joberrmode:on ←9.

(adshdb) c ←10.

KNAX7034-I ジョブ定義スクリプトの実行を継続します。 cmd4 start ←11.

cmd4 end

KNAX6116-I コマンド(./cmd4, 行番号=7)が正常終了しました。rc=0 E-Time=0.002s C-

Time=0.000s

cmd5 start cmd5 end

KNAX6116-I コマンド(./cmd5, 行番号=8)が正常終了しました。rc=0 E-Time=0.001s C-

Time=0.000s

KNAX6596-E JOB001.STEP001 ジョブステップがエラー終了しました。rc=0 E-Time=34.884s C-

Time=0.000s

KNAX0101-E JOB001 ジョブを実行中にエラーが発生しました。

KNAX0098-I JOB001 ジョブが終了しました。rc=0 E-Time=34.886s C-Time=0.000s

KNAX6380-I ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="/home/jobuser1/test6/spool/000009-JOB001/"

実行結果の右側に付加した番号に従って解説します。

デバッグを開始する。

ステップ内のスクリプトの途中で止める。

スクリプトを実行する。

最初のブレークポイントで停止する。

ステータスを表示する。

エラー注入モードは無効。

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

JP1/Advanced Shell

549

エラー注入モードを有効にする。

ステータスを表示する。

エラー注入モードは有効。

デバッグを再開する。

ステップエラーブロック部のコマンドを実行する。

6.2.22 変数の値を設定する(set コマンド)

シェル変数の値を設定するコマンドは,set コマンドです。引数に代入式を指定することで,その式を評価

して変数の値を設定できます。set コマンドの短縮形はありません。set コマンドの形式を次に示します。 set 代入式

代入式の形式を次に示します。

変数名={変数名|数値|"文字列"}

変数名

(左辺):シェル変数名です。指定した変数に右辺の値が代入されます。

変数名

(右辺):シェル変数名です。指定した変数の値が左辺の変数に代入されます。

数値

:整数値です。指定した整数値が左辺の変数に代入されます。

文字列

:文字列です。指定した文字列が左辺の変数に代入されます。 set コマンドを実行した場合の動作を次に示します。 set コマンドの後ろに引数を指定した場合

• 代入式

指定した代入式に応じて変数の値を設定します。

• 作成されていない変数名が含まれる代入式

エラーメッセージが出力されます。

• 代入式以外

エラーメッセージが出力されます。 set コマンドの後ろに引数を指定しない場合

エラーメッセージが出力されます。

注意事項

• run コマンドによるジョブ定義スクリプト実行中以外では,変数情報が設定されていないため,エ

ラーとなります。

• 文字列を指定する場合は,ダブルクォーテーションで囲んでください。文字列の中にダブルクォー

テーションを使用するときは,

\

を付けて

\

"と指定します。また,

\

"は

\\\

"と指定します。

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

JP1/Advanced Shell

550

• 代入式の中で最初に出現する等号(=)以降の引数を,変数名および数値または文字列として処理

します。

• 変数名に配列を指定する場合は,要素ごとに指定します。

• 変数名の指定に$を付けないでください。

• 数値の指定時に 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"

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

JP1/Advanced Shell

551

変数「c」に変数「a」の値を代入する場合

(adshdb) set c=a

変数「d[5]」(配列)に数値「1」を代入する場合

(adshdb) set d[5]=1

「e[5][1]」(配列)に数値「2」を代入する場合

(adshdb) set e[5][1]=2

6.2.23 変数の値を表示する(print コマンド)

ジョブ定義スクリプト内の変数の値を表示するコマンドは,print コマンドです。引数に変数名を指定する

ことで,その変数の値を表示できます。print コマンドの短縮形は"p"です。print コマンドの形式を次に示

します。 print 変数名 print コマンドを実行した場合の動作を次に示します。 print コマンドの後ろに引数を指定した場合

変数が定義されているときは,指定した変数の値を表示します。表示形式を次に示します。

変数値

変数値

:指定した変数の値です。値がない場合,<No value>と表示します。

変数が定義されていないときは,エラーメッセージが出力されます。 print コマンドの後ろに引数を指定しない場合

エラーメッセージが出力されます。

注意事項

• run コマンドによるジョブ定義スクリプト実行中以外では,変数情報が設定されていないため,エ

ラーとなります。

• 変数名に配列を指定する場合は,要素ごとに指定します。

• 変数名の指定に$を付けないでください。

使用例

変数「a」の値を表示する場合

(adshdb) print a

変数「b[1]」(配列)の値を表示する場合

(adshdb) print b[1]

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

JP1/Advanced Shell

552

変数「c[0][1]」(2 次元配列)の値を表示する場合

(adshdb) print c[0][1]

6.2.24 バックトレースを表示する(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 コマンドを実行すると,すべてのフレー

ム情報を内側のフレームから順に表示します。

ジョブ定義スクリプトが実行されていないときは,エラーメッセージが出力されます。

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

JP1/Advanced Shell

553

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.25 ソースファイルを表示する(list コマンド)

ソースファイルを表示するコマンドは,list コマンドです。list コマンドの短縮形は"l"です。list コマンド

の形式を次に示します。

ファイル名を指定しない場合 list[ 行番号]

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

JP1/Advanced Shell

554

引数を省略すると,現在の行に停止して最初に 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)で停止している

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

JP1/Advanced Shell

555

・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.26 ディレクトリを移動する(cd コマンド)

デバッガの作業ディレクトリを移動するコマンドは,cd コマンドです。cd コマンドの短縮形はありませ

ん。cd コマンドの形式を次に示します。 cd ディレクトリパス名

引数にディレクトリパス名を指定すると,作業ディレクトリを移動できます。 cd コマンドを実行した場合の動作を次に示します。 cd コマンドの後ろに引数を指定した場合

指定したディレクトリにデバッガの作業ディレクトリを移動します。移動先のディレクトリの絶対パス

を表示します。

ただし,ジョブ定義スクリプトが実行されている場合は,デバッガの作業ディレクトリだけを移動し,

実行中のジョブ定義スクリプトのカレントディレクトリは変更しません。

なお,実行権限のないディレクトリパス名を指定した場合および存在しないディレクトリパス名を指定

した場合など,デバッガの作業ディレクトリを移動できなかったときは,エラーメッセージが出力され

ます。 cd コマンドの後ろに引数を指定しない場合

エラーメッセージが出力されます。

使用例 cd コマンドで作業ディレクトリを移動します。そのあとに,exec コマンドを使用して外部コマンドを

実行し,移動先のディレクトリに存在するファイルの内容を出力します。

(adshdb) cd work

KNAX7048-I ディレクトリパス(/home/xxx/work)に作業ディレクトリを移動しました。

(adshdb) exec cat test.txt

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

JP1/Advanced Shell

556

aaa bbb ccc

(adshdb)

6.2.27 ログインシェルを起動する(exec コマンド)

デバッグ中にログインシェルを起動するコマンドは,exec コマンドです。ログインシェルとは,シェル変

数 SHELL に設定されているシェルを示します。exec コマンドの短縮形は"ex"です。exec コマンドの形

式を次に示します。 exec[ ログインシェルに渡す引数]…

ログインシェルに渡す引数を指定すると,指定した引数をログインシェルに渡して実行します。引数を省

略すると,ログインシェルを起動します。

注意事項

• 引数に&が含まれている場合,エラーメッセージが出力されます。

• バックグラウンド実行以外の目的で引数に&を使用する場合,代わりに

\

&で指定します。

• 引数の個数に上限はありません。

使用例 exec コマンドでシェルの ls コマンドを実行します。

(adshdb) exec ls aaa.txt bbb.log bin

6.2.28 ヘルプを表示する(help コマンド)

デバッガコマンドのヘルプを表示するコマンドは,help コマンドです。help コマンドの短縮形は"h"です。 help コマンドの形式を次に示します。 help[ コマンド名]

引数にコマンド名を指定すると,そのコマンドの説明を表示します。引数を省略すると,すべてのコマン

ド名を表示します。また,引数に指定するコマンド名は短縮形で指定できます。 help コマンドを実行した場合の動作を次に示します。 help コマンドの後ろに引数を指定しない場合

すべてのコマンド名を表示します。表示形式を次に示します。

使用可能なコマンド一覧: break cd continue delete exec finish help info joberrmode kill

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

JP1/Advanced Shell

557

list next print quit return run set signal step watch where help コマンドの後ろに引数を指定した場合

コマンド名を指定したときは,指定したコマンドの使用方法を表示します。

存在しないコマンドを指定したときは,エラーメッセージが出力されます。

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

JP1/Advanced Shell

558

第 4 編 リファレンス編

7

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

環境ファイルにパラメーターを設定すると,終了コード,カバレージ,システム実行ログ,ディ

レクトリのパス,環境変数などについて定義できます。この章では,パラメーターの記述形式と

詳細について説明します。

JP1/Advanced Shell

559

7.1 環境ファイルの記述形式

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

パラメーターには次の種類があります。

パラメーターの種類

環境設定パラメーター export パラメーター

条件パラメーター

定義内容

終了コード,カバレージ,システム実行ログ,ディレクトリのパスなどを定義します。

環境変数を定義します。

物理ホストまたは特定の論理ホストだけで有効とする環境設定パラメーターおよび export

パラメーターを指定します。

環境ファイルの 1 行の長さは,コメントや区切り文字も含めて 4,092 バイト以内としてください。4,092

バイトを超えると解析エラーとなります。また,環境ファイルには,コメント内も含めて&(アンパーサ

ンド)を記載しないでください。

環境ファイルで設定するパラメーターは,次の点に注意してください。

• 行の途中に NULL("0x00"または C 言語での"

\

0")が混入している場合,ジョブコントローラはその

行で NULL が現れる部分までを 1 行と見なします。その行で NULL のあとにほかの文字列があっても

無視されます。不正な実行結果や実行時エラーの要因となるため,NULL を記述しないようにしてく

ださい。

• 環境ファイルのエンコーディングと,ジョブ定義スクリプトを実行する環境の LANG 環境変数の値は

一致させてください。

• #の後ろが"-adsh_conf△

1

"でない場合は,コメントになります。

7.1.1 パラメーターの記述形式

(1) 環境設定パラメーターの記述形式

環境設定パラメーターの記述形式を次に示します。

0

#-adsh_conf△

1

パラメーター△

1

• #-adsh_conf に続いてパラメーターを 1 行で記述します。

• パラメーターの値の後ろには何も記述しないでください。

• スペースを含む値をパラメーターに指定する場合は,その値を"(ダブルクォーテーション)で囲んで

ください。そのほかのエスケープ文字は使用できません。

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

JP1/Advanced Shell

560

(2) export パラメーターの記述形式 export パラメーターの記述形式を次に示します。

0 export△

1

環境変数名=環境変数値

• export パラメーターには,1 行で 1 個の環境変数を記述します。

• 環境変数 PATH 以外の環境変数を参照することはできません。

例えば,次のように指定しても,環境変数 HOME の内容は展開されないで,「${HOME}」という文字

列がそのまま環境変数 NEWHOME に設定されます。 export NEWHOME=${HOME}

• スペースを含む値を指定する場合は"(ダブルクォーテーション)または'(シングルクォーテーション)

で囲んでください。

\

はエスケープ文字として動作します('(シングルクォーテーション)で囲まれた範囲は通常の文字と

して扱われます)。

(3) 条件パラメーターの記述形式

条件パラメーターの記述形式を次に示します。

0

#-adsh_conf△

1

[phost_start | lhost_start△

1

ホスト名]

環境設定パラメーターまたはexportパラメーター

0

#-adsh_conf△

1

[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

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

JP1/Advanced Shell

561

#-adsh_conf phost_start export TEMP=/tmp

#-adsh_conf phost_end

#-adsh_conf phost_end

7.1.2 コメントの記述形式

コメントの記述形式を次に示します。

0

#<「-adsh_conf」で開始しない任意文字列>

#に続いて「-adsh_conf△

1

」でない文字列を記述すると,#以降から行末までをコメントとして扱います。

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

JP1/Advanced Shell

562

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.

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

JP1/Advanced Shell

563

1.:ジョブ環境ファイルの指定

2.:システム環境ファイルの指定

(2) 環境設定パラメーターの種類

JP1/Advanced Shell の環境ファイルに設定する環境設定パラメーターを次の表に示します。これらのパ

ラメーターの指定は任意です。

表 7-1 JP1/Advanced Shell の環境ファイルに設定する環境設定パラメーター

パラメーター名

ADSHCMD_RC_ERROR

ADSHCMD_RC_SUCCESS

ASC_FILE

BATCH_CVR

CHILDJOB_EXT

CHILDJOB_PGM

CHILDJOB_SHEBANG

CMDRC_CMDGRP_CHECK

CMDRC_THRESHOLD_DEFINE

CMDRC_THRESHOLD_USE_PRESET

定義内容 指定個

数の上

限値

※1

1 スクリプト拡張コマンドが失敗したときの終了

コードを定義します。

スクリプト拡張コマンドが成功したときの終了

コードを定義します。

カバレージ採取の一括有効化機能で使用する蓄

積ファイル名の生成規則を定義します。

カバレージ採取の一括有効化機能を有効にしま

す。

子孫ジョブとして実行するジョブ定義スクリプ

トファイルの拡張子を定義します。

子孫ジョブとして実行するように読み替えるプ

ログラムパスを定義します。

子孫ジョブとして実行するジョブ定義スクリプ

トファイルの実行プログラムパスを定義します。

1

1

1

255

255

255

関数の終了コードに従ってジョブおよびジョブ

ステップのエラー判定をするかどうかを定義し

ます。

1

コマンドの終了コードのしきい値を定義します。

シェルスクリプトや子孫ジョブの終了コードに

対しても定義できます。

無制限

3

1 UNIX 互換コマンドの終了コードのしきい値を

定義します。

コマンド置換の動作を定義します。 1 CMDSUB_PROCESS

【Windows 限定】

COMMAND_CONV_ARG 255

COMPATIBLE_CMD_EXEC

コマンド実行時にジョブ定義スクリプト中の引

数を変換する規則を定義します。

外部コマンドの起動方法を定義します。 1

子孫ジョブ

起動時の変

更可否

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

JP1/Advanced Shell

564

パラメーター名

COMPATIBLE_CMDSUB

【UNIX 限定】

ESCAPE_SEQ_ECHO_DEFAULT

ESCAPE_SEQ_ECHO_HEX

EVENT_COLLECT

HOSTNAME_JP1IM_MANAGER

※2

JOBEXECLOG_PRINT

JOBLOG_SUPPRESS_MSG

KSH_ENV_READ

LOG_DIR

※4

LOG_FILE_CNT

※5

LOG_FILE_SIZE

※5

OUTPUT_MODE_CHILD

OUTPUT_MODE_ROOT

OUTPUT_STDOUT

PATH_CONV

PATH_CONV_ACCESS

PATH_CONV_ENABLE

PATH_CONV_NOVAR

PATH_CONV_RULE

【Windows 限定】

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

JP1/Advanced Shell

定義内容 指定個

数の上

限値

※1

1

子孫ジョブ

起動時の変

更可否

○ コマンド置換の動作を定義します。

エスケープ文字関連のオプション省略時の echo

コマンドの動作を定義します。

16 進数表記の ASCII コード文字をエスケープ

文字として解釈するか定義します。

ジョブ定義スクリプト稼働実績情報取得機能を

有効とするかどうかを定義します。

ユーザー応答機能で,JP1 イベントの送信先で

ある JP1/IM - Manager が稼働している運用管

理サーバを指定します。

ジョブ終了時に標準エラー出力へ出力するジョ

ブ実行ログの内容を定義します。

ジョブ実行ログへの出力を抑止するメッセージ

を定義します。

シェル変数 ENV を読み込むかどうかを定義しま

す。

システム実行ログを出力するディレクトリのパ

ス名を定義します。

システム実行ログをバックアップする面数を定

義します。

システム実行ログを出力するファイルサイズを

定義します。

1

1

1

1

1

無制限

3

1

1

1

1

子孫ジョブの終了時に,ジョブ実行ログを標準

エラー出力へ出力するかどうかを定義します。

ルートジョブの終了時に,ジョブ実行ログを標

準エラー出力へ出力するかどうかを定義します。

ルートジョブの標準出力の出力先を定義します。

変換前・変換後のパス名を定義します。

変換前・変換後のパス名を定義します。この変

換はファイルの入出力時に実行されます。

パス変換機能を有効にします。

パス名を扱わないシェル変数を定義します。

1

1

1

255

255

1

無制限

3

×

パス変換ルールを定義します。 1 ○

565

パラメーター名

PATH_CONV_VAR

PERMISSION_SPOOLJOB_DIR

【UNIX 限定】

PERMISSION_SPOOLJOB_FILE

【UNIX 限定】

PIPE_CMD_LAST

SPOOL_DIR

※2,※4,※6

SPOOLJOB_CHILDJOB

SPOOLJOB_CREATE

TEMP_FILE_DIR

TRACE_DIR

※4

※4

TRACE_FILE_CNT

※7

TRACE_FILE_SIZE

※7

TRACE_LEVEL

TRAP_ACTION_SIGTERM

UNSUPPORT_TEST

【Windows 限定】

USERREPLY_DEBUG_DESTINATION

USERREPLY_JP1EVENT_INTERVAL

※2

USERREPLY_WAIT_MAXCOUNT

※2

定義内容

パス名を扱うシェル変数を定義します。

スプールジョブディレクトリのパーミッション

を定義します。

スプールジョブディレクトリ下のファイルのパー

ミッションを定義します。

パイプの最終コマンドの実行プロセスを定義し

ます。

スプールルートディレクトリのパス名を定義し

ます。

子孫ジョブの終了時に,スプールジョブを削除

するか,ルートジョブのスプールジョブへマー

ジするかを定義します。

ジョブ定義スクリプトの実行時にスプールジョ

ブを作成するかどうかを定義します。

一時ファイルを格納するディレクトリのパス名

を定義します。

トレースを出力するディレクトリのパス名を定

義します。

トレースを出力する面数を定義します。

トレースを出力するファイルサイズを定義しま

す。

トレースを出力するレベルを定義します。

ジョブコントローラが強制終了要求を受けたと

きの動作を定義します。

サポートしていない条件式を実行した場合の動

作を定義します。

ユーザー応答機能で,デバッグ実行時の事象通

知メッセージと応答要求メッセージの入出力先

を定義します。

ユーザー応答機能で,adshecho コマンドや adshread コマンドによる JP1 イベントの最小

発行間隔を定義します。

ユーザー応答機能で,物理ホストまたは論理ホ

ストごとに,応答要求メッセージの最大同時出

力数を定義します。

指定個

数の上

限値

※1

無制限

3

子孫ジョブ

起動時の変

更可否

1 −

1

1

1

1

1

1

1

1

1

1

1

条件ご

とに 1

1

1

1

×

×

×

×

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

JP1/Advanced Shell

566

パラメーター名

VAR_ENV_NAME_LOWERCASE

【Windows 限定】

VAR_SHELL_FUNCINFO

VAR_SHELL_GETLENGTH

定義内容

小文字が含まれる環境変数名を有効にするかど

うかを定義します。

シェル関数の情報を管理する配列を定義します。

変数値の長さを参照する場合の長さの単位を定

義します。

指定個

数の上

限値

※1

1

1

1

子孫ジョブ

起動時の変

更可否

(凡例)

○:ルートジョブ起動時の設定値は子孫ジョブ起動時に変更しても動作しますが,推奨しません。

△:ルートジョブ起動時の設定値は子孫ジョブ起動時に変更しても有効になりません。

×:ルートジョブ起動時の設定値は子孫ジョブ起動時に変更しないでください。正しく動作しないおそ

れがあります。

−:子孫ジョブには該当しません。

注※1

システム環境ファイルとジョブ環境ファイルの両方の指定を有効とするパラメーターの場合,両方の

ファイルの指定数の合計がこの上限値を超えないよう指定してください。

各パラメーターでシステム環境ファイルとジョブ環境ファイルの両方が指定できるかどうかは,各パラ

メーターの説明を参照してください。

注※2

ユーザー応答機能を利用する場合,これらのパラメーターはシステム環境ファイルに指定する必要があ

ります。また,システム環境ファイルを変更した場合,ユーザー応答機能管理デーモン・サービスを再

起動してください。

それに加えて,パラメーターの指定に関しては次の点に注意してください。

• これらのパラメーターはジョブ環境ファイルに指定しないでください。次の問題が発生するおそれ

があります。

HOSTNAME_JP1IM_MANAGER:adshchmsg コマンドから応答を入力した場合や応答をキャン

セルした場合,ユーザー応答機能管理デーモン・サービスの停止時に,応答待ちイベントが JP1/IM

- View の滞留から解除されません。

USERREPLY_WAIT_MAXCOUNT:ジョブ環境ファイルの指定は無視されます。

USERREPLY_JP1EVENT_INTERVAL:JP1/IM - View に負荷が掛かります。

• 次のパラメーターをシステム環境ファイルとジョブ環境ファイルで異なる値を指定した場合は,次

の問題が発生するおそれがあります。ユーザー応答機能を使用するときには,次のパラメーターは

ジョブ環境ファイルに指定しないでください。

SPOOL_DIR:応答要求メッセージの出力に失敗します。

注※3

使用できるメモリ量で制限されます。

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

JP1/Advanced Shell

567

注※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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

568

<ジョブ環境ファイル> 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 環境変

数に指定する文字列が長くなるためです。このため,子孫ジョブ機能と併用する場合は上限サイズを超

えないように注意が必要です。環境変数に格納できる文字列の上限サイズは 32,766 バイトです。

Windows では PATH 環境変数に長大な文字列を格納した場合,上限サイズに達していなくても,OS

の API でエラーが発生することがあります。このため,上限サイズに迫るような文字列が PATH 環境

変数に格納されないようにしてください。

上限サイズを超えてしまう場合には,ルートジョブの環境ファイルと子孫ジョブの環境ファイルを分け

て,ルートジョブの環境ファイルだけに PATH 環境変数にパスを追加してください。

(2) export パラメーターの一覧 export パラメーターの定義条件を次に示します。このパラメーターの指定は任意です。このパラメーター

はジョブコントローラだけが使用します。

パラメーター名 export

定義内容

環境ファイルを使用するジョブコントローラ起動時に有効としたい環境変

数を定義します。

指定個数の上限値

無制限

7.2.3 条件パラメーターの一覧

(1) 条件パラメーターの定義

論理ホスト専用,または物理ホスト専用の環境設定パラメーターおよび export パラメーターを定義する場

合は,条件パラメーターで囲んで定義します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

569

条件パラメーター外に記述してあるパラメーターは,すべてのホストで有効になります。条件パラメーター

によって有効になったパラメーターと,条件パラメーター外で有効となった同一のパラメーターは,重複

指定と見なされ,指定可能数の上限を超えていた場合はエラーになります。

条件パラメーターを次のように定義した場合について説明します。

(パラメーター群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 環境ファイルを設定する

」を参照してください。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

570

システム環境ファイルとジョブ環境ファイルに指定できるパラメーターは同じですが,同じパラメーター

を指定した場合の扱いは次のようになります。

• システム環境ファイルとジョブ環境ファイルの両方が有効になります。

• 条件が一致して有効になったパラメーターはそれそれのパラメーターの規則が適用されます。

<システム環境ファイル>

#-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 lhost_end phost_start

特定の論理ホストだけに有効とする環境設定パラメーターおよび export パラメーターを

開始します。

対象となる論理ホスト名もあわせて定義します。 lhost_start によって開始された,論理ホスト用の環境設定パラメーターと export パラ

メーターを終了します。このパラメーターは,lhost_start パラメーターと必ず対になる

ように定義します。

物理ホストだけに有効とする環境設定パラメーターおよび export パラメーターを開始し

ます。

指定個数の上

限値

無制限

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

571

パラメーター名 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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

572

#-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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

573

#-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)

この定義の場合,各ホストで実行されるパラメーター群は次のとおりです。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

574

論理ホスト HOST01 で実行されるパラメーター群

(パラメーター群A)

(パラメーター群B)

(パラメーター群E)

(パラメーター群H)

論理ホスト HOST02 で実行されるパラメーター群

(パラメーター群A)

(パラメーター群C)

(パラメーター群F)

(パラメーター群H)

物理ホストで実行されるパラメーター群

(パラメーター群A)

(パラメーター群D)

(パラメーター群G)

(パラメーター群H)

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

575

7.3 環境設定パラメーター

JP1/Advanced Shell の環境ファイルに設定するパラメーターについて説明します。

7.3.1 ADSHCMD_RC_ERROR パラメーター(スクリプト拡張コマンド失敗

時の終了コードを定義する)

形式

#-adsh_conf ADSHCMD_RC_ERROR 終了コード

機能

スクリプト拡張コマンドが失敗したときの終了コードを定義します。

オペランド

終了コード   〜<符号なし整数>((0〜255))《1》

スクリプト拡張コマンドが失敗したときの終了コードを指定します。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

7.3.2 ADSHCMD_RC_SUCCESS パラメーター(スクリプト拡張コマンド

成功時の終了コードを定義する)

形式

#-adsh_conf ADSHCMD_RC_SUCCESS 終了コード

機能

スクリプト拡張コマンドが成功したときの終了コードを定義します。

オペランド

終了コード   〜<符号なし整数>((0〜255))《0》

スクリプト拡張コマンドが成功したときの終了コードを指定します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

576

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

7.3.3 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 限定】

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

577

使用例

• カバレージ採取の一括有効化機能を有効にし,蓄積ファイル名の生成規則を定義します。

#-adsh_conf BATCH_CVR YES

#-adsh_conf ASC_FILE ./cvrg/ver001-*

この場合,「adshexec sample.ash」の実行は,「adshexec -t -o ./cvrg/ver001-sample sample.ash」の実行と同じとなります。

7.3.4 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 で終

了します。

• すでにカバレージ情報ファイルがある状態で,ジョブ定義スクリプトファイルを変更すると,カバレー

ジ情報を採取できません。この場合,次のどちらかを実施してください。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

578

• ジョブ定義スクリプトを変更した asc ファイルを削除します。

• 環境ファイルで,asc ファイルの作成ディレクトリを変更します。

7.3.5 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 限定】

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

579

• 同じ拡張子を重複して指定してもエラーにはなりません。

• シェル標準コマンドの exec コマンド,command コマンド,eval コマンド,およびスクリプト予約語

コマンドの time コマンドの引数にファイルを指定した場合も,このパラメーターによる実行の対象と

なります。

• Windows 版の場合,英大文字と英小文字を区別しません。UNIX 版の場合,英大文字と英小文字を区

別します。

• 拡張子がないファイルを子孫ジョブとして実行する場合は,CHILDJOB_PGM パラメーターまたは

CHILDJOB_SHEBANG パラメーターを使用してください。

• このパラメーターは,変数置換やエイリアスの解決後のコマンド名に対して適用されます。

使用例

拡張子が ash,sh のファイルをコマンド名として指定した場合に,子孫ジョブとして実行したいときの例

を次に示します。

#-adsh_conf CHILDJOB_EXT ash

#-adsh_conf CHILDJOB_EXT sh

7.3.6 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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

580

この例の場合,「$HOME/script/test.ash」をジョブ定義スクリプトと解釈し,子孫ジョブとして実行し

ます。

指定できるオペランドの数は,プログラムパス名と実行プログラムの引数の合計で,64 個までです。65

個以上指定した場合,パラメーター解析時にエラー終了します。

Windows 版では,環境ファイルに CHILDJOB_PGM パラメーターを定義しなくても,プログラムパス

に「adshscripttool -exec」が指定された CHILDJOB_PGM パラメーターが定義されています。

adshscripttool コマンドについては,「 adshscripttool コマンド(ジョブ定義スクリプトの作成を支援す

オペランド

プログラムパス名 〜<パス名>((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 パラメーターによる変換が先に実施されます。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

581

• このパラメーターは,変数置換やエイリアスの解決後の文字列に対して適用されます。変数置換の例を

次に示します。

環境ファイルの内容

#-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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

582

例 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

7.3.7 CHILDJOB_SHEBANG パラメーター(子孫ジョブとして実行するジョ

ブ定義スクリプトファイルの実行プログラムパスを定義する)

形式

#-adsh_conf CHILDJOB_SHEBANG パス名

機能

子孫ジョブとして実行するジョブ定義スクリプトファイルに指定された,「#!」に続く実行プログラムパス

を定義します。「#!」の直後から行末までをパス名の比較対象とします。

ジョブ定義スクリプト中にほかのジョブ定義スクリプトファイルをコマンド名として指定した場合,この

パラメーターで指定したパス名がジョブ定義スクリプトのファイルの 1 行目に「#!+パス名」と記述され

ていれば,KNAX6831-I メッセージをジョブ実行ログに出力し,ジョブ定義スクリプトファイルを子孫

ジョブとして実行します。KNAX6831-I メッセージは,JOBLOG_SUPPRESS_MSG パラメーターでジョ

ブ実行ログへの出力を抑止できます。

なお,CHILDJOB_SHEBANG パラメーターには,次の 2 つがデフォルトで定義されています。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

583

デフォルト定義

/opt/jp1as/bin/adshexec

/opt/jp1as/bin/adshexec -mMINIMUM

子孫ジョブ起動時の出力モード

OUTPUT_MODE_CHILD パラメーターの指定に従って動

作します。

最小出力モードで動作します。

CHILDJOB_SHEBANG パラメーターのデフォルト定義については,「

(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」が記述されたファイルを子孫ジョブとして実行する例

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

584

#-adsh_conf CHILDJOB_SHEBANG "/usr/bin/env ksh"

7.3.8 CMDRC_CMDGRP_CHECK パラメーター(関数の終了コードに従っ

てジョブおよびジョブステップのエラー判定をする)

形式

#-adsh_conf CMDRC_CMDGRP_CHECK {FUNCTION|NONE}

機能

関数の終了コードに従ってジョブおよびジョブステップのエラー判定をするかどうかを定義します。

オペランド

FUNCTION

関数の終了コードに従ってジョブおよびジョブステップのエラー判定をし,関数内のコマンドの終了

コードに従ってジョブおよびジョブステップのエラー判定をしないようにします。また,

CMDRC_THRESHOLD_DEFINE パラメータ,#-adsh_rc_ignore コマンド,adshcmdrc コマンド,

#-adsh_step_start コマンドの-successRC 属性によって,関数の終了コードしきい値を変更できるよ

うになります。

NONE

関数内のコマンドの終了コードに従って,関数が定義されているジョブおよびジョブステップのエラー

判定をするようにします。関数の終了コードに従ったジョブおよびジョブステップのエラー判定はしま

せん。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメータが指定された場合,ジョブ環境

ファイルの定義が有効になります。

• オペランドに FUNCTION を指定した場合は,関数内のコマンドのメッセージは出力されません。

• 関数実行中に,シグナルまたは強制終了要求を受けて実行された trap コマンドのアクションは,関数

内で実行されたと見なされます。このため,関数内で実行された trap コマンドのアクションは,オペ

ランドの値に従って,ジョブおよびジョブステップのエラー判定の変更対象になります。

• 関数実行中にバックグラウンド実行したコマンドは,関数内から実行したとしても,関数内のコマンド

とは見なしません。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

585

7.3.9 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 を指定した場合,実行結果は常にエラー終了します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

586

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 パラメーターが先に処理され

ます。

• CMDRC_CMDGRP_CHECK パラメータに FUNCTION を指定した場合,オペランドのコマンド名

に関数名を指定することで,関数に対して正常終了とみなす終了コードしきい値を定義できます。

CMDRC_CMDGRP_CHECK パラメータを指定しない場合,または CMDRC_CMDGRP_CHECK パ

ラメータに NONE を指定した場合,オペランドのコマンド名に関数名を指定しても,同名のコマンド

名が指定されたとして処理されます。

使用例

• 子孫ジョブ CHILD_EXEC1.sh に対し,終了コードのしきい値を 10(終了コードが 10 以下で正常終

了)と定義します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

587

#-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 に変更します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

588

#-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

7.3.10 CMDRC_THRESHOLD_USE_PRESET パラメーター(UNIX 互換コ

マンドの終了コードのしきい値を定義する)

形式

#-adsh_conf CMDRC_THRESHOLD_USE_PRESET {ENABLE|DISABLE}

機能

次に示すすべての UNIX 互換コマンドに対し,正常終了と見なす終了コードのしきい値を一括で定義しま

す。定義できるしきい値は 0 または 1 です。

• cmp コマンド

• diff コマンド

• egrep コマンド

• expr コマンド

• grep コマンド

• sort コマンド

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

589

コマンドごとに異なるしきい値を設定したい場合は,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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

590

7.3.11 CMDSUB_PROCESS パラメーター(コマンド置換の実行プロセス

を定義する)【 Windows 限定】

形式

#-adsh_conf CMDSUB_PROCESS {CURRENT | OTHER}

機能

コマンド置換の実行プロセスを定義します。

コマンド置換で変数の内容を更新しますが,コマンド置換実行前の内容をコマンド置換終了後に再利用し

たい場合は,OTHER を指定してください。

OTHER を指定した場合の例を次に示します(CBL_SYSUT は CBLUAPx の共通インターフェース用変

数と仮定します)。

• ジョブ定義スクリプトの内容 funcA(){

CBL_SYSUT=/file2

CBLUAP2

}

CBL_SYSUT=/file1

VAL1=$(CBLUAP1)

VAL2=$(funcA)

VAL3=$(CBLUAP3)

この場合,CBLUAP1 と CBLUAP3 の実行時のシェル変数 CBL_SYSUT には "/file1" ,CBLUAP2 の

実行時のシェル変数 CBL_SYSUT には "/file2" が格納されています。

オペランド

CURRENT

次に示すコマンドをコマンド置換に指定した場合に,コマンド置換をカレントプロセスで実行します。

• シェル標準コマンド

• 代入式

• スクリプト制御文

• シェル拡張コマンド

• スクリプト予約語コマンド

• 関数

上記以外の場合,別プロセスで動作します。また,データの受け渡しのために一時ファイルを使用しま

す。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

591

OTHER

コマンド置換を別プロセスで実行します。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• このパラメーターを同一の環境ファイルで同一のホストに対して複数定義した場合,パラメーターエ

ラーとなります。

• OTHER を指定した場合,CURRENT に比べて実行時間が大きくなる場合があります。そのため,

CURRENT から OTHER に切り替える際は,ジョブの実行時間を検証してください。なお,スクリプ

ト開発部品やスクリプト形式の UNIX 互換コマンドには,スクリプト内でコマンド置換を使用してい

るものがあります。スクリプト開発部品やスクリプト形式の UNIX 互換コマンドを実行する場合は,

実行時間の長大化を防ぐために CURRENT を指定しておくことを推奨します。

• 次のすべての条件が重なった命令を記述すると,コマンド置換の実行結果を正しく得ることができない

場合があります。

• CMDSUB_PROCESS パラメーターに CURRENT を指定している。

• コマンド置換処理の中でパイプを使用している。

• パイプで繋がれた最後のコマンドをバックグラウンド実行している。

例: `cmd1 | { cmd2; cmd3 & }`

7.3.12 COMMAND_CONV_ARG パラメーター(コマンド実行時にジョブ

定義スクリプト中の引数を変換する規則を定義する)

形式

#-adsh_conf COMMAND_CONV_ARG コマンド引数1 コマンド引数2

機能

ジョブ定義スクリプト中のシェル標準コマンド,シェル拡張コマンド,関数,スクリプト拡張コマンド,

スクリプト予約語コマンド,外部コマンド,およびユーザープログラムの引数を変換する規則を定義します。

ジョブ定義スクリプトの実行時にコマンドの引数がコマンド引数 1 と完全一致する場合,コマンド引数 2

に変換します。コマンド引数 1 およびコマンド引数 2 は必ず指定します。

同じコマンド引数に異なる規則を定義した場合は,先に定義した規則が有効になります。

.(ドット)コマンド,および#-adsh_script コマンドに指定した外部スクリプトも,実行時に定義に合致

していた場合,引数が変換されます。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

592

変換結果は,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

この場合,環境ファイルのそれぞれの行で次のように変換されます。

1. eval コマンドが実行され,「/tmp」が「/var/tmp」に変換される。

2. cd コマンドが実行され,「/var/tmp」が「/jp1as/tmp」に変換される。

• このパラメーターの変換後の引数に,文字列区切りである IFS シェル変数と一致する文字が含まれた場

合でも,変換後の引数は 1 つの文字列の引数として解釈されます。そのため,パラメーターの変換結果

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

593

の文字列にメタキャラクタが含まれていて,実行するコマンドが 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. 変換規則 1 に従って次のように変換され,実行される。

 cd "C:\\Documents and Settings"

2. 変換規則 2 に従って変換するが,次のように文字列が区切られる。

 readonly  A=1 &

3. eval コマンドの実行時に,変換規則 1 に従って次のように変換される。

 eval cd "C:\\Documents and Settings"

しかし,cd コマンド実行時に次のように引数が区切られ解釈される。

 cd  C:\Documents  and  Settings

4. 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"

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

594

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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

595

• UNIX 用に作成したジョブ定義スクリプトを Windows で実行するため,"/tmp"を"C:

\ temp"に変換

します。

#-adsh_conf PATH_CONV_ENABLE / :

#-adsh_conf COMMAND_CONV_ARG /tmp "C:\\temp"

7.3.13 COMPATIBLE_CMD_EXEC パラメーター(外部コマンドの起動方

法を定義する)【Windows 限定】

形式

#-adsh_conf COMPATIBLE_CMD_EXEC V10

機能

このパラメーターは互換性維持を目的としています。次の条件を満たすユーザーは定義が必要かどうか検

討してください。

• JP1/Advanced Shell を 11-00 より前から使用し,11-00 以降にバージョンアップした。

このパラメーターを定義することで外部コマンドの起動方法を選択できます。

JP1/Advanced Shell は 11-00 で外部コマンドの起動方法を変更しています。ただし,この変更によっ

て,外部コマンドによっては JP1/Advanced Shell 11-00 より前のバージョンでは正常終了していたコマ

ンドがエラー終了する場合があります。

11-00 より前のバージョンで作成したジョブ定義スクリプトの内容は変更しないで,外部コマンドを 11-00

より前のバージョンとの互換性を保持した方式で起動したい場合は,オペランドに V10 を指定し,このパ

ラメーターを環境ファイルに指定することを推奨します。

これによって 11-00 より前のバージョンと同じ方式で外部コマンドを起動します。オペランドに V10 を

指定した場合,外部コマンド実行時に次の処理をします。

COMPATIBLE_CMD_EXEC パラメーターに V10 を指定した場合の動作

• 引数内の"(ダブルクォーテーション)の前の「¥」を「¥¥」に変換する。

• 引数内の"(ダブルクォーテーション)の前の「¥」を付与する。

• 引数を"(ダブルクォーテーション)で囲む。

上記の処理をスキップしたい場合,command コマンドに-w オプションを指定して,外部コマンドを起動

してください。

ただし,command コマンドに-w オプションを指定して外部コマンドを起動した場合は,11-00 より前

のバージョンとの互換性を保持した方式で外部コマンドを起動します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

596

オペランド

V10

上記の処理をし,11-00 より前のバージョンとの互換性を保持した方法で外部コマンドを起動します。

注意事項

• オペランドに V10 を指定した環境でバッチファイルを実行する場合,制限事項があります。制限の内

容については,「

5.1.11 外部コマンドの指定 」を参照してください。

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• このパラメーターを同一の環境ファイルで同一のホストに対して複数定義した場合,パラメーターエ

ラーとなります。

7.3.14 COMPATIBLE_CMDSUB パラメーター(コマンド置換の動作を定

義する)【UNIX 限定】

形式

#-adsh_conf COMPATIBLE_CMDSUB V10

機能

このパラメーターは互換性維持を目的としています。次の条件を満たすユーザーは定義が必要かどうか検

討してください。 v10 の JP1/Advanced Shell を使用し,v11 以降にバージョンアップした。

オペランド

V10

PIPE_CMD_LAST パラメーターに CURRENT を指定した場合,パイプの最終コマンドをカレントプ

ロセスで実行します。また,データの受け渡しのために一時ファイルを使用します。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• このパラメーターを同一の環境ファイルで同一のホストに対して複数定義した場合,パラメーターエ

ラーとなります。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

597

• 次のすべての条件が重なった命令を記述すると,コマンド置換の実行結果を正しく得ることができない

場合があります。

• COMPATIBLE_CMDSUB パラメーターを指定している。

• PIPE_CMD_LAST パラメーターに CURRENT を指定している。

• コマンド置換処理の中でパイプを使用している。

• パイプで繋がれた最後のコマンドをバックグラウンド実行している(例:`cmd1 | { cmd2, cmd3

& }`)。

7.3.15 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 コマンドはエスケープ文字を解釈しません。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• このパラメーターを同一の環境ファイルで同一のホストに対して複数定義した場合,パラメーターエ

ラーとなります。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

598

• 1〜2 桁の 16 進数で表された ASCII コードの文字をエスケープ文字として解釈したい場合,

ESCAPE_SEQ_ECHO_HEX パラメーターにも YES を指定してください。

使用例

• echo コマンドで-e オプションを指定しなくてもエスケープ文字を解釈します。

#-adsh_conf ESCAPE_SEQ_ECHO_DEFAULT YES

7.3.16 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 コマンドの引数に指定した場合,出力される内容は端末に指定され

た文字コードに従います。そのため,印字可能文字でない場合は,正しく出力されないことがあります。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

599

使用例

• 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

7.3.17 EVENT_COLLECT パラメーター(ジョブ定義スクリプト稼働実績情

報取得機能の有効/無効を指定する)

形式

#-adsh_conf EVENT_COLLECT {YES|NO}

機能

ジョブ定義スクリプト稼働実績情報取得機能を有効とするか,無効とするかを指定します。ジョブ定義ス

クリプト稼働実績情報取得機能を無効とした場合,スプールディレクトリにイベントファイルは作成され

ません。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

600

JP1/Advanced Shell - Developer では,このパラメーターの指定は無視され,イベントファイルは作成

されません。

CUI のデバッガを使用している場合も,このパラメーターの指定は無視され,イベントファイルは作成さ

れません。

オペランド

YES

ジョブ定義スクリプト稼働実績情報取得機能を有効とします。

ジョブ定義スクリプト稼働実績情報を収集し,イベントファイルに出力します。

NO

ジョブ定義スクリプト稼働実績情報取得機能を無効とします。

イベントファイルを作成しません。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• このパラメーターを同一の環境ファイルで同一のホストに対して複数定義した場合,パラメーターエ

ラーとなります。

使用例

• ジョブ定義スクリプト稼働実績情報取得機能を無効とします。

#-adsh_conf EVENT_COLLECT NO

7.3.18 export パラメーター(環境変数を定義する)

形式 export 環境変数名=環境変数値

機能

ジョブ定義スクリプトの実行時に有効としたい環境変数を定義します。

引数

環境変数名 〜<環境変数名>((1〜255 バイト))

設定する環境変数名を指定します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

601

Windows の場合,環境変数の名前は,環境設定パラメーター VAR_ENV_NAME_LOWERCASE に

DISABLE を指定すると,大文字のシェル変数名として取り込まれます。

環境変数値 〜<任意文字列>((0〜1 行に記述できるまで))

環境変数に設定する値を指定します。

環境変数値にスペースを含む場合などは,ダブルクォーテーション("),シングルクォーテーション

(')で囲むか,またはエスケープ文字(

\

)を使用してスペースをエスケープすることで指定できます。

ダブルクォーテーション(")で囲まれた文字列に「

\

」を指定すると,その後ろに指定された文字に関

係なく,すべてエスケープ文字として扱われます。そのため,ダブルクォーテーション(")で囲まれ

た文字列に「

\

」を指定する場合は,「

\\

」と指定してください。

任意文字列中に${PATH}を記述することで,その時点の PATH 環境変数値を挿入できます。挿入した

い個所に次の形式で指定します。 export 環境変数名=[任意文字列]${PATH}[任意文字列]

${PATH}による PATH 環境変数値は,ダブルクォーテーション("),シングルクォーテーション('),

またはエスケープ文字(

\

)の指定に関係なく,そのまま挿入されます。PATH 環境変数値が挿入され

た結果の文字列全体に対してダブルクォーテーション("),シングルクォーテーション('),またはエ

スケープ文字(

\

)の指定が有効になり,最終的に環境変数に値が設定されます。

Windows の PATH 環境変数を定義する場合などは,PATH 環境変数値が挿入された結果の空白や

\

正しく解釈されるよう,シングルクォーテーション(')で囲んでください。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,次の順

で環境変数が設定されます。

• システム環境ファイルでの設定

• ジョブ環境ファイルでの設定

• export パラメーターで LANG 環境変数の値を設定しても,この環境設定パラメーターを読み込んだ adshexec コマンド自身のプロセスのロケールは変更されません。【UNIX 限定】

• 環境変数に格納できる文字列の上限サイズは 32,766 バイトです。Windows では PATH 環境変数に

長大な文字列を格納した場合,上限サイズに達していなくても,OS の API でエラーが発生することが

あります。このため,上限サイズに迫るような文字列が PATH 環境変数に格納されないようにしてく

ださい。

使用例

• 環境変数 AAA に環境変数の値 BBB を設定します。 export AAA=BBB

• 環境変数 AAA に環境変数の値 BBB を設定するときの誤りの例です。

AAA=BBB export AAA

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

602

• 既存の 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}'

パス区切り文字には「;」(セミコロン)を使用します。

7.3.19 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 イベントは発行されますが,応答待ちイベントとして扱われま

せん。また,指定したホスト名は名前解決されているか確認してください。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

603

このパラメーターを省略した場合は,JP1/Advanced Shell が稼働するバッチ業務サーバで hostname

コマンドを実行したときに表示されるホスト名が仮定されます。

注意事項

• このパラメーターはジョブ環境ファイルに指定しないでください。

• このパラメーターを指定する場合は,物理ホストまたは論理ホストごとに応答要求メッセージの最大同

時出力数を決定し,USERREPLY_WAIT_MAXCOUNT パラメーターに指定してください。

• このパラメーターで指定した運用管理サーバ上で,JP1/Advanced Shell が動作するバッチ業務サーバ

のホスト名が名前解決できることを確認してください。

• ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行した場合,このパラメーターの指定

は無視されます。

7.3.20 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 の内容も含まれます。

• ジョブ定義スクリプト

• ジョブ実行中の標準エラー出力の内容

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

604

STDERR

ジョブ終了時に標準エラー出力へ出力する内容は,ジョブ実行中の標準エラー出力だけとします。

標準エラー出力には,もともと出力されている情報メッセージに加えて,メッセージ種別が I のメッ

セージ(通常は JOBLOG ファイルに出力される情報メッセージ)以外のメッセージも出力されます。

ルートジョブの標準エラー出力へ出力される子孫ジョブの JOBLOG の内容は出力されません。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• このパラメーターに対して,同一環境ファイル内で次のどれかの指定をした場合,JP1/Advanced Shell

のジョブコントローラはジョブを実行しないで,エラー終了します。

• このパラメーターを 2 つ以上指定した場合

• オペランドを 1 つも指定しなかった場合

• オペランドの数が 3 つよりも多い場合

•「JOBLOG SCRIPT STDERR」または「STDERR」以外のオペランドを指定した場合

•「JOBLOG SCRIPT STDERR」オペランドの指定順序が誤っている場合

• ジョブが簡潔出力モードまたは最小出力モードで動作する場合は,このパラメーターの指定に関係な

く,ジョブ終了時にジョブ実行ログを標準エラー出力へ出力しません。

使用例

• ジョブ実行中の標準エラー出力の内容だけを標準エラー出力に出力します。

#-adsh_conf JOBEXECLOG_PRINT STDERR

7.3.21 JOBLOG_SUPPRESS_MSG パラメーター(ジョブ実行ログへ出力さ

せないメッセージを定義する)

形式

#-adsh_conf JOBLOG_SUPPRESS_MSG メッセージID

機能

ジョブ実行ログへ出力させないメッセージのメッセージ ID を指定します。

メッセージ ID を複数指定する場合は,メッセージ ID の数だけこのパラメーターを指定してください。パ

ラメーターの指定順序は任意です。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

605

同じメッセージ ID を複数回指定しても,エラーにはなりません。1 回指定したものと見なされます。

このパラメーターの指定とメッセージの出力の関係を次の表に示します。

項番 メッセージの出力先

3

4

1

2

5

スプールのジョブ実行ログのファイル

デバッガのコンソール

エディタのコンソール

システム実行ログ

上記以外の出力先(標準出力など)

(凡例)

○:メッセージを出力します。

×:指定したメッセージは出力しません。

抑止するメッセージ ID の指定

指定あり 指定なし

×

×

×

×

×

×

オペランド

メッセージ 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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

606

抑止できるメッセージの内容

子孫ジョブの実行に関するパラ

メーター

CHILDJOB_PGM パラメーター

CHILDJOB_SHEBANG パラメーター

CHILDJOB_EXT パラメーター

関数(CMDRC_CMDGRP_CHECK パラメーターに FUNCTION を指定した場

合)

指定できるメッセージ ID

KNAX6830-I

KNAX6831-I

KNAX6832-I

KNAX6118-I

KNAX6119-I

KNAX6128-I

KNAX6129-I

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,両方の

定義が有効になります。

使用例

• メッセージ KNAX6110-I,KNAX6111-I をジョブ実行ログに出力しないようにします。

#-adsh_conf JOBLOG_SUPPRESS_MSG KNAX6110-I

#-adsh_conf JOBLOG_SUPPRESS_MSG KNAX6111-I

7.3.22 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 を読み込みます。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

607

NO

ジョブコントローラ起動時にシェル変数 ENV を読み込みません。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

7.3.23 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) ファイルシステム 」を参照してください。

• パス名に&,(,),[,],{,},^,=,;,!,',+,,,`,~,#,%の記号を含まないでください。これら

の記号を含む場合,正常に動作しません。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

608

補足

• 該当するパラメーターで指定するディレクトリを別々に分けることで,同一ホスト内で複数環境を使い

分けられます。

7.3.24 LOG_FILE_CNT パラメーター(システム実行ログをバックアップす

る面数を定義する)

形式

#-adsh_conf LOG_FILE_CNT 面数

機能

システム実行ログをバックアップする面数を定義します。

オペランド

面数   〜<符号なし整数>((1〜64))《4》

システム実行ログをバックアップする面数を指定します。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。ただし,LOG_DIR パラメーターの定義がシステム環境ファ

イルの指定と同一の場合,システム環境ファイルと異なる値を指定するとエラーになります(システム

環境ファイルの指定がデフォルト値の場合でも,相違があればエラーになります)。

補足

• 複数のユーザーが同じファイルにシステム実行ログを出力している場合には,LOG_FILE_CNT と

LOG_FILE_SIZE は,最後にシステム実行ログの出力を開始したユーザーの設定値が有効になります。

同じファイルにシステム実行ログを出力するユーザー同士は,同じ設定値にすることを推奨します。

7.3.25 LOG_FILE_SIZE パラメーター(システム実行ログを出力するファイ

ルサイズを定義する)

形式

#-adsh_conf LOG_FILE_SIZE ファイルサイズ

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

609

機能

システム実行ログを出力するファイルサイズを定義します。

オペランド

ファイルサイズ   〜<符号なし整数>((1〜16))《2》

システム実行ログを出力するファイルサイズを MB で指定します。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。ただし,LOG_DIR パラメーターの定義がシステム環境ファ

イルの指定と同一の場合,システム環境ファイルと異なる値を指定するとエラーになります(システム

環境ファイルの指定がデフォルト値の場合でも,相違があればエラーになります)。

補足

• 複数のユーザーが同じファイルにシステム実行ログを出力している場合には,LOG_FILE_CNT と

LOG_FILE_SIZE は,最後にシステム実行ログの出力を開始したユーザーの設定値が有効になります。

同じファイルにシステム実行ログを出力するユーザー同士は,同じ設定値にすることを推奨します。

7.3.26 OUTPUT_MODE_CHILD パラメーター(子孫ジョブの実行結果の

出力情報に関する出力方式を定義する)

形式

#-adsh_conf OUTPUT_MODE_CHILD {EXTENDED|SIMPLE|MINIMUM}

機能

子孫ジョブの実行結果を次のどの方式で出力するか選択します。

• 拡張出力モード(デフォルト)

• 簡潔出力モード

• 最小出力モード

簡潔出力モードを選択すると情報メッセージなどの出力を抑止でき,コマンドの実行結果だけが出力され

るため,ジョブの実行結果をほかのプログラムで利用しやすくなります。最小出力モードを選択すると,

簡潔出力モードよりさらに多くのメッセージの出力を抑止できます。

なお,標準出力と標準エラー出力の出力先は,子孫ジョブ起動時の出力先を引き継ぎます。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

610

子孫ジョブを起動する adshexec コマンドに-m オプションを指定してジョブを実行した場合,このパラ

メーターの指定よりも-m オプションの指定が優先されます。

各出力モードの詳細は次の説明を参照してください。

•「 2.6.8 ジョブ実行結果とログの出力情報を定義する 」

•「 3.4.1 標準出力,標準エラー出力の出力先に関する指定 」

•「 3.4.2 ジョブの実行結果をスプールに出力する 」

•「 3.4.4 ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止する 」

•「 3.5.1 ジョブの種類ごとのジョブ実行ログの出力内容

•「 3.5.4 ジョブ実行ログの出力例(簡潔出力モードまたは最小出力モードを選択した場合)

•「 12.2 メッセージの出力先 」

オペランド

EXTENDED

拡張出力モードを選択します。子孫ジョブの実行後に出力される情報は次のようになります。

• 子孫ジョブ終了時にジョブ実行ログは標準エラー出力に出力されます。

• JP1/Advanced Shell の標準エラー出力と標準出力への出力メッセージはすべて出力されます。

SIMPLE

簡潔出力モードを選択します。子孫ジョブの実行後に出力される情報は次のようになります。

• 子孫ジョブ終了時にジョブ実行ログは標準エラー出力に出力されません。

• JP1/Advanced Shell の標準エラー出力と標準出力へ出力されるメッセージは,エラーメッセージ

だけとなります。また,JOBLOG に出力されるエラーメッセージは標準エラー出力に出力されます。

MINIMUM

最小出力モードを選択します。子孫ジョブの実行後に出力される情報は次のようになります。

• 子孫ジョブ終了時にジョブ実行ログは標準エラー出力に出力されません。

• JP1/Advanced Shell の標準エラー出力と標準出力へ出力されるメッセージは,コマンド,ジョブ

ステップ,ジョブの終了コードの通知を除くエラーメッセージだけとなります。このほかに,シグ

ナル,イベント受信を通知するメッセージも抑止されます。簡潔出力モードと異なり,抑止される

メッセージはスプールジョブディレクトリ下の JOBLOG にも出力されません。

また,JOBLOG に出力されるエラーメッセージは標準エラー出力に出力されます。

環境設定パラメーターの解析が終了するまでは,親プロセスの出力モードを引き継いで動作します。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

611

7.3.27 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 の標準エラー出力と標準出力へのメッセージを出力します。デバッグ終了時のエ

ラーメッセージ以外のメッセージは出力しません。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

612

MINIMUM

最小出力モードを選択します。ルートジョブの実行後に出力される情報は次のようになります。

• ジョブ終了時にジョブ実行ログは標準エラー出力に出力されません。

• 標準出力と標準エラー出力の出力先は,起動時の出力先を引き継ぎます。

• JP1/Advanced Shell の標準エラー出力と標準出力へ出力されるメッセージは,コマンド,ジョブ

ステップ,ジョブの終了コードの通知を除くエラーメッセージだけとなります。このほかに,シグ

ナル,イベント受信を通知するメッセージも抑止されます。簡潔出力モードと異なり,抑止される

メッセージはスプールジョブディレクトリ下の JOBLOG にも出力されません。

また,JOBLOG に出力されるエラーメッセージは標準エラー出力に出力されます。

• デバッグ実行時は,エラーメッセージを除いて JOBLOG を標準エラー出力に出力しません。JP1/

Advanced Shell の標準エラー出力と標準出力へのメッセージを出力します。デバッグ終了時のエ

ラーメッセージ以外のメッセージは出力しません。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• SIMPLE または MINIMUM を指定した場合は,OUTPUT_STDOUT パラメーターで SPOOL を指

定するか,adshexec -s SPOOL と指定してコマンドを実行しても,標準出力はスプールのファイルに

リダイレクトされません。

7.3.28 OUTPUT_STDOUT パラメーター(ルートジョブの出力先を定義す

る)

形式

#-adsh_conf OUTPUT_STDOUT {SPOOL|PARENT}

機能

ルートジョブの標準出力の出力先を定義します。子孫ジョブは,このオプションに PARENT が指定され

たものとして動作します。このオプションを省略した場合,ルートジョブは SPOOL が指定されたものと

して動作します。 adshexec コマンドに-s オプションを指定してジョブを実行した場合,このパラメーターの指定よりも-s

オプションの指定が優先されます。

ルートジョブが簡潔出力モードまたは最小出力モードで動作(OUTPUT_MODE_ROOT パラメーター

または adshexec コマンドの-m オプションで指定)する場合は,OUTPUT_STDOUT パラメーターま

たは adshexec コマンドの-s オプションの指定に関係なく,プロセス起動時の標準出力を継承します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

613

オペランド

{SPOOL

|

PARENT}

ルートジョブの標準出力の出力先として,次のどちらかを指定します。

• SPOOL

ルートジョブの標準出力をスプール内のファイルに出力します。

• PARENT

ルートジョブの標準出力を,プロセス起動時に親プロセスから継承した出力先に出力します。親プ

ロセスで出力先をリダイレクトしていない場合は,親プロセスと同じ出力先に出力します。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

7.3.29 PATH_CONV パラメーター(パス変換内容を定義する)

形式

#-adsh_conf PATH_CONV パス名1 パス名2

機能

ジョブ定義スクリプト中の変換前・変換後のパス名を定義します。

ジョブ定義スクリプトの実行時に,パス区切り文字(PATH_CONV_ENABLE パラメーターで定義)で

区切られた文字列の中でパス名 1 と前方一致する文字列をパス名 2 に置換します。また,

PATH_CONV_ENABLE パラメーターで定義したパス区切り文字およびディレクトリ区切り文字も変換

対象になります。

なお,Windows では PATH_CONV_RULE パラメーターで選択するパス変換ルールによって変換結果が

異なります。詳細については,「 PATH_CONV_RULE パラメーター(パス変換ルールを定義する)

PATH_CONV_ENABLE パラメーターが定義されていない場合,このパラメーターは無効となります。

また,このパラメーターを複数定義した場合,環境ファイルの先頭から調べて,最初に変換条件に合致し

た定義が適用されます。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

614

オペランド

パス名 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 の場合でも,「"(ダブルクォーテーション)」で囲んだ範囲内に「'(シングルクォー

テーション)」を入れ子として指定することはできません。指定するとパス変換の対象となるので注意

してください。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

615

使用例

• 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

7.3.30 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 パラメーターは有効になりません。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

616

オペランド

パス名 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"に変換し

ます。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

617

#-adsh_conf PATH_CONV_ENABLE \\ ;

#-adsh_conf PATH_CONV_ACCESS nul /dev/null

7.3.31 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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

618

7.3.32 PATH_CONV_NOVAR パラメーター(パス名を扱わないシェル変

数を定義する)

形式

#-adsh_conf PATH_CONV_NOVAR シェル変数名 [シェル変数名 …]

機能

パス名を扱わないシェル変数名を定義します。

オペランド

シェル変数名〜<[*][文字列][*]>((1〜255))

パス名を扱わないシェル変数名を定義します。指定できるシェル変数名の個数に上限はありません(環

境設定ファイルの1行の長さの上限は 4,092 バイトであり,1行に記述できないときは,複数のパラ

メーターに分けて記述します)。

同一シェル変数名を重複指定してもエラーになりません。

シェル変数名は*を使用して総称変数名を指定できます。

*だけは,すべてのシェル変数名を示します。

*は 0 文字以上の文字を示します。

文字列*文字列の形式は指定できません。

**は指定できません。

シェル変数名 dirA001,dirA002,A001,A002,A0,C0B0D0 がある場合の指定例を次に示します。

指定例

#-adsh_conf PATH_CONV_NOVAR *

#-adsh_conf PATH_CONV_NOVAR *A001

#-adsh_conf PATH_CONV_NOVAR *B0*

#-adsh_conf PATH_CONV_NOVAR dir*

#-adsh_conf PATH_CONV_NOVAR dirA001

#-adsh_conf PATH_CONV_NOVAR A002

#-adsh_conf PATH_CONV_NOVAR dirA001 A002

対象となるシェル変数 dirA001,dirA002,A001,A002,A0,C0B0D0

(すべて) dirA001,A001

C0B0D0 dirA001,dirA002 dirA001,A002 dirA001,A002

この機能が有効になるのは PATH_CONV_ENABLE 環境設定パラメーターの指定がある場合だけです。

ただし,PATH_CONV_ENABLE 環境設定パラメーターの指定がなくてもエラーにはなりません。

このパラメーターの指定は PATH_CONV_VAR 環境設定パラメーターと指定順でマージされ,後の指定

が優先します。同一パラメーター内で複数のシェル変数名を指定した場合でも後の指定が優先します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

619

使用例 dir で始まる名称のシェル変数はパス名を扱うシェル変数として定義しますが,dirno で始まる名称のシェ

ル変数はパス名を扱わないシェル変数として定義します。

#-adsh_conf PATH_CONV_VAR dir*

#-adsh_conf PATH_CONV_NOVAR dirno*

7.3.33 PATH_CONV_RULE パラメーター(パス変換ルールを定義する)

【Windows 限定】

形式

#-adsh_conf PATH_CONV_RULE {1|2}

機能

パス変換ルールを選択します。指定を省略した場合はパス変換ルール 1 が設定されます。

また,PATH_CONV_ENABLE パラメーターでパス区切り文字が定義されている場合,区切られた範囲

が変換対象となります。PATH_CONV_ENABLE パラメーターで定義された区切り文字は,ジョブ定義

スクリプトを実行した OS で使用される区切り文字へ変換されます。

オペランド

1

パス変換ルール 1 を選択します。

「"(ダブルクォーテーション)」で囲まれた範囲だけが変換対象となります。

2

パス変換ルール 2 を選択します。

項目「パス変換ルール 2 で使用する区切り文字」に示す区切り文字で区切られた文字列が変換対象とな

ります。ここで区切られた文字列は,パス区切り文字(PATH_CONV_ENABLE パラメーターで定

義)でさらに区切られてから変換されます。ただし,' '内と${ }内の文字は変換されません。

変換個所が「"(ダブルクォーテーション)」で囲まれていない場合,変換結果が「"(ダブルクォーテー

ション)」で囲まれます。それに加えて次に示す範囲も「"(ダブルクォーテーション)」で囲まれます。

• パス区切り文字

「";"」に変換されます。

•「$

シェル変数名

#-adsh_path_var コマンドまたは PATH_CONV_VAR パラメーターで指定していないシェル変数

も含みます。PATH_CONV_NOVAR パラメーターで指定したシェル変数も含みます。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

620

「$」の後ろから,英数字(先頭文字の場合は英字)と「_(アンダースコア)」のどちらでもない文

字が現れるまでの範囲をシェル変数名と見なします。シェル変数名がない場合は「$」だけを「"(ダ

ブルクォーテーション)」で囲むことはしません。

•「${」から「}」までの範囲

#-adsh_path_var コマンドまたは PATH_CONV_VAR パラメーターで指定していないシェル変数

も含みます。PATH_CONV_NOVAR パラメーターで指定したシェル変数も含みます。

パス変換ルール 2 で使用する区切り文字

パス変換ルール 2 で使用する区切り文字と,区切り文字が有効/無効となる位置を次に示します。

区切り文字

|

'

`

)

(

<

>

;

&

"

#

=

スペース(タブ記号を含む)

改行コード

×

×

×

×

×

×

×

区切り文字の位置

' '内 " "内

※1

×

×

×

×

×

×

×

×

×

×

×

※3

×

×

×

×

×

×

` `内

※1

×

×

×

×

×

×

×

\

直後の 1 文字

×

×

×

×

×

×

×

※2

※2

※2

※2

※2

※2

※2

※2

${ }内

※1

※2

※2

※2

※2

※2

※2

$( )内

※1

(凡例)

○:区切り文字が有効となります。

×:区切り文字が無効となります。

注※1

囲んだ範囲内に別の範囲を入れ子にできます。入れ子にできる組み合わせを次に示します。

その他

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

621

範囲

" "内

` `内

$( )内

${ }内

入れ子とする範囲

' ' " "

×

×

` `

×

\

直後の 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}

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

622

変換後のジョブ定義スクリプト

#-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 コマン

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

623

ドでリモートサイトのパスを指定する場合など,パス名を変換したくないことがあります。この場合,

パス名部分を変数に置き換えてヒアドキュメント外に出すなどの変更をしてください。

例えば, 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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

624

 ((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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

625

パス変換は区切り文字で区切られた文字列単位に実施されるため,${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

7.3.34 PATH_CONV_VAR パラメーター(パス名を扱うシェル変数を定義

する)

形式

#-adsh_conf PATH_CONV_VAR シェル変数名 [シェル変数名 …]

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

626

機能

パス名を扱うシェル変数名を定義します。パス名を扱うシェル変数の周りの区切り文字はパス変換機能で

変換されます。

オペランド

シェル変数名〜<[*][文字列][*]>((1〜255))

パス名を扱うシェル変数名を定義します。指定できるシェル変数名の個数に上限はありません(環境設

定ファイルの1行の長さの上限は 4,092 バイトであり,1行に記述できないときは,複数のパラメー

ターに分けて記述します)。

同一シェル変数名を重複指定してもエラーとなりません。

シェル変数名は*を使用して総称変数名を指定することができます。

*だけは,すべてのシェル変数名を示します。

*は 0 文字以上の文字を示します。

文字列*文字列の形式は指定できません。

**は指定できません。

シェル変数名 dirA001,dirA002,A001,A002,A0,C0B0D0 がある場合の指定例を次に示します。

指定例

#-adsh_conf PATH_CONV_VAR *

#-adsh_conf PATH_CONV_VAR *A001

#-adsh_conf PATH_CONV_VAR *B0*

#-adsh_conf PATH_CONV_VAR dir*

#-adsh_conf PATH_CONV_VAR dirA001

#-adsh_conf PATH_CONV_VAR A002

#-adsh_conf PATH_CONV_VAR dirA001 A002

対象となるシェル変数 dirA001,dirA002,A001,A002,A0,C0B0D0

(すべて) dirA001,A001

C0B0D0 dirA001,dirA002 dirA001,A002 dirA001,A002

この機能が有効になるのは PATH_CONV_ENABLE 環境設定パラメーターの指定がある場合だけで

す。ただし,PATH_CONV_ENABLE 環境設定パラメーターの指定がなくてもエラーにはなりません。

このパラメーターの指定は PATH_CONV_NOVAR 環境設定パラメーターと指定順でマージされ,後

の指定が優先します。同一パラメーター内で複数のシェル変数名を指定した場合でも後の指定が優先し

ます。

注意事項

システム環境ファイルとジョブ環境ファイルの両方に指定がある場合,両方をマージします。また,シス

テム環境ファイルよりもジョブ環境ファイルの指定が優先します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

627

使用例 dir で始まる名称のシェル変数はパス名を扱うシェル変数として定義しますが,dirno で始まる名称のシェ

ル変数はパス名を扱わないシェル変数として定義します。

#-adsh_conf PATH_CONV_VAR dir*

#-adsh_conf PATH_CONV_NOVAR dirno*

7.3.35 PERMISSION_SPOOLJOB_DIR パラメーター(スプールジョブディ

レクトリのパーミッションを定義する)【UNIX 限定】

形式

#-adsh_conf PERMISSION_SPOOLJOB_DIR パーミッション

機能

スプールジョブディレクトリのパーミッションを,ジョブ終了時に変更する場合,変更後のパーミッショ

ンを定義します。

このパラメーターを指定しない場合,スプールジョブディレクトリのパーミッションは 0700 になります。

オペランド

パーミッション   〜< 4 桁の 8 進数>((0000〜1777))

パーミッションを指定します。ジョブ終了時に,このオペランドで指定したスプールジョブディレクト

リのパーミッションが設定されます。

注意事項

• 1 つの環境ファイルの中でこのパラメーターに対して次の指定をした場合,ジョブは実行されないでエ

ラー終了します。

• パラメーターを 2 つ以上指定した場合

• オペランドを 1 つも指定しなかった場合

• オペランドの数が 2 つよりも多い場合

• 8 進数以外の数値,またはパーミッションで指定できる値を超える値を指定した場合

• 4 桁以外の値を指定した場合

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

628

使用例

• スプールジョブディレクトリのパーミッションを 0750 にします。

#-adsh_conf PERMISSION_SPOOLJOB_DIR 0750

7.3.36 PERMISSION_SPOOLJOB_FILE パラメーター(スプールジョブディ

レクトリ下のファイルのパーミッションを定義する)【UNIX 限定】

形式

#-adsh_conf PERMISSION_SPOOLJOB_FILE パーミッション

機能

ジョブ終了時にスプールジョブディレクトリ下のファイルのパーミッションを変更する場合,変更後のパー

ミッションを定義します。

このパラメーターを指定すると,スプールジョブディレクトリ下のディレクトリのパーミッションも変更

されます。ただし,スプールジョブディレクトリ下のディレクトリの下にあるファイルやディレクトリの

パーミッションは変更されません。

このパラメーターを指定しない場合,スプールジョブディレクトリ下に作成されるファイルのパーミッショ

ンは次のようになります。

• .DBG ファイル:パーミッションは 666 になります。

• #adsh_spoolfile コマンドで割り当てるファイル:パーミッションは,ファイルを作成するコマンドや

プログラムの指定に従います。

• 上記以外のファイル:パーミッションは 600 になります。

オペランド

パーミッション   〜< 3 桁の 8 進数>((000〜777))

パーミッションを指定します。スプールジョブディレクトリ下のファイルのパーミッションは,ジョブ

終了時に,このオペランドで指定した値に設定されます。

注意事項

• 1 つの環境ファイルの中でこのパラメーターに対して次の指定をした場合,ジョブは実行されないでエ

ラー終了します。

• パラメーターを 2 つ以上指定した場合

• オペランドを 1 つも指定しなかった場合

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

629

• オペランドの数が 2 つよりも多い場合

• 8 進数以外の数値,またはパーミッションで指定できる値を超える値を指定した場合

• 3 桁以外の値を指定した場合

• adshhk コマンドと adshevtout コマンドでは,スプールジョブディレクトリおよびスプールジョブディ

レクトリ下のファイルを操作します。パーミッションを変更する際は,これらのコマンドを実行する

ユーザーの権限を考慮してください。

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• このパラメーターを指定すると,スプールジョブディレクトリ下のファイルの setuid ビット,および setgid ビットは削除されます。

使用例

• スプールジョブディレクトリ下のファイルのパーミッションを 744 にします。

#-adsh_conf PERMISSION_SPOOLJOB_FILE 744

7.3.37 PIPE_CMD_LAST パラメーター(パイプの最終コマンドの実行プロ

セスを定義する)

形式

UNIX 版

#-adsh_conf PIPE_CMD_LAST {CURRENT|OTHER}

Windows 版

#-adsh_conf PIPE_CMD_LAST {CURRENT|OTHER|SEQUENTIAL}

機能

パイプラインの最終コマンドをカレントプロセスで実行するかどうかを定義します。

次のようにパイプラインの最終コマンドで変数の内容を更新し,パイプライン以降のコマンドで更新した

内容を使用する場合は,CURRENT を指定してください。

ジョブ定義スクリプトの内容 typeset -i CNT=0 cat INFILE | while read STR do

echo "$STR"

let CNT=CNT+1

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

630

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

パイプラインの全コマンドを非同期実行します。パイプラインの最終コマンドが次に示すコマンドの場

合,カレントプロセスで動作します。

• シェル標準コマンド

• 代入式

• スクリプト制御文

• シェル拡張コマンド

• スクリプト予約語コマンド

• 関数

パイプラインの最終コマンドが上記以外の場合,別プロセスで動作します。

OTHER

パイプラインの全コマンドを非同期実行します。パイプラインの最終コマンドは別プロセスで動作しま

す。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

631

SEQUENTIAL【Windows 限定】

パイプラインの全コマンドをカレントプロセスで逐次実行します。また,コマンド間のデータの受け渡

しに一時ファイルを使用します。

これは JP1/Advanced Shell 11-00 より前の Windows 版と同様の動作です。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• Windows 版で,OTHER または CURRENT を指定した場合,SEQUENTIAL に比べて実行時間が長

くなる場合があります。そのため,SEQUENTIAL から OTHER または CURRENT に切り替える際

は,ジョブの実行時間を検証してください。

使用例

次に示す入力ファイルとジョブ定義スクリプトを使って,PIPE_CMD_LAST パラメーターを指定した場

合の実行結果の違いを示します。

• 例 1

ジョブ定義スクリプトの内容

STR="abcdefg" echo "ABCDEFG" | read STR echo $STR

標準出力への出力結果(PIPE_CMD_LAST パラメーターに CURRENT または SEQUENTIAL を指

定した場合)

ABCDEFG

標準出力への出力結果(PIPE_CMD_LAST パラメーターに OTHER を指定した場合) abcdefg

• 例 2

ジョブ定義スクリプトの内容

A=1 echo "Hello World" | A=10 echo $A

標準出力への出力結果(PIPE_CMD_LAST パラメーターに CURRENT または SEQUENTIAL を指

定した場合)

10

標準出力への出力結果(PIPE_CMD_LAST パラメーターに OTHER を指定した場合)

1

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

632

• 例 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 または SEQUENTIAL を指

定した場合)

1 = user1,500,Tomato

2 = user1,450,Cabbage

3

標準出力への出力結果(PIPE_CMD_LAST パラメーターに OTHER を指定した場合)

1 = user1,500,Tomato

2 = user1,450,Cabbage

1

7.3.38 SPOOL_DIR パラメーター(スプールルートディレクトリのパス名

を定義する)

形式

#-adsh_conf SPOOL_DIR パス名

機能

バッチジョブの実行結果(ジョブ実行ログおよびジョブステップのプログラムが出力したデータファイル)

をジョブごとにディレクトリを作成して出力するスプールルートディレクトリのパス名を定義します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

633

オペランド

パス名

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) ファイルシステム 」を参照してください。

• パス名に&,(,),[,],{,},^,=,;,!,',+,,,`,~,#,%の記号を含まないでください。これら

の記号を含む場合,正常に動作しません。

補足

• 該当するパラメーターで指定するディレクトリを別々に分けることで,同一ホスト内で複数環境を使い

分けられます。

• クラスタ運用で待機系のホストに情報を引き継ぎたい場合は,引き継ぐディレクトリをホスト間で共用

します。その場合は,少なくともこのパラメーターのディレクトリをホスト間で共用します。

7.3.39 SPOOLJOB_CHILDJOB パラメーター(子孫ジョブのスプールジョ

ブの扱いを定義する)

形式

#-adsh_conf SPOOLJOB_CHILDJOB {MERGE|DELETE}

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

634

機能

子孫ジョブの終了時に,子孫ジョブのスプールジョブを削除するか,ルートジョブのスプールジョブにマー

ジするかを選択します。

オペランド

MERGE

子孫ジョブの終了時に,子孫ジョブのスプールジョブをルートジョブのスプールジョブにマージしま

す。これによって次のように動作します。

• 子孫ジョブのジョブ実行ログがルートジョブのジョブ実行ログにマージされ,子孫ジョブが終了し

た順に出力されます。

• ルートジョブの JOBLOG と SCRIPT は,それぞれ子孫ジョブの JOBLOG と SCRIPT をマージし

た内容で作成されます。

• ルートジョブと子孫ジョブの出力内容が判別できる形式で次の個所へ出力されます。

通常実行の場合:標準エラー出力(STDERR,

ステップ番号

_

ステップ名

_STDERR)

デバッグ実行の場合:端末画面上の標準出力と標準エラー出力

• 子孫ジョブ実行時に #-adsh_spoolfile コマンドで割り当てるプログラム出力データファイルは,

ルートジョブのスプールジョブディレクトリに次のファイル名で作成されます。

#-adsh_spoolfile コマンドの実行

個所

子孫ジョブのジョブステップ外の

場合

子孫ジョブのジョブステップ内の

場合

割り当てるファイル名(Windows では末尾に拡張子「.sysout」が付与される)

C

子孫ジョブ起動順序通し番号

_0000_

ジョブ名

_

ファイル環境変数定義名通し番号

_

ファイル環境変数定義名

C

子孫ジョブ起動順序通し番号

_

ステップ番号

_

ステップ名

_

ファイル環境変数定義名通

し番号

_

ファイル環境変数定義名

同じジョブ定義スクリプトを子孫ジョブとして複数回実行した場合,実行した数だけ SCRIPT を出力

します。

スプールジョブディレクトリの作成方法については「

3.4.2 ジョブの実行結果をスプールに出力する 」

を参照してください。ジョブ実行ログの出力形式については,「 (3) 子孫ジョブのスプールジョブを

ルートジョブのスプールジョブへマージした場合 」を参照してください。

MERGE を指定した場合,1 個のルートジョブから起動できる子孫ジョブは,子孫ジョブから起動する

子孫ジョブを含め,9,999,999 個までとなります。それを超えると子孫ジョブはエラー終了します。た

だし,これより先に OS が定めるプロセス数やファイル数などの上限値に達した場合には,OS のエ

ラー処理に従います。

MERGE を指定した場合のジョブ実行ログの出力例については,「 ジョブ実行ログの出力例(子孫ジョ

DELETE

子孫ジョブの終了時に,子孫ジョブのスプールジョブを削除します。

子孫ジョブのジョブ実行ログのうち,JOBLOG の内容だけを標準エラー出力へ出力します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

635

DELETE を指定した場合のジョブ実行ログの出力例については,「

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

7.3.40 SPOOLJOB_CREATE パラメーター(スプールジョブの作成要否を

選択する)

形式

#-adsh_conf SPOOLJOB_CREATE {YES|NO}

機能

ジョブ定義スクリプトの実行時にスプールジョブを作成するかどうかを選択します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

636

子孫ジョブに対してはこのパラメーターの指定は無効となり,ルートジョブの指定が引き継がれます。

オペランド

YES

スプールジョブディレクトリを作成します。

NO

スプールジョブディレクトリを作成しません。この場合の動作については,「

(a) スプールジョブ作成

抑止機能の使用有無を決定する 」を参照してください。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• adshexec -r コマンドまたは adshscripttool -r コマンドの実行時は,このパラメーターの指定に関係

なく,ジョブ定義スクリプトファイルの一時ファイルは作成されません。この場合,メッセージなどの

ジョブ定義スクリプトファイルの出力部分には「-r CMDLINE」と出力されます。

• CUI デバッガの使用時は,DBG ファイル「 一時ファイルディレクトリ /ADSH_DBG_ プロセス ID _ ジョ

ブ識別子 」が一時的に作成され,デバッグ終了時に削除されます。

7.3.41 TEMP_FILE_DIR パラメーター(一時ファイルディレクトリのパス名

を定義する)

形式

#-adsh_conf TEMP_FILE_DIR パス名

機能

一時ファイルを格納するディレクトリのパス名を定義します。

一時ファイルとはバッチジョブ中で作成され,バッチジョブ終了時にはすべて消去する暫定的に利用する

ファイルのことです。

オペランド

パス名

Windows の実行環境の場合 〜<パス名>((1〜128 バイト))《

共有ドキュメントフォルダ\

Hitachi

\

JP1AS

\

JP1ASE

\ temp》

Windows の開発環境の場合 〜<パス名>((1〜128 バイト))《

共有ドキュメントフォルダ\

Hitachi

\

JP1AS

\

JP1ASD

\ temp》

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

637

UNIX の場合 〜<パス名>((1〜512 バイト))《/var/opt/jp1as/temp》

一時ファイルを格納するディレクトリのパス名を指定します。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• このパラメーターに,JP1/Advanced Shell でサポートしないファイルシステム上のディレクトリを指

定しないでください。JP1/Advanced Shell でサポートしないファイルシステムの詳細については,

「 (2) ファイルシステム 」を参照してください。

補足

• 該当するパラメーターで指定するディレクトリを別々に分けることで,同一ホスト内で複数環境を使い

分けられます。

7.3.42 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》

トレースを出力するディレクトリのパス名を指定します。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

638

• このパラメーターに,JP1/Advanced Shell でサポートしないファイルシステム上のディレクトリを指

定しないでください。JP1/Advanced Shell でサポートしないファイルシステムの詳細については,

「 (2) ファイルシステム 」を参照してください。

• パス名に&,(,),[,],{,},^,=,;,!,',+,,,`,~,#,%の記号を含まないでください。これら

の記号を含む場合,正常に動作しません。

補足

• 該当するパラメーターで指定するディレクトリを別々に分けることで,同一ホスト内で複数環境を使い

分けられます。

7.3.43 TRACE_FILE_CNT パラメーター(トレース面数を定義する)

形式

#-adsh_conf TRACE_FILE_CNT 面数

機能

トレースを出力する面数を定義します。

オペランド

面数   〜<符号なし整数>((1〜64))《4》

トレースを出力する面数を指定します。通常は 4 を指定してください。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。ただし,TRACE_DIR パラメーターの定義がシステム環境

ファイルの指定と同一の場合,システム環境ファイルと異なる値を指定するとエラーになります(シス

テム環境ファイルの指定がデフォルト値の場合でも,相違があればエラーになります)。

補足

• 複数のユーザーが同じファイルにトレースログを出力している場合には,TRACE_FILE_CNT は,よ

り大きい値を指定したユーザーの指定が有効になります。

また,環境ファイルで TRACE_FILE_CNT を変更した場合は,既存のトレースファイルの面数の設定

値と比較して,より大きい値を指定したユーザーの指定が有効になります。

トレースファイルの面数を小さくする場合は,トレースフォルダにあるファイルをすべて削除してくだ

さい。トレースフォルダにあるファイルをすべて削除するときは,同じトレースファイルにトレースを

出力しているジョブがないことを確認してから行ってください。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

639

同じファイルにトレースを出力するユーザー同士は,同じ設定値にすることを推奨します。

7.3.44 TRACE_FILE_SIZE パラメーター(トレースファイルサイズを定義す

る)

形式

#-adsh_conf TRACE_FILE_SIZE ファイルサイズ

機能

トレースを出力するファイルサイズを定義します。

オペランド

ファイルサイズ   〜<符号なし整数>((1〜16))《2》

トレースを出力するファイルサイズを MB で指定します。通常は 2 を指定してください。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。ただし,TRACE_DIR パラメーターの定義がシステム環境

ファイルの指定と同一の場合,システム環境ファイルと異なる値を指定するとエラーになります(シス

テム環境ファイルの指定がデフォルト値の場合でも,相違があればエラーになります)。

補足

• 複数のユーザーが同じファイルにトレースを出力している場合には,TRACE_FILE_SIZE は,より大

きい値を指定したユーザーの指定が有効になります。

また,環境ファイルで TRACE_FILE_SIZE を変更した場合は,既存のファイルサイズの設定値と比較

して,より大きい値を指定したユーザーの指定が有効になります。

ファイルサイズを小さくする場合は,トレースフォルダにあるファイルをすべて削除してください。ト

レースフォルダにあるファイルをすべて削除するときは,同じトレースファイルにトレースを出力して

いるジョブがないことを確認してから行ってください。

同じファイルにトレースを出力するユーザー同士は,同じ設定値にすることを推奨します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

640

7.3.45 TRACE_LEVEL パラメーター(トレース出力レベルを定義する)

形式

#-adsh_conf TRACE_LEVEL トレースレベル

機能

トレースを出力するレベルを定義します。

オペランド

トレースレベル   〜<符号なし整数>((0,10,20,30))《0》

トレースを出力するレベルを指定します。数値が大きいほど詳細なトレースを出力します。通常は 0 を

指定してください。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

7.3.46 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 などに

よるプロセス即時終了)などを示します。

ジョブ定義スクリプト実行中に強制終了要求を受けた場合,ジョブコントローラはオペランドの指定に従っ

て動作します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

641

このパラメーターの指定を省略すると,ジョブコントローラは 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 から起動したジョブ

JP1/AJS 以外から起動したジョブ

動作

TERM が指定されたと解釈して動作します。

CONT が指定されたと解釈して動作します。

なお,次のどれかの条件を満たした場合に,JP1/AJS から起動したジョブとみなします。

1. JP1/Advanced Shell のカスタムジョブから起動したジョブ

2. 環境変数 AJS_BJEX_STOP に TERM を設定した状態で起動したジョブ

3. 1.および 2.から起動した子孫ジョブ

オペランドごとの強制終了要求を受けたときの動作の詳細については「

3.11 ジョブを強制終了する 」

を参照してください。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

642

注意事項

【UNIX,Windows 共通】

• trap コマンドで強制終了要求を受けたときの動作を定義したジョブが強制終了要求を受けると,強

制終了要求を受けたときの動作が完了するまでジョブは終了しません。そのため,長時間実行する

コマンドや終了しない動作を定義するときはその点について十分に注意してください。

• ジョブ定義スクリプト内で trap コマンドによる動作定義をしても,ジョブ正常終了時の通常の後処

理中は有効になりません。この間に強制終了要求を受けた場合,ジョブコントローラは trap コマン

ドによる動作定義がないものと見なして動作します。

• trap コマンドで定義した動作がエラー終了したり,exit コマンドでジョブを打ち切ると,ジョブは trap コマンドで定義した動作内で最後に実行したコマンドの終了コードで終了します。しかし,こ

のパラメーターに TERM を指定した場合,trap コマンドで定義した動作の終了コードはジョブ,

およびジョブステップの終了コードには反映されないで,強制終了要求を受けたときの終了コード

で終了します。

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョ

ブ環境ファイルでの定義が有効になります。

【UNIX 限定】

• 次のどれかの条件を満たす場合,強制終了要求を受け,子孫プロセスの終了,trap コマンドで定義

した動作の実行,一時ファイルの削除などの処理中に 2 回目の強制終了要求を受けると,作成した

一時ファイルが削除されないで残るなど,後処理が完了しないことがあります。この場合は手動で

一時ファイルを削除するなどの対処をしてください。

・オペランドに DISABLE を指定している。

・オペランドに TERM を指定している。

・オペランドに CONT を指定し,かつ trap コマンドによる動作定義がない。

7.3.47 UNSUPPORT_TEST パラメーター(サポートしていない条件式の実

行時の動作を定義する)【Windows 限定】

形式

#-adsh_conf UNSUPPORT_TEST {h|G|L|O|ef} {ERR|TRUE|FALSE}

機能

Windows 環境の JP1/Advanced Shell でサポートしていない条件式を判定した場合の動作を指定します。

• 演算子「-G」を使った条件式

• 演算子「-O」を使った条件式

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

643

なお,次の条件式は JP1/Advanced Shell ではサポートしていますが,11-00 より前のバージョンではサ

ポートしていなかったため,オペランドとして提供しています。

• 演算子「-h」を使った条件式

• 演算子「-L」を使った条件式

• 演算子「-ef」を使った条件式

このパラメーターで動作を指定していないときの動作は,条件式によって異なります。

-G,-O

-h,-L,-ef

ERR を指定したときと同じ動作となります。

条件判定をして結果を返します。ただし,環境変数 ADSH_LINK_SUPPORT に L0 を指定した場

合は,ERR を指定したときと同じ動作となります。

条件式については,「

5.2.2 条件式 」を参照してください。

オペランド

{h

|

G

|

L

|

O

| ef}

判定した場合の動作を定義する条件式を指定します。

• h

演算子「-h」を使った条件式を示します。

• G

演算子「-G」を使った条件式を示します。

• L

演算子「-L」を使った条件式を示します。

• O

演算子「-O」を使った条件式を示します。

• ef

演算子「-ef」を使った条件式を示します。

{ERR

|

TRUE

|

FALSE}

条件式を判定した場合の動作を指定します。

• ERR

エラーメッセージを出力し,ジョブを終了します。

• TRUE

インフォメーションメッセージを出力し,常に正しいものと判定します。

• FALSE

インフォメーションメッセージを出力し,常に誤りと判定します。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

644

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,指定し

た条件単位で,ジョブ環境ファイルでの定義が有効になります。

7.3.48 USERREPLY_DEBUG_DESTINATION パラメーター(デバッグ実行

時の事象通知メッセージと応答要求メッセージの入出力先を指定する)

形式

#-adsh_conf USERREPLY_DEBUG_DESTINATION [JP1EVENT|CONSOLE]

機能

ユーザー応答機能で,adshecho コマンドまたは adshread コマンドを使用したジョブ定義スクリプトを

デバッグする場合に,事象通知メッセージおよび応答要求メッセージの入出力先を指定します。

オペランド

JP1EVENT

事象通知メッセージおよび応答要求メッセージを JP1 イベントとして発行します。

CONSOLE

事象通知メッセージおよび応答要求メッセージの入出力先を標準入出力にします。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• デバッグ実行時以外にこのパラメーターに CONSOLE を指定して実行すると,指定は無視されます。

この場合,事象通知メッセージおよび応答要求メッセージは JP1 イベントとして発行されます。

7.3.49 USERREPLY_JP1EVENT_INTERVAL パラメーター(JP1 イベント

の最小発行間隔を指定する)

形式

#-adsh_conf USERREPLY_JP1EVENT_INTERVAL 最小発行間隔

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

645

機能

ユーザー応答機能で発行する JP1 イベントの最小発行間隔を設定します。

前回の JP1 イベントが発行された時刻から,ここで定義した時間が経過するまで,次の JP1 イベントの発

行を待つことで,流量制御を行います。

オペランド

最小発行間隔 〜<符号なし整数>((100〜100000))《500》

前回の JP1 イベントの発行時刻からの待ち時間をミリ秒単位で指定します。ただし,JP1/IM - Manager

に過大な負荷が掛かることを避けるため,通常は 500 以上の値を指定してください。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行した場合,このパラメーターの指定

は無視されます。

7.3.50 USERREPLY_WAIT_MAXCOUNT パラメーター(物理ホストまた

は論理ホストごとに応答要求メッセージの最大同時出力数を指定する)

形式

#-adsh_conf USERREPLY_WAIT_MAXCOUNT 応答要求メッセージの最大同時出力数

機能

ユーザー応答機能を使用する場合,物理ホストまたは論理ホストごとに,応答要求メッセージの同時出力

数の上限を指定します。

オペランド

応答要求メッセージの最大同時出力数 〜<符号なし整数>((1〜100))《5》

物理ホストまたは論理ホストごとの応答要求メッセージの同時出力数の上限を指定します。これによっ

て,物理ホストまたは論理ホストごとに同時に存在できる応答要求メッセージの数を制限します。

JP1/IM - View に滞留できる応答待ちイベントは 2,000 件までです。そのため,応答待ちイベントを

送信するホストでは,次の計算式を満たす値を指定してください。

JP1イベントの送信先(HOSTNAME_JP1IM_MANAGERパラメーターの指定)が同一である,応答待ちイベ

ントを送信する全ホストの応答要求メッセージの最大同時出力数の合計値

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

646

+他製品の応答待ちイベント滞留数の合計値

< 2000

注意事項

• このパラメーターはジョブ環境ファイルに指定しないでください。このパラメーターをシステム環境

ファイルとジョブ環境ファイルの両方に指定した場合,ジョブ環境ファイルの指定は無視されます。

• 指定値を超える数の応答待ちイベントを出力しようとすると,共有メモリに空きが生じるまで待ち状態

になります。共有メモリの空きは 3 分ごとに 3 回まで確認され,それでも空きがなかった場合はエラー

となります。そのため,複数のジョブから同時に応答要求メッセージが出力される場合は,指定値を超

えないように値を設定してください。

• ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行した場合,このパラメーターの指定

は無視されます。

7.3.51 VAR_ENV_NAME_LOWERCASE パラメーター(環境変数名の小文

字の使用可否を指定する)【Windows 限定】

形式

VAR_ENV_NAME_LOWERCASE {ENABLE|DISABLE}

機能

小文字を含む環境変数名を有効にするかどうかを指定します。

オペランド

ENABLE

小文字を含む環境変数名を有効とします。

なお,同じスペルで大文字・小文字だけが異なる環境変数名は,Windows の環境変数としては区別さ

れませんが,シェル変数としては別の変数と認識されます。これによる混乱を避けるため,同じスペル

のシェル変数は大文字・小文字を一致させることを推奨します。

DISABLE

小文字を含む環境変数名を無効とします。

注意事項

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

647

使用例

シェル変数名「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 現在のプラットフォームでは,名前がすべて大文字でない変数("sample01")はエクス

ポートできません。 filename="D:\home\envsample.ash" line=2

KNAX6521-E コマンド(export, 行番号=2)がエラー終了しました。rc=1 E-Time=0.015s C-

Time=0.000s

KNAX0101-E ADSH001150 ジョブを実行中にエラーが発生しました。

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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

648

D:\home>

この例では,小文字のシェル変数をエクスポートできるようになり,最後にエクスポートしたシェル変

数「sample01」が環境変数にエクスポートされます。また,シェル変数「SAMPLE01」「sample01」

は別々の値を持ちます。

7.3.52 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

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

649

配列の種類

関数呼び出し行番号配列

関数定義スクリプトファイル名配列

配列名

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"

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

650

/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()実行時点の関数情報配列の値を次に示します。

要素番号

2

3

0

1

4

5

配列名

ADSH_FUNCNAME func4 func3 func2 func1_2 func1 main

8

16

0

3

4

ADSH_LINENO

3

ADSH_SOURCE

/home/user/script/func4

/home/user/script/func3.ash

/home/user/script/func2.ash

/home/user/script/adsh_func.ash

/home/user/script/adsh_func.ash

/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]}"

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

651

0009 : done

0010 : }

7.3.53 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. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

652

7.4 条件パラメーター

論理ホストまたは物理ホストだけで有効となる環境設定パラメーターおよび export パラメーターを設定す

るには,前後の行を条件パラメーターで囲んで設定します。条件パラメーターについて説明します。

7.4.1 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 バイト以下で指定することをお勧めします。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

653

7.4.2 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 パラメーターの指定を終了する行の

後ろの行に定義します。

物理ホストの定義が複数回あってもエラーにはなりません。それぞれに指定したパラメーター群が有効に

なります。

7. 環境ファイルで設定するパラメーター

JP1/Advanced Shell

654

8

運用時に使用するコマンド

この章では,JP1/Advanced Shell のシェル運用コマンドおよび UNIX 互換コマンドについて説

明します。

JP1/Advanced Shell

655

8.1 コマンドの記述形式

シェル運用コマンドと UNIX 互換コマンドの記述形式を次に示します。

0

コマンド名[△

1

オプション]…[△

1

オプション][△

1

オペランド]

コマンド名の後ろは,最初にオプションを指定し,次にオペランドを指定します。オペランドとは,オプ

ション名とオプション値のほかにコマンドに指定できる引数のことです。オプションの前にオペランドを

指定した場合は,指定内容をすべてオペランドとして処理します。

• オプションを複数指定する場合,指定順序は任意です。

• 不当なオプション,または指定できる範囲外のオプション値を指定した場合,エラーとなります。

• オプション名にマルチバイト文字は使用できません。

コマンドでのファイルのパス名の指定については,「

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 互換コマンドには,次の記述規則があります。

• オプションは,ショートオプションとロングオプションに分類されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

656

• 連続する 2 個のハイフン(-)だけを指定すると,オプションの指定の終わりを示します。連続する 2

個のハイフン(-)以降に指定した文字列(オプションの指定も含む)は,すべてオペランドとして処

理されます。

ショートオプション,ロングオプション,およびコマンドごとの記述規則を次に説明します。

(1) ショートオプションの指定形式

ショートオプションは,1 個のハイフン(-)の後ろに規定の文字が 1 つ続くオプションです。

ショートオプションの指定形式を次に示します。オプション値を省略できるかどうかは,オプションによっ

て異なります。

-ショートオプション名[△

0

オプション値]

ショートオプションを指定する場合の規則を次に示します。

• オプション値のないオプション名は連続して指定できます(例:「-a -b -c」と「-abc」は同じです)。

その場合,最後のオプションにはオプション値を指定できます(例:「-abc xyz」の「xyz」は,オプ

ション-c の値となります)。

• オプションによっては,オプション値の前にスペースを指定できません。このオプションでスペースを

指定すると,オプション値の部分がオペランドと見なされます。

この章のコマンド説明の「形式」で,オプション値の前にスペースがないオプションは,スペースを指

定できないことを示します。

(2) ロングオプションの指定形式

ロングオプションは,連続する 2 個のハイフン(-)の後ろに規定の文字列が続くオプションです。

ロングオプションの指定形式を次に示します。オプション値を省略できるかどうかはオプションによって

異なります。

--ロングオプション名[=オプション値]

オプション値のあるオプションは次の形式でも指定できます。ただし,オプション値を省略できるオプショ

ンの場合は,ロングオプション名とオプション値の区切りは=(イコール)でなければなりません。=(イ

コール)でなくスペースを指定すると,オプション値の部分がオペランドと見なされます。

--ロングオプション名△

1

オプション値

ロングオプション名とオプション値は短縮して指定できません。例えば,cut コマンドの--characters オ

プションを「--char

リスト

」と指定したり,ls コマンドの--format オプションで表示形式 long を「-format=l」と指定したりすると,エラーになります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

657

注意事項 

ショートオプションに付随するロングオプションがある場合,このマニュアルではコマンド説明の

「引数」の説明個所以外はショートオプションだけを記載しています。なお,付随するショートオ

プションがない場合はロングオプションを記述しています。コマンド説明の「形式」でのロングオ

プション名の記述位置は,他オプションとの関連がない場合は,すべてのショートオプション名の

後ろに記述しています。

例えば, diff コマンドの-y オプションに付随するロングオプション「--side-by-side」は,コマン

ド説明の「形式」には記述していません。一方,ロングオプション「--suppress-common-lines」

にはショートオプションが存在しないため,「形式」に記述しています。

(3) 各コマンドの注意事項

• cp,cut,date, diff ,gunzip,gzip,ln,ls,expand,mv,stat コマンドは,オプションとオペラ

ンドの指定順序は任意です。オペランドの後ろにオプションを指定しても,そのオプションはオプショ

ンとして処理されます。

次のどちらかの環境変数を設定した場合,オペランドはコマンドラインにすべてのオプションを指定し

たあとに指定する必要があります。オペランドの後ろにオプションを指定しても,オペランドと見なさ

れます。これらの環境変数については,「 2.5 環境変数を設定する 」を参照してください。

• 環境変数 POSIXLY_CORRECT

• 環境変数 ADSH_CMD_ARGORDER=seq

• awk, find ,getopt コマンドでオプションとオペランドを指定する場合,すべてのオプションを指定

したあとにオペランドを指定する必要があります。

• 次のコマンドでオプションとオペランドを指定する場合,Linux ではオプションとオペランドの指定順

序は任意ですが,AIX,HP-UX,Solaris,Windows では,オプションを指定したあとにオペランド

を指定する必要があります。 cat,cmp,egrep,grep,head,mkdir,paste,rm,sed,sort,split,tail,touch,uniq,wc, which

なお,Linux で環境変数 POSIXLY_CORRECT を設定することで,AIX,HP-UX,Solaris,

Windows と同じ動作にすることができます。

環境変数 POSIXLY_CORRECT については,「 2.5 環境変数を設定する 」を参照してください。

8.1.3 ファイルのパス名

ファイルは,絶対パス名と相対パス名で指定できます。

コマンドによっては,相対パス名を絶対パス名に変換して処理しています。このため,コマンドで指定す

るファイルのパス名の長さを,絶対パス名の長さで認識している場合があります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

658

コマンドで指定したファイルのパス名に対する絶対パス名の例を次に示します。

(1) ファイル名の指定が絶対パス名の場合

指定されたファイル名が絶対パス名です。

/dir1/test1.asc

(2) ファイル名の指定が相対パス名の場合

コマンドを実行したときのカレントディレクトリと,指定されたファイルのパス名の連結が絶対パス名と

なります。

コマンドを実行したときのカレントディレクトリ:/home/user1

ファイルのパス名:dir2/test2.asc

ファイルの絶対パス名:/home/user1/dir2/test2.asc

8. 運用時に使用するコマンド

JP1/Advanced Shell

659

8.2 コマンドの一覧

8.2.1 シェル運用コマンドの一覧

シェル運用コマンドは,シェルまたはコマンドプロンプトから実行できるコマンドです。シェル運用コマ

ンドには,adshexec コマンド(バッチジョブを実行するコマンド)などがあります。

JP1/Advanced Shell のシェル運用コマンドを次の表に示します。

表 8-1 シェル運用コマンド

コマンド名 機能 adshappagent

【Windows 実行環境

限定】 adshappexec

【Windows 実行環境

限定】 adshchmsg

アプリケーション実行エージェントを起動し,adshappexec コマンドの

実行を監視して,adshappexec コマンドで指定した実行アプリケーショ

ンを起動します。

GUI アプリケーションを実行します。

コマンドの格納場所

インストール先フォルダ

\JP1ASE\bin

インストール先フォルダ

\JP1ASE\bin

障害発生時に,応答要求メッセージに対して手動で応答する場合に使用す

るコマンドです。

【Windows の実行環境の

場合】

インストール先フォルダ

\JP1ASE\bin

【Windows の開発環境の

場合】

インストール先フォルダ

\JP1ASD\bin

【UNIX の場合】

/opt/jp1as/sbin adshcvmerg adshcvshow adshevtout

※ adshexec

※ adshfile adshhk adshlsmsg

マージする 2 つの asc ファイルを入力としてカバレージ情報をマージし,

指定したパスのファイルに出力します。

【Windows の実行環境の

場合】

カバレージ情報ファイルを入力として読み込み,カバレージ情報を表示し

ます。

ジョブ定義スクリプトの稼働実績情報を出力します。

インストール先フォルダ

\JP1ASE\bin

【Windows の開発環境の

場合】

ジョブ定義スクリプトファイルを入力として読み込み,ジョブ定義スクリ

プトの内容に従ってバッチジョブを実行する,ジョブコントローラと呼ば

れるプロセスを起動します。

ジョブステップ終了時またはジョブ終了時に,後処理をするファイルを割

り当てます。

インストール先フォルダ

\JP1ASD\bin

【UNIX の場合】

/opt/jp1as/bin

スプールルートディレクトリ名と日数を指定して,スプールジョブを削除

します。

障害発生時に,応答要求メッセージの一覧を表示するコマンドです。 【Windows の実行環境の

場合】

8. 運用時に使用するコマンド

JP1/Advanced Shell

660

コマンド名 adshlsmsg

機能

障害発生時に,応答要求メッセージの一覧を表示するコマンドです。

コマンドの格納場所

インストール先フォルダ

\JP1ASE\bin

【Windows の開発環境の

場合】

インストール先フォルダ

\JP1ASD\bin

【UNIX の場合】

/opt/jp1as/sbin adshmdctl【UNIX

限定】 adshmsvcd

【Windows 開発環境

限定】 adshmsvce

【Windows 実行環境

限定】

ユーザー応答機能のための共有メモリを管理するデーモンを起動および停

止するコマンドです。

ユーザー応答機能のための共有メモリを管理するサービスプログラムで

す。開発環境で使用できます。

ユーザー応答機能のための共有メモリを管理するサービスプログラムで

す。実行環境で使用できます。

/opt/jp1as/sbin

インストール先フォルダ

\JP1ASD\bin

インストール先フォルダ

\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 互換コマンドのうち,実行ファイル形式で提供するコマンドの格納場所は次のとおりです。

8. 運用時に使用するコマンド

JP1/Advanced Shell

661

• Windows の実行環境の場合

インストール先フォルダ

\JP1ASE\cmd

• Windows の開発環境の場合

インストール先フォルダ

\JP1ASD\cmd

• UNIX の場合

/opt/jp1as/cmd

UNIX 互換コマンドのうち,実行ファイル形式で提供するコマンドには,ファイルシステムなど OS 差異

の大きい制御に関して制限事項があります。また,Windows 限定でオーナーやグループ,アクセス権限

などに制限事項があります。

使用できる実行ファイル形式の UNIX 互換コマンドと制限事項を次の表に示します。

表 8-2 UNIX 互換コマンド(実行ファイル形式)

コマンド名 機能概要 制限事項

※ awk basename cat cmp cp cut date diff dirname egrep

テキストの加工やパターン処理をします。 • Windows の場合, system

関数で実行するコマンドの引数にワ

イルドカードを含むファイル名やディレクトリ名を指定しても,

ワイルドカードは展開されません。

• Windows の場合, getline

関数, print

関数および printf

関数

でパイプによって接続するコマンドの引数にワイルドカードを含

むファイル名やディレクトリ名を指定しても,ワイルドカードは

展開されません。

パス名からファイル名部分の文字列を取

り出し標準出力に出力します。

制限事項はありません。

ファイルの内容を標準出力に出力します。 制限事項はありません。

バイナリファイルの内容を比較します。 制限事項はありません。

ファイルまたはディレクトリをコピーし

ます。

Windows の場合,

-p

オプションで保持されるのはコピー元ファイ

ルの更新日時およびファイルアクセス日時だけとなります。ディレ

クトリの情報は保持しません。

各行の選択範囲を標準出力に表示します。 制限事項はありません。

システムの日付と時刻を表示します。設

定はできません。

-a

オプション(時刻設定)は使用できません。

2 つのファイルを比較します。

ファイルパス名規則に従った文字列から

ファイル名を取り除いた残りのディレク

トリパス名を取り出し,標準出力に出力

します。

制限事項はありません。

制限事項はありません。

ファイル内の文字を検索します。指定さ

れたパターンは拡張された正規表現とし

て扱われます。

制限事項はありません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

662

コマンド名 egrep expand expr find getopt grep gunzip gzip head hostname ln ls mkdir

機能概要 grep

コマンドに

-E

オプションを指定し

た場合と同じ動作です。

制限事項

制限事項はありません。

タブストップでそろえられている行をタ

ブ文字からスペース文字に置き換えて,

標準出力に出力します。

制限事項はありません。

式を評価します。 制限事項はありません。

ディレクトリ内のファイルを検索します。 制限事項はありません。

シェルスクリプトで容易に構文解析でき

るよう,コマンドラインのオプションを

分解します。

制限事項はありません。

ファイル内の文字を検索します。

圧縮されたファイルを伸長します。

制限事項はありません。

Windows の場合,圧縮されたファイルの所有者,ACL およびファ

イル属性は,伸長したファイルには引き継がれません。

ファイルを圧縮,または圧縮されたファ

イルを伸長します。

ファイルの最初の部分を表示します。

ホスト名を表示します。設定はできませ

ん。

ファイル,またはディレクトリへのリン

クファイルを作成します。

• Windows の場合,圧縮するファイルの所有者,ACL およびファ

イル属性は,圧縮したファイルには引き継がれません。

• Windows の場合,圧縮されたファイルの所有者,ACL および

ファイル属性は,伸長したファイルには引き継がれません。

制限事項はありません。

制限事項はありません。

ファイルまたはディレクトリの内容を表

示します。

ディレクトリを作成します。

UNIX の場合,次に対するハードリンクは作成できません。

• ディレクトリ

• 存在しないファイル

• 異なるファイルシステムのファイル

Windows の場合,次に対するハードリンクは作成できません。

• ディレクトリ

• ディレクトリへのシンボリックリンク

• 存在しないファイル

• 異なるドライブレターのファイル

Windows の場合,NTFS 以外のファイルシステムにリンクファイ

ルを作成できません。

Windows の場合,引数ターゲット,またはターゲットディレクト

リには UNC 形式を指定できません。

• Windows の場合,

-l

オプションでグループまたはファイルの

オーナー以外のアクセス権を表示できません。

• Windows の場合,

TZ

環境変数は表示に影響しません。コント

ロールパネルの[日付と時刻のプロパティ]ダイアログボックス

で設定したタイムゾーンが使用されます。

Windows の場合,

-m

オプションは無視されるため,モード設定は

できません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

663

rmdir sed sleep sort split stat

コマンド名 mv paste printf rm tail tar

機能概要

ファイルまたはディレクトリを移動しま

す。ファイル名またはディレクトリ名も

変更できます。

制限事項

• Windows の場合,オーバーライド時にオーナーのアクセス権以

外は表示できません。

• Windows の場合, cp

コマンド相当の処理をするケースで,オー

ナーの変更をサポートしません。オーナー/グループ/モードは保

持されません。

制限事項はありません。 複数のファイルを行単位に連結して標準

出力に出力します。

値や文字列を書式に従って変換し,標準

出力に出力します。

ファイルまたはディレクトリを削除しま

す。

空のディレクトリを削除します。

テキスト中の文字列を置換します。

指定された時間だけ停止します。

テキストファイルをソートします。

ファイルを分割します。

ファイルまたはディレクトリの状態を標

準出力に出力します。

制限事項はありません。

Windows の場合,オーバーライド時にオーナーのアクセス権以外

は表示できません。

制限事項はありません。

制限事項はありません。

制限事項はありません。

制限事項はありません。

制限事項はありません。

• Windows の場合,ファイルの所有者以外のパーミッションを表

示できません。

• Windows の場合,ファイルのブロック数,ブロックサイズの情

報は常に

0

を表示します。

• Windows の場合,デバイス番号はドライブ番号を表示します。

• Windows の場合,所有者のユーザー ID とグループ ID は常に

0

を表示します。

• Windows の場合,所有者のグループ名は常に「

...

」を表示

します。

• Windows の場合,i ノード番号は常に

0

を表示します。

• Windows の場合,ディレクトリの合計サイズは常に

0

を表示し

ます。

• Windows の場合,メジャーデバイス番号とマイナーデバイス番

号は常に

0

を表示します。

• Windows の場合,ファイルの最終アクセス日時とファイル情報

の最終変更日時はファイルの最終修正日時と同じ日時を表示しま

す。

• Windows の場合,通常ファイル,ディレクトリ,およびシンボ

リックリンク以外のファイル種別を表示できません。

ファイルの最後の部分を表示します。

ファイルまたはディレクトリをアーカイ

ブに格納,およびアーカイブから抽出,

表示を行います。

制限事項はありません。

• Windows の場合,NTFS 以外のファイルシステムにリンクファ

イルは抽出できません。

• Windows の場合,シンボリックリンク先が存在しない状態では

シンボリックリンクを抽出できません。

• Windows の場合,

-p

オプションは使用できません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

664

コマンド名 tar touch uname uniq wc which

機能概要

ファイルまたはディレクトリをアーカイ

ブに格納,およびアーカイブから抽出,

表示を行います。

ファイルの最終アクセス日時と最終修正

日時を変更します。

制限事項

• Windows の場合,アーカイブからの抽出時にファイルに対して

オーナー/グループ/パーミッションは設定できません。

• Windows の場合,最終アクセス日時は変更できません。

• Windows の場合,ディレクトリの最終修正日時は変更できませ

ん。

• Windows の場合,環境変数

TZ

に設定したタイムゾーンと[日

付と時刻のプロパティ]に設定したタイムゾーンを同じ値にする

必要があります。

• Windows の場合,実際にファイルに設定される修正時刻の精度

はファイルシステムの仕様に依存します。

制限事項はありません。 OS またはハードウェアの情報を表示し

ます。

ソートされたファイルから重複した行を

削除します。

制限事項はありません。

ファイルのバイト,行,文字および単語

をカウントします。

実行する外部コマンドのコマンドパスを

環境変数

PATH

に設定されているコマン

ド検索パスから求めます。

制限事項はありません。

Windows の場合, which

コマンドの説明個所に記載されているパ

ス検索規則に該当する外部コマンドだけがコマンドパスの出力対象

となります。

注※

UNIX 互換コマンドのうち,実行ファイル形式で提供するすべてのコマンドに共通する制限事項を次に

示します。

• Windows の場合,UNIX 互換コマンドをコマンドプロンプトから実行するとき,ワイルドカード

は展開されません。ジョブ定義スクリプトファイルに記述した場合は展開されます。

• 出力されるメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。

• Windows の場合,コマンドプロンプトからコマンドを実行するときは,ダブルクォーテーション

を使用する必要があります。

• 使用可能なファイルには制限があります。詳細は「

2.2.3 JP1/Advanced Shell で使用するファイ

」を参照してください。

• コマンドで生成するパス名およびジョブ定義スクリプトファイルに記述したファイルには,パス変

換機能は無効です。

• プログラムを実行する機能( awk

コマンドの system

関数および find

コマンドの

-exec

プライマリ,

ok

プライマリなど)で GUI を操作するアプリケーションを実行した場合,バッチジョブ実行時に

処理が停止することがあります。また, adshexec

コマンドを実行すると,新たにジョブが生成され

ます。

UNIX 互換コマンドのうち,実行ファイル形式でハードリンク,シンボリックリンクを使用するときの制

限事項を次に示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

665

• find

コマンド, ls

コマンド, stat

コマンドでディレクトリへのハードリンク数を出力すると,UNIX

版と Windows 版で値が異なることがあります。

• Windows 版では 11-00 でハードリンク,シンボリックリンクに対応したため,11-00 より前と以降

で一部の UNIX 互換コマンドの出力形式が異なります。ハードリンク,シンボリックリンクを使用し

ないで,かつ出力形式を 11-00 より前に戻したい場合は環境変数

ADSH_LINK_SUPPORT

L0

を指定して

ください。環境変数

ADSH_LINK_SUPPORT

の詳細は「 2.2.7 ハードリンク,シンボリックリンクを使用す

」を参照してください。

• 環境変数

ADSH_LINK_SUPPORT

L0

L1

以外の値を指定して UNIX 互換コマンドを実行するとコマンド

は終了コード

255

以上でエラー終了します。

(2) スクリプト形式で提供するコマンド【Windows 限定】

UNIX 互換コマンドのうち,スクリプト形式で提供するコマンドは,ジョブ定義スクリプト中だけで実行

できます。

UNIX 互換コマンドのうち,スクリプト形式で提供するコマンドのサンプルスクリプトファイルの格納場

所は次のとおりです。

• Windows の実行環境の場合

インストール先フォルダ\JP1ASE\sample

• Windows の開発環境の場合

インストール先フォルダ\JP1ASD\sample

UNIX 互換コマンドのうち,スクリプト形式で提供するコマンドは,JP1/Advanced Shell が提供するサ

ンプルスクリプトファイルを「

(2) スクリプト形式の UNIX 互換コマンドを使うための準備【Windows

使用できるスクリプト形式の UNIX 互換コマンドを次の表に示します。なお,提供するサンプルスクリプ

トファイルは Windows 限定です。UNIX でこれらのコマンドを使用する場合,OS 提供のコマンドを使

用してください。

表 8-3 UNIX 互換コマンド(スクリプト形式)

コマンド名 chmod su who

機能概要

ファイルまたはフォルダのアクセス権を変更します。 su コマンドに指定されたプログラムを実行します。

現在ログインしているユーザーの情報を表示します。

UNIX 互換コマンドのうち,スクリプト形式でハードリンク,シンボリックリンクを使用するときの制限

事項を次に示します。

• 環境変数 ADSH_LINK_SUPPORT に L0,L1 以外の値を指定し,UNIX 互換コマンドを実行すると

コマンドは終了コード 255 以上でエラー終了します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

666

8.3 シェル運用コマンド

8.3.1 adshappagent コマンド(アプリケーション実行エージェント起動コ

マンド)【Windows 実行環境限定】

形式 adshappagent [-q] [-c]

機能

アプリケーション実行エージェントを起動し,adshappexec コマンドの実行を監視して,adshappexec

コマンドで指定した実行アプリケーションを起動します。 adshappagent コマンドは adshappexec コマンドを実行するユーザー(JP1/Base のマッピング OS ユー

ザー)ごとに実行する必要があります。

使用するユーザーには Windows の管理ツールの[ローカルセキュリティポリシー]-[ローカルポリ

シー]-[ユーザー権利の割り当て]-[グローバルオブジェクトの作成]権限を付与する必要があります。

セキュリティ上の問題などから「グローバルオブジェクトの作成」権限を有効にできない場合は,「グロー

バルオブジェクトの作成」権限を有効にできるユーザーでアプリケーション実行エージェント機能を使用

してください。

Windows のスタートアップに登録,解除を画面操作でできる機能も提供します。この機能を使用し,ロ

グオン時に自動的に起動する運用とすることを推奨します。

Windows の[スタート]メニューから,[すべてのプログラム]−[Advanced Shell]−[アプリ

ケーション実行エージェント]を選択すると,タスクバーの通知領域に[アプリケーション実行エー

ジェント]アイコンが表示されます。

[アプリケーション実行エージェント]アイコンにカーソルを当てると,次のようにアイコンの説明が

表示されます。

アイコンは次のように状態が変わります。

(アイコン色 白)実行アプリケーション未起動。

8. 運用時に使用するコマンド

JP1/Advanced Shell

667

(アイコン色 緑)実行アプリケーション実行中。

(アイコン色 黄)実行アプリケーション強制終了。

起動中の実行アプリケーションの情報を参照する場合は,adshappagent または adshappexec コマンド

の引数-c を使用してください。ジョブ定義スクリプト内などからは情報を取得できません。

引数

引数の指定なし

アプリケーション実行エージェントを起動します。

-q

アプリケーション実行エージェントを終了します。

クラスタ連携の系切り替えをする場合など,アプリケーション実行エージェントを終了させる場合,こ

の引数を使用します。

-c

アプリケーション実行エージェント機能共有メモリの内容を標準出力に出力します。

この引数は adshcollect コマンドで使用します。

使用する場合にはファイルにリダイレクトする必要があります。

コンソールには表示しません。

また,取得する情報はログインユーザーごとの情報であり,実行したログインユーザーで取得する必要

があります。

終了コード

終了コード

0

0 以外

意味

正常終了

エラー終了

注意事項

• adshappagent コマンドは,adshappexec コマンド実行前に実行しておく必要があります。

• adshappexec コマンドで実行アプリケーションの終了を待つ設定(-w)をした場合は,実行アプリ

ケーションの終了までアプリケーション実行エージェントを終了しないでください。終了した場合,起

動した実行アプリケーションは起動したままとなり,実行アプリケーションを起動したジョブはエラー

となります。

• ドメインユーザーとドメイン以外のユーザーもアプリケーション実行エージェント機能では別ユーザー

として扱います。

8. 運用時に使用するコマンド

JP1/Advanced Shell

668

• アンインストール時,およびバージョンアップインストール時にはアプリケーション実行エージェント

を終了し,アプリケーション実行エージェントをスタートアップに登録したユーザーでログインし,ス

タートアップからアプリケーション実行エージェントを削除する必要があります。スタートアップから

削除しない状態でアンインストールした場合は,再度 JP1/Advanced Shell をインストールし,スター

トアップが残っているユーザーでログインし,スタートアップの解除をする必要があります。

• アプリケーション実行エージェントプログラム実行中に系切り替えをした場合,系切り替え前の情報を

系切り替え後に引き継ぎません。-q オプションでアプリケーション実行エージェントを終了し,系切

り替え実施後にアプリケーション実行エージェントを起動してください。

• 同一のユーザーに対してアプリケーション実行エージェントは一つしか起動できません。複数起動した

場合,エラーとなります。

• adshappagent コマンドはログオン空間で動作させる必要があります。サービス空間で動作する

JP1/AJS のジョブの延長で動作させないでください。動作させた場合,対話型の実行アプリケージョン

は操作できません。

• 引数-q および引数-c はほかの引数と同時に指定しないでください。同時に指定した場合はエラーとな

ります。

8.3.2 adshappexec コマンド(GUI アプリケーション実行コマンド)

【Windows 実行環境】

形式 adshappexec [-m] [-d ワークフォルダ] [-v 表示名] {-w 実行アプリケーション名 | -n 実行アプリ

ケーション名} [-- 引数1 引数2...]

機能

アプリケーション実行エージェントに実行アプリケーションの起動を要求します。JP1/AJS の PC ジョブ

定義の実行ファイル名などに指定して動作させます。

実行アプリケーションの戻り値は,標準出力,およびメッセージ(JP1/AJS の実行結果詳細)に出力しま

す。ジョブの戻り値として後続ジョブで使用する場合はコマンド置換で変数に格納します。

引数

--m

標準エラー出力へのメッセージの出力を抑止します。

標準入出力を使用できない環境で使用します。

コマンドの引数指定エラー,およびライセンスチェックエラーは,-m オプションを指定しても出力さ

れます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

669

-d ワークフォルダ 〜<パス名>((1〜247 バイト))

実行アプリケーション実行時のワークフォルダを指定します。

ワークフォルダを指定しなかった場合は,adshappexec コマンド実行時のカレントパスで実行アプリ

ケーションが動作します。

ワークフォルダはスペースを含む場合,ジョブ定義スクリプトからの実行であれば「"」で囲むなどし

て,スペースを含めて指定してください。

-v 表示名 〜<パス名>((1〜247 バイト))

[アプリケーション実行エージェント]アイコンを左クリックしたときに表示される表示名を指定します。

表示名はスペースを含む場合,ジョブ定義スクリプトからの実行であれば「"」で囲むなどして,スペー

スを含めて指定してください。

表示名を省略した場合には,実行アプリケーション名を出力します。

複数の実行アプリケーションを動作させたときにアプリケーションを区別するためにこの引数を指定す

ることを推奨します。

-w 実行アプリケーション名 〜<パス名>((1〜247 バイト))

実行アプリケーションの終了まで実行を終了しません。

実行アプリケーション名は,実行アプリケーションのファイル名を指定します。

実行アプリケーション名はスペースを含む場合,ジョブ定義スクリプトからの実行であれば「"」で囲

むなどして,スペースを含めて指定してください。

-n 実行アプリケーション名 〜<パス名>((1〜247 バイト))

実行アプリケーションの終了を待たずに終了します。

この引数を使用した場合,同時実行数の制限を受けずに起動できます。

実行アプリケーション名は,実行アプリケーションのファイル名を指定します。

実行アプリケーション名はスペースを含む場合,ジョブ定義スクリプトからの実行であれば「"」で囲

むなどして,スペースを含めて指定してください。

-- 引数 1 引数 2... 〜<引数>((1〜1023 バイト))

「--」のあとに実行アプリケーションの実行時に指定するパラメーターを指定します。

関連付けを行った実行アプリケーションを指定した場合には引数を指定しないでください。

引数は,合計の引数長が 1,023 バイト以内であれば,いくつでも指定できます。

終了コード

終了コード

0

0 以外

意味

正常終了

エラー終了 adshappexec コマンドでは,3 つのプロセスでの終了コードがあります。プロセスごとの終了コードの扱

いは次のようにします。

8. 運用時に使用するコマンド

JP1/Advanced Shell

670

図 8-1 プロセスごとの終了コードの扱い

エラー発生個所での戻り値の出力は,次のとおりです。

(a) adshappexec コマンド処理でのエラー

コマンドの戻り値として設定します。標準エラー出力(JP1/AJS - View からの実行の場合実行結果詳

細)にメッセージを出力します。

(b) アプリケーション実行エージェントでの adshappexec コマンドからの要求処理中のエラー

コマンドの戻り値として設定します。標準エラー出力(JP1/AJS - View からの実行の場合実行結果詳

細)には,アプリケーション実行エージェントでエラー出力します。

(c) 実行アプリケーションの戻り値

標準出力に出力します。また,標準エラー出力(JP1/AJS - View からの実行の場合実行結果詳細)に

は,実行アプリケーションの戻り値を出力します。

実行アプリケーションの戻り値で 0 以外の戻り値を返しても,adshappexec コマンドは異常終了しま

せん。

実行アプリケーションの戻り値を確認するにはメッセージを確認するか,標準出力の内容を確認してく

ださい。

(d) アプリケーション実行エージェントでの adshappexec コマンドからの要求処理中以外のエラー

アプリケーション実行エージェントのエラーとして,adshappagent コマンドの戻り値として設定しま

す。

エラーの発生個所によって,メッセージをメッセージボックスで出力,またはアプリケーション実行

エージェント機能ログに出力します。

注意事項

• adshappexec コマンドは,アプリケーション実行エージェントが起動している状態で実行する必要が

あります。起動する前に実行した場合,エラーになります。また,adshappexec コマンド実行中にア

プリケーション実行エージェントを終了した場合,エラーになります。

• adshappexec コマンドの-w 引数と-n 引数は必ず指定してください。

次の場合,最後に指定したものが有効になります。

• -w オプションと-r オプションを同時に指定した場合

• -w オプションを複数指定した場合

• -r オプションを複数指定した場合

8. 運用時に使用するコマンド

JP1/Advanced Shell

671

• JP1/AJS の PC ジョブの設定項目である環境変数,および環境変数ファイル名は実行アプリケーション

に引き継ぎません。また,実行アプリケーションは実行ユーザーの環境変数を使用します。

• adshappexec コマンドの引数-w を指定した実行アプリケーションの最大同時起動数は 5 つです。5 つ

を超える数の実行アプリケーションを起動した場合,起動中の実行アプリケーションの終了を待ちます。

実行アプリケーションの終了を待った場合,実行中の実行アプリケーションが終了してから終了待ちの

実行アプリケーションが起動するまで 1 分以上の時間がかかる場合があります。

• 同じオプションを複数指定した場合,最後の指定が有効になります。

• 次の仕様のアプリケーションを-w 引数で実行した場合,指定したファイルを閉じても adshappexec

コマンドが終了しないことがあります。

• 実行アプリケーションに指定したファイルを閉じても,アプリケーション自体が終了しない

このような場合は,アプリケーション自体が終了すれば,adshappexec コマンドも終了します。

例:実行アプリケーションとして指定した Excel ファイルだけ閉じて,Excel 自体は終了させていない

場合

• 実行アプリケーションのプロセス起動に関する仕様によっては,-w 引数を指定しても,アプリケーショ

ンの終了を待たずに adshappexec コマンドが終了することがあります。

次に示す場合があります。

(1)KNAX7259-W が出力される場合

例:Excel ファイルを実行アプリケーションとして実行する前から,すでに Excel 自体が動作して

いた場合

この場合は,Excel が起動していない状態で運用するか,-w 引数を使用しない運用としてください。

(2)KNAX7259-W が出力されない場合

例:explorer.exe を実行アプリケーションとして実行した場合

この場合は,-w 引数を使用しない運用としてください。

• 強制終了時は次のことに注意してください。

• adshappexec コマンド実行中にジョブを強制終了した場合

起動した実行アプリケーションは起動したままとなります。

• TRAP_ACTION_SIGTERM パラメーターで TERM を指定した場合 trap コマンドによる動作定義に adshappexec コマンドを指定しないでください。

対話操作をする実行アプリケーションを指定した場合,応答待ちになりジョブ定義スクリプトが終

了しない可能性があります。

使用例

• 実行アプリケーションを実行し,終了を待つ場合 adshappexec –w “c:\appfolder\app.exe“・・・1 echo app終了・・・2 c:¥appfolder¥app.exe を実行し(処理 1),終了待ちします(処理 2)。

8. 運用時に使用するコマンド

JP1/Advanced Shell

672

• 実行アプリケーションを実行し,終了を待たない場合 adshappexec –n “c:\appfolder\app.exe“・・・1 echo app起動・・・2 c:¥appfolder¥app.exe を実行し(処理 1),終了を待たないで処理 2 を実行します。

• シェル拡張コマンドを使用した実行アプリケーションの戻り値を判定する場合 exeapprc=$(adshappexec -w c:\\appfolder\\app.exe) if [[ $? != 0 ]] ・・・1 then

echo adshappexec error

exit fi echo $exeapprc if [[ $exeapprc != 0 ]] ・・・2 then

echo app.exe error

exit fi

処理 1 は,adshappexec コマンドの戻り値を判定します。

処理 2 は,c:¥¥appfolder¥¥app.exe(実行アプリケーション)の戻り値を判定します。

8.3.3 adshchmsg コマンド(障害発生時に,応答要求メッセージに対して

手動で応答する)

形式 adshchmsg [-h 論理ホスト名]-n 応答要求メッセージ番号{-r 応答|-d}

機能

障害発生時に共有メモリ上にある応答要求メッセージに対して応答を入力します。または,応答要求メッ

セージの応答待ち状態をキャンセルします。

応答要求メッセージの応答要求メッセージ番号を-n オプションに指定し,それに対する応答を-r オプショ

ンで指定します。応答要求メッセージの応答待ち状態をキャンセルする場合は,応答要求メッセージの応

答要求メッセージ番号を-n オプションに指定し,それに対するキャンセル要求として-d オプションを指定

します。

実行環境の場合,このコマンドは,JP1/Advanced Shell がインストールされているマシンの管理者権限

を持つ root または Administrators が実行できます。開発環境の場合,このコマンドは一般ユーザーでも

実行できます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

673

引数

-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 オプションを複数指定した場合

8. 運用時に使用するコマンド

JP1/Advanced Shell

674

8.3.4 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 バイト))

マージするファイルのパス名を指定します。

終了コード

1

2

終了コード

0

3

意味

正常終了 asc ファイルの読み込みの途中で,ファイルの終了を検出しました。asc ファイルが異常です。

ファイルのロック解除でエラーが発生しました。

コマンドラインの指定に誤りがあります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

675

11

12

13

14

7

8

9

10

15

16

17

終了コード

4

5

6

意味

環境変数の設定に誤りがあります。

• 環境変数 LANG に設定している文字エンコーディングに対応していません。

次に示す 2 つのジョブ定義スクリプトが異なります。

• ベース asc ファイルのカバレージ情報を蓄積したときのジョブ定義スクリプト

• マージ asc ファイルのカバレージ情報を蓄積したときのジョブ定義スクリプト

ファイルのオープン処理でエラーが発生しました。

• ファイルの種類が適切でない場合も,このエラーとなります。

ファイルのロックでエラーが発生しました。

ファイル名の変更処理でエラーが発生しました。

ファイルの入出力でエラーが発生しました。

メモリ不足が発生しました。

メッセージ出力処理でエラーが発生しました。

標準エラー出力への出力処理でエラーが発生しました。

内部処理矛盾を検出しました。 asc ファイルのデータ形式の誤りを検出しました。asc ファイルが不当です。

日時の取得でエラーが発生しました。

ジョブ定義スクリプトファイルの情報取得でエラーが発生しました。

コマンドで asc ファイルを処理できません。 asc ファイルは,異なるバージョンで作成されたものです。

コマンドの処理中に,OS とのやり取りでエラーが発生しました。 19

注意事項

• ベース asc ファイル,およびマージ asc ファイルのカバレージ情報を採取したときのジョブ定義スク

リプトが同一の場合にだけ,マージできます。ジョブ定義スクリプトが異なる場合は,コマンドエラー

となります。

• 出力 asc ファイルに,ベース asc ファイルまたはマージ asc ファイルと同一のファイルを指定すると,

コマンドエラーとなります。出力 asc ファイルは,ベース asc ファイルおよびマージ asc ファイルと

は異なるファイルを指定してください。

• ベース asc ファイルおよびマージ asc ファイルに同一のファイルを指定すると,コマンドエラーとな

ります。

• ベース asc ファイルおよびマージ asc ファイルに指定したファイルが,同一であるかどうかは,指定

したファイルの絶対パス名で判断します。絶対パス名が同一である場合,同一のファイルと判断します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

676

使用例

• JOB_user1.asc と JOB_user2.asc のカバレージ情報をマージして JOB_user3.asc に出力します。 adshcvmerg -o JOB_user3.asc JOB_user1.asc JOB_user2.asc

8.3.5 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 ファイルのパス名を指定します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

677

終了コード

11

12

13

14

7

8

9

10

15

16

17

3

4

1

2

終了コード

0

6

意味

正常終了 asc ファイルの読み込みの途中で,ファイルの終了を検出しました。asc ファイルが異常です。

ファイルのロック解除でエラーが発生しました。

コマンドラインの指定に誤りがあります。

環境変数の設定に誤りがあります。

• 環境変数 LANG に設定している文字エンコーディングに対応していません。

ファイルのオープン処理でエラーが発生しました。

• ファイルの種類が適切でない場合も,このエラーとなります。

ファイルのロックでエラーが発生しました。

ファイル名の変更処理でエラーが発生しました。

ファイルの入出力でエラーが発生しました。

メモリ不足が発生しました。

メッセージ出力処理でエラーが発生しました。

標準エラー出力への出力処理でエラーが発生しました。

内部処理矛盾を検出しました。 asc ファイルのデータ形式の誤りを検出しました。asc ファイルが不当です。

日時の取得でエラーが発生しました。

ジョブ定義スクリプトファイルの情報取得でエラーが発生しました。

コマンドで asc ファイルを処理できません。 asc ファイルは,異なるバージョンで作成されたものです。

コマンドの処理中に,OS とのやり取りでエラーが発生しました。 19

注意事項

• -s オプションと-l オプションは同時に指定した場合,エラーになります。

• 行の範囲指定で,終了行の行番号が開始行の行番号より小さい場合,エラーとなります。

• 開始行の行番号と終了行の行番号が等しい場合は,その行だけが範囲となります。

• 開始行の行番号がジョブ定義スクリプトファイルの行数より大きい場合は,無視されます。

• 終了行の行番号がジョブ定義スクリプトファイルの行数より大きい場合,終了行を最終行とします。

• 範囲が重複している場合,範囲の和と解釈します。例えば,-l 1-10,5-20 の場合,-l 1-20 と同じにな

ります。

• 範囲の形式が誤っている場合,エラーになります(例:1-10-20)。

8. 運用時に使用するコマンド

JP1/Advanced Shell

678

• 行指定で 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

8.3.6 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 では使用できません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

679

出力条件の指定

次に示す引数で,ジョブ定義スクリプト稼働実績情報を出力するジョブを指定します。

[-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 論理ホスト名]

この引数を指定しない場合,物理ホストで実行したジョブの稼働実績情報を出力します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

680

引数

-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 つが文字列として一致するジョブが出力できます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

681

• この引数で指定したジョブ番号

• ジョブを起動したときの 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 つが文字列として一致するジョブが出力できます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

682

• この引数で指定したジョブ識別子

• ジョブの 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 の指定を無視します。

終了コード

1

2

終了コード

0

3

意味

正常終了

コマンドラインの指定に誤りがあります。

環境変数の設定に誤りがあります。

環境変数 LANG に設定している文字エンコーディングに対応していません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

683

終了コード

4

10

11

12

13

7

8

5

6

意味

処理をスキップしたイベントファイルがあります。

原因については,コマンドが出力したメッセージを確認してください。

スプールの参照で入出力エラーが発生し,参照できませんでした。

ほかのコマンドがアクセスしているため,スプールを参照できませんでした。

メッセージ出力処理でエラーが発生しました。

標準出力への出力処理でエラーが発生しました。

日時の取得でエラーが発生しました。

メモリ不足が発生しました。

内部処理矛盾を検出しました。

初期化処理でエラーが発生しました。

終了コードは基本的に,コマンド実行中に発生した事象に対する終了コードの中の最大値となります。た

だし,終了コード 4 は,それ以外の事象が発生しなかった場合だけ出力されます。

同一引数の複数指定

同一の引数を複数回指定した場合,最後の指定を有効とします。

(例)

次の場合,-s 19900401 が指定されていると解釈します。 adshevtout -s 20120411 -s 19900401

異なる引数の組み合わせ

出力情報を選択する引数が組み合わせて指定された場合,引数は次の表の優先順位に従って解釈されます。

引数の優先順位

1

2

3

引数

-d

-m

-z

機能

稼働実績情報を出力しない

メッセージだけを出力する

環境変数の情報を出力しない

注※

数値が小さいほど優先順位が高くなります。

優先順位の高い引数が指定されている場合,優先順位の低い引数は無視されます。

指定されている引数の形式が正しくない場合は,引数の優先順位に関係なく,コマンドエラーとなりま

す。

8. 運用時に使用するコマンド

JP1/Advanced Shell

684

ジョブの実行開始日時

ジョブの実行開始日時の下限,上限の日時は次の 3 とおりの形式で指定できます。

YYYY に指定できる西暦年の範囲は 1970〜2038 です。

表 8-4 ジョブの実行開始日時の下限,上限の指定と解釈

日時の指定形式 指定の解釈

YYYYMMDD,hhmmss

YYYYMMDD

,hhmmss

年月日と時分秒を指定する形式です。

上限の場合,指定された時分秒+ 1 秒と解釈します。時分秒を「235959」と指定した場

合,指定された年月日の翌日の 00:00:00 と解釈します。

年月日だけを指定する形式です。

時分秒は次のように解釈します。

下限の場合

指定された年月日の 00:00:00 と解釈します。

上限の場合

指定された年月日の翌日の 00:00:00 と解釈します。

時分秒だけを指定する形式です。

年月日はコマンドの実行日と解釈します。

上限の場合,指定された時分秒+ 1 秒と解釈します。時分秒を「235959」と指定した場

合,コマンドの実行日の翌日の 00:00:00 と解釈します。

日時の解釈の例を次の表に示します。表の項番 5〜7 は,adshevtout コマンドを 2012 年 10 月 23 日に

実行した場合の例です。

項番 コマンドでの指定

5

6

7

3

4

1

2

20120501,000000

20120501,100000

20120501,235959

20120501

,000000

,100000

,235959

コマンドによって解釈される日時

実行開始日時の下限の場合

2012 年 05 月 01 日 00 時 00 分 00 秒

2012 年 05 月 01 日 10 時 00 分 00 秒

2012 年 05 月 01 日 23 時 59 分 59 秒

2012 年 05 月 01 日 00 時 00 分 00 秒

2012 年 10 月 23 日 00 時 00 分 00 秒

2012 年 10 月 23 日 10 時 00 分 00 秒

2012 年 10 月 23 日 23 時 59 分 59 秒

実行開始日時の上限の場合

2012 年 05 月 01 日 00 時 00 分 01 秒

2012 年 05 月 01 日 10 時 00 分 01 秒

2012 年 05 月 02 日 00 時 00 分 00 秒

2012 年 05 月 02 日 00 時 00 分 00 秒

2012 年 10 月 23 日 00 時 00 分 01 秒

2012 年 10 月 23 日 10 時 00 分 01 秒

2012 年 10 月 24 日 00 時 00 分 00 秒

コマンドに指定された日時は,コマンド実行時の環境変数 TZ に設定されたタイムゾーンに応じて解釈し

ます。

コマンドで,文字列として同じ日時を指定しても,環境変数 TZ のタイムゾーンが異なると,コマンドが

解釈した日時は異なります。注意してください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

685

指定できる日時は次のとおりです。

• 協定世界時(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 の仕様を参照してください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

686

ジョブの実行開始日時の下限

-s でジョブの実行開始日時の下限が指定された場合,ジョブ定義スクリプト稼働実績情報を出力するジョ

ブは,次に示す条件が成立する必要があります。 ts≦tj tj:ジョブの実行開始日時 ts:adshevtout コマンドが解釈したジョブの実行開始日時の下限

ジョブの実行開始日時の上限

-e でジョブの実行開始日時の上限が指定された場合,ジョブ定義スクリプト稼働実績情報を出力するジョ

ブは,次に示す条件が成立する必要があります。 tj < te tj:ジョブの実行開始日時 te:adshevtout コマンドが解釈したジョブの実行開始日時の上限

出力できるジョブ定義スクリプト稼働実績情報

• 出力できるジョブ定義スクリプト稼働実績情報は,コマンドを実行したユーザーがアクセスできるイベ

ントファイルに格納されているものです。コマンドを実行したユーザーがアクセスできない場合,メッ

セージを出力し,アクセスできないイベントファイルにあるジョブ定義スクリプト稼働実績情報を出力

しません。

• 実行中のジョブ,adshexec コマンドがエラー終了したジョブのジョブ定義スクリプト稼働実績情報は

出力しません。具体的には,スプールジョブのディレクトリ名が次の形式であるジョブのジョブ定義ス

クリプト稼働実績情報は出力しません。

•「

ジョブ識別子

•「

ジョブ識別子

-」

• 削除中のジョブのジョブ定義スクリプト稼働実績情報は出力しません。

スプールジョブのディレクトリの直下に次に示すスプールジョブ管理ファイルが存在しない場合,ジョ

ブは削除中と判断します。

• UNIX の場合:.sysout

• Windows の場合:sysout.ini

adshhk コマンドとの同時実行

• adshevtout コマンドと adshhk コマンド(スプールジョブの削除)は,スプールディレクトリを排他

制御します。

• 同一のスプールディレクトリに対して,adshevtout コマンドと adshhk コマンドは同時に実行できま

せん。

8. 運用時に使用するコマンド

JP1/Advanced Shell

687

• 同一のスプールディレクトリに対して,複数の adshevtout コマンドは同時に実行できます。

• スプールディレクトリが排他制御されているために adshevtout コマンドが実行できない場合,エラー

メッセージを出力して処理を終了します。

注意事項

• 出力されるジョブ定義スクリプト稼働実績情報のサイズが大きい場合,コマンドの出力条件を日時単位

などで分けて実行し,出力される稼働実績情報を分割してください。

使用例

• JP1/Advanced Shell のジョブ識別子 000100 のジョブ定義スクリプト稼働実績情報をファイル out.csv

に出力します。 adshevtout -i 000100 > out.csv

8.3.7 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 環境で使用できます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

688

デバッガモードではメモリ上にカバレージ情報を蓄積します。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

コマンドでデバッガを終了すると,採取したカバレージ情報を破棄します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

689

-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 運用ガイド」を参照してくだ

さい。

物理ホストで実行する場合は,このオプションを指定しないでください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

690

-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 バイト))

ジョブ定義スクリプトの位置パラメーターに格納する値を指定します。スペースを実行時パラメーター

として指定する場合は,その文字列を"(ダブルクォーテーション)で囲んでください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

691

終了コード

契機

通常実行で exit コマンドまたは関数外の return コマンドを実行した

通常実行で exec コマンドの引数に外部コマン

ドを指定して実行した

通常実行でジョブ定義スクリプトファイルの末

尾までジョブ定義スクリプトを実行した

終了コード

-c オプションがない場合

コマンドに指定した終了コード

引数に指定した外部コマンドの終了コー

最後に実行した,シェル標準コマンドま

たはスクリプト拡張コマンドの終了コー

0

1,または環境変数

ADSH_JOBRC_FATAL に設定した値

143

-c オプションがある場合

デバッガモードでジョブコントローラにエラー

がない

ジョブ定義スクリプトファイルに文法エラーが

ない

ジョブ定義スクリプトファイルに文法エラーが

ある

ジョブ定義スクリプトを実行し,次の終

了コードになる

• コマンドに指定した終了コード

• 最後に実行した,シェル標準コマンド

またはスクリプト拡張コマンドの終了

コード

1,または環境変数

ADSH_JOBRC_FATAL に設定した値

0

1,または環境変数

ADSH_JOBRC_FATAL に設定

した値

1,または環境変数

ADSH_JOBRC_FATAL に設定

した値

143

環境ファイル読み込みエラーなど,ジョブ定義

スクリプト実行中のエラーを除くジョブコント

ローラのエラーが発生した

JP1/AJS の強制終了操作を実行した。

【UNIX 限定】

ジョブコントローラプロセスがシグナルを受信

して終了した【UNIX 限定】

ジョブコントローラプロセスが,JP1/AJS や

Windows のタスクマネージャーなど外部から

強制終了された【Windows 限定】

OS に起因する要因でジョブコントローラの起

動が失敗した【Windows 限定】

環境変数 ADSH_JOBRC_FATAL の解析エ

ラーが発生した

環境変数 ADSH_LINK_SUPPORT に不当な

値が指定された【Windows 限定】

128 +シグナル番号

ジョブコントローラを強制終了したプロ

グラムが指定した終了コード

1〜3

255

255

128 +シグナル番号

ジョブコントローラを強制終了し

たプログラムが指定した終了

コード

1〜3

255

255

(凡例)

−:ジョブ定義スクリプトを実行しないため該当しません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

692

注※

UNIX ジョブの「コマンド文」でジョブを定義している場合,JP1/AJS で参照できるジョブの終了コー

ドは-1 になります。

注意事項

• 同じオプションを複数指定した場合,最後の指定が有効になります。

• オプション指定が-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 限定】

8. 運用時に使用するコマンド

JP1/Advanced Shell

693

使用例

• 文法チェックモードでジョブコントローラを起動します。 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"'

8. 運用時に使用するコマンド

JP1/Advanced Shell

694

8.3.8 

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 コマンドの順に実行されます。そのため,両方のコマン

ドで同じファイルを割り当てると,ファイルの後処理が二重に実行されることになり,エラーが発生する

場合があるので注意してください。

このコマンドは次の点に注意して実行してください。

• コマンドの非同期実行はしないでください。

• このコマンドは別プロセスで実行しないでください。

• スプールジョブ作成抑止機能を使用した場合,このコマンドは実行できません。

同じオプションを重複して指定した場合,最後の指定が有効になります。

引数

-s{step

| job}

ファイルの後処理の契機を指定します。

• step

ファイルの後処理をジョブステップ終了時に実行します。

• job

ファイルの後処理をジョブ終了時に実行します。

コマンドの発行はこのオプションの指定に関係なく,ジョブとジョブステップ内のどちらでもできます

が,登録したファイルの後処理は次のジョブステップの終了時またはジョブ終了時に実行されます。ま

た,step を指定してファイルを登録したあとに,ジョブステップ終了のタイミングがなかった場合は,

後処理はジョブ終了時に実行されます。

子孫ジョブでこのオプションを指定した場合,その子孫ジョブ内でこれらの動作が実行されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

695

-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

意味

正常終了

8. 運用時に使用するコマンド

JP1/Advanced Shell

696

終了コード

99

意味

エラー終了

注意事項

#-adsh_file コマンドとは異なり,ジョブ実行ログに割り当て結果を示すメッセージは出力されません。 adshfile コマンド実行後に,障害調査などの目的で adshfile コマンドの引数に指定したファイルパス名を

確認する手順は次のとおりです。

1. 環境ファイルの EVENT_COLLECT パラメーターに YES を設定し,稼働実績情報の取得を設定します。

2. ジョブ定義スクリプトで adshfile コマンドを実行します。

稼働実績情報が採取されます。

3. adshevtout コマンドを実行し,稼働実績情報を出力します。

4. 稼働実績情報の 1 列目の"EvtName"(稼働実績情報レコードの種類を示す)部分が"command"(コマ

ンド情報を示す)の行を参照します。

なお,ジョブ定義スクリプトの稼働実績情報の採取は,実行環境の通常モードだけで実行できます。実行

環境のデバッガモードおよび開発環境では採取できません。

8.3.9 adshhk コマンド(スプールジョブを削除する)

形式 adshhk 対象リストファイル名 レポートファイル名 ログファイル名[日数]

機能

対象リストファイル名

に指定した対象リストファイルに従って,スプールジョブを削除します。実行結果

レポートファイル名

に指定したファイルに csv 形式で出力します。また,エラーメッセージなど実行時

に出力するメッセージは,

ログファイル名

に指定したファイルに出力します。

このコマンドは adshevtout コマンドと,スプールディレクトリ単位で排他制御を実施します。adshhk コ

マンドがスプールディレクトリのロックを確保できない場合は,KNAX4425-E メッセージを出力して,

該当するスプールディレクトリの処理をスキップします。

引数

対象リストファイル名

削除対象を指定した対象リストファイルのファイル名を指定します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

697

対象リストファイルには,削除対象のスプールディレクトリのスプールルートディレクトリ名と日数を

指定しておきます。指定した日数(adshhk コマンド実行日の前日を基点にしてカウントした日数)以

前に実行したスプールジョブが,指定したスプールルートディレクトリから削除されます。

対象リストファイルはテキストファイル形式で,複数行記述できます。各行は先頭から記述し,1 行に

は改行コードを含み,4,095 バイト以内で記述してください。また,指定値は"(ダブルクォーテーショ

ン)で囲んでください。

対象リストファイルの形式を次に示します。

"スプールルートディレクトリ名"[,"日数"]

各項目の指定内容を次に示します。

スプールルートディレクトリ名 〜<パス名>((1〜128 バイト))

スプールジョブを削除するスプールルートディレクトリ名を記述します。フルパスで記述すること

を推奨します。

日数 〜<符号なし整数>((1〜999))

指定した日数(adshhk コマンド実行日の前日を基点にしてカウントした日数)以前に実行したバッ

チジョブのスプールジョブディレクトリを削除します。省略した場合は,adshhk コマンドで指定

した日数になります。両方に日数の指定がない場合は,その行の指定はエラーとなり,後続行の処

理をします。

「""」と指定したときは,日数を省略したと解釈します。

レポートファイル名

実行結果を出力するファイル名を指定します。レポートファイルは csv 形式で出力します。指定した

ファイルが存在しない場合は新規に作成し,すでに存在する場合はそのファイルの内容を上書きします。

レポートファイルのアクセス権限は次のように設定されます。

• Windows の場合:出力先フォルダの設定に従います。

• UNIX の場合:600

レポートファイルの出力例は,「 3.9 スプールジョブを削除する

」を参照してください。

ログファイル名

エラーメッセージなどを出力するファイル名を指定します。指定したファイルが存在しない場合は新規

に作成し,すでに存在する場合はそのファイルの内容を上書きします。

ログファイルのアクセス権限は次のように設定されます。

• Windows の場合:出力先フォルダの設定に従います。

• UNIX の場合:600

日数 〜<符号なし整数>((1〜999))

指定した日数(adshhk コマンド実行日の前日を基点にしてカウントした日数)以前に実行したバッチ

ジョブのスプールジョブディレクトリを削除します。この引数は,対象リストファイル名に指定した日

数よりも優先します。省略した場合は対象リストファイル名に指定した日数になります。

この引数の指定を省略した場合は,必ず対象リストファイルに日数を指定してください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

698

終了コード

1

2

終了コード

0

意味

正常終了

エラー終了

スプールディレクトリがほかのプログラムで処理中のため削除に失敗

(ただし,ほかのエラーが発生していると 2 以外になる)

標準エラー出力でエラー発生 253

注意事項

• コマンドを実行したユーザーに削除権限があるスプールジョブだけが削除の対象となります。削除権限

がないスプールジョブは削除の失敗をレポートします。全ユーザーのスプールジョブを削除対象にした

い場合は,すべてのスプールジョブに削除権限があるユーザーで実行してください。

• スプールジョブディレクトリの下に作成したファイルは,そのバッチジョブが作成したファイルかどう

かに関係なく,削除権限があれば削除します。

• スプールジョブディレクトリの下にサブディレクトリが作成されている場合,削除に失敗することがあ

ります。

• ジョブ実行開始の日付がわからない場合は削除しません(エラー扱いとします)。

• スプールジョブディレクトリが「ジョブ識別子-ジョブ名」または「ジョブ識別子-」の形式のスプール

ジョブだけ削除します。ジョブ識別子の後ろに「-」が付いていないスプールジョブディレクトリは,

バッチジョブが実行中である場合や,「

3.11.1 ジョブの強制終了の方法 」に示す方法以外の手段で不

当に終了させられた場合などの状態を示しているため,実際の状態に関係なく削除しません。

• 削除処理中にエラーが発生した場合,そのスプールジョブの削除処理は途中まで進んでいる可能性があ

ります。

• レポートファイルに出力された結果はジョブ番号の順で出力されません。必要に応じてソートプログラ

ムなどでソートしてください。

• adshevtout コマンド(ジョブ定義スクリプトの稼働実績情報の出力)で処理中のスプールディレクト

リを指定した場合,スプールジョブは削除されません。

• 削除するスプールジョブはスプールジョブ管理ファイルから削除するため,削除処理中に処理を中断す

ると,adshhk コマンドを再実行しても削除されません。その場合,削除に失敗したスプールジョブは

手作業で削除してください。

• 削除に失敗したスプールジョブを手作業で削除する場合には,削除したいスプールジョブディレクト

リ,およびその下位に存在するすべてのファイルを rm -r コマンドなどで削除してください。なお,削

除するときには,スプールジョブディレクトリやその下位のファイルの作成日付などを参考に,ジョブ

が終了していることを確認して削除してください。そのため,運用停止後に削除することを推奨します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

699

使用例

• 次のバッチジョブを削除します。

 /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 スプールジョブを削除する

」を参照してください。

8.3.10 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. 運用時に使用するコマンド

JP1/Advanced Shell

700

表 8-5 強制終了時に Java のバッチアプリケーションを自動的に強制停止できる条件

強制停止できる条件(2 回目以降を除く) Windows

JP1/AJS からの強制終了

Ctrl+C

Ctrl+break

コンソールを閉じる adshexec コマンドプロセスへの終了シ

グナル

※1

送信 adshjava コマンドプロセスへの

SIGTERM 送信 adshjava コマンドプロセスへの

SIGINT 送信 adshexec のデバッガの quit コマンドで

中断

×

×

※2

Linux,AIX,HP-UX

※2

(凡例)

○:強制停止できます。

×:強制停止できません。

−:該当しない

注※1

終了シグナルとは,adshexec コマンドが終了対象とするシグナルのことです。終了対象とするシグナ

ルについては,「

3.11.2 シグナル受信時の動作【UNIX 限定】

注※2 quit コマンドによって,バックグラウンド実行するコマンドの強制停止はできません。

Java のバッチアプリケーションの実行方法として,uCosminexus Application Server のスケジューリン

グ機能の使用有無を選択できます。

• スケジューリング機能を使用しない場合

Java のバッチアプリケーションは,指定したバッチサーバで実行されます。

• スケジューリング機能を使用する場合

Java のバッチアプリケーションは,Component Transaction Monitor によって振り分けられたバッ

チサーバで実行されます。この場合,Java のバッチアプリケーションのジョブ ID は次の形式で生成し

ます。

ADSH時刻プロセスID

8. 運用時に使用するコマンド

JP1/Advanced Shell

701

時刻

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 コマン

ドに渡されます。

このオプション以降に指定した内容は,1 つも指定がない場合を除いて adshjava コマンドではエラー

チェックされません。cjexecjob コマンドでのチェック処理に任せます。

Java オプション

JavaVM の起動オプションを指定します。指定方法については,マニュアル「Cosminexus V9 ア

プリケーションサーバ リファレンス コマンド編」を参照してください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

702

#-adsh_file コマンド, #-adsh_file_temp コマンド,または #-adsh_spoolfile コマンドで割り当て

たファイルは,このオプションで「-D システムプロパティ名 =${ ファイル定義名 }」を記述すること

で,システムプロパティ経由でファイル名を Java のバッチアプリケーションに渡せます。

Java アプリケーションクラス名

パッケージ名を含めた Java アプリケーションのクラス名を指定します。Java アプリケーションク

ラス名については,マニュアル「Cosminexus V9 アプリケーションサーバ リファレンス コマン

ド編」の cjexecjob コマンドの記述個所を参照してください。 main メソッドに渡す引数

Java アプリケーションの main メソッドに渡す引数を指定します。main メソッドに渡す引数につ

いては,マニュアル「Cosminexus V9 アプリケーションサーバ リファレンス コマンド編」の cjexecjob コマンドの記述個所を参照してください。

終了コード

終了コード

0

1

2

※1

※2

※2 public static int main(String[])メソッ

ドから return した値+15

※1※3

System.exit(),Runtime.halt(),

Runtime.exit()の引数に指定した値+15

※1※3 cjexecjob コマンドの戻り値+ 15

※1※3 public static int main(String[])メソッ

ドから return した値

※1※4

発生条件 public static int main(String[])メソッ

ドから返された値が 0

意味 public static int main(String[])メソッ

ドを使用した場合に返されます。

System.exit(),Runtime.halt(),

Runtime.exit()の引数に指定した値が 0 cjexecjob コマンドの戻り値が 0

System.exit(),Runtime.halt(),

Runtime.exit()を使用した場合に返され

ます。 public static void main(String[])メ

ソッドを使用して正常終了しました。 adshjava コマンドの処理の要因で終了 adshjava コマンドが強制終了しました。 adshjava コマンドの処理の要因で終了 adshjava コマンドの処理でエラーが発

生しました。

強制終了処理で cjkilljob コマンドの起動

に失敗すると 1 になることがあります。 public static int main(String[])メソッ

ドから返された値が 1 以上

System.exit(),Runtime.halt(),

Runtime.exit()の引数に指定した値が 1

以上 cjexecjob コマンドの戻り値が 1 public static int main(String[])メソッ

ドから返された値が負数(Windows 限

定。UNIX は下 8 ビットが RC として採

用される) public static int main(String[])メソッ

ドを使用した場合に返されます。

System.exit(),Runtime.halt(),

Runtime.exit()を使用した場合に返され

ます。

Java のバッチアプリケーションの実行に

失敗しました。または,Java のバッチア

プリケーションを強制終了しました。 public static int main(String[])メソッ

ドを使用した場合に返されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

703

終了コード

System.exit(),Runtime.halt(),また

は Runtime.exit()の引数に指定した値

1※4

17

発生条件

System.exit(),Runtime.halt(),また

は Runtime.exit()の引数に指定した値が

負数(Windows 限定。UNIX は下 8

ビットが RC として採用される) cjexecjob コマンドの起動に失敗

意味

System.exit(),Runtime.halt(),また

は Runtime.exit()を使用した場合に返さ

れます。 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 コマンドの実行結果として参照

できません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

704

• 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

${ 環境変数名 }はそれぞれファイル名を示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

705

8.3.11 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:応答待ち状態の応答要求メッセージ

8. 運用時に使用するコマンド

JP1/Advanced Shell

706

• 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

8.3.12 adshmdctl コマンド(ユーザー応答機能管理デーモンを起動および

停止する)【UNIX 限定】

形式 adshmdctl [-h 論理ホスト名]

{start [reuse]|stop|status|conftest [環境ファイル名]|help}

8. 運用時に使用するコマンド

JP1/Advanced Shell

707

機能

ユーザー応答機能管理デーモンを起動または停止します。ユーザー応答機能管理デーモンは,ユーザー応

答機能のための共有メモリを管理します。

ユーザー応答機能の応答要求メッセージの情報は共有メモリに格納され,通常はユーザー応答機能管理デー

モン停止時に解放されます。ユーザー応答機能管理デーモンが障害によって共有メモリを解放しないまま

終了した場合は,このコマンドを次の手順で実行して共有メモリを解放してください。

1. このコマンドに start reuse オプションを指定して実行する

2. このコマンドに stop オプションを指定して実行し,ユーザー応答機能管理デーモンを停止する

引数

-h 論理ホスト名 〜<論理ホスト名>((1〜255 バイト))

論理ホスト環境で運用している場合に,このコマンドを実行させる論理ホスト名を指定します。

論理ホスト名の長さは 63 バイト以下を推奨します。63 バイトを超える名称を指定すると,動作しな

いことがあります。

論理ホスト名の指定を省略すると,その次に指定されたオプションが引数として扱われます。 start [reuse]

ユーザー応答機能管理デーモンを起動します。 reuse を指定すると,ユーザー応答機能の応答要求メッセージの情報をそのまま使用します。

ユーザー応答機能の応答要求メッセージの情報は共有メモリに格納され,通常はユーザー応答機能管理

デーモンの停止時に解放されます。ユーザー応答機能管理デーモンが何らかの障害で共有メモリを解放

しないで終了した場合,reuse オプションを指定して起動したあと,adshmdctl コマンドに stop オプ

ションを指定して終了することで,共有メモリを解放します。 stop

ユーザー応答機能管理デーモンを停止します。

未応答の応答要求メッセージがある場合,応答はキャンセルされます。 status

ユーザー応答機能管理デーモンの動作状態を次の終了コードで返します。

• ユーザー応答機能管理デーモンが動作している場合:0

• ユーザー応答機能管理デーモンが動作していない場合:1 conftest [環境ファイル名 ]

指定した環境ファイルのパラメーターをチェックします。結果は標準出力に出力します。

環境ファイル名の指定を省略すると,システム環境ファイルが参照されます。 help adshmdctl コマンドのヘルプを表示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

708

終了コード

終了コード

0

0 以外

意味

正常終了

エラー終了

注意事項

• ユーザー応答機能管理デーモンは,root で起動してください。

• ユーザー応答機能管理デーモンの動作中は,システム環境ファイルを変更しないでください。

• adshmdctl コマンドは,環境変数 LANG に C を指定してユーザー応答機能管理デーモンを起動しま

す。そのため,そのあと出力されるメッセージや JP1 イベントは英語で出力されます。

8.3.13 adshmsvcd コマンド(開発環境でユーザー応答機能管理サービスを

登録する)【Windows 限定】

形式 adshmsvcd [-install [-lhostname 論理ホスト名]]

機能

ユーザー応答機能管理サービス(adshmsvcd)を登録します。ユーザー応答機能管理サービスは,ユー

ザー応答機能のための共有メモリを管理します。このコマンドは,Windows の開発環境だけで実行でき

ます。

引数

-install

ユーザー応答機能管理サービスを登録します。

ユーザー応答機能管理サービスは,JP1/Advanced Shell のセットアップ時に自動的に登録されます。

ただし,登録したレジストリ情報を消去してしまった場合は,このオプションを使って手動で再登録す

る必要があります。

-lhostname 論理ホスト名 〜<論理ホスト名>((1〜196 バイト))

論理ホスト環境で運用している場合に,このコマンドを実行する論理ホスト名を指定します。

論理ホスト名の長さは 63 バイト以下を推奨します。63 バイトを超える名称を指定すると,動作しな

いことがあります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

709

終了コード

終了コード

0

0 以外

意味

正常終了

エラー終了

注意事項

• オプションを指定しなかったり,指定できるオプション以外を指定して実行したりした場合でも,コマ

ンドはエラーにならないで終了します。この場合,レジストリ情報は更新されません。

8.3.14 adshmsvce コマンド(実行環境でユーザー応答機能管理サービスを

登録する)【Windows 限定】

形式 adshmsvce [-install [-lhostname 論理ホスト名]]

機能

ユーザー応答機能管理サービス(adshmsvce)を登録します。ユーザー応答機能管理サービスは,ユー

ザー応答機能のための共有メモリを管理します。このコマンドは,Windows の実行環境だけで実行でき

ます。

引数

-install

ユーザー応答機能管理サービスを登録します。

ユーザー応答機能管理サービスは,JP1/Advanced Shell をセットアップしたときに自動的に登録され

ます。ただし,登録したレジストリ情報を消去してしまった場合は,このオプションを使って手動で再

登録する必要があります。

-lhostname 論理ホスト名 〜<論理ホスト名>((1〜196 バイト))

論理ホスト環境で運用している場合に,このコマンドを実行する論理ホスト名を指定します。

論理ホスト名の長さは 63 バイト以下を推奨します。63 バイトを超える名称を指定すると,動作しな

いことがあります。

終了コード

終了コード

0

意味

正常終了

8. 運用時に使用するコマンド

JP1/Advanced Shell

710

終了コード

0 以外

意味

エラー終了

注意事項

• オプションを指定しなかったり,指定できるオプション以外を指定して実行したりした場合でも,コマ

ンドはエラーにならないで終了します。この場合,レジストリ情報は更新されません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

711

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 回以下の繰り返し

基本の正規表現

×

×

×

×

×

拡張された正規表現

×

×

×

×

×

8. 運用時に使用するコマンド

JP1/Advanced Shell

712

メタキャラクタ 意味

\

{n

\

} n 回

{n}

\

{n,

\

}

{n,} n 回 n 回以上 n 回以上

基本の正規表現

×

×

拡張された正規表現

×

×

(凡例)

○:使用できます。

×:使用できません。

コマンドの使用例について

• 各 UNIX 互換コマンドの使用例は,一部を除いて Windows で実行した場合の例を示しています。

• コマンドがインストールされているディレクトリへのパスが,環境変数 ADSH_OSCMD_DIR に格

納されていると仮定しています。

8.4.1 awk コマンド(テキストの加工やパターン処理をする)

形式 awk[-F 入力フィールドセパレータ][-v 変数名=変数値]...

[-f スクリプトファイルのパス名|スクリプト]

[[対象パス名...]|[組み込み変数名=変数値...]]...

機能

テキストファイル内の各行(以降,レコードと呼びます)に対して特定のパターンに一致する行を検索し,

一致した行に対して指定した処理をします。

引数

-F 入力フィールドセパレータ

入力フィールドセパレータの値を指定します。この指定値が awk コマンドの組み込み変数 FS の値と

なります。

-v 変数名=変数値

変数名とその値を指定します。変数名とその値は,-f オプションに指定したスクリプトファイルまたは

引数に指定したスクリプトに渡されます。複数個指定できます。同じ変数名を複数回指定した場合,最

後に指定した値が設定されます。

-f スクリプトファイルのパス名

入力ファイルを検索するパターンおよびパターンと一致したレコードに対しての処理命令を記述した

ファイル(スクリプトファイル)のパス名を指定します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

713

• パス名に「-」を指定した場合は,標準入力から入力します。

• -f オプションは 19 個まで指定できます。

スクリプト

入力ファイルを検索するパターンおよびパターンと一致したレコードに対しての処理命令を,引数とし

て指定します。

対象パス名

処理対象とするファイルのパス名を指定します。複数指定できます。

パス名を指定しない,またはパス名に「-」を指定した場合は,標準入力から入力します。なお,BEGIN

パターンだけの実行の場合は,指定したファイルまたは標準入力からレコードは入力しません。

組み込み変数名=変数値

組み込み変数名およびその値を指定します。変数名とその値は,-f オプションに指定したスクリプト

ファイルまたは引数に指定したスクリプトに渡されます。

• 組み込み変数の説明に記述されていない名称を指定した場合は,-v オプションと同じになります。

• すべての対象パス名の前に指定した場合は,BEGIN パターン処理を除くすべてのファイル処理と

END パターン処理で有効となります。

• すべての対象パス名のあとに指定した場合は,END パターン処理だけで有効となります。

• 対象パス名の間に指定した場合は,この指定以降のパス名の処理と END パターン処理で有効とな

ります。

スクリプト(パターンおよびアクション) awk コマンドで実行するスクリプトの記述形式を次に示します。

[パターン][{[アクション]}]

パターンには,入力ファイルを検索するパターンを記述します。パターンに記述できる内容については,

「パターンの種類」を参照してください。アクションには,パターンと一致したレコードに対しての処理命

令を記述します。

入力ファイルから 1 レコードを入力するたびにパターンと比較し,パターンに一致した場合にアクション

が実行されます。パターンを省略した場合は,すべてのレコードがアクション実行の対象となります。

アクションは,パターンと一致したレコードに対する制御文や関数を使用した処理を記述します。アクショ

ンには,制御文,組み込み関数,ユーザー定義関数,変数,または演算子を指定して動作を記述できます。

処理は複数の文を記述でき,各文は改行またはセミコロンで区切ります。アクションを省略した場合,レ

コードの内容を標準出力に出力します。なお,{ }で囲んだ部分のアクションだけを省略した場合は,パター

ンと一致したレコードに対する処理は行われません。

コメントを記述する場合は,コメントの前に「#」を記述します。「#」以降から行末までをコメントとし

て扱います。

8. 運用時に使用するコマンド

JP1/Advanced Shell

714

レコードとフィールド

レコードとは,入力レコードセパレータで分割した単位のことです。入力レコードセパレータの値は改行

文字です。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"{

(アクション)

}

パターンの組み合わせ

複数のパターンを組み合わせてアクション実行条件を記述します。使用できる組み合わせを次の表に示

します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

715

書式

パターン1

&&

パターン2

パターン1 || パターン2

パターン1

?

パターン2

:

パターン3

!

パターン

(

パターン

)

パターン1

,

パターン2

説明

論理積の演算子で,パターン 1 およびパターン 2 に一致するレコードをアクショ

ンの実行対象とします。

論理和の演算子で,パターン 1 またはパターン 2 に一致するレコードをアクショ

ンの実行対象とします。

三項演算子で,パターン 1 とパターン 2 に一致するレコードまたはパターン 3

に一致するレコードをアクションの実行対象とします。

否定の演算子で,パターンに一致しないレコードをアクションの実行対象とし

ます。

複数条件のパターンをグループ化します。

パターン 1 に一致するレコードから,パターン 2 に一致するレコードまでがア

クションの実行範囲となります。なお,パターン 2 に指定したレコードがなく

入力ファイルの終端に達した場合は,入力ファイルの最終レコードまでが範囲

となります。ただし,複数の入力ファイルを指定した場合,次の入力ファイル

でパターン 2 に一致するレコードを検索します。この書式は 50 個まで指定で

きます。

BEGIN

ファイル入力の開始前に実行するアクションに対するパターンです。アクションの記述を省略できませ

ん。また,ほかのパターンと組み合わせることはできません。なお,複数の入力ファイルを指定してい

る場合は,最初のファイル入力開始前にアクションが実行されます。

END

ファイルの最後のレコードに対するアクション実行後,または exit 制御文で終了した場合に実行する

アクションに対するパターンです。アクションの記述を省略できません。また,ほかのパターンと組み

合わせることはできません。なお,複数の入力ファイルを指定している場合は,最後のファイルの最後

のレコードに対するアクション実行後となります。

制御文

使用できる制御文を次の表に示します。if 文,while 文,for 文,do 文,break 文,continue 文,return

文の構文規則は C 言語と同じです。ただし,for 文の初期化式と再初期化式は 1 つの式だけ指定できます。

制御文 if 文 while 文 for 文

構文 if (

条件式

)

処理

[else

処理

] if (

変数

in

配列

)

処理

[else

処理

] while (

条件式

)

処理 for (

初期化式

;

継続条件式

;

再初期化式

)

処理 for (

変数

in

配列

)

処理

内容

条件分岐します。

変数に指定した添え字の配列要素が配列に存在す

るかどうかを判定します。

条件が成立している間,繰り返します。

繰り返し実行します。

各配列要素の添え字の値を順次取り出しながら処

理します。添え字の値の取り出しは順不同です。

8. 運用時に使用するコマンド

JP1/Advanced Shell

716

制御文 do 文 break 文 continue 文 next 文

構文 do

処理

while (

継続条件式

) break continue next nextfile 文 nextfile return 文 return [ expr

] delete 文 exit 文 delete

配列 delete

配列

[

要素

] exit [ expr

]

内容

後判定によって条件が成立している間,繰り返し

ます。

繰り返し処理を抜けます。

繰り返し処理を中断して,繰り返し処理の先頭に

戻ります。

処理中の入力レコードに対して,この制御文以降

の処理を停止し,次の入力レコードの処理を開始

します。

処理中の入力ファイルに対して,この制御文以降

の処理を停止し,次の入力ファイルの処理を開始

します。

ユーザー定義関数を終了します。式 expr で指定

した値を呼び出し元に返します。式 expr を指定

しない場合は,0 がユーザー定義関数の戻り値と

なります。

配列を削除します。

配列の要素を削除します。

処理中のスクリプトの実行を停止します。

式 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 でのコ

マンドの終了コードの扱いについては「

ジョブ,

ジョブステップおよびコマンドの終了コード

」を

参照してください。

組み込み関数

使用できる組み込み関数を次に示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

717

数学関数

使用できる数学関数を次の表に示します。

関数名 atan2( y

, x

) cos( x

) exp( x

) int( x

) log( x

) rand() sin( x

) sqrt( x

) srand([ expr

])

内容 y/x の逆正接を返します。単位はラジアンです。引数が不足している場合は 1 を返し,警告メッセー

ジを出力します。 x の余弦を返します。単位はラジアンです。 x の指数関数を返します。結果がオーバーフローまたはアンダーフローする場合は 1 を返し,警告メッ

セージを出力します。 x の小数点以下を切り捨てて整数を返します。 x の自然対数を返します。x が 0 または負の場合は 1 を返し,警告メッセージを出力します。

乱数 n を返します(0≦n < 1 の範囲)。srand 関数でシード値を設定しない場合は,コマンドを実行

するたびに同じ値を返します。 x の正弦を返します。単位はラジアンです。 x の平方根を返します。x が負の場合は 1 を返し,警告メッセージを出力します。

式 expr を rand 関数用のシード値を設定して,設定したシード値を返します。expr を省略した場合

は,時刻を基にしたシード値を設定します。

文字列関数

使用できる文字列関数を次の表に示します。マルチバイト文字は 1 文字として扱います。

関数名 gsub( r

, t

[, s

]) index( s

, t

) length[([ s

])] match( s

, r

) sprintf(

書式

,

[, ... ]) split( s

, array

[, fs

])

内容

文字列 s 中のすべての正規表現 r を t に置き換えます。s を省略した場合,$0(レコード全

体が格納されているフィールド変数)を置き換え対象とします。t に&を指定した場合は,

&が一致した文字列に置き換えられます。終了コードとして,置き換えた回数を返します。

文字列 s 中の文字列 t の位置を返します。文字列 t がなかった場合は 0 を返します。

文字列 s の文字数を返します。s を指定しなかった場合は,$0(レコード全体が格納されて

いるフィールド変数)の文字数を返します。

文字列 s 中の正規表現 r が現れる位置を返します。正規表現 r がなかった場合には 0 を返し

ます。また,RSTART 組み込み変数には正規表現 r に一致した文字列の位置が設定されま

す。不一致時は 0 になります。RLENGTH 組み込み変数には正規表現 r に一致した文字列

の長さが設定されます。不一致時は-1 になります。

書式に従って,式を整形した結果の文字列を返します。書式については出力書式の説明を参

照してください。

文字列 s をフィールドセパレータ fs によってフィールド分割し,配列 array に格納します。

戻り値として配列の要素数を返します。分割した各フィールドの値は,配列 array に, array[1],array[2],…,array[戻り値]の順に格納されます。

フィールドセパレータ fs の指定を省略した場合は,フィールドセパレータとして組み込み

変数 FS の値が使用されます。

フィールドセパレータ fs には文字列および正規表現を指定できます。また,フィールドセ

パレータ fs に文字指定なしを示す「""」を指定した場合は,1 文字ずつ分割されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

718

関数名 sub( r

, t

[, s

]) substr( s

, m

[, n

]) tolower( str

) toupper( str

)

内容

文字列 s 中に最初にあった正規表現 r を t に置き換えます。s を省略した場合,$0(レコー

ド全体が格納されているフィールド変数)を置き換え対象とします。t に&を指定した場合

は,&が一致した文字列に置き換えられます。正規表現 r があった場合は終了コードとして

1 を返します。正規表現 r がなかった場合は 0 を返します。

文字列 s の m 番目の文字から最大 n 文字の部分文字列を返します。n を省略した場合は, m 番目以降のすべての文字列を返します。

文字列 str 中のすべての英大文字を英小文字に変換した文字列を返します。

文字列 str 中のすべての英小文字を英大文字に変換した文字列を返します。

ビット操作関数

使用できる操作関数を次の表に示します。x および y は符号付きの 4 バイトの数値として扱います。

関数名 compl( x

) and( x

, y

) or( x

, y

) xor( x

, y

) lshift( x

, n

) rshift( x

, n

)

内容

整数 x の 1 の補数を返します。

整数 x と整数 y のビットごとの論理積を返します。

整数 x と整数 y のビットごとの論理和を返します。

整数 x と整数 y のビットごとの排他的論理和を返します。

整数 x をビット数 n 分,左にシフトした値を返します。ビットのシフトは算術シフトで行われるた

め,符号部分もシフト対象となります。

整数 x をビット数 n 分,右にシフトした値を返します。ビットのシフトは算術シフトで行われるた

め,符号部分は右にシフトした時に補てんする符号として扱われます。

入出力関数

使用できる入出力関数を次に示します。 getline [

変数名

]

現在の入力ファイルから次のレコードを入力します。変数名が指定されている場合は変数名で指定

した変数にレコードを入力し,組み込み変数の NR および FNR が設定されます。変数名の指定を

省略した場合は,フィールド変数$0 にレコードを入力し,組み込み変数の NF,NR および FNR

が設定されます。レコードの入力に成功すると 1 を返し,ファイルの終端に到達すると 0 を返し,

エラーが発生すると-1 を返します。 getline [

変数名

] <

パス名

パス名に指定したファイルから次のレコードを入力します。パス名は"(ダブルクォーテーション)

で囲んで指定します。パス名の代わりにパス名を代入した変数の名称も指定できます。パス名に「-」

を指定した場合は標準入力から入力します。

指定例を次に示します。 getline line < "file001.txt"

変数名が指定されている場合は変数名で指定した変数にレコードを入力します。変数名の指定を省

略した場合は,フィールド変数$0 にレコードを入力し,組み込み変数の NF が設定されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

719

指定したファイルは,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 の値が出力されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

720

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

関数でコマンド名実行時に作成されたパイプをクローズします。

8. 運用時に使用するコマンド

JP1/Advanced Shell

721

クローズに成功した場合は 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 }

8. 運用時に使用するコマンド

JP1/Advanced Shell

722

関数名 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 関数の出力結果は両方とも「日立」になります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

723

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

ARGV

CONVFMT

ENVIRON

FILENAME

FNR

内容

コマンドライン引数の個数です。オプション値およびスクリプト指定値は含みません。スクリプトお

よび-v オプションで変更できます。-v オプションで ARGC に 0 を設定した場合,引数に対象パス名

が指定されていない状態になります。

コマンドライン引数の配列です。スクリプトで変更できます。引数に指定した対象パス名が格納され

ている要素に NULL を設定すると,入力ファイルからレコードの入力が行われません。-v オプショ

ンで指定した値は上書きされます。

数値を変換するときに使用する変換書式です。デフォルトは%.6g です。数値に小数部分がある場合に

有効となります。

実行時の環境変数の配列です。添え字は環境変数名です。環境変数名は"(ダブルクォーテーション)

で囲んで指定します。環境変数名の代わりに環境変数名を代入した変数の名称も指定できます。

現在の入力ファイル名です。標準入力からの入力の場合はファイル名に「-」が設定されます。

現在の入力ファイルの入力レコード数です。対象パス名で指定したファイルから 1 レコードを入力す

るたびに更新されます。また,「getline [変数名]」でレコードを入力するときにも更新されます。

複数の対象パス名を指定した場合,次の入力ファイルから入力を開始するときに 0 で初期化されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

724

変数名

FS

NF

NR

OFMT

OFS

ORS

RLENGTH

RS

RSTART

SUBSEP

内容

フィールドセパレータです。デフォルトは 1 バイトのスペースです。正規表現を使用できます。フィー

ルドセパレータを変更する場合,指定する文字列の長さは 99 バイト以下にしてください。また,

フィールドセパレータ値が 1 バイトのスペースの場合は,1 バイトのスペースとタブ(

\ t)によってフィー

ルド分割されます。フィールドセパレータに値を設定しない場合は,1 文字ずつフィールド分割され

ます。

複数の文字を指定する場合は,正規表現となるため,

\

はエスケープ文字として扱われます。-F オプ

ションと同時に使用した場合は,この変数の値が優先されます。

現在の入力レコードのフィールド数です。対象パス名で指定したファイルからレコードを入力すると

格納されます。また,getline 関数でフィールド変数$0 にレコードを入力したときにも格納されます。

$NF と記述すると,現在の入力レコードの最終フィールドの値を参照できます。

現在までに読み込んだ入力レコード数です。対象パス名で指定したファイルから 1 レコードを入力す

るたびに更新されます。また,「getline [変数名]」で次のレコードを入力するときにも更新されます。

複数の対象パス名を指定した場合は,レコードの入力が終了したファイルのレコード数も含まれます。

数値の出力書式です。デフォルトは%.6g です。数値に小数部分がある場合に有効となります。

出力フィールドセパレータです。デフォルトは 1 バイトのスペースです。

出力レコードセパレータです。デフォルトは改行文字(

\ n)です。Windows の場合,改行文字(

\ n)

は[CR]+[LF]で出力されます。 match 関数で一致した文字列の長さです。一致しなかった場合は-1 が設定されます。

入力レコードセパレータです。デフォルトは改行文字です。値を変更する場合,1 バイトの文字だけ

設定できます。文字列やマルチバイト文字を指定した場合は,先頭 1 バイトを使用します。改行文字

\ n)を設定した場合,Windows は,入力ファイル中の[CR]+[LF]または[LF]が対象となり

ます。UNIX は,入力ファイル中の[LF]が対象となります。改行文字以外の値を設定した場合,

Windows は,入力レコードに含まれる改行文字は[LF]です。UNIX は,入力ファイル中の改行文

字が[CR]+[LF]の場合は[CR]も含まれます。 match 関数で一致した文字列の開始位置です。一致しなかった場合は 0 が設定されます。

多次元配列のセパレータです。デフォルトは 0x1C です。

注※

指定できる変換指定子は,f,e,g,E,G だけです。それ以外の変換指定子を指定しないでくださ

い。

演算子

使用できる演算子を優先順位の低い順に次の表に示します。式の中で同じ優先順位の演算子は,式の左側

に記述された演算子の優先順位が高くなります。

演算子

=,+=,-=,

*

=,/=,%=,^=,

**

=

?:

||

説明

代入演算子です。

三項演算子です。

論理 OR です。

8. 運用時に使用するコマンド

JP1/Advanced Shell

725

演算子

&&

~,!~

<,<=,>,>=,!=,==

スペース

+,-

*

,/,%

+,-,!

^,

**

++,--

E

G x

X i o s d

文字 c e g f u

出力書式 printf 関数および sprintf 関数で,変換指定を示す%と共に指定する変換指定子を次の表に示します。

説明

1 バイト文字です。

文字列です。

符号付き 10 進整数です。

%

符号なし 8 進整数です。

符号なし 16 進整数です。10〜15 の値には「abcdef」を使用します。

符号なし 16 進整数です。10〜15 の値には「ABCDEF」を使用します。

符号なし 10 進整数です。

浮動小数点数です。[-]dddd.dddd 形式に変換します。

浮動小数点数です。[-]d.dddde[+-]dd[d]形式に変換します。

変換指定子 e または f で出力される符号付きの値のうち,指定された値および精度を表現できる短い方

の書式です。末尾の 0 は出力されません。

浮動小数点数です。[-]d.ddddE[+-]dd[d]形式に変換します。

変換指定子 E または f で出力される符号付きの値のうち,指定された値および精度を表現できる短い方

の書式です。末尾の 0 は出力されません。

%の文字です。

エスケープ文字

次の個所にはエスケープ文字を使用できます。

説明

論理 AND です。

正規表現の一致(~)と不一致(!~)です。

関係演算子です。

文字列連結です。

加算および減算です。

乗算,除算および剰余です。

単項および論理否定です。

累乗です。

インクリメントおよびデクリメントです。

8. 運用時に使用するコマンド

JP1/Advanced Shell

726

• -F オプションの入力フィールドセパレータ

• -v オプションの変数値

• 引数で指定する組み込み変数の変数値

• パターンおよび変数への代入などで指定する"(ダブルクォーテーション)で囲まれた文字列

使用できるエスケープ文字を次の表に示します。

\ t

\ v

\ n

\ r

エスケープ文字

\ a

\ b

\ f

\ d,

\ dd,

\ ddd

\ xhex

\ c

\\

意味

アラート文字(ベル)

バックスペース文字

フォームフィード文字(改ページ)

改行文字

復帰文字

タブ文字

垂直タブ文字

1〜3 桁の 8 進数で表された文字

※1

。0 を意味する数値は指定できません。

16 進値で表された文字(0〜9,a〜f,A〜F)

※1※2

。0 を意味する数値は指定できません。

任意のリテラル文字(「

\

"」の場合「"」)

1 つのバックスラッシュ文字

注※1

スラッシュ(/)で囲んだパターンおよび正規表現に指定する場合,実行時の文字コード種別によって

は指定できない値があります。

文字コード種別ごとに指定できる値を次の表に 16 進数値で示します。なお,次の値以外を指定した場

合はエラー終了します。

文字コード種別

シフト JIS

UTF-8

EUC

C

指定できる値(16 進数値)

0x01-0x80,0xA0-0xDF,0xFD-0xFF

0x01-0xBF,0xFE-0xFF

0x01-0x8D,0x90-0xA0,0xFF

0x01-0xFF

注※2

ダブルクォーテーション(")で囲んだ文字列に

\ xhex を指定する場合,「

\ x」から 16 進表記外の文字

が出てくる前までの文字を 16 進表記文字とします。16 進表記文字が 98 文字を超える場合は 98 文字

までとなります。ただし,16 進表記文字が 2 文字を超える場合は,16 進表記文字から 16 進値の変換

結果は保証されません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

727

なお,-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

意味

標準入力

標準出力

標準エラー出力

8. 運用時に使用するコマンド

JP1/Advanced Shell

728

終了コード

終了コード

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 関数でパイプによって接続するコマンドの引数に

ワイルドカードを含むファイル名やディレクトリ名を指定しても,ワイルドカードは展開されません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

729

• 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

8. 運用時に使用するコマンド

JP1/Advanced Shell

730

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

731

• コマンドの引数に入力ファイル 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

の内容

8. 運用時に使用するコマンド

JP1/Advanced Shell

732

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)

}

}

8. 運用時に使用するコマンド

JP1/Advanced Shell

733

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

日立製作所 横浜支店 日立グループ

日立製作所 東京支店 日立グループ

8. 運用時に使用するコマンド

JP1/Advanced Shell

734

未変換レコード : 田中 沖縄支店 田中グループ

日立製作所 福岡支店 日立グループ

• レコード中の特定の文字列を 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)

}

コマンドの実行結果を次に示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

735

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 = 製作

8. 運用時に使用するコマンド

JP1/Advanced Shell

736

• 引数指定のファイル以外からレコードを入力します。スクリプトファイルは prog12.awk です。入力

ファイルは file10.txt

です。 prog12.awk の内容

BEGIN{

while ((getline rec < "file10.txt"

print rec

) > 0) {

}

}

注※

指定したファイル 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

の内容

8. 運用時に使用するコマンド

JP1/Advanced Shell

737

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)

}

8. 運用時に使用するコマンド

JP1/Advanced Shell

738

}

{

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

注※

ユーザー定義関数呼び出し時の引数の個数が,関数の定義で記述した引数の個数よりも多いため,

警告メッセージが出力されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

739

• 制御文の記述で構文エラーがある場合のメッセージを表示します。スクリプトファイルは,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 の内容

8. 運用時に使用するコマンド

JP1/Advanced Shell

740

#-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 ...]] ...

8.4.2 basename コマンド(パスからファイル名を取得する)

形式 basename 文字列[サフィックス]

8. 運用時に使用するコマンド

JP1/Advanced Shell

741

機能

ファイルパス名規則に従った文字列からファイル名部分の文字列を取り出し,標準出力に出力します。

サフィックス(任意の文字による文字列)を指定すると,取り出した文字列の終端からサフィックスに一

致する部分を削除します。

ファイル名部分の文字列の取り出し規則は次のとおりです。

• 指定された文字列の,ディレクトリ区切り文字で区切られた各要素から,最も右側にある要素を取り出

します。

• UNIX の場合,/をディレクトリ区切り文字と見なします。Windows の場合,/と

\

をディレクトリ区

切り文字と見なします。

• Windows の場合,ドライブレターに続く:(コロン)も各要素の区切り文字として扱います。

• ディレクトリ区切り文字が連続している場合,1 つのディレクトリ区切り文字として扱います。

• 指定された文字列の終端がディレクトリ区切り文字の場合は,終端のディレクトリ区切り文字を取り除

いたあとのファイル名部分の文字列を取り出します。

• 文字列にディレクトリ区切り文字がない場合,指定された文字列をそのまま取り出します。

• 文字列にディレクトリ区切り文字だけを指定した場合,ディレクトリ区切り文字を取り出します。

引数

文字列

ファイル名部分を取り出す文字列を指定します。

サフィックス

取り出したファイル名部分の終端から削除するサフィックスを指定します。指定したサフィックスが次

の場合,取り出したファイル名部分の文字列をそのまま出力します。

• ファイル名部分の文字列の終端に一致しない。

• 取り出したファイル名部分の文字列と同じサフィックスを指定している。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• このコマンドには指定できるオプションがありません。そのため,引数にオプションを指定した場合,

そのオプションを,ファイル名部分を取り出す文字列またはサフィックスとして解釈します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

742

使用例

• パス名からファイル名部分の文字列を取り出す例を次に示します。

例 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

8. 運用時に使用するコマンド

JP1/Advanced Shell

743

8.4.3 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 の場合,ファイルおよび標準入力,標準出力をバイナリモードで入出力します。改行コード

は変換しません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

744

• 標準出力をファイルに出力する場合,パス名に指定したファイルと同じファイルを指定すると,次の

メッセージを出力してエラーになります。 cat: ファイル名: input file is output file

使用例

この使用例では,次の内容が記述された「abc.txt」「abcdex.txt」を基に,cat コマンドの実行結果を説

明します。「△」はスペース,「→」はタブを表します。

• abc.txt

aaaaaaaaaaa bbbbbbbb

△△△△△△△ cccccccccccccccc

→ → →

△△△△△△△△△△△ dddddddddddd

• abcdex.txt

aaaaaaaaaaa

△△△△△△

△△△△△△

△△△△△△

△△△△△△

△△△△△△ bbbbbbbb cccccccccccc dddddddddddd eeeeeeeeeeeeeeeee

→ →

→ →

8. 運用時に使用するコマンド

JP1/Advanced Shell

745

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

の例を次に示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

746

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

8.4.4 cmp コマンド(バイナリファイルの内容を比較する)

形式 cmp[-l|-s]パス名1 パス名2[比較開始位置1[比較開始位置2]]

機能

バイナリファイルを比較します。異なるバイト位置を表示できます。

引数

-l オプションおよび-s オプションを指定しない場合は,最初に検出した異なる場所を表示します。-l オプ

ションおよび-s オプションを同時に指定した場合はエラーになります。

-l

違いのあるバイトのオフセット(10 進数)とその値(8 進数)を表示します。

-s

異なるかどうかを示す終了状態を返します。

パス名 1

比較元のパス名を指定します。パス名 1 に「-」を指定すると,標準入力から比較する内容を入力でき

ます。

パス名 2

比較先のパス名を指定します。パス名 2 に「-」を指定すると,標準入力から比較する内容を入力でき

ます。

比較開始位置 1

パス名 1 の比較を開始する位置(バイト)を指定します。

比較開始位置 2

パス名 2 の比較を開始する位置(バイト)を指定します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

747

終了コード

終了コード

0

1

2 以上

意味

正常終了。ファイルは同一です。

正常終了。ファイルは異なっています。または,どちらかのファイルで先にファイルの終端(EOF)

に到達しました。ファイルの終端に達した場合,メッセージ(cmp: EOF on ファイル名)を出力し

ます。

エラー終了

注意事項

• 改行コードが[CR]+[LF]の場合,2 バイトと見なします。

• Windows の場合,ファイルおよび標準入力をバイナリモードで入力します。改行コードは変換しませ

ん。

使用例

この使用例では,次の内容が記述された「abc.txt」「abcd.txt」を基に,cmp コマンドの実行結果を説明

します。「△」はスペース,「→」はタブを示します。

• abc.txt

aaaaaaaaaaa bbbbbbbb

△△△△△△△ cccccccccccccccc

→ → →

△△△△△△△△△△△ dddddddddddd

• abcd.txt

aaaaaaaaaaa bbbbbbbb

△△△△△△△ cccccccccccccccc

△△△△△△△△△△△△△△△△

△△△△△△△△△△△△△△△△△△

△△△△△△△△△△△△△△△

△△△△△△△△△△△△△△△△△△△△△△△△△△△ dddddddddddd eeeeeeeeeeeeeeeee

→ →

→ →

8. 運用時に使用するコマンド

JP1/Advanced Shell

748

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

749

8.4.5 

cp

コマンド(ファイルまたはディレクトリをコピーする)

形式 cp[-f|-i][-p][-u][-R|-r[-H|-L|-P]] cp[-f|-i][-p][-u][-R|-r[-H|-L|-P]]

コピー元ファイル名 コピー先ファイル名

コピー元

...

コピー先ディレクトリ名

機能

ファイルまたはディレクトリをコピーします。

引数

-f

--force

コピー先のファイルを上書きする場合に警告を出しません。

-f

-i

オプションは最後に指定されたオ

プションが有効になります。

-i

--interactive

コピー先のファイルを上書きする場合に警告を出し,応答を要求します。標準入力からの応答が y

また

Y

の文字で始まっていればコピーします。それ以外の文字を応答したり,標準入力が使用できなかっ

たりした場合は,処理を中断し,終了コード

0

を返して終了します。

-f

-i

オプションは最後に指定されたオプションが有効になります。

-p

--preserve

コピー元のファイルの属性を保存します。

Windows の場合,コピー元のファイルの最終修正日時および最終アクセス日時を保持します。ディレ

クトリの情報は保持しません。

UNIX の場合,コピー元のファイルの所有者,グループ,アクセス権,最終修正日時および最終アクセ

ス日時を保持します。

-u

--update

ディレクトリ以外のファイルのコピーで,コピー先ファイルがすでに存在し,最終修正日時がコピー元

と同じ,またはより新しい場合,コピーをしません。

シンボリックリンクのコピーでは,コピー先がシンボリックリンクの場合はコピー先のシンボリックリ

ンク自身の最終修正日時で判断し,コピー先がファイルの場合はコピー先のファイルの最終修正日時で

判断します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

750

ファイルの最終修正日時は,秒未満の値は切り捨てて判定します。

-R|-r

--recursive

ディレクトリを再帰的にコピーします。

Windows の場合,このオプションを指定して,コピー元に末尾がディレクトリ区切り文字のディレク

トリへのシンボリックリンクを指定しても末尾のディレクトリ区切り文字が無視されます。シンボリッ

クリンクのリンク先のディレクトリをコピーしたい場合は,

-H

,または

-L

オプションと同時に指定し

てください。

-H

-R

オプションまたは

-r

オプションと共に指定すると,コマンドライン上で指定したシンボリックリン

クをたどります。

ツリー内をたどっている最中に見つけたシンボリックリンクのリンク先はたどりません。

このオプションはコピー元に対して適用されます。

-R

オプションまたは

-r

オプションを指定しない場合は無視されます。また,

-H

オプション,

-L

オプ

ションおよび

-P

オプションは最後に指定されたオプションが有効になります。

-L

--dereference

-R

オプションまたは

-r

オプションと共に指定すると,遭遇したすべてのシンボリックリンクをたどり

ます。

このオプションはコピー元に対して適用されます。

-R

オプションまたは

-r

オプションを指定しない場合は無視されます。また,

-H

オプション,

-L

オプ

ションおよび

-P

オプションは最後に指定されたオプションが有効になります。

-P

--no-dereference

-R

オプションまたは

-r

オプションと共に指定すると,すべてのシンボリックリンクをたどりません。

このオプションはコピー元に対して適用されます。

-R

オプションまたは

-r

オプションを指定しない場合は無視されます。また,

-H

オプション,

-L

オプ

ションおよび

-P

オプションは最後に指定されたオプションが有効になります。

コピー元ファイル名

コピーするファイル名を指定します。

コピー先ファイル名

コピー先のファイル名を指定します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

751

コピー元

コピーするファイルまたはディレクトリを指定します。

コピー先ディレクトリ名

コピー先のディレクトリを指定します。

終了コード

終了コード

0

1

以上

意味

正常終了

エラー終了

注意事項

• Windows の場合,コピー先のファイル名は,コピー元に指定したファイル名で作成されます。

Windows では,ファイル名の英大文字を英小文字と扱ってコピーします。例えば,コピー対象のファ

イル名が

A.txt

の場合, cp a.txt tmpdir

と実行すると, tmpdir

の中のファイル名は a.txt

になります。

• Windows の場合,ファイルをバイナリモードで入出力します。改行コードは変換しません。

• Windows の場合,

-f

オプションを指定してコピー先のファイルを上書きしようとすると,実行する

Windows 環境の状態によって「

Permission denied

」を出力してエラー終了することがあります。

• UNIX の場合,一般ユーザーが cp

コマンドの

-p

オプションでコピー元のファイルの属性を保存すると

き,コピー元ファイルの所有者と cp

コマンドの実行者が異なると,コピー元のファイルの所有者,グ

ループ,およびアクセス権情報(setuid ビット,setgid ビット,スティッキービット)は保存しません。

-u

オプション指定によってコピー先が新しい(同じ場合を含む)場合,コピーしないときはエラーで

はなく,正常終了します。

使用例

-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 [-fipu] [-Rr [-H | -L | -P]] source target

cp [-fipu] [-Rr [-H | -L | -P]] source ... directory

8. 運用時に使用するコマンド

JP1/Advanced Shell

752

• ファイルがない場合のエラーメッセージを表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\cp file99 file123 cp: file99: No such file or directory

8.4.6 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 から始まるフィールド位置を指定します。複数回指定でき,指定した部分およびデリミタをすべて

つなげて出力します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

753

選択されたフィールドは区切り文字で区切って表示します。区切り文字が存在しない行は,行全体を出

力します。ただし,-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 オプションと共に指定した場合,フィールド間を指定した文字列でつなげて出

力します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

754

終了コード

終了コード

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 番目のフィールドを表示し,区切り文字を@:/の文字列に置き換えます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

755

$ 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 ...]

8.4.7 date コマンド(システムの日付と時刻を表示する)

形式 date[-u][-d 日時情報指定文字列 | -r 経過秒][+書式]

機能

システムの日付と時刻を表示します。

引数

-u

--utc

--universal

UTC(世界協定時)の日付を表示します。

-d 日時情報指定文字列

--date=日時情報指定文字列

表示する日時を日時情報指定文字列で指定します。複数指定した場合は最後の指定が有効になります。

指定できる日時情報指定文字列については,「-d オプションで指定できる日時情報指定文字列」を参照

してください。

-r 経過秒

エポック(UTC の 1970 年 1 月 1 日 00:00:00)から,

経過秒

に指定した時間が経過した日時を表示

します。経過秒に指定できる値は,-1009875600〜2147440447 です。範囲外の値を指定した場合,

出力する内容は保証できません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

756

+書式

日付と時刻の表示形式を書式指定コードで指定します。書式指定コードは OS の API である strftime

関数の書式指定コードが指定できます。指定できる書式指定コードについては,「指定できる書式指定

コード」を参照してください。

この引数を指定していない場合は,日付と時刻の表示形式は「%Y/%m/%d %A %H:%M:%S %Z」に

なります。

指定できる書式指定コード

「+」で始まる引数には,OS の API である strftime 関数の書式指定コードが指定できます。この OS の

API である strftime 関数で指定できる書式指定コードは,OS によって異なります。各 OS で指定できる

書式指定コードについては,各 OS の strftime 関数についてのドキュメントを参照してください。

各 OS の strftime 関数と JP1/Advanced Shell 固有で共通して使用できる代表的な書式指定コードを次の

表に示します。

%p

%S

%s

%I

%j

%m

%M

%B

%c

%d

%H

書式指定コード

%a

%A

%b

%U

%w

%W

意味

曜日の省略名

曜日の正式名

月の省略名

月の正式名

ロケールに対応する日付・時刻の表示

10 進数で表す月の日付(01〜31)

24 時間表記で表す時間(00〜23)

12 時間表記で表す時間(01〜12)

10 進数で表す年の初めからの日数(001〜366)

10 進数で表す月(01〜12)

10 進数で表す分(00〜59)

現在のロケールの午前/午後

10 進数で表す秒。表示される値の範囲は,うるう秒への対応の違いから,OS によって異なる

エポック(UTC の 1970 年 1 月 1 日 00:00:00)からの経過秒数。

環境変数 ADSH_CMDDATE_FORMAT で指定がない場合,Linux,AIX,HP-UX で使用できる

(strftime 関数で処理する)。

環境変数 ADSH_CMDDATE_FORMAT で指定した場合,すべての OS で使用できる(JP1/

Advanced Shell 固有の変換をする)。

10 進数で表す週の通し番号(00〜53)。その年の最初の日曜日を週の最初の日とする

10 進数で表す曜日(0〜6,日曜日が 0)

10 進数で表す週の通し番号(00〜53)。その年の最初の月曜日を週の最初の日とする

8. 運用時に使用するコマンド

JP1/Advanced Shell

757

%Y

%Z

%%

書式指定コード

%x

%X

%y

意味

現在のロケールの日付の表示

現在のロケールの時刻の表示

10 進数で表す西暦の下 2 桁(00〜99)

10 進数で表す 4 桁の西暦

タイムゾーン名。タイムゾーンが不明な場合は表示しない

%(パーセント)記号

-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)

10 進数で表す西

暦の下 2 桁

(YY)

1970 から 2038 まで指定できます。

00 から 99 まで指定できます。

69 から 99 までは 1900 年代と仮定され,00 から 68 までは 2000 年代と仮定されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

758

種別

午前・午後

タイムゾーン

指定できる要素

詳細

月の名称

(MONTH)

10 進数で表す月

(MM)

10 進数で表す月

の日付(DD)

24 時間表記で表

す時間(hh)

12 時間表記で表

す時間(hh)

10 進数で表す分

(mm)

10 進数で表す秒

(ss)

午前・午後(am

|

a.m.

|

pm

| p.m.)

タイムゾーン名

(ST)

次の値が指定できます。

• 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 月

01 から 12 まで指定できます。

01 から 31 まで指定できます。

00 から 23 まで指定できます。

01 から 12 まで指定できます。

00 から 59 まで指定できます。

00 から 59 まで指定できます。

次の値を時間の後ろに指定できます。

• am,a.m.:午前

• pm,p.m.:午後

次の値が指定できます。

• 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 時間)

8. 運用時に使用するコマンド

JP1/Advanced Shell

759

種別

タイムゾーン

タイムゾーン

(夏時間)

指定できる要素

詳細

タイムゾーン名

(ST)

ミリタリータイ

ムゾーン(ST)

• CET:中央ヨーロッパ時間(UTC + 1 時間)

• MET:中央ヨーロッパ時間(UTC + 1 時間)

• CAT:中央アフリカ時間(UTC + 2 時間)

• EET:東ヨーロッパ時間(UTC + 2 時間)

• JST:日本標準時(UTC + 9 時間)

• GST:グアム標準時(UTC + 10 時間)

• NZST:ニュージーランド標準時(UTC + 12 時間)

次の値が指定できます。

• 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 で指定できます。mm

および:mm は省略することができます。

UTC からの時

間指定

(+hhmm

|

hhmm

|

+hh:mm

|

hh:mm)

タイムゾーン

(夏時間)(DT)

次の値が指定できます。

• BST:英国夏時間(GMT + 1 時間)

8. 運用時に使用するコマンド

JP1/Advanced Shell

760

種別 指定できる要素

詳細

タイムゾーン

(夏時間)

デイライトセー

ビングタイム

タイムゾーン

(夏時間)(DT)

デイライトセー

ビングタイム

(DST)

• ADT:大西洋夏時間(AST + 1 時間)

• EDT:東部夏時間(EST + 1 時間)

• CDT:中部夏時間(CST + 1 時間)

• MDT:山岳部夏時間(MST + 1 時間)

• PDT:太平洋夏時間(PST + 1 時間)

• MEST:中央ヨーロッパ夏時間(MET + 1 時間)

• NZDT:ニュージーランド夏時間(NZST + 1 時間)

デイライトセービングタイムとして DST を指定できます。タイムゾーンと同時に指定

することで,指定したタイムゾーンの標準時刻を,指定された日時やタイムゾーンに関

係なく,常に 1 時間進めます。タイムゾーンの指定なしで DST を指定することはでき

ません。

注※

括弧内の YY や MONTH などの記号は,次の表の構文と対応しています。

絶対日時での日時情報指定文字列の構文を次の表に示します。

表 8-8 日時情報指定文字列(絶対日時の指定)の構文

種別

構文 詳細

日付の指定 [YY]YYMMDD

[YYYY/]MM/DD

MM/DD[/[YY]YY]

[YY]YY-MM-DD

DD MONTH [[YY]YY]

MONTH DD [,[YY]YY]

DD[-]MONTH[[-][YY]YY]

MONTH-DD-[YY]YY

スペースなしで,年・月・日の順番で定義します。年の最初の 2 桁

は省略できます。

「/」区切りで,年・月・日の順番で定義します。年を省略した場合,

現在の年が仮定されます。

「/」区切りで,月・日・年の順番で定義します。年を省略した場合,

現在の年が仮定されます。年の最初の 2 桁は省略できます。

「-」区切りで,年・月・日の順番で定義します。年の最初の 2 桁は

省略できます。

スペース区切りで,日・月の正式名(または月の省略名)・年の順番

で定義します。年を省略した場合,現在の年が仮定されます。年の

最初の 2 桁は省略できます。

月の正式名(または月の省略名)・日・年の順番で指定します。月の

正式名(または月の省略名)と日をスペース区切りで,日と年を「,」

区切りで定義できます。年を省略した場合,現在の年が仮定されま

す。年の最初の 2 桁は省略できます。

「-」区切り,またはスペースなしで,日・月の正式名(または月の省

略名)・年の順番で定義します。年を省略した場合,現在の年が仮定

されます。年の最初の 2 桁は省略できます。

「-」区切りで,月の正式名(または月の省略名)・日・年の順番で定

義します。年の最初の 2 桁は省略できます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

761

種別

日付の指定

時間の指定

タイムゾーン

構文

MONTH DD [[YY]YY] hh[mm] hh [am p.m.]

|

a.m.

| hh:mm[:ss] [am

pm

|

|

p.m.]

a.m.

|

pm

|

詳細

スペース区切りで,月の正式名(または月の省略名)・日・年の順番

で定義します。年を省略した場合,現在の年が仮定されます。年の

最初の 2 桁は省略できます。

スペースなしで,時・分の順番で定義します。

分の定義は省略できます。

時だけの定義のとき,スペース区切りで am(a.m.),pm(p.m.)を定

義できます。 am(a.m.),pm(p.m.)を定義する場合,時の定義は 12 時間表記にし

てください。

「:」区切りで,時・分・秒の順番で定義します。

秒の定義は省略できます。

時・分・秒の定義の後ろに,スペース区切りで 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]]

DT

タイムゾーンを指定します。タイムゾーンの後ろにスペース区切り

で,DST,+hhmm,-hhmm,+hh:mm または-hh:mm を定義でき

ます。

タイムゾーン(夏時間)を定義します。タイムゾーン(夏時間)と

共に,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 が仮定されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

762

指定できる要素

日の移動(DATE)

時・分の移動(DATE)

秒の移動(DATE)

詳細

次の値を指定します。

• fortnight,fortnights:2 週間(14 日)の移動

• week,weeks:1 週間(7 日)の移動

• day,days:日の移動

• tomorrow:明日(1 日後)

• yesterday:昨日(1 日前)

• today:今日(0 日)

• now:現在(0 日)

値の前に数値(NUM)を指定できます。数値(NUM)を省略した場合は 1 が仮定されます。

次の値を指定します。

• hour,hours:時間の移動

• minute,min,minutes:分の移動

値の前に数値(NUM)を指定できます。数値(NUM)を省略した場合は 1 が仮定されます。

次の値を指定します。

• 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

8. 運用時に使用するコマンド

JP1/Advanced Shell

763

指定できる要素

数値指定(数字)(NUM)

符号(+

|

-)

詳細

数値指定(文字列)(NUM) • twelfth:12

値の前に数値(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 の範囲を超えた場合,最終結果に関係なくエラーになることがあります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

764

1. 現在の日時,または「絶対日時の指定」で指定された日時を求めます。

2. 1.に対して,「相対日時の指定」で指定された「曜日の移動」の結果を加算します。「絶対日時の指定」

で「日付の指定」の指定がされた場合は,「曜日の移動」の指定があっても加算しません。

3. 2.に対して,「相対日時の指定」で指定された「年・月の移動」のすべての結果を加算・減算します。

4. 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 秒になります。

JP1/Advanced Shell 固有の共通書式指定コード

環境変数 ADSH_CMDDATE_FORMAT で指定した書式指定コードは,strftime 関数を使用しないで,

JP1/Advanced Shell が独自に編集します。これによって,OS 間の strftime 関数の仕様差に影響されな

いで,共通の出力結果を得ることができます。

指定できる書式コードとその動作を次に示します。

環境変数 ADSH_CMDDATE_FORMAT

JP1/Advanced Shell 固有に,変換処理は環境変数 ADSH_CMDDATE_FORMAT で指定があったと

きだけ実行します。

環境変数名

ADSH_CMDDATE_FORMA

T

指定値 s

環境変数 ADSH_CMDDATE_FORMAT に s を指定した場合,エポック(UTC の 1970 年 1 月 1 日

00:00:00)からの経過秒数を出力します。s を指定した場合は以降に示す共通書式処理の範囲の動作と

なります。

書式の形式

%[フラグ][フィールド幅]

8. 運用時に使用するコマンド

JP1/Advanced Shell

765

・フラグ〜[ _ | - | 0 | ^ | # ]

_(アンダーバー)

数値の結果文字列のパディング(穴埋め)をスペース(空白文字)でします。

-(ハイフン)

数値の結果文字列をフィールドに左詰めに設定します。

フィールドの空きはスペース(空白文字)でパディングをします。

0

数値の結果文字列へのパディングを 0 でします。

^

結果文字列中のアルファベット文字を大文字に変換します。

ただし,書式指定コード s では意味がないので無視します。

#

結果文字列の大文字・小文字を入れ替えます。

書式指定コード s では意味がないので無視します。

・ フィールド幅

数値を出力するフィールドの幅を十進数で指定します。

パディングの指定がないときはスペース(空白文字)でパディングします。

書式の形式が正しくない場合は,この書式指定(当該書式の%から s まで)を文字として出力します。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

•「+」で始まる引数に指定した書式コードが,strftime 関数で有効な書式コード以外の場合は,指定さ

れた値をそのまま出力します。ただし,環境変数 ADSH_CMDDATE_FORMAT で指定した書式指定

コードは除きます。環境変数 ADSH_CMDDATE_FORMAT で指定した書式指定コードの指定形式が

不当な場合は,指定された値をそのまま出力します。

• Windows の場合,有効な書式コードと無効な書式コードを混在して指定すると,すべての書式コード

を変換しないで,指定された値をそのまま出力します。

• UNIX の場合,有効な書式コードは変換出力し,無効な書式コードは指定された値を出力します。

• Windows の場合,環境変数 TZ を設定するときは,環境変数 TZ の値とコントロールパネルの「日付

と時刻のプロパティ」ダイアログボックスで定義されているタイムゾーンを同じにしてください。同じ

でない場合,日時の表示が正しく行われない場合があります。

• 指定できる引数でない引数をコマンドラインに指定しても,その引数の指定は無視されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

766

• 次の環境変数が設定されている場合は,「+」で始まる引数の後ろに指定したオプションは無視されます。

• 環境変数 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 でエポック(UTC の 1970 年 1 月 1 日 00:00:00)からの経過秒数を表示します。

C:\TEMP>set ADSH_CMDDATE_FORMAT=s

C:\TEMP>%ADSH_OSCMD_DIR%\date +%s

1435197101

• オプションエラーのメッセージを表示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

767

このメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。Windows

の例を次に示します。

C:\TEMP>%ADSH_OSCMD_DIR%\date -a date: illegal option -- a usage: date [-u] [-d string | -r seconds] [+format]

8.4.8 

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

768

--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

8. 運用時に使用するコマンド

JP1/Advanced Shell

769

--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

8. 運用時に使用するコマンド

JP1/Advanced Shell

770

--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 個のアスタリスク(

*

)を表示し,差異を表示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

771

形式

ユニファイド

形式

サイドバイサ

イド形式

意味

-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.

説明

1.

file1 と file2 の差異がある位置を表します。 file1 と file2 の間の記号の a は追加,d は削除,c は変

更を意味します。記号の前には file1 の行番号が,記号の後には file2 の行番号が表示されます。複

数行に渡って差異がある場合は,差異開始行と差異終了行をコンマ(,)で区切って表示します。

2.

file1 の差異を表します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

772

3.

file1 と file2 の差異の境目を表します。

4.

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.

説明

1.

file1 のファイル情報として,ファイル名とファイルの最終修正日時を表示します。

2.

file2 のファイル情報として,ファイル名とファイルの最終修正日時を表示します。

3.

file1 と file2 の差異の固まりの境を 15 個のアスタリスク(

*

)で表示します。 file1 と file2 の差異

がある行が 3 行以上離れているときは,別の固まりとして再度この境を表示したあと,次の差異の

情報を出力します。

4.

file1 の差異の開始位置と終了位置をコンマ(,)で区切って表示します。

5.

file1 の差異を表示します。プラス(+)は追加,マイナス(-)は削除,!は変更を意味します。

6.

file2 の差異の開始位置と終了位置をコンマ(,)で区切って表示します。

7.

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.

8. 運用時に使用するコマンド

JP1/Advanced Shell

773

eeeeeeeee ←4.

+ffffffffffffffffff ←4.

説明

1.

file1 のファイル情報として,ファイル名とファイルの最終修正日時を示します。

2.

file2 のファイル情報として,ファイル名とファイルの最終修正日時を示します。

3.

file1 と file2 の差異の開始位置と終了位置をコンマ(,)で区切って示します。先頭にマイナス(-)

が付いている方が file1 ,先頭にプラス(+)が付いている方が file2 の差異の開始位置と終了位置を

示します。

4.

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.

説明

1.

file1 と file2 のそれぞれの行を 1 行にまとめて横並びに出力します。

>

」は file1 から file2 で追加された行を示します。

<

」は file1 から file2 で削除された行を示します。

|

」は file1 から file2 で変更された行を示します。

\

」は file1 の行に改行がないことを示します。

記号がない行は差異がない行です。

終了コード

終了コード

0

1

2 以上

意味

ファイルは同一です。

ファイルは異なっています。

エラー終了

8. 運用時に使用するコマンド

JP1/Advanced Shell

774

注意事項

• -c オプション,-C オプション,-q オプション,-u オプション,-U および-y オプションは最後に指定

したオプションが有効となります。

• ファイルの先頭から 8,192 バイト以内で表示できる 1 バイト文字,スペース,タブ,バックスペース

およびマルチバイト文字以外のデータが含まれている場合は,バイナリファイルと見なされます。

• ロケールと異なる文字コードのファイルはバイナリファイルと見なされます。

• Windows の場合,ファイルおよび標準入力,標準出力をバイナリモードで入出力します。改行コード

は変換しません。

• パス名に「-」を指定した場合,端末から標準入力に入力している途中,および比較処理を実行してい

る最中に diff コマンドの実行を中断すると,次の名前の一時ファイルが残ることがあります。この場合

は,手動で一時ファイルを削除してください。

【Windows の場合】 diff.

XXXXXX

XXXXXX

は任意の 6 文字の文字列)

【UNIX の場合】 diff ppppp

.

XXXXXXXX

( ppppp

は 5 桁以上のプロセス ID,

XXXXXXXX

は任意の 8 文字の文字列)

使用例 diff コマンドを実行した結果表示に使用する入力ファイルの形式を次に示します。「△」はスペース,「→」

はタブを表します。

• abc.txt

aaaaaaaaaaa bbbbbbbb

△△△△△△△ cccccccccccccccc

→ → →

△△△△△△△△△△△ dddddddddddd

△△△eeeeeeeeeeee

• abcd.txt

aaAAAAAaaaa bbBBBbbb

△△△△△△△ cccccccccccccccc

△△△△△△△△△△△△△△△△

△△△△△△△△△△△△△△△△△△

△△△△△△△△△△△△△△△

8. 運用時に使用するコマンド

JP1/Advanced Shell

775

△△△△△△△△△△△△△△△△△△△△△△△△△△△ 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

8. 運用時に使用するコマンド

JP1/Advanced Shell

776

• -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 オプションを指定し,行の追加,削除および変更を+,-,!の記号で表示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

777

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

778

--- 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

8. 運用時に使用するコマンド

JP1/Advanced Shell

779

• -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

8. 運用時に使用するコマンド

JP1/Advanced Shell

780

8.4.9 dirname コマンド(パス名からディレクトリパス名部分の文字列を取

り出す)

形式 dirname[文字列]

機能

ファイルパス名規則に従った文字列から,ファイル名部分を取り除いた残りのディレクトリパス名を取り

出し,標準出力に出力します。

ディレクトリパス名の取り出し規則は次のとおりです。

• 指定された文字列のディレクトリ区切り文字で区切られた各要素のうち最も右側にある要素と,その要

素の前にあるディレクトリ区切り文字を取り除いた,すべての要素を取り出します。なお,取り出した

ディレクトリパス名の途中に連続する区切り文字が存在しても,そのまま取り出します。

UNIX の場合は「

/」

がディレクトリ区切り文字と見なされ,Windows の場合は「

/」

と「

\」

がディ

レクトリ区切り文字と見なされます。

• 指定された文字列の終端がディレクトリ区切り文字の場合は,終端のディレクトリ区切り文字を取り除

いた上で最も右側にある要素を取り除いた,すべての文字列が取り出されます。

• 文字列にディレクトリ区切り文字がない場合や,文字列を指定していない場合は,カレントを意味する

「.」(ピリオド)を出力します。

• 文字列にディレクトリ区切り文字だけを指定した場合は,ディレクトリ区切り文字を取り出します。

• Windows の場合,文字列の先頭 1 文字が英字で,次に「

:

」(コロン)が続いた場合,英字はドライブ

レターとして扱います。ドライブレターに続く「

:

」(コロン)も,各要素の区切り文字として扱います。

• Windows の場合,ルートディレクトリのディレクトリパスは,上記の規則に関係なく,次のように取

り出されます。

パス名の開始文字列の形式

ドライブレター

:\

ドライブレター

:

\\

サーバ名 (UNC 名指定)

\\?

(サービス機能の不活性化指定)

\\.

(10 番以降のデバイス名指定) dirname コマンドの取り出し結果

ドライブレター

:\

ドライブレター

:

\\

\\

\\ dirname コマンドの指定値と取り出し結果の例を次に示します。 dirname コマンドの指定値

C:\

取り出し結果

C:\

8. 運用時に使用するコマンド

JP1/Advanced Shell

781

\\?\

\\?

\\.\

\\.

dirname コマンドの指定値

C:

\\server01\

\\server01

\\

C:file001.txt

C:\file001.txt

\\

C:

C:\

\\

\\

\\

\\

\\

\\

取り出し結果

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

782

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]

8. 運用時に使用するコマンド

JP1/Advanced Shell

783

8.4.10 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 オプションは,最後

に指定したオプションが有効となります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

784

-n

-q

標準出力には何も出力しません。終了コードだけを返します。

-R

|

-r

検索ディレクトリを再帰的に検索します。

なお,-L オプション,-l オプション,および-q オプションを指定しない場合は,各出力行の先頭にファ

イル名が付けられます。

Windows の場合,このオプションを指定して,パス名に末尾がディレクトリ区切り文字のディレクト

リへのシンボリックリンクを指定しても末尾のディレクトリ区切り文字が無視されます。

-s

読めないファイルや存在しないファイルは無視します。エラーメッセージを抑止します。

-U

各出力行にファイルの相対的な行番号を出力します。-c オプション,-L オプション,-l オプション,

および-q オプションを指定した場合は無視されます。

バイナリファイルを検索します。ただし,出力はしません。

-v

パターンに一致しなかった行を出力します。

-w

指定文字列が単語として含まれている行を出力します。

単語とは英数字およびアンダースコア(_)から構成される文字列のことです。また,単語の前後はス

ペースなどの単語構成文字列以外の文字や,行頭または行末で区切られている必要があります。

-x

指定した文字列とファイルのすべての行を 1 行ごとに比較して完全に一致した場合に,一致した回数だ

け指定した文字列を出力します。

-A 数値

数値で指定した行だけ,パターンにマッチした行のあとの行も出力します。

-B 数値

数値で指定した行だけ,パターンにマッチした行の前の行も出力します。

-C[数値]

数値で指定した行だけ,パターンにマッチした行の前後の行も表示します。数値を省略した場合,前後

2 行を表示します。この場合,「-A 2 -B 2」と指定したときと同じになります。

-C オプションに数値を指定する場合は,-C オプションと数値の間にスペースを入れないでください。

パターン|-e パターン

検索するパターンを指定します。-e オプションは複数指定できます。

-e オプションには,'-'で始まるパターンを指定できます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

785

-f パターンファイルパス名

検索するパターンを 1 行ごとにパターンファイルのパス名に指定します。パターンの指定がない場合は

マッチしません。

[パス名 ...]

検索対象のパス名を指定します。複数指定ができます。パス名を指定しない場合は,検索対象の内容を

標準入力から入力できます。ディレクトリ名の指定は,-R オプションまたは-r オプションを指定した

場合に有効です。

なお,-L オプション,-l オプション,および-q オプションを指定しない場合は,各出力行の先頭にファ

イル名が付けられます。

終了コード

終了コード

0

1

2 以上

意味

正常終了。

• パターンを含む行が存在します。

• -v が指定されている場合は,パターンを含まない行が存在します。

正常終了。

• パターンを含む行が存在しません。

• -v が指定されている場合は,パターンを含まない行が存在しません。

エラー終了

注意事項

• ファイルの先頭から 8,192 バイト内に表示できる 1 バイト文字,スペース,タブ,バックスペースお

よびマルチバイト文字以外のデータが含まれている場合は,バイナリファイルと見なされます。

• Windows のコマンドプロンプトから実行する場合,パターンをクォーテーションで囲むときは"(ダ

ブルクォーテーション)を使用してください。

• ロケールと異なる文字コードのファイルはバイナリファイルと見なされます。

• Windows の場合,ファイルおよび標準入力,標準出力をバイナリモードで入出力します。改行コード

は変換しません。

• 正規表現で使用する次のメタキャラクタを検索する場合は,直前にエスケープ文字(

\

)を指定します。

+,?,

|

,(,),{,}

使用例

拡張された正規表現による検索の使用例を示します。オプションの使用例については grep コマンドの使用

例を参照してください。

• 拡張された正規表現を示す「

|

」を使用して,文字列「AB」と「AD」のどちらかを含む行を検索しま

す。入力ファイルは file01.txt

です。 file01.txt

の内容

8. 運用時に使用するコマンド

JP1/Advanced Shell

786

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

8.4.11 expand コマンド(タブ文字をスペースに置き換える)

形式 expand[-タブリスト][-t タブリスト][パス名 ...]

機能

タブストップでそろえられている行をタブ文字からスペースに置き換えて標準出力に出力します。タブ文

字の後ろにバックスペース文字が続いた場合,タブのカラム幅を減らして出力されます。

入力ファイル内の行は,改行文字で区切られたレコードを 1 つの行と見なします。Windows では[CR]

+[LF]または[LF]が改行文字と見なされ,UNIX では[LF]が改行文字と見なされます。なお,UNIX

の場合,入力ファイルの各レコードが[CR]+[LF]で区切られていると,変換後の出力行には[CR]

が含まれます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

787

引数

-タブリスト

「-t タブリスト 」と動作は同じです。

また,「タブリスト 」と「-t タブリスト 」は同時に指定でき,その場合は複数指定となります。

-t タブリスト

--tabs=タブリスト

タブストップの位置を 1 以上の整数で指定します。このオプションを指定しない場合,タブストップの

デフォルト値である 8 が適用され,タブストップの位置を 1 つ指定した場合と同じになります。

タブリストにタブストップの位置を 1 つ指定する場合と,複数指定する場合の動作は次のとおりです。

タブストップの位置を 1 つ指定した場合

タブストップごとの文字間隔として使用します。

これによって,1 つのタブストップに含まれるタブ文字をスペースへ置き換える際は,指定した文

字間隔となるようスペースの数を調整されます。

タブストップの位置を複数指定した場合

タブストップのカラム位置として使用します。カラム位置は 0 から始まります。

タブストップの位置を複数指定する方法を次に示します。

・タブリストに,コンマまたはスペースで区切ってタブストップの位置を複数指定する

スペースで区切る場合は,"(ダブルクォーテーション)で囲む必要があります。

これによって,タブストップに含まれるタブ文字をスペースへ置き換える際は,指定したカラム位

置となるようスペースの数を調整されます。タブリストで指定された数以降のタブストップの設定

が必要な場合は,スペース 1 つに置き換えられます。

・タブリストにタブストップの位置を 1 つ指定し,オプションを複数指定する

・上記の 2 つの指定方法を組み合わせて指定する

タブストップは,入力行ごとに最初の指定値から設定されます。タブストップの位置は引数全体で

昇順となるよう指定してください。

パス名

タブ文字をスペースに置き換えるファイルのパス名を指定します。パス名を指定しないか「-」を指定

した場合は,標準入力から入力します。

複数のファイルを指定し,ファイルのどれかでオープンに失敗した場合は, エラーメッセージを出力

して継続します。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

8. 運用時に使用するコマンド

JP1/Advanced Shell

788

終了コード

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

789

コマンド実行例 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 」の内容

次のファイル内容の「→」はタブ文字を示しています。

8. 運用時に使用するコマンド

JP1/Advanced Shell

790

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 ...]

8. 運用時に使用するコマンド

JP1/Advanced Shell

791

8.4.12 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)を出力します。

・+:加算

8. 運用時に使用するコマンド

JP1/Advanced Shell

792

・-:減算 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 演算子には式を指定できます。式を指定する場合は,式全体を()(丸括弧)で囲む必

要があります。

終了コード

1

2

終了コード

0

意味

正常終了。式は空文字列および 0 ではありません。

正常終了。式は空文字列または 0 です。

エラー終了。式は無効です。

8. 運用時に使用するコマンド

JP1/Advanced Shell

793

終了コード

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 になります。

0

$

$ a='abcde12345kl'

$ b='abcdefg'

$ expr $a : '.*[0-9].*'

12

$ expr $b : '.*[0-9].*'

8. 運用時に使用するコマンド

JP1/Advanced Shell

794

• 文字列「テスト文字列」の長さをバイト数で返します。

$ 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

8.4.13 

find

コマンド(ディレクトリ内のファイルを検索する)

形式 find[-d][-H][-h][-L] パス名[...][検索式]

機能

検索を開始するパスをパス名に指定し,ディレクトリ階層をたどって,ファイルを検索します。検索の条

件および検索したファイルの扱いを,検索式に指定できます。

引数

オプション,検索を開始するパス名および検索式を指定します。検索を開始するパス名は, find コマンド

の引数のパス名で指定します。

オプションはハイフン(-)と共に 1 文字のオプション名を指定します。

-d

ディレクトリ内のファイルを階層の深いディレクトリから先に検索します。

-H

引数として指定したパス名がシンボリックリンクだった場合,リンク先が指定されたものとして処理し

ます。リンク先が存在しない場合は,シンボリックリンクが指定されたとして処理します。検索中に遭

8. 運用時に使用するコマンド

JP1/Advanced Shell

795

遇したシンボリックリンクはリンク先を参照しません。-H オプション,-h オプションおよび-L オプ

ションは,最後に指定したオプションが有効となります。

-h

シンボリックリンクは,すべてリンク先を参照して処理を継続します。リンク先が存在しない場合は,

シンボリックリンクが指定されたとして処理します。-H オプション,-h オプションおよび-L オプショ

ンは,最後に指定したオプションが有効となります。

-L

シンボリックリンクは,すべてリンク先を参照して処理を継続します。リンク先が存在しない場合は,

シンボリックリンクが指定されたとして処理します。-H オプション,-h オプションおよび-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 日未満は切り上げます。

時間差は符号を指定しないか,+または-の符号を付けた数値を指定することで,次のように扱われ

ます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

796

・符号を指定しない場合:指定した時間差

・+を前置した場合:指定値より大きい

・-を前置した場合:指定値より小さい

時間差の範囲は 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 日未満は切り上げます。

時間差は符号を指定しないか,+または-の符号を付けた数値を指定することで,次のように扱われ

ます。

・符号を指定しない場合:指定した時間差

・+を前置した場合:指定値より大きい

・-を前置した場合:指定値より小さい

8. 運用時に使用するコマンド

JP1/Advanced Shell

797

時間差の範囲は 2147483647( 0x7fffffff )までで,それ以上を指定しても 2147483647 となります。

時間差に数値以外を指定した場合,エラーメッセージ( find:

プライマリ

:

指定した文字列

: illegal numeric value)を出力します。

時間差を指定しなかった場合,エラーメッセージ( find:

プライマリ

: requires additional arguments)を出力します。

Windows の場合,指定するとエラーとなります。

-depth

階層の深いディレクトリから検索します。ディレクトリ内のファイルを先に処理します。常に真です。

-empty

ファイルやディレクトリが空の場合は真です。

-exec コマンドライン ;

検索したファイルおよびディレクトリに対して処理をするコマンドラインを指定します。

・ find コマンドを実行するシェルによっては,

*

,;(セミコロン)などの文字が展開されるため,"

(ダブルクォーテーション)または'(シングルクォーテーション)で囲むか,エスケープ文字(

\

を使用する必要があります。

・コマンドラインは;(セミコロン)で区切ります。

・コマンドラインで指定したプログラムは, find が起動されたディレクトリをカレントディレクト

リとして起動します。

・コマンドラインに{ }を指定すると,検索したファイルまたはディレクトリのパス名に置き換わり

ます。パス名は,検索を開始するパスを絶対パスで指定した場合は絶対パスに,検索を開始するパ

スを相対パスで指定した場合は相対パスになります。

・コマンドラインで指定したプログラムが終了コード 0 で終了した場合,真です。

-follow

常に真です。

シンボリックリンクは,すべてリンク先を参照して処理を継続します。リンク先が存在しない場合

は,シンボリックリンクが指定されたとして処理します。

-group グループ名

Windows の場合,常に偽となります。

UNIX の場合,ファイルの属するグループがグループ名の場合は真です。グループ名が数字で,そ

のグループ名が存在しないときは,グループ ID と解釈します。

-iname パターン

-name オプションの説明を参照してください。ただし,英大文字と英小文字を区別しません。

-inum 番号

Windows の場合,常に偽となります。

UNIX の場合,ファイルの inode 番号が指定した番号のときは真です。

・番号は符号を指定しないか,+または-の符号を付けた数値を指定します。符号を指定しない場合

は指定値を,+を前置した場合は指定値より大きい,-を前置した場合は指定値より小さいとして扱

8. 運用時に使用するコマンド

JP1/Advanced Shell

798

-links リンク数

ファイルのリンク数が指定したリンク数のときは真です。

・リンク数は符号を指定しないか,+または-の符号を付けた数値を指定します。符号を指定しない

場合は指定値を,+を前置した場合は指定値より大きい,-を前置した場合は指定値より小さいとし

て扱います。リンク数の範囲は 2147483647( 0x7fffffff )までで,それ以上を指定しても

2147483647 となります。

・リンク数に数値以外を指定した場合,エラーメッセージ( find:

プライマリ

:

指定した文字列

: illegal numeric value)を出力します。

・リンク数を指定しなかった場合,エラーメッセージ( find:

プライマリ

: requires additional arguments)を出力します。

-ls

います。番号の範囲は 2147483647( 0x7fffffff )までで,それ以上を指定しても 2147483647 と

なります。

・番号に数値以外を指定した場合,エラーメッセージ( find:

プライマリ

:

指定した文字列

: illegal numeric value)を出力します。

・番号を指定しなかった場合,エラーメッセージ( find:

プライマリ

: requires additional arguments)を出力します。

常に真です。

Windows の場合は,ファイルパーミッション,ハードリンク数,所有者名,サイズ(バイト単位),

最終修正日時,およびパス名を標準出力に出力します。ファイルがシンボリックリンクの場合は,

リンク先のパス名が「->」のあとに表示されます。

UNIX の場合,inode 番号,サイズ(512 バイト単位),ファイルパーミッション,ハードリンク

数,所有者名,グループ,サイズ(バイト単位),最終修正日時およびパス名を標準出力に出力しま

す。ファイルがスペシャルファイルの場合は,サイズ(バイト単位)の代わりにメジャー番号およ

びマイナー番号を表示します。ファイルがシンボリックリンクの場合は,リンク先のパス名が「-

>」のあとに表示されます。

-maxdepth 深さ

現在検索しているディレクトリの深さが,指定した深さより小さいまたは同じ場合には真です。最

初に指定したディレクトリの深さは 1 です。

・深さの指定範囲は,0 から 32767 までです。0 を指定すると,検索対象ディレクトリだけ(ディ

レクトリに格納されているファイルは対象外)となります。

・指定できる値より大きい値を指定するとエラーとなります( find:

指定値

: maxdepth value too large)。

・深さに数値以外を指定した場合,エラーメッセージ( find:

指定した文字列

:

プライマリ

: value invalid)を出力します。

・深さを指定しなかった場合,エラーメッセージ( find:

プライマリ

: requires additional arguments)を出力します。

-mindepth 深さ

現在検索しているディレクトリの深さが指定した深さ以上の場合には真です。

8. 運用時に使用するコマンド

JP1/Advanced Shell

799

・深さの指定範囲は,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 パターン

検索するファイル名またはディレクトリ名をパターンで指定します。検索したファイル名またはディ

レクトリ名がパターンに一致する場合は真です。

パターンは,文字とワイルドカードの組み合わせで指定します。ワイルドカードで使用する文字を

指定するために,エスケープ文字(

\

)を使用できます。また,ワイルドカードで使用する文字以外

もエスケープ文字(

\

)を使用できます。この場合,そのまま

\

が無視されたように見えます。

ワイルドカードとして使用できる文字を次の表に示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

800

ワイルドカード

?

*

[…]

意味

任意の 1 文字に合致します。

0 文字以上の文字列に合致します。

[ ]に囲まれた文字列のどれか 1 文字に合致します。[ ]に囲まれた文字列の先頭に!または^を

付けた場合,[ ]に囲まれていない文字に合致します。-(ハイフン)で区切るとハイフンで区

切られた,間にある任意の文字(その 2 文字も含む)に合致します。

ワイルドカード[ ]の記述例を次の表に示します。

記述例

[!abc]

[0-9]

[a-z]

[A-Z]

[0-9a-zA-Z]

意味 a,b,c の 3 つを除く文字と合致します。

0 から 9 までのどれかに合致します。

英小文字に合致します。

英大文字に合致します。

英数字に合致します。

-newer パス名

現在のファイルおよびディレクトリが,パス名の最終修正日時より新しい場合は真です。

-nogroup

Windows の場合,常に偽となります。

UNIX の場合,現在のファイルが,存在しないグループに属している場合に真です。

-nouser

Windows の場合,常に偽となります。

UNIX の場合,現在のファイルの所有者が存在していないユーザーの場合に真です。

-ok コマンドライン ;

検索したファイルおよびディレクトリに対して処理をするコマンドラインを指定します。

・ find コマンドを実行するシェルによっては,

*

,;(セミコロン)などの文字が展開されるため,"

(ダブルクォーテーション)または'(シングルクォーテーション)で囲むか,エスケープ文字(

\

を使用する必要があります。

・コマンドラインは;(セミコロン)で区切ります。

・コマンドラインで指定したプログラムは, find が起動されたディレクトリをカレントディレクト

リとして起動します。起動する前に,ユーザーに応答を求めます。標準入力から y が入力されない

場合,コマンドラインを実行しないで,偽を返します。

・コマンドラインに{ }を指定すると,検索したファイルまたはディレクトリのパス名に置き換わり

ます。パス名は,検索を開始するパス名を絶対パスで指定した場合は絶対パスに,検索を開始する

パスを相対パスで指定した場合は相対パスになります。

・コマンドラインで指定したプログラムが終了コード 0 で終了した場合,真です。

8. 運用時に使用するコマンド

JP1/Advanced Shell

801

-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 つ目

3 つ目

モードに対する操作を指定します。1 つ目のシンボルで指定した項目に対して次の処理をします。

=:アクセス権の設定(上書き)

+:アクセス権の追加

-:アクセス権の削除

設定,追加および削除する値は,3 つ目のシンボルで指定します。

3 つ目のシンボルに続いて 2 つ目および 3 つ目のシンボルを記述できます。3 つ目のシンボルは省略でき

ます。

設定するアクセス権を指定します。複数同時に指定できます。指定できる値を次に示します。 r:読み取り w:書き込み x:実行 s:実行時にユーザーまたはグループ ID を設定する t:スティッキービット

8. 運用時に使用するコマンド

JP1/Advanced Shell

802

シンボル内の順序 指定できる値

3 つ目 u:モードに現在設定されている所有者のアクセス権 g:モードに現在設定されているグループのアクセス権 o:モードに現在設定されているその他のアクセス権

省略するとアクセス権を設定する項目を消去します。消去した値を 2 つ目のシンボルに従って設定,追加

および削除します。追加および削除だけでは値は変化しません。 s と t の指定は,1 つ目で o だけを指定した場合には無視されます。

シンボルの指定例を次の表に示します。

-perm の指

定値 u=x,g=w u=x,g=u u=x,=u u=x,u=w u=x,u+w ug=x u=rw u=r+x u=r=w

=x,u=

=

同等の数値指定

300

110

600

500

120

110

111

200

200

011

000

説明 u に対して x を設定し,g に対して w を設定しています。 u に対して x を設定し,g に対して u と同じ値を設定しています。 u に対して x を設定し,そのあと a(省略値)に u と同じ値を設定しています。 u に対して x を設定し,その後 u に対して w を設定(上書き)しています。 u に対して x を設定し,その後 u に対して w を追加しています。 u と g に対して x を設定しています。 u に対して r および w を設定しています。 u に対して r を設定し,x を追加しています。 u に対して r を設定し,さらに w を設定(上書き)しています。 a(省略値)に x を設定し,u の設定を消去しています。 a(省略値)を消去しています。

-print

検索したファイルまたはディレクトリのパス名を標準出力に出力して改行します。常に真です。

-print0

検索したファイルまたはディレクトリのパス名と NULL('

\

0')を標準出力に出力します。常に真

です。

-prune

検索中に遭遇したディレクトリはたどらないようにします。常に真です。-d オプションが指定され

ている場合は無効となります。

-size サイズ[c]

ファイルのサイズが,指定したサイズブロック(512 バイト単位に切り上げ)の場合は真です。サ

イズのあとに c を指定するとバイト単位で評価します。

サイズは符号を指定しないか,+または-の符号を付けた数値を指定することで,次のように扱われ

ます。

・符号を指定しない場合:指定した時間差

8. 運用時に使用するコマンド

JP1/Advanced Shell

803

・+を前置した場合:指定値より大きい

・-を前置した場合:指定値より小さい n

の範囲は 9223372036854775807( 0x7fffffffffffffff )までで,それ以上を指定しても

9223372036854775807 となります。

サイズに数値以外を指定した場合,エラーメッセージ( find:

プライマリ

:

指定した文字列

: illegal numeric value)を出力します。

サイズを指定しなかった場合,エラーメッセージ( find:

プライマリ

: requires additional arguments)を出力します。

-type タイプ

現在のファイルのタイプが指定したタイプと等しい場合は真です。タイプを次に示します。次のタ

イプ以外を指定した場合は,エラーメッセージ( find: -type: 指定した値: unknown type)が出力

されます。

・b:ブロック型スペシャルファイル(Windows では指定できません)

・c:キャラクタ型スペシャルファイル(Windows では指定できません)

・d:ディレクトリ

・f:通常ファイル

・l:シンボリックリンク

・p:FIFO(Windows では指定できません)

・s:ソケット(Windows では指定できません)

-user ユーザー名

Windows の場合,ファイルの所有者がユーザー名のときは真です。

UNIX の場合,ファイルの所有者がユーザー名のときは真です。ユーザー名に数値を指定し,その

所有者名が存在しないときはユーザー ID として評価します。

-xdev

常に真です。UNIX の場合,検索を開始したディレクトリのデバイス番号と異なるディレクトリは,

検索しないようにします。

• 演算子

プライマリは次の演算子と共に使用できます。優先度の高い順に示します。

(

検索式

)

括弧演算子内の検索式が条件を満たす場合,真です。

!

検索式

!演算子に続く検索式が条件を満たす場合,偽です。

検索式

-and

検索式|検索式

-a

検索式|検索式 検索式

検索式を-and 演算子もしくは-a 演算子で接続する,または検索式を 2 つ並べると論理積となりま

す。2 つの検索式が真の場合,真です。最初の検索式が偽の場合,2 つ目の検索式は評価されません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

804

検索式

-or

検索式|検索式

-o

検索式

検索式を-or 演算子または-o 演算子で接続すると論理和になります。どちらかの検索式が真の場合,

真です。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• find を実行するシェルによっては,セミコロンや括弧などにエスケープ文字(

\

)を使用するか,シン

グルクォーテーション(')またはダブルクォーテーション(")で囲む必要があります。

• 検索したファイルやディレクトリの出力順序は,OS やファイルシステムによって異なります。そのた

め,複数プラットフォームでの動作の一貫性を期待する場合は,出力結果を sort する必要があります。

• Windows の場合,-exec プライマリなどで生成したプロセスにファイルディスクリプタが引き継がれ

ないで,クローズされた状態になります。例えば,親プロセスがオープンしていたファイルディスクリ

プタに対して再度オープンしないで入出力を行おうとするとエラーになります。ただし,標準入力,標

準出力および標準エラー出力は再度オープンされた状態になります。

• Windows の場合,-exec オプションに指定したプログラム名にパスが含まれていないときは,プログ

ラムを実行する Windows API のパス検索順序で見つかったプログラムが実行されます。

• Windows の場合,パス名に末尾がディレクトリ区切り文字のディレクトリへのシンボリックリンクを

指定しても末尾のディレクトリ区切り文字が無視されます。検索を開始するパス名をシンボリックリン

クのリンク先のディレクトリにしたい場合は,-H,-L オプションまたは,-follow プライマリを指定し

てください。

使用例

•「.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

8. 運用時に使用するコマンド

JP1/Advanced Shell

805

-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]

8.4.14 getopt コマンド(コマンドラインのオプションを解析する)

形式 1 getopt 解析するオプション 解析される引数

8. 運用時に使用するコマンド

JP1/Advanced Shell

806

形式 2 getopt [オプション] [--] 解析するオプション 解析される引数

形式 3 getopt [オプション] -o 解析するショートオプション名 [オプション] [--] 解析される引数

機能

解析される引数

に指定されたコマンドラインを

解析するオプション

の指定内容で解析し,結果を標準出力

に出力します。ショートオプション,ロングオプションとも解析できます。これによって,シェルスクリ

プトでの構文解析が容易になります。

次のどちらかで指定された場合は,形式 1 で指定されていると判定されます。

• 引数の最初のパラメーターが「-」で始まっていない場合

• 環境変数 GETOPT_COMPATIBLE が設定されている場合

これ以外の場合は,-o オプションの指定があれば形式 3,指定がなければ形式 2 で指定されていると判定

されます。

引数

解析するオプション

解析するオプションの文字列を指定します。

ショートオプションを指定する場合は次の点に注意してください。

• ショートオプションの先頭が「-」の場合,オペランドは出現個所で出力されます。ショートオプ

ションの先頭が「+」の場合,オプションはオペランドの前に指定必須となります。

ただし,形式 1 では先頭にある「-」「+」は無視されます。

• ショートオプションの先頭(「-」「+」の場合はその次の文字)が「

:

」の場合,解析される引数の

オプションが,解析するオプションに指定されていなくてもエラーメッセージは出力されませんが,

終了コードはエラーとなります。解析される引数は継続して解析されます。

なお,オプション文字またはオプション名の後ろに「:」または「::」を指定すると,次の内容を定義で

きます。

オプション文字またはオプション名の後ろに「:」を指定した場合

オプション値が必須なオプションであることを示します。

この場合,解析される引数には,オプション名とオプション値を次の書式で指定します。

・ショートオプション名とオプション値を続けて指定します。

$ getopt "xy:z" -yarg

-y arg --

8. 運用時に使用するコマンド

JP1/Advanced Shell

807

・ショートオプション名とオプション値の間にスペースを入れて指定します。

$ 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 によるオプション指定順の設定

8. 運用時に使用するコマンド

JP1/Advanced Shell

808

環境変数 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 を指定した場合は囲まれません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

809

ショートオプションの場合は「-」とオプション名,ロングオプションの場合は「--」と完全なオプション

名が,1 つのオプションとして出力されます。

オプション(オプション名・オプション値)とオペランドの間には,区切りとして「--」が出力されます。

ただし,ショートオプションの先頭に「-」を指定した場合はこの限りではありません。

オプション解析でエラーが発生しても処理を継続し,後続のパラメーターのオプションを解析します。例

を次に示します。

$ getopt "xyz" -w -x getopt: invalid option -- w

-x --

終了コード

終了コード

0

1

2

3

意味

正常終了

エラー終了

解析される引数

に指定したオプションが,

解析するオプション

に定義されていません。

エラー終了

• getopt コマンドのオプションが不正です。

エラー終了

• 終了コード 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

8. 運用時に使用するコマンド

JP1/Advanced Shell

810

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

8.4.15 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 オプションは最後に指定した

オプションが有効となります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

811

-G

パターンを正規表現として扱います。デフォルト値です。-E オプションおよび-G オプションは最後に

指定したオプションが有効となります。

-h

次のどちらかの指定をする場合,各出力行の先頭にファイル名を付けないようにします。

• -R または-r オプションを指定する

• 複数の検索対象パス名を指定する

-I

バイナリファイルを無視します。

-i

大文字と小文字を区別しません。

-L

パターンを含まないファイルの名前だけを標準出力に出力します。-L オプションおよび-l オプション

は,最後に指定したオプションが有効となります。

-l

-n

-q

標準出力には何も出力しません。

-R

|

-r

検索ディレクトリを再帰的に検索します。

なお,-L オプション,-l オプション,および-q オプションを指定しない場合は,各出力行の先頭にファ

イル名が付けられます。

Windows の場合,このオプションを指定して,パス名に末尾がディレクトリ区切り文字のディレクト

リへのシンボリックリンクを指定しても末尾のディレクトリ区切り文字が無視されます。

-s

読めないファイルや存在しないファイルは無視します。エラーメッセージを抑止します。

-U

各出力行にファイルの相対的な行番号を表示します。-c オプション,-L オプション,-l オプションお

よび-q オプションを指定した場合は無視されます。

バイナリファイルを検索します。ただし,出力はしません。

-v

パターンを含むファイルの名前だけを標準出力に出力します。-L オプションおよび-l オプションは,

最後に指定したオプションが有効となります。

パターンに一致しなかった行を出力します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

812

-w

指定文字列が単語として含まれている行を出力します。

単語とは英数字およびアンダースコア(_)から構成される文字列のことです。また,単語の前後はス

ペースなどの単語構成文字列以外の文字や,行頭または行末で区切られている必要があります。

-x

指定した文字列とファイルのすべての行を 1 行ごとに比較して完全に一致した場合に,一致した回数だ

け指定した文字列を出力します。

-A 数値

数値で指定した行だけ,パターンにマッチした行のあとの行も出力します。

-B 数値

数値で指定した行だけ,パターンにマッチした行の前の行も出力します。

-C[数値]

数値で指定した行だけ,パターンにマッチした行の前後の行も出力します。数値を省略した場合,前後

2 行を表示します。この場合,「-A 2 -B 2」と指定したときと同じになります。

-C オプションに数値を指定する場合は,-C オプションと数値の間にスペースを入れないでください。

パターン|-e パターン

検索するパターンを指定します。-e オプションは複数指定できます。

-e オプションには,'-'で始まるパターンを指定できます。

-f パターンファイルパス名

検索するパターンを 1 行ごとにパターンファイルのパス名に指定します。パターンの指定がない場合は

マッチしません。

[パス名 ...]

検索対象のパス名を指定します。複数指定ができます。パス名を指定しない場合は,検索対象の内容を

標準入力から入力できます。ディレクトリ名の指定は,-R オプションまたは-r オプションを指定した

場合に有効です。

なお,-L オプション,-l オプション,および-q オプションを指定しない場合は,各出力行の先頭にファ

イル名が付けられます。

終了コード

終了コード

0

1

意味

正常終了。

• パターンを含む行が存在します。

• -v が指定されている場合は,パターンを含まない行が存在します。

正常終了。

• パターンを含む行が存在しません。

• -v が指定されている場合は,パターンを含まない行が存在しません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

813

終了コード

2 以上

意味

エラー終了

注意事項

• ファイルの先頭から 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

8. 運用時に使用するコマンド

JP1/Advanced Shell

814

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

815

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

816

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

の例を次に示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

817

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

8.4.16 

gunzip

コマンド(圧縮されたファイルを伸長する)

形式

【Windows 限定】 gunzip [-c] [-f] [-k] [-l] [-N] [-n] [-q] [-r] [-t] [-v]

[-o

出力先パス名

] [-S

サフィックス

] [

対象パス名

...]

【UNIX 限定】 gunzip [-a] [-c] [-f] [-k] [-l] [-N] [-n] [-q] [-r] [-t] [-v]

[-o

出力先パス名

] [-S

サフィックス

] [

対象パス名

...]

機能

圧縮されたファイルを伸長します。

このコマンドでは,次の操作ができます。

操作の種類

伸長

表示

検証

説明

圧縮ファイルを伸長します(以降,この操作を伸長操作と呼び

ます)。

この操作は,

-d

オプションを指定した gzip

コマンドと同じです。

-l

オプション,および

-t

オプションを指定しない場合,伸長操

作をします。

伸長操作では,伸長したファイルを作成したあとに,圧縮ファ

イルを削除します。圧縮ファイルを削除させない方法について

は,「

8.4.17  gzip

コマンド(ファイルを圧縮,または圧縮さ

れたファイルを伸長する) 機能 」を参照してください。

-l

オプションを指定することで,圧縮ファイルの情報を表示し

ます(以降,この操作を表示操作と呼びます)。この操作は,

l

オプションを指定した gzip

コマンドと同じです。

-t

オプションを指定することで,圧縮ファイルを伸長しない

で,圧縮ファイルに格納されている圧縮データの整合性を検証

します(以降,この操作を検証操作と呼びます)。

8. 運用時に使用するコマンド

JP1/Advanced Shell

818

操作の種類

検証

説明

この操作は,

-t

オプションを指定した gzip

コマンドと同じです。

各操作の内容については,「 8.4.17  gzip

コマンド(ファイルを圧縮,または圧縮されたファイルを伸長

する) 機能 」を参照してください。

環境変数

GZIP

に gunzip

コマンドのオプションを設定することで,コマンド引数に指定しなくてもオプショ

ンを使用できます。環境変数

GZIP

については,「

2.5 環境変数を設定する

」を参照してください。

引数

操作オプションの指定

実行する操作を指定します。

次のオプションを指定しないでこのコマンドを実行した場合は,圧縮ファイルを伸長します(伸長操作)。

-l

--list

圧縮ファイルの情報を表示します(表示操作)。

圧縮する前のファイルサイズや圧縮率などの情報を表示します。

-v

オプションを同時に指定すると,圧縮ファイルの詳細情報も表示します。

表示内容については,「

8.4.17  gzip

コマンド(ファイルを圧縮,または圧縮されたファイルを伸長す

る)

圧縮ファイル情報の表示 」を参照してください。

圧縮する前のファイルサイズの表示では,ファイルサイズが 4GB 以上の場合,値が正しく表示されま

せん。正しいファイルサイズを表示したい場合は,

-t

オプションを同時に指定してください。ただ

し,

-t

オプションを同時に指定した場合は,表示されるまでに時間が掛かる場合があります。

-t

--test

圧縮ファイルを伸長しないで,圧縮ファイルに格納されている圧縮データの整合性を検証します(検証

操作)。

-l

オプションと同時に指定した場合は,圧縮データの整合性検証と,圧縮ファイル情報の表示の両方

を行います。

ファイル情報の復元動作の指定

ファイル情報の復元動作を指定します。

-N

オプションおよび

-n

オプションを同時に指定した場合,最後に指定したオプションが有効になりま

す。

-N

オプション,

-n

オプションのどちらも指定しなかった場合,

-n

オプションが有効になります。

-N

オプションまたは

-n

オプションと,

-t

オプションを同時に指定した場合,指定を無視します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

819

なお,伸長操作での最終修正日時の扱いについては,「 8.4.17  gzip

コマンド(ファイルを圧縮,または

圧縮されたファイルを伸長する)

ファイルの最終アクセス日時と最終修正日時の扱い

」を参照し

てください。表示操作でのファイル名と最終修正日時の扱いについては,「

8.4.17  gzip

コマンド(ファ

イルを圧縮,または圧縮されたファイルを伸長する)

圧縮ファイル情報の表示 」を参照してくだ

さい。

-N

--name

【伸長操作の場合】

伸長するときに作成するファイル名を,圧縮ファイルに格納されているファイル名とします。また,

圧縮ファイルに格納されている最終修正日時を,作成したファイルに設定します。圧縮ファイルに

ファイル名や最終修正日時が格納されていない場合は,

-n

オプションを指定したときと同じ動作を

します。

【表示操作の場合】

表示する圧縮ファイル情報に,圧縮ファイルに格納されているファイル名と最終修正日時を表示し

ます。

-n

--no-name

【伸長操作の場合】

伸長するときに作成するファイル名を,圧縮ファイル名から圧縮ファイルの拡張子を取り除いたファ

イル名とします。また,圧縮ファイルの最終修正日時を作成したファイルに設定します。

【表示操作の場合】

表示する圧縮ファイル情報に,圧縮ファイル名から圧縮ファイルの拡張子を取り除いたファイル名

と,圧縮ファイルの最終修正日時を表示します。

入出力の指定

-c

--stdout

--to-stdout

【伸長操作の場合】

圧縮データの伸長結果を標準出力に出力します。

-l

オプションまたは

-t

オプションと同時に指定した場合は指定を無視します。

-k

8. 運用時に使用するコマンド

JP1/Advanced Shell

820

--keep

【伸長操作の場合】

伸長ファイルを作成したあと,圧縮ファイルを削除しません。

-l

オプション,

-t

オプション,または

-c

オプションと同時に指定した場合は指定を無視します。

-r

--recursive

対象パス名

に指定したパスがディレクトリの場合,ディレクトリおよびサブディレクトリ内の圧縮ファ

イルを検索します。

Windows の場合,

-r

オプションを指定して,パス名に末尾がディレクトリ区切り文字のディレクト

リへのシンボリックリンクを指定しても末尾のディレクトリ区切り文字が無視されます。

検索中に遭遇したファイルを圧縮ファイルとして扱うかどうかは,ファイル名の拡張子で決定します。

圧縮ファイルとして扱うファイル名の拡張子については,「 8.4.17  gzip

コマンド(ファイルを圧縮,

または圧縮されたファイルを伸長する)

圧縮ファイルの拡張子の扱い

」を参照してください。

ディレクトリのシンボリックリンクは,操作の種類や指定するオプションでリンク先をたどります。

ディレクトリのシンボリックリンクを指定したときの動作については,「 8.4.17  gzip

コマンド(ファ

イルを圧縮,または圧縮されたファイルを伸長する)

リンクファイルの扱い

」を参照してく

ださい。

-o

出力先パス名

--output=

出力先パス名

【伸長操作の場合】

指定したパス名で伸長するファイルを作成します。また,伸長操作では,圧縮ファイルが削除され

ます。伸長操作で

-N

オプションを同時に指定した場合,作成する伸長ファイルの最終修正日時には

圧縮ファイルに格納されている最終修正日時を使用します。ファイル名は

出力先パス名

に従います。

このオプションは,次のどれかと同時に指定するとエラー終了します。

-c

オプション,

-t

オプション,

-l

オプションまたは

-r

オプションを指定する。

• 圧縮ファイルを複数指定する。

• 圧縮ファイルを標準入力から入力する。

対象パス名

圧縮ファイルのパス名を指定します。

対象パス名

に,圧縮ファイル以外のファイルを指定したときの扱いについては,「 8.4.17  gzip

コマン

ド(ファイルを圧縮,または圧縮されたファイルを伸長する)

圧縮ファイルの拡張子の扱い 」

を参照してください。

対象パス名 は複数指定できます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

821

対象パス名

の指定がない,または

対象パス名

に「

-

」を指定した場合は,標準入力から入力します。伸

長操作では,標準入力から入力する場合は,圧縮データの伸長結果を標準出力に出力します。なお,伸

長操作では,標準入力が端末に関連づけられているとエラーとなります。

対象パス名 に指定できるファイルの種類は次のとおりです。

• 伸長操作では,通常ファイルだけを指定できます。また,リンクファイルを指定できるかどうかは,

指定するオプションによって異なります。リンクファイルを指定したときの動作については「 8.4.17  gzip

コマンド(ファイルを圧縮,または圧縮されたファイルを伸長する)

リンクファイ

ルの扱い 」を参照してください。

• 表示操作,および検証操作では,通常ファイルとリンクファイルを指定できます。

-r

オプションを指定するときはディレクトリを指定できます。ディレクトリのシンボリックリンク

を指定できるかどうかは,操作の種類や指定するオプションによって異なります。ディレクトリの

シンボリックリンクを指定したときの動作については,「

8.4.17  gzip

コマンド(ファイルを圧縮,

または圧縮されたファイルを伸長する)

リンクファイルの扱い 」を参照してください。

指定した

対象パス名

が,操作できるファイルの種類以外のときはエラーとなります。

その他の指定

-a

--ascii

【UNIX 限定】

OS が提供する gunzip

コマンドとの互換のためのオプションです。

指定しても有効になりません。ただし,標準エラー出力にメッセージ( gunzip: Option -a is ignored on this system

)が出力されます。

-f

--force

次の操作を許可します。

【伸長操作の場合】

• リンクファイルのリンク先をたどります。リンクファイルについては「 8.4.17  gzip

コマンド(ファ

イルを圧縮,または圧縮されたファイルを伸長する)

リンクファイルの扱い 」を参照して

ください。

• 作成する伸長後のファイルと同名のファイルがすでに存在する場合,応答要求を行わないで上書き

します。

• 操作するファイルのデータを標準入力から入力するとき,標準入力が端末に関連づけられていても,

入力を開始します。

-S

サフィックス

8. 運用時に使用するコマンド

JP1/Advanced Shell

822

--suffix=

サフィックス

指定する

サフィックス

(任意の文字による文字列)を圧縮ファイルの拡張子として扱います。

【伸長操作の場合】

拡張子「

.gz

」,「

.tgz

」とともに,

サフィックス

が付いたファイルを圧縮ファイルと見なします。

指定できる

サフィックス

の長さの範囲は 1〜30 バイトです。

サフィックス

にマルチバイト文字は使用

できません。

サフィックス

を指定したときの動作については,「 8.4.17  gzip

コマンド(ファイルを圧

縮,または圧縮されたファイルを伸長する)

圧縮ファイルの拡張子の扱い 」を参照してくだ

さい。

-q

--quiet

メッセージの出力を抑止します。

ただし,次のメッセージは抑止の対象外です。

• オプション解析のエラーメッセージ

• 伸長操作の場合,伸長後のファイルと同名のファイルがすでに存在したとき,上書きするかどうか

を確認するメッセージ

【表示操作の場合】

次の情報を表示しません。

• ヘッダ行

• 複数圧縮ファイルの合計情報

このオプションの後ろに

-v

オプションを指定した場合,このオプションの指定は取り消されます。

-v

--verbose

次の詳細情報を表示します。

• 伸長操作,および検証操作の場合,操作結果の詳細情報として「 8.4.17  gzip

コマンド(ファイル

を圧縮,または圧縮されたファイルを伸長する)

表 8-12 圧縮操作,伸長操作,検証操作で出

力する詳細情報

」に示す内容を標準エラー出力に出力します。

• 表示操作の場合,表示する圧縮ファイル情報に,圧縮方式などの詳細情報も表示します。表示する

内容については,「

8.4.17  gzip

コマンド(ファイルを圧縮,または圧縮されたファイルを伸長す

る)

圧縮ファイル情報の表示

」を参照してください。

-r

オプションを指定してディレクトリ内のファイルを検索するとき,圧縮ファイル以外のファイル

に対して,標準エラー出力に「 gunzip: ファイル名: Unknown suffix: ignored

」を出力します。

このオプションの後ろに

-q

オプションを指定した場合,このオプションの指定は取り消されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

823

終了コード

終了コード

0

1

2

3

意味

正常終了

エラー終了

伸長操作の場合,伸長後のファイルは作成されていません。

エラー終了

伸長操作の場合,伸長後のファイルは作成されています。後処

理でエラーが発生しました。エラーが発生した後処理の内容に

ついては,出力されるメッセージを参照してください。

なお,複数ファイルの操作で,終了コード

1

2

の両方のエラー

が発生したときは,終了コードは

1

が返ります。

エラー終了

不正なオプションを指定しました。

次のメッセージが出力される場合は,終了コード 1 になります。

•「gunzip:

ファイル名

: Unknown suffix: ignored」

注意事項 gzip

コマンドと共通の注意事項については,「 8.4.17  gzip

コマンド(ファイルを圧縮,または圧縮され

たファイルを伸長する)

gunzip

コマンド固有の注意事項を次に示します。

• このコマンドは,JP1/Advanced Shell が提供する gzip

コマンドで作成した圧縮ファイルの操作だけ

をサポートします。JP1/Advanced Shell が提供する gzip

コマンド以外で作成した gzip 形式の圧縮

ファイルをこのコマンドで操作した場合,正しく伸長,表示,または検証できないことがあります。

使用例 gunzip

コマンドでの伸長操作の使用例を示します。

-l

オプション,

-t

オプションおよびその他の伸長操

作については「

8.4.17  gzip

コマンド(ファイルを圧縮,または圧縮されたファイルを伸長する)

用例を参照してください。

• ファイルを伸長します。

C:\TEMP>%ADSH_OSCMD_DIR%gunzip file001.txt.gz

C:\TEMP>%ADSH_OSCMD_DIR%ls file001.txt

-k

オプションを使用して,圧縮ファイルを残したまま伸長します。

C:\TEMP>%ADSH_OSCMD_DIR%gunzip -k file001.txt.gz

C:\TEMP>ls file001.txt file001.txt.gz

8. 運用時に使用するコマンド

JP1/Advanced Shell

824

-c

オプションを使用して,圧縮ファイルを残したまま伸長します。また,伸長結果を file003.txt

ファ

イルに出力します。

C:\TEMP>%ADSH_OSCMD_DIR%gunzip -c backup_file003.gz >file003.txt

C:\TEMP>ls backup_file003.gz file003.txt

-N

オプションを使用して,圧縮する前のファイル名で伸長します。

C:\TEMP>%ADSH_OSCMD_DIR%gunzip -N backup_file003.gz

C:\TEMP>ls file003.txt

-S

オプションを使用して,「

.gz

」以外の拡張子の圧縮ファイルを伸長します。

C:\TEMP>%ADSH_OSCMD_DIR%gunzip -S ".gzip" file004.txt.gzip

C:\TEMP>ls file004.txt

• 圧縮したアーカイブの伸長結果を tar

コマンドに渡してアーカイブを展開します。

C:\TEMP>%ADSH_OSCMD_DIR%gunzip -c DIR002.tar.gz | %ADSH_OSCMD_DIR%tar -xvf -

DIR002

DIR002\DIR003

DIR002\DIR003\file004.txt

DIR002\DIR003\file005.txt

DIR002\file001.txt

DIR002\file002.txt

DIR002\file003.txt

8.4.17 

gzip

コマンド(ファイルを圧縮,または圧縮されたファイルを伸長

する)

形式

【Windows 限定】 gzip [-1|-2|-3|-4|-5|-6|-7|-8|-9] [-c] [-d] [-f] [-k] [-l] [-N] [-n] [-q] [-r]

[-t] [-v] [-o 出力先パス名 ] [-S サフィックス ] [ 対象パス名 ...]

【UNIX 限定】 gzip [-1|-2|-3|-4|-5|-6|-7|-8|-9] [-a] [-c] [-d] [-f] [-k] [-l] [-N] [-n] [-q] [-r]

[-t] [-v] [-o

出力先パス名

] [-S

サフィックス

] [

対象パス名

...]

機能

ファイルを圧縮,または圧縮されたファイルを伸長します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

825

このコマンドでは,次の操作ができます。

操作の種類

圧縮

伸長

表示

検証

説明

ファイルを圧縮します(以降,この操作を圧縮操作と呼びます)。

-d

オプション,

-l

オプション,および

-t

オプションを指定しない場合,

圧縮操作をします。

圧縮するときのファイル圧縮形式は gzip 形式です(以降,gzip 形式で

圧縮したファイルを圧縮ファイルと呼びます)。

ファイルのデータを DEFLATE 圧縮方式

で圧縮します(以降,圧縮し

たファイルのデータを圧縮データと呼びます)。

圧縮データは,圧縮操作で作成する圧縮ファイルに格納されます。

圧縮操作では,圧縮するファイル名に拡張子「

.gz

」を付けた名称で圧縮

ファイルを作成します。

圧縮操作では,圧縮ファイルを作成したあとに,圧縮するファイルを削

除します。

-d

オプションを指定することで,圧縮ファイルを伸長します(以降,こ

の操作を伸長操作と呼びます)。

伸長できるファイル圧縮形式は gzip 形式だけです。また,ファイル名の

終端に,拡張子「

.gz

」,または「

.tgz

」が付いたファイルを圧縮ファイ

ルと見なします。gzip 形式で圧縮されていないファイルや,拡張子

.gz

」,「

.tgz

」が付いていないファイルは,伸長できません。

伸長操作では,次のように生成した文字列をファイル名として,伸長し

たファイルを作成します。

• 圧縮ファイル名から拡張子「

.gz

」を取り除いた文字列

• 圧縮ファイル名の拡張子「

.tgz

」を「

.tar

」に変更した文字列

伸長操作では,伸長したファイルを作成したあとに,圧縮ファイルを削

除します。

-l

オプションを指定することで,圧縮ファイルの情報を表示します(以

降,この操作を表示操作と呼びます)。表示する圧縮ファイルの情報の詳

細は,

-l

オプション,

-v

オプションの説明,および「 圧縮ファイル情報

の表示 」を参照してください。

-t

オプションを指定することで,圧縮ファイルの伸長はしないで,圧縮

ファイルに格納されている圧縮データの整合性を検証します(以降,こ

の操作を検証操作と呼びます)。

注※ gzip 形式の圧縮で用いられる圧縮方式

圧縮操作,および伸長操作で,圧縮するファイルや圧縮ファイルを削除したくない場合は,次のどちらか

の方法で操作してください。

1. 圧縮結果,伸長結果を標準出力に出力する。

次の操作では,ファイルを削除しないで,圧縮したファイルデータや,伸長したファイルデータを標準

出力に出力します。必要に応じて,その出力をファイルにリダイレクトしたり,パイプで別のプログラ

ムに渡したりしてください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

826

-c

オプションを指定する。

• 標準入力から圧縮するファイルや圧縮ファイルを入力する。

2.

-k

オプションを指定する。

-k

オプションを指定して実行すると次のように動作します。

【圧縮操作の場合】

圧縮ファイルを作成したあとも,圧縮するファイルを削除しません。

【伸長操作の場合】

伸長したファイルを作成したあとも,圧縮ファイルを削除しません。

圧縮操作,または伸長操作で,作成する圧縮ファイルや伸長後のファイルと同じ名前のファイルがすでに

存在している場合は,上書きするかどうか問い合わせをします。標準入力からの応答文字が y

または

Y

で始

まっている場合,既存のファイルを削除して,圧縮ファイルや伸長後のファイルを作成します。応答文字

が y

および

Y

で始まっていない場合や,標準入力が使用できない場合は,操作対象ファイルの処理を中断し

ます。問い合わせをしないで上書きを許可したい場合は,

-f

オプションを指定してください。

圧縮操作では,ディレクトリを圧縮できません。ディレクトリの構造を保持したまま圧縮したい場合は, tar

コマンドでアーカイブを作成し,そのアーカイブを圧縮してください。また, tar

コマンドの

-z

オプ

ションを使用することで,アーカイブの作成と圧縮を同時にできます。 tar

コマンドの詳細については

「 8.4.34  tar

コマンド(対象パス名をアーカイブに格納,およびアーカイブから抽出,表示する)

照してください。

検証操作で行う圧縮データの整合性検証は,伸長操作のときにも行われます。なお,圧縮ファイルの圧縮

データ以外の値(圧縮方式などの情報)については,すべての操作で整合性を検証します。

環境変数

GZIP

に gzip

コマンドのオプションを設定することで,コマンド引数に指定しなくてもオプション

を使用できます。環境変数

GZIP

については,「 2.5 環境変数を設定する 」を参照してください。

引数

操作オプションの指定

実行する操作を指定します。

次のオプションを指定しないでこのコマンドを実行した場合は,ファイルを圧縮します(圧縮操作)。

-d

--decompress

--uncompress

圧縮ファイルを伸長します(伸長操作)。

-l

オプションまたは

-t

オプションと同時に指定した場合は指定を無視します。

-l

8. 運用時に使用するコマンド

JP1/Advanced Shell

827

--list

圧縮ファイルの情報を表示します(表示操作)。

圧縮する前のファイルサイズや圧縮率などの情報を表示します。

-v

オプションを同時に指定すると,圧縮ファイルの詳細情報も表示します。

表示内容については,「 圧縮ファイル情報の表示 」を参照してください。

圧縮する前のファイルサイズの表示では,ファイルサイズが 4GB 以上の場合,値が正しく表示されま

せん。正しいファイルサイズを表示したい場合は,

-t

オプションを同時に指定してください。ただ

し,

-t

オプションを同時に指定した場合は,表示されるまでに時間が掛かることがあります。

-t

--test

圧縮ファイルを伸長しないで,圧縮ファイルに格納されている圧縮データの整合性を検証します(検証

操作)。

-l

オプションと同時に指定した場合は,圧縮データの整合性検証と,圧縮ファイル情報の表示の両方

を行います。

圧縮レベルの指定

-

圧縮レベル

--fast

--best

圧縮するときの圧縮速度と圧縮率をレベルで指定します。

圧縮レベルは

1

から

9

の範囲で指定します。値の意味は次のとおりです。

• 圧縮速度

1

が最も速く,

9

が最も遅いです。

数値が大きくなるに従って,圧縮速度は遅くなります。

• 圧縮率

1

が最も低く,

9

が最も高いです。

数値が大きくなるに従って,圧縮率は高くなります。

このオプションを指定しない場合は,圧縮レベル

6

で圧縮します。

--fast

オプションは

-1

と同じ圧縮レベルで圧縮します。

--best

オプションは

-9

と同じ圧縮レベルで圧縮します。

このオプションを複数指定した場合,最後に指定したオプションが有効になります。

-d

オプション,

-l

オプション,または

-t

オプションと同時に指定した場合は指定を無視します。

ファイル情報の保存,復元動作の指定

ファイル情報の保存,復元動作を指定します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

828

-N

オプションおよび

-n

オプションを同時に指定した場合,最後に指定したオプションが有効になりま

す。

-N

オプションまたは

-n

オプションと,

-t

オプションを同時に指定した場合,指定を無視します。

なお,圧縮操作および伸長操作での最終修正日時の扱いについては,「 ファイルの最終アクセス日時と最終

修正日時の扱い

」を参照してください。表示操作でのファイル名と最終修正日時の扱いについては,「 圧縮

ファイル情報の表示 」を参照してください。

-N

--name

【圧縮操作の場合】

圧縮するファイルのファイル名と最終修正日時を圧縮ファイルに格納します。圧縮ファイルに格納

するファイル名には,パス名から取り出したファイル名だけを格納します。なお,圧縮するファイ

ルを標準入力から入力するときは,圧縮ファイル内の最終修正日時にコマンドの実行日時が格納さ

れます。ただし,圧縮ファイルにファイル名は格納されません。

【伸長操作の場合】

伸長するときに作成するファイル名は,圧縮ファイルに格納されているファイル名とします。また,

圧縮ファイルに格納されている最終修正日時を,作成したファイルに設定します。圧縮ファイルに

ファイル名や最終修正日時が格納されていない場合は,

-n

オプションを指定したときと同じ動作を

します。

【表示操作の場合】

表示する圧縮ファイル情報に,圧縮ファイルに格納されているファイル名と最終修正日時を表示し

ます。

圧縮操作ではこのオプションがデフォルトの動作です。

-n

--no-name

【圧縮操作の場合】

圧縮するファイルのファイル名と最終修正日時を圧縮ファイルに格納しません。

【伸長操作の場合】

伸長するときに作成するファイル名を,圧縮ファイル名から圧縮ファイルの拡張子を取り除いたファ

イル名とします。また,圧縮ファイルの最終修正日時を作成したファイルに設定します。

【表示操作の場合】

表示する圧縮ファイル情報に,圧縮ファイル名から圧縮ファイルの拡張子を取り除いたファイル名

と,圧縮ファイルの最終修正日時を表示します。

伸長操作,表示操作では,このオプションがデフォルトの動作です。

入出力の指定

-c

8. 運用時に使用するコマンド

JP1/Advanced Shell

829

--stdout

--to-stdout

【圧縮操作の場合】

圧縮したファイルデータを標準出力に出力します。

コマンド実行時に標準出力が端末に関連づけられている場合はエラーとなります。

このオプションを指定して複数のファイルを圧縮する場合,ファイル単位に圧縮と標準出力への出

力を繰り返します。この動作は, cat

コマンドなどで複数の圧縮ファイルを連結する(1 つの圧縮

ファイルを作成する)場合と同じです。この動作で作られた圧縮ファイルの注意点については「 注

意事項

」を参照してください。

【伸長操作の場合】

圧縮データの伸長結果を標準出力に出力します。

-l

オプション,または

-t

オプションと同時に指定した場合は指定を無視します。

-k

--keep

【圧縮操作の場合】

圧縮ファイルを作成したあと,圧縮元ファイルを削除しません。

【伸長操作の場合】

伸長ファイルを作成したあと,圧縮ファイルを削除しません。

-l

オプション,

-t

オプション,または

-c

オプションと同時に指定した場合は指定を無視します。

-r

--recursive

対象パス名

に指定したパスがディレクトリの場合,ディレクトリおよびサブディレクトリを再帰的に検

索します。

【圧縮操作の場合】

ディレクトリおよびサブディレクトリ内の圧縮されていないファイルを検索します。

【伸長操作,表示操作,検証操作の場合】

ディレクトリおよびサブディレクトリ内の圧縮ファイルを検索します。

Windows の場合,

-r

オプションを指定して,パス名に末尾がディレクトリ区切り文字のディレクト

リへのシンボリックリンクを指定しても末尾のディレクトリ区切り文字が無視されます。

検索中に遭遇したファイルを圧縮ファイルとして扱うかどうかは,ファイル名の拡張子で決定します。

圧縮ファイルとして扱うファイル名の拡張子については,「 圧縮ファイルの拡張子の扱い 」を参照して

ください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

830

ディレクトリのシンボリックリンクは,操作の種類や指定するオプションでリンク先をたどります。

ディレクトリのシンボリックリンクを指定したときの動作については,「 リンクファイルの扱い

」を参

照してください。

-o

出力先パス名

--output=

出力先パス名

【圧縮操作の場合】

指定したパス名で圧縮ファイルを作成します。

また,圧縮操作では圧縮するファイルが削除されます。

【伸長操作の場合】

指定したパス名で伸長するファイルを作成します。また,伸長操作では,圧縮ファイルが削除され

ます。伸長操作で

-N

オプションを同時に指定した場合,圧縮ファイルに格納されている最終修正日

時を使用します。ファイル名は

出力先パス名

に従います。

このオプションは,次のどれかと同時に指定するとエラー終了します。

-c

オプション,

-t

オプション,

-l

オプションまたは

-r

オプションを指定する。

• 圧縮するファイルや圧縮ファイルを複数指定する。

• 圧縮するファイルや圧縮ファイルを標準入力から入力する。

対象パス名

【圧縮操作の場合】

圧縮するファイルのパス名を指定します。

【伸長操作,表示操作,検証操作の場合】

圧縮ファイルのパス名を指定します。

圧縮操作で圧縮ファイルを指定したときや,伸長操作,表示操作,および検証操作で圧縮ファイル以外

のファイルを指定したときの扱いについては,「

圧縮ファイルの拡張子の扱い

」を参照してください。

対象パス名

は複数指定できます。

対象パス名

に指定がない,または

対象パス名

として「

-

」を指定した場合は,標準入力から入力します。

圧縮操作,伸長操作では,標準入力から入力する場合は,圧縮したファイルデータや圧縮データの伸長

結果を標準出力に出力します。なお,圧縮操作では,標準出力が端末に関連づけられているとエラーに

なります。伸長操作では,標準入力が端末に関連づけられているとエラーになります。

対象パス名

に指定できるファイルの種類は次のとおりです。

• 圧縮操作および伸長操作では,通常ファイルだけを指定できます。また,リンクファイルを指定で

きるかどうかは,指定するオプションによって異なります。リンクファイルを指定したときの動作

については,「

リンクファイルの扱い 」を参照してください。

• 表示操作および検証操作では,通常ファイルとリンクファイルを指定できます。

-r

オプションを指定するときはディレクトリを指定できます。ディレクトリのシンボリックリンク

を指定できるかどうかは,操作の種類や指定するオプションによって異なります。ディレクトリの

8. 運用時に使用するコマンド

JP1/Advanced Shell

831

シンボリックリンクを指定したときの動作については,「 リンクファイルの扱い 」を参照してくださ

い。

指定した

対象パス名

が,操作できるファイルの種類以外のときはエラーとなります。

その他の指定

-a

--ascii

【UNIX 限定】

OS が提供する gzip

コマンドとの互換のためのオプションです。

指定しても有効になりません。ただし,標準エラー出力にメッセージ( gzip: Option -a is ignored on this system

)が出力されます。

-f

--force

次の操作を許可します。

【圧縮操作の場合】

• リンクファイルのリンク先をたどります。リンクファイルについては「

リンクファイルの扱い 」を

参照してください。

• 作成する圧縮ファイルと同名のファイルがすでに存在する場合,応答要求を行わないで上書きします。

-c

オプションを指定しているときや,圧縮するファイルデータを標準入力から入力するときに,標

準出力が端末に関連づけられていても,圧縮したファイルデータを出力します。

【伸長操作の場合】

• リンクファイルのリンク先をたどります。リンクファイルについては「

リンクファイルの扱い 」を

参照してください。

• 作成する伸長後のファイルと同名のファイルがすでに存在する場合,応答要求を行わないで上書き

します。

• 操作するファイルのデータを標準入力から入力するとき,標準入力が端末に関連づけられていても,

入力を開始します。

-S

サフィックス

--suffix=

サフィックス

指定するサフィックス(任意の文字による文字列)を圧縮ファイルの拡張子として扱います。

【圧縮操作の場合】

拡張子「

.gz

」の代わりに,指定したサフィックスを付けて圧縮ファイルを作成します。

【伸長操作の場合】

拡張子「

.gz

」,「

.tgz

」とともに,サフィックスが付いたファイルを圧縮ファイルと見なします。

8. 運用時に使用するコマンド

JP1/Advanced Shell

832

指定できるサフィックスの長さの範囲は 1〜30 バイトです。サフィックスにマルチバイト文字は使用

できません。サフィックスを指定したときの動作については,「 圧縮ファイルの拡張子の扱い 」を参照

してください。

-q

--quiet

メッセージの出力を抑止します。

ただし,次のメッセージは抑止の対象外です。

• オプション解析のエラーメッセージ

• 圧縮操作の場合,圧縮ファイルと同名のファイルがすでに存在したとき,上書きするかどうかを確

認するメッセージ

• 伸長操作の場合,伸長後のファイルと同名のファイルがすでに存在したとき,上書きするかどうか

を確認するメッセージ

【表示操作の場合】

次の情報を表示しません。

• ヘッダ行

• 複数圧縮ファイルの合計情報

このオプションの後ろに

-v

オプションを指定した場合,このオプションの指定は取り消されます。

-v

--verbose

次の詳細情報を表示します。

• 圧縮操作,伸長操作,および検証操作の場合,操作結果の詳細情報として,「

表 8-12 圧縮操作,伸

長操作,検証操作で出力する詳細情報

」に示す内容を標準エラー出力に出力します。

• 表示操作の場合,表示する圧縮ファイル情報に,圧縮方式などの詳細情報も表示します。表示する

内容については,「

圧縮ファイル情報の表示

」を参照してください。

-r

オプションを指定してディレクトリ内のファイルを検索するとき,操作対象外のファイルに対し

て,次のメッセージを標準エラー出力に出力します。

【圧縮操作の場合】

圧縮ファイルに対して,「 gzip: ファイル名 already has サフィックス suffix -- unchanged

」を

出力します。

【伸長操作,表示操作,検証操作の場合】

圧縮ファイル以外のファイルに対して,「 gzip:

ファイル名

: Unknown suffix: ignored

」を出力し

ます。

このオプションの後ろに

-q

オプションを指定した場合,このオプションの指定は取り消されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

833

表 8-12 圧縮操作,伸長操作,検証操作で出力する詳細情報

操作の種類 詳細情報の内容

と説明(上段:内容,下段:説明)

圧縮 [

圧縮するファイル名

:

]

圧縮率

%

[

-- replaced with

圧縮ファイル名

]

伸長

検証

圧縮するファイルの名称,圧縮率,および作成した圧縮ファイルの

名称を出力します。

-c

オプションを指定したときは,圧縮ファイル名は出力されません。

標準入力から入力したときは,圧縮するファイル名と圧縮ファイル

名は出力されません。

圧縮ファイル名

:

圧縮率

%

[

-- replaced with

伸長後のファイル名

]

圧縮ファイルの名称,圧縮率,および作成した伸長後のファイルの

名称を出力します。

-c

オプションを指定したときは,伸長後のファイル名は出力されま

せん。

標準入力から入力したときは,詳細情報は出力されません。

[ 圧縮ファイル名

:

]

OK

圧縮ファイルの名称と圧縮ファイルデータの整合性に問題がないこ

とを示す「

OK

」を出力します。

標準入力から入力したときは,圧縮ファイル名は出力されません。

注※

•「

圧縮するファイル名

:

」は「

圧縮するファイル名

:<タブ文字>

」で出力されます。

•「

圧縮ファイル名

:

」は「

圧縮ファイル名

:<タブ文字>

」で出力されます。

終了コード

終了コード

0

1

2

意味

正常終了。

エラー終了。

圧縮操作,伸長操作の結果は次のとおりです。

【圧縮操作の場合】

圧縮ファイルは作成されていません。

【伸長操作の場合】

伸長後のファイルは作成されていません。

エラー終了。

圧縮操作,伸長操作の結果は次のとおりです。

【圧縮操作の場合】

圧縮ファイルは作成されています。後処理でエラーが発生し

ました。エラーが発生した後処理の内容については,出力さ

れるメッセージを参照してください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

834

終了コード

2

3

意味

【伸長操作の場合】

伸長後のファイルは作成されています。後処理でエラーが発

生しました。エラーが発生した後処理の内容については,出

力されるメッセージを参照してください。

なお,複数ファイルの操作で,終了コード

1

2

の両方のエラー

が発生したときは,終了コードは

1

が返ります。

不正なオプションを指定しました。

次のメッセージが出力される場合は,終了コード 1 になります。

•「gzip:

ファイル名

already has

サフィックス suffix -- unchanged」

•「gzip:

ファイル名

: Unknown suffix: ignored」

ファイルの最終アクセス日時と最終修正日時の扱い

圧縮操作,および伸長操作では,ファイルの最終アクセス日時と最終修正日時を次のように扱います。

• 圧縮操作

圧縮操作では,通常,圧縮するファイルの最終アクセス日時と最終修正日時を圧縮ファイルに引き継ぎ

ます。また,圧縮するファイルの最終修正日時を圧縮ファイルに格納します。

最終アクセス日時と最終修正日時の扱いは,圧縮するファイルの入力元やオプションの指定によって,

次の表に示す動作となります。

表 8-13 圧縮操作時の最終アクセス日時と最終修正日時の扱い

圧縮するファイルの入

力元

圧縮結果の出力先 オプション

※1

圧縮結果

圧縮ファイルの最終ア

クセス日時・最終修正

日時

圧縮ファイルに格納さ

れる最終修正日時

※2

ファイル 圧縮ファイル

-N

圧縮するファイルの最

終修正日時

標準入力

標準出力

-c

オプション指定)

標準出力

-n

-N

-n

-N

圧縮するファイルの最

終アクセス日時・最終

修正日時

圧縮するファイルの最

終アクセス日時・最終

修正日時

引き継ぎません

※3

引き継ぎません

※3

引き継ぎません

※3

圧縮ファイルには最終

修正日時が格納されま

せん

圧縮するファイルの最

終修正日時

※2

圧縮ファイルには最終

修正日時が格納されま

せん

※2

コマンドの実行日時

2

8. 運用時に使用するコマンド

JP1/Advanced Shell

835

圧縮するファイルの入

力元

圧縮結果の出力先 オプション

※1

圧縮結果

圧縮ファイルの最終ア

クセス日時・最終修正

日時

引き継ぎません

※3

圧縮ファイルに格納さ

れる最終修正日時

※2

標準入力 標準出力

-n

圧縮ファイルには最終

修正日時が格納されま

せん

※2

注※1

-N

オプション,

-n

オプションのどちらも指定しなかった場合,

-N

オプションが指定されたものと

します。

注※2

圧縮結果の出力先が標準出力の場合,標準出力に出力した圧縮ファイルデータ内の最終修正日時を

指します。

注※3

最終アクセス日時と最終修正日時の扱いは,圧縮結果の出力先の指定(リダイレクトやパイプなど)

に従います。

なお,ファイルの最終アクセス日時と最終修正日時の設定に失敗した場合はエラーとなりますが,圧縮

ファイルは作成され,圧縮するファイルは削除されます。

• 伸長操作

伸長操作では,通常,圧縮ファイルの最終アクセス日時と最終修正日時を,伸長したファイルに引き継

ぎます。

最終修正日時の扱いは,オプションの指定や圧縮ファイルに最終修正日時が格納されているかどうかに

よって,次の表に示す動作となります。

表 8-14 伸長操作時の最終アクセス日時と最終修正日時の扱い

オプション

圧縮ファイル内の最終修正日

時の格納

伸長結果

伸長したファイルに設定する

最終アクセス日時

伸長したファイルに設定する

最終修正日時

-N

あり

-n

なし

あり

なし

圧縮ファイルの最終アクセス

日時

圧縮ファイルの最終アクセス

日時

圧縮ファイルの最終アクセス

日時

圧縮ファイルの最終アクセス

日時

圧縮ファイルに格納されてい

る最終修正日時

圧縮ファイルの最終修正日時

圧縮ファイルの最終修正日時

圧縮ファイルの最終修正日時

8. 運用時に使用するコマンド

JP1/Advanced Shell

836

注※

-N

オプション,

-n

オプションのどちらも指定しなかった場合,

-n

オプションが指定されたものと

します。

次のような伸長操作の場合,圧縮ファイルに格納されている最終修正日時は使用しません。

• 標準入力から圧縮ファイルを入力し,伸長結果を標準出力に出力する場合。

-c

オプションを指定して,伸長結果を標準出力に出力する場合。

この伸長操作での最終アクセス日時と最終修正日時の扱いは,伸長結果の出力先の指定(リダイレクト

やパイプなど)に従います。

なお,ファイルの最終アクセス日時と最終修正日時の設定に失敗した場合はエラーとなりますが,伸長

したファイルは作成され,圧縮ファイルは削除されます。

圧縮・伸長時のユーザー ID・グループ ID とパーミッションの扱い

UNIX の場合,ファイルのユーザー ID・グループ ID とパーミッションを次のように扱います。

【圧縮操作の場合】

圧縮するファイルのユーザー ID・グループ ID とパーミッションを圧縮ファイルに引き継ぎます。

【伸長操作の場合】

圧縮ファイルのユーザー ID・グループ ID とパーミッションを伸長したファイルに引き継ぎます。

また,ユーザー ID・グループ ID とパーミッションは次のように扱います。

• スティッキービット,setuid ビットおよび setgid ビットは引き継ぎません。

• ユーザー ID・グループ ID の引き継ぎに失敗してもエラーにはなりません。引き継ぎに失敗したとき

は,コマンド実行者のユーザー ID,グループ ID が設定されます。

• パーミッションの引き継ぎに失敗した場合はエラーとなります。しかし,圧縮ファイルや伸長したファ

イルは作成されます。また,圧縮するファイルや圧縮ファイルも削除されます。

• 標準入力から入力する場合や,

-c

オプションを指定して圧縮結果,伸長結果を標準出力に出力する場

合,引き継がれません。ユーザー ID・グループ ID とパーミッションの扱いは,標準出力の出力先の

指定(リダイレクトやパイプなど)に従います。

Windows の場合,ファイルの所有者,ACL およびファイル属性は引き継ぎません。

圧縮ファイルの拡張子の扱い

圧縮ファイルの拡張子の扱いについて説明します。なお,標準入力から圧縮するファイルや圧縮ファイル

を入力する場合は,拡張子を意識する必要はありません。

1. 圧縮操作での圧縮済みファイルの扱い

圧縮操作では,圧縮するファイルの名称に,拡張子「

.gz

」,「

.tgz

」または

-S

オプションに指定したサ

フィックスが付いている場合,圧縮済みファイルと見なして,圧縮しません。また,圧縮済みファイル

8. 運用時に使用するコマンド

JP1/Advanced Shell

837

に対して,メッセージ「 gzip:

ファイル名

already has

サフィックス

suffix -- unchanged

」を出力

します。

-r

オプションを指定し,ディレクトリ内を検索して見つかった圧縮済みファイルに対しては,圧縮し

ません。また,メッセージ「 gzip: ファイル名 already has サフィックス suffix -- unchanged

」も

出力しません。なお,

-v

オプションを指定しているときはメッセージを出力します。

-c

オプションを指定したときは,圧縮済みファイルも圧縮します。

2. 伸長,表示,検証対象となる圧縮ファイルの拡張子

伸長操作,検証操作,表示操作では,圧縮ファイルの拡張子の扱いは次のとおりです。

• 引数に圧縮ファイル名を指定するとき

【伸長操作の場合】

圧縮ファイル名に,拡張子「

.gz

」,「

.tgz

」,または

-S

オプションに指定したサフィックスが付いて

いるとき,圧縮ファイルと見なして,伸長します。それ以外のファイルの場合は,伸長しません。

また,指定されたファイルに対してメッセージ「 gzip:

ファイル名

: Unknown suffix: ignored

」を

出力します。

【表示操作,検証操作の場合】

圧縮ファイル名に,拡張子「

.gz

」,「

.tgz

」および

-S

オプションに指定したサフィックスが付いて

いなくても操作します。

-r

オプション指定によりディレクトリ内を検索するとき

ディレクトリ内に存在する,拡張子「

.gz

」,「

.tgz

」および

-S

オプションに指定したサフィックス

が付いているファイルに対して操作します。拡張子「

.gz

」,「

.tgz

」または

-S

オプションに指定し

たサフィックスが付いていないファイルに対しては,操作しません。また,メッセージ「 gzip:

ファ

イル名 : Unknown suffix: ignored

」も出力しません。なお,

-v

オプションを指定しているときは,

メッセージを出力します。

なお,

-c

オプションを指定したときは,伸長操作ではファイル名に拡張子「

.gz

」,「

.tgz

」および

-

S

オプションに指定したサフィックスが付いていなくても伸長を試みます。

3. 拡張子の文字種別の扱い

圧縮ファイルの拡張子の確認では,拡張子「

.gz

」,「

.tgz

」および

-S

オプションに指定したサフィック

スは,英大文字と英小文字を区別しません。例えば,圧縮するファイルの名称が,「 file.GZ

」でも圧縮

ファイルと見なします。

4. 圧縮ファイル名の拡張子の補完

伸長操作,表示操作,および検証操作では,引数に圧縮ファイル名を指定するとき,次の指定ができま

す。

• 圧縮ファイルの拡張子が「

.gz

」の場合,「

.gz

」の記述を省略できます。

• 圧縮ファイル名の終端が

-S

オプションに指定したサフィックスの場合,サフィックスの記述を省略

できます。

拡張子「

.gz

」や

-S

オプションに指定したサフィックスは,コマンドで補完します。

ただし,拡張子が「

.tgz

」の圧縮ファイルは,「

.tgz

」の記述を省略できません。

引数に指定した圧縮ファイル名に拡張子「

.gz

」が補完される例を次に示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

838

$ ls file1.txt.gz

$ gzip -d file1.txt

$ ls file1.txt

なお,操作するディレクトリ内に,複数のファイルが格納されているときは,次のように動作します。

• 2 つの圧縮ファイルの名称の違いが,拡張子「

.gz

」と

-S

オプションに指定したサフィックスだけのと

きは,

-S

オプションのサフィックスが付いた圧縮ファイルが操作対象です。

• 拡張子「

.gz

」や

-S

オプションに指定したサフィックスが付いているファイルと付いていないファイル

が存在するときは,付いていないファイルが操作対象です。

拡張子の補完では,拡張子「

.gz

」および

-S

オプションに指定したサフィックスの英大文字,英小文字の

扱いは,OS によって異なります。

【UNIX の場合】

英大文字,英小文字の相違を区別します。

• 拡張子「

.gz

英小文字の「

.gz

」が付いた圧縮ファイルが補完対象です。

.GZ

」,「

.gZ

」および「

.Gz

」が付いた圧縮ファイルは補完の対象になりません。

-S

オプションに指定したサフィックス

-S

オプションに指定したサフィックスが付いた圧縮ファイルが補完対象です。

指定したサフィックスと,英大文字および英小文字の構成だけが異なるサフィックスが付いた圧縮

ファイルは,補完の対象になりません。

【Windows の場合】

英大文字,英小文字の相違を区別しません。

• 拡張子「

.gz

英小文字の「

.gz

」,「

.GZ

」,「

.gZ

」および「

.Gz

」が付いた圧縮ファイルが補完対象です。

-S

オプションに指定したサフィックス

-S

オプションに指定したサフィックスが付いた圧縮ファイルが補完対象です。

指定したサフィックスと,英大文字および英小文字の構成だけが異なるサフィックスが付いた圧縮

ファイルも補完対象です。

圧縮ファイル情報の表示

圧縮ファイル情報の表示では,最初にヘッダ行として項目名を表示して,次の行に圧縮ファイル情報を表

示します。ヘッダ行の表示は,

-q

オプションを使用して抑止できます。

1. 表示する項目

8. 運用時に使用するコマンド

JP1/Advanced Shell

839

次の項目(列)を表示します。項目「 method

」,「 crc

」,「 date

」,「 time

」は,

-v

オプションを指定した

ときに表示します。

表 8-15 圧縮ファイル情報の表示項目(列)

項目名 method crc date time compressed uncompressed ratio

内容

圧縮方式。次の値を表示します。 defla

:圧縮データは,DEFLATE 圧縮方式で圧縮されていま

す。

圧縮前のファイルデータの巡回冗長検査(CRC)値。8 桁の

16 進数で表示します

この値を使用して,圧縮されたファイルデータの整合性を検

証します。

サイズが

0

のファイルを圧縮しているときは,

00000000

を表

示します。

標準入力から圧縮ファイルを入力したときは, ffffffff

を表

示します

※1

伸長後のファイルに設定されるファイルの最終修正日時の月

日。年は表示されません。

表示する内容は,圧縮ファイルの入力元や指定するオプショ

ンによって異なります。

詳細は「 表 8-16 「date」,「time」項目の表示内容 」を参照

してください。

伸長後のファイルに設定されるファイルの最終修正日時の時

分。秒は表示されません。

表示する内容は,圧縮ファイルの入力元や指定するオプショ

ンによって異なります。

詳細は「 表 8-16 「date」,「time」項目の表示内容 」を参照

してください。

圧縮ファイルのサイズ。

標準入力から圧縮ファイルを入力したときは,

-1

を表示しま

※1

圧縮する前のファイルのサイズ。

標準入力から圧縮ファイルを入力したときは,

-1

を表示しま

※1

圧縮する前のファイルのサイズが 4GB 以上の場合,値が正し

く表示されません

※2

圧縮率(%)。小数点第 1 位までを表示します。

圧縮率は,圧縮する前のファイルのサイズと,圧縮ファイル

内の圧縮データの長さを元に算出します。なお,圧縮データ

の長さは,圧縮ファイルのサイズとは異なります。

「 compressed

」項目や「 uncompressed

」項目に

-1

が表示される

ときは,「

0.0%

」を表示します。

サイズが小さいファイルや,圧縮効果が小さいファイルを圧

縮したときは,圧縮率はマイナスになる場合があります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

840

項目名 uncompressed_name

内容

伸長後のファイル名。圧縮ファイル名をディレクトリからの

パス名で指定しているときは,パス名のディレクトリ部分と

伸長後のファイル名によって生成したパス名を表示します。

標準入力から圧縮ファイルを入力したときは,「 stdout

」を表

示します。

表示する内容は,圧縮ファイルの入力元や指定するオプショ

ンによって異なります。

詳細は「

表 8-17 「uncompressed_name」項目の表示内容 」

を参照してください。

注※1

-t

オプションを指定すると,標準入力から入力する場合も,圧縮ファイルから入力したときと同じ

内容を表示できます。ただし,圧縮ファイルのサイズによっては,表示されるまでに時間が掛かる

場合があります。

注※2

-t

オプションを使用して,4GB 以上のサイズを表示できます。ただし,表示されるまでに時間が掛

かる場合があります。

表 8-16 「date」,「time」項目の表示内容

圧縮ファイルの入力元 圧縮ファイル内の最終修正日

時の格納

※1

指定するオプション

※2

表示する最終修正日時の月日

と時分

ファイル あり

-N

標準入力

なし

あり

なし

-n

-N

-n

-N

-n

-N

-n

圧縮ファイル内に格納されて

いる最終修正日時(圧縮した

ファイルの最終修正日時)

圧縮ファイル自身の最終修正

日時

圧縮ファイル自身の最終修正

日時

圧縮ファイル自身の最終修正

日時

圧縮ファイル内に格納されて

いる最終修正日時(圧縮した

ファイルの最終修正日時)

コマンドの実行日時

コマンドの実行日時

コマンドの実行日時

注※1

圧縮ファイル内に最終修正日時が格納されるかどうかは,圧縮操作での圧縮するファイルの入力方

法やオプションの指定によって決まります。圧縮操作での最終修正日時の扱いについては,「 ファイ

ルの最終アクセス日時と最終修正日時の扱い 」を参照してください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

841

注※2

-N

オプション,

-n

オプションのどちらも指定しなかった場合,

-n

オプションが指定されたものと

します。

表 8-17 「uncompressed_name」項目の表示内容

圧縮ファイルの入力元 圧縮ファイル内のファイル名の

格納

※1

指定するオプション

※2

表示する伸長後のファイル名

ファイル あり

-N

標準入力

なし

あり

なし

-n

-N

-n

-N

-n

-N

-n

圧縮ファイルに格納されてい

るファイル名(圧縮したファ

イルの名称)

圧縮ファイル名から生成(圧

縮ファイルの拡張子を取り除

くなど)したファイル名

圧縮ファイル名から生成(圧

縮ファイルの拡張子を取り除

くなど)したファイル名

圧縮ファイル名から生成(圧

縮ファイルの拡張子を取り除

くなど)したファイル名

圧縮ファイルに格納されてい

るファイル名(圧縮したファ

イルの名称)

「 stdout

「 stdout

「 stdout

注※1

圧縮ファイル内にファイル名が格納されるかどうかは,圧縮操作での圧縮するファイルの入力方法

や,

-N

オプション,

-n

オプションの指定によって決まります。圧縮ファイル内に格納されるファイ

ル名については,引数

-N

オプション,

-n

オプションの説明を参照してください。

注※2

-N

オプション,

-n

オプションのどちらも指定しなかった場合,

-n

オプションが指定されたものと

します。

2. 複数圧縮ファイルの合計情報の表示

引数に複数の圧縮ファイルを指定するときや,

-r

オプションでディレクトリ内のすべての圧縮ファイ

ルを対象とするときは,ファイル単位に圧縮ファイル情報を表示したあと,最終行に複数圧縮ファイル

の合計情報を表示します。表示内容を「

表 8-18 複数圧縮ファイルの合計情報の表示内容

」に示します。

この表示は,

-q

オプションを使用して抑止できます。また,表示する複数ファイルに,標準入力から

の入力が含まれる(「 compressed

」項目や「 uncompressed

」項目に

-1

が表示される)場合,表示されま

せん。

8. 運用時に使用するコマンド

JP1/Advanced Shell

842

表 8-18 複数圧縮ファイルの合計情報の表示内容

項目名 compressed uncompressed ratio uncompressed_name

内容

圧縮ファイルのサイズの合計値。

圧縮する前のファイルのサイズの合計値。

圧縮ファイルのサイズの合計値と,圧縮ファイルデータの長さの

合計値を元に計算した圧縮率。

(totals)

」。

リンクファイルの扱い

このコマンドでは,リンクファイル(シンボリックリンクおよびハードリンク)を次のように扱います。

【圧縮操作,伸長操作の場合】

圧縮操作,および伸長操作では,圧縮するファイルや圧縮ファイルのリンクファイルは操作できませ

ん。ただし,

-f

オプションを指定すると,リンクファイルを扱えます。

-f

オプションを指定したとき

のリンクファイル操作時の動作は次のとおりです。

操作の種類

圧縮

伸長

リンクファイル操作時の動作

• リンク先のファイルのデータを圧縮します。

• ファイル名から圧縮ファイル名を生成するときは,リンクファ

イル名を使用します。

• 圧縮ファイルに格納するファイル名には,リンクファイル名を

格納します。

• 圧縮後には,リンクファイルを削除します。

• リンク先のファイルの圧縮データを伸長します。

• ファイル名から伸長するファイル名を生成するときは,リンク

ファイル名を使用します。

• 伸長後には,リンクファイルを削除します。

なお,圧縮後や伸長後にリンクファイルを削除したくない場合は

-k

オプションを指定してください。

-c

オプションを指定する場合は,リンクファイルを扱えます。

-r

オプションでディレクトリ内を検索するとき,ディレクトリへのシンボリックリンクを扱えます。

ただし,

-r

オプションと同時に,

-f

オプションを指定してください。

-f

オプションを指定すると,

ディレクトリへのシンボリックリンクのリンク先をたどります。また,ディレクトリを再帰的に検索し

たときも,遭遇したディレクトリのシンボリックリンクのリンク先をたどります。なお,

-c

オプショ

ンを指定したときも,ディレクトリのシンボリックリンクのリンク先をたどります。

【表示操作,検証操作の場合】

表示操作,および検証操作では,リンクファイルを扱えます。圧縮ファイルにリンクファイルを指定し

た場合,リンク先をたどり,リンク先の圧縮ファイルを参照して,表示や検証をします。ただし,表示

操作で表示する伸長後のファイル名には,リンク先の圧縮ファイル名ではなく,リンクファイル名から

生成した名称を表示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

843

-r

オプションでディレクトリ内を検索するとき,ディレクトリへのシンボリックリンクはリンク先を

たどります。また,ディレクトリを再帰的に検索したときも,遭遇したディレクトリのシンボリックリ

ンクのリンク先をたどります。

注意事項

• このコマンドは,このコマンド自身が作成した圧縮ファイルの操作だけをサポートします。次の操作は

正常に行われない場合があります。

• 他プログラム(OS 提供の gzip

コマンドなど)で作成した gzip 形式の圧縮ファイルを,JP1/

Advanced Shell 提供の gzip

コマンドで操作する。

• JP1/Advanced Shell 提供の gzip

コマンドで作成した圧縮ファイルを,gzip 形式の圧縮ファイルを

扱えるプログラム(OS 提供の gzip

コマンドなど)で操作する。

• サイズが小さいファイルや,圧縮効果が小さいファイルを圧縮した場合,圧縮ファイルのファイルサイ

ズが圧縮前のファイルサイズより大きくなることがあります。

-N

オプションを指定して伸長操作または表示操作をする場合に,圧縮ファイルに格納されているファ

イル名が次のときは,OS やエンコーディングが圧縮時と異なると,伸長や表示が正常に行われないお

それがあります。

• マルチバイト文字などのエンコーディングに依存する文字を含んでいる。

• ファイル名に OS 固有の指定可能文字を含んでいる(例:UNIX で

\

をファイル名の文字として使用

する)。

• 圧縮するファイルのパス名やファイル名の長さが次の値を超えるときは,圧縮ファイルの作成に失敗し

ます。この場合,

-o

オプションや

-c

オプションを使用して圧縮ファイルを作成してください。

•「

OS が定める最大パス名長

圧縮ファイルの拡張子の長さ

•「

OS が定める最大ファイル名長

圧縮ファイルの拡張子の長さ

• 次のどれかに該当する場合,

-N

オプションを指定して伸長操作をすると,伸長後のファイルの作成に

失敗します。

• 圧縮ファイルに格納されているファイル名の長さが,OS が定める最大ファイル名長を超えている。

• 圧縮ファイルに格納されているファイル名を元に生成したパス名の長さが,OS が定める最大パス

名長を超えている。

• 圧縮ファイルへの最終修正日時に格納できる日時の範囲は,UTC(協定世界時)の 1970 年 1 月 1 日

0 時 0 分 1 秒〜2038 年 1 月 19 日 3 時 14 分 7 秒です。範囲外のときは格納されません。

• 圧縮操作中にコマンドの実行を中断すると,圧縮途中の圧縮ファイルが残ることがあります。

• 伸長操作中にコマンドの実行を中断すると,伸長途中の伸長ファイルが残ることがあります。

• 圧縮するファイルに対して削除権限がない場合,圧縮操作で行う圧縮するファイルの削除が失敗しま

す。圧縮するファイルの削除に失敗しても,圧縮ファイルは作成されています。

• 圧縮ファイルに対して削除権限がない場合,伸長操作で行う圧縮ファイルの削除が失敗します。圧縮

ファイルの削除に失敗しても,伸長後のファイルは作成されています。

8. 運用時に使用するコマンド

JP1/Advanced Shell

844

• すでに存在するファイルと同名の圧縮ファイル,伸長後のファイルを上書きで作成する場合,最初に既

存のファイルを削除します。そのため,処理中にエラーが発生すると,既存のファイルは削除されてい

る場合があります。

• 操作対象のファイルと出力先のファイルの実体が同じ(シンボリックリンク先が同じ,またはハードリ

ンク先が同じ)場合,エラーになります。

-c

オプションを使用して複数のファイルから作成した圧縮ファイルや, cat

コマンドなどで複数の圧縮

ファイルを連結して作成した圧縮ファイルは,次のように伸長操作,または表示操作が行われます。

• 複数のファイルのデータが出力された伸長後のファイルが 1 つ作成されます。圧縮前のそれぞれの

ファイルごとに,伸長後のファイルが作成されることはありません。

-N

オプションを指定して伸長する場合,圧縮ファイル作成時に最初に指定したファイルの圧縮ファ

イル情報中のファイル名で,伸長後のファイルが作成されます。

• 表示操作では,圧縮ファイル作成時に最後に指定したファイルのサイズが,圧縮する前のファイル

のサイズとして表示されます。また,圧縮率はその値を元に算出されます。なお,

-t

オプションを

指定した場合は,すべてのファイルサイズの合計値が表示されます。

• Windows の場合,圧縮するファイル名や圧縮ファイル名にショートネームを指定したとき,ショート

ネームをファイル名とした圧縮ファイルや伸長後のファイルが作成されます。

• Windows の場合,ファイル名の英大文字と英小文字を区別しません。このため,次の動作となります。

• 圧縮ファイル名や伸長後のファイル名と同じスペルで英大文字,英小文字だけが異なるファイルは,

同一ファイルと見なします。例えば,作成する圧縮ファイルや伸長後のファイルと同じスペルで,

大文字・小文字だけが異なる名称のファイルは,同名のファイルがすでに存在していると見なします。

• 圧縮するファイル名や圧縮ファイル名を,同じスペルで大文字・小文字だけを替えて引数に指定し

た場合,引数に指定したファイル名で圧縮ファイルや伸長後のファイルが作成されます。

• Windows の場合,操作対象のファイルや上書きする既存のファイルが別のプログラムで使用されてい

ると,そのファイルの削除に失敗することがあります。

使用例

• ファイルを圧縮します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip file001.txt

C:\TEMP>%ADSH_OSCMD_DIR%ls file001.txt.gz

-k

オプションを使用して,ファイルを残したまま圧縮します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -k file001.txt

C:\TEMP>%ADSH_OSCMD_DIR%ls file001.txt file001.txt.gz

-o

オプションを使用して,コマンドで生成する圧縮ファイル名とは別の名称で,圧縮ファイルを作成

します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

845

C:\TEMP>%ADSH_OSCMD_DIR%gzip -o save_file002.gz file002.txt

C:\TEMP>ls save_file002.gz

-c

オプションを使用して,ファイルを残したまま圧縮します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -c file003.txt > backup_file003.gz

C:\TEMP>ls backup_file003.gz file003.txt

-S

オプションを使用して,「

.gz

」以外の拡張子の圧縮ファイルを作成します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -S ".gzip" file004.txt

C:\TEMP>ls file004.txt.gzip

-r

オプションを使用して,ディレクトリ内のファイルを圧縮します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -r DIR002

C:\TEMP>ls -R DIR002

DIR003 file001.txt.gz file002.txt.gz file003.txt.gz

DIR002\DIR003: file004.txt.gz file005.txt.gz

-v

オプションを使用して,圧縮するときに圧縮率と圧縮ファイル名を出力します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -v file005.txt

file005.txt: 26.5% -- replaced with file005.txt.gz

なお,圧縮率と圧縮ファイル名は標準エラー出力に出力されます。

• 圧縮ファイルを伸長します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -d file001.txt.gz

C:\TEMP>%ADSH_OSCMD_DIR%ls file001.txt

-o

オプションを使用して,コマンドで生成する伸長後のファイル名とは別の名称で,伸長したファイ

ルを作成します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -o FILE002.txt save_file002.gz

C:\TEMP>ls

FILE002.txt

-c

オプションを使用して,圧縮ファイルを残したまま伸長します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -c backup_file003.gz >file003.txt

C:\TEMP>ls backup_file003.gz file003.txt

8. 運用時に使用するコマンド

JP1/Advanced Shell

846

-N

オプションを使用して,圧縮する前のファイル名で伸長します。

C:\DIR001>%ADSH_OSCMD_DIR%gzip -d -N backup_file003.gz

C:\DIR001>ls file003.txt

-S

オプションを使用して,「

.gz

」以外の拡張子の圧縮ファイルを伸長します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -S ".gzip" file004.txt.gzip

C:\TEMP>ls file004.txt

-r

オプションを使用して,ディレクトリ内の圧縮ファイルを伸長します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -r DIR002

C:\TEMP>ls -R DIR002

DIR003 file001.txt file002.txt file003.txt

DIR002\DIR003: file004.txt file005.txt

-v

オプションを使用して,伸長するときに伸長率と伸長後のファイル名を出力します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -v file005.txt.gz

file005.txt.gz: 26.5% -- replaced with file005.txt

なお,伸長率と伸長後のファイル名は標準エラー出力に出力されます。

• 圧縮ファイル情報を表示します。

C:\TEMP>gzip -l file001.txt.gz

compressed uncompressed ratio uncompressed_name

25025357 34040107 26.5% file001.txt

-v

オプションを使用して,詳細な圧縮ファイル情報を表示します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -l -v file001.txt.gz

method crc date time compressed uncompressed ratio uncompressed_name defla fe65cbfa Dec 23 16:52 25025357 34040107 26.5% file001.txt

• 複数の圧縮ファイルの圧縮ファイル情報を表示します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -l -v file001.txt.gz file002.txt.gz file003.txt.gz file004.txt.gz file005.txt.gz

method crc date time compressed uncompressed ratio uncompressed_name defla 5d262330 Dec 23 17:12 16142040 17838735 9.5% file001.txt

defla 0e523a79 Dec 23 17:12 18824484 20542848 8.4% file002.txt

defla 1cb8a527 Dec 23 17:12 12476069 17673807 29.4% file003.txt

defla b167ed5d Dec 23 17:12 19489411 22390086 13.0% file004.txt

defla 9b4d3435 Dec 23 17:12 19631128 22513931 12.8% file005.txt

86563132 100959407 14.3% (totals)

• 圧縮ファイルの整合性を検証します。また,

-v

オプションを指定して検証結果を出力します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

847

C:\TEMP>gzip -t -v file001.txt.gz

file001.txt.gz: OK

なお,検証結果は標準エラー出力に出力されます。

• tar

コマンドのアーカイブ結果を圧縮します。

C:\TEMP>%ADSH_OSCMD_DIR%tar -cvf - DIR002 | %ADSH_OSCMD_DIR%gzip > DIR002.tar.gz

DIR002

DIR002/DIR003

DIR002/DIR003/file004.txt

DIR002/DIR003/file005.txt

DIR002/file001.txt

DIR002/file002.txt

DIR002/file003.txt

• 圧縮したアーカイブの伸長結果を tar

コマンドに渡してアーカイブを展開します。

C:\TEMP>%ADSH_OSCMD_DIR%gzip -d -c DIR002.tar.gz | %ADSH_OSCMD_DIR%tar -xvf -

DIR002

DIR002\DIR003

DIR002\DIR003\file004.txt

DIR002\DIR003\file005.txt

DIR002\file001.txt

DIR002\file002.txt

DIR002\file003.txt

8.4.18 head コマンド(ファイルの最初の部分を表示する)

形式 head[-行数|-n 行数][パス名 ...]

機能

ファイルの最初の数行を表示します。ファイルの最初の部分からそれぞれ指定した行数を標準出力に出力

します。ファイルの指定がない場合,標準入力から入力します。行数を省略した場合は,10 行を仮定しま

す。

引数

-行数

|

-n 行数 〜< 10 進数>((1〜2147483647))

標準出力へ出力する,入力ファイルの最初の行数をそれぞれ指定します。0 以下または 2147483647

より大きい値を指定すると,エラーメッセージ(head: line count too small: 指定値/head: line count too large: 指定値)を出力します。

パス名

入力ファイル名を指定します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

848

• 省略時は標準入力から入力します。

• 複数ファイルを指定できます。複数ファイルを指定した場合,それぞれのファイルを識別するため

に,次に示す文字をそれぞれのファイルの出力に先行して出力します。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 <==

8. 運用時に使用するコマンド

JP1/Advanced Shell

849

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 ...]

8.4.19 hostname コマンド(ホスト名を表示する)

形式 hostname

機能

現在のホスト名を表示します。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• このコマンドには指定可能な引数が存在しません。引数が指定された場合でも無視して処理を実行しま

す。

使用例

• 現在のホストシステムの名称を表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\hostname

HOST01

8. 運用時に使用するコマンド

JP1/Advanced Shell

850

8.4.20 ln コマンド(ファイル,またはディレクトリへのリンクファイルを

作成する)

形式

形式 1 ln [-f] [-i] [-L] [-n] [-P] [-s] [-T] [-v] [--follow={yes | no}]

[--no-exist-directory] [--no-exist-file] リンク先パス名 ... [ターゲット]

形式 2 ln [-f] [-i] [-L] [-n] [-P] [-s] [-v] [--follow={yes | no}]

[--no-exist-directory] [--no-exist-file] -t ターゲットディレクトリ名 リンク先パス

名 ...

機能

ファイル,またはディレクトリへのリンクファイルを作成します。-s オプションの指定に従って,ハード

リンク,またはシンボリックリンクを作成します。 ln コマンドでシンボリックリンクを作成する場合は,シンボリックリンク作成権限を持つユーザーで実行

してください。シンボリックリンク作成権限を持たないユーザーではシンボリックリンクを作成できませ

ん。また,ユーザーアカウント制御(UAC)が有効な環境では,シンボリックリンク作成権限を持つユー

ザーでもシンボリックリンクを作成できません。UAC が有効な環境でシンボリックリンクを作成する場

合は,シンボリックリンク作成権限を持つユーザーに管理者特権を持たせてください。

形式 1 の場合,引数ターゲットに指定したパスにリンクファイルを作成します。引数ターゲットがディレ

クトリの場合はディレクトリ内にリンクファイルを作成します。

形式 2 の場合,ターゲットディレクトリ内にリンクファイルを作成します。

引数

-f

--force

引数ターゲットに指定したファイルがすでに存在する場合,既存のファイルを削除してからリンクファ

イルを作成します。

-i オプションと同時に指定した場合は,-i オプションの指定が有効となります。

ただし,環境変数 ADSH_CMDLN_OPT_I_F に LAST を指定することで最後に指定したオプションを

有効にできます。

-i

8. 運用時に使用するコマンド

JP1/Advanced Shell

851

--interactive

引数ターゲットに指定したファイルがすでにある場合は,削除するかどうか問い合わせをします。標準

入力からの応答文字が y または Y で始まっていれば,既存のファイルを削除しリンクファイルを作成

します。それ以外の文字を応答したり,標準入力が使用できない場合は処理を中断します。

-f オプションと同時に指定した場合,-i オプションの指定が有効となります。

ただし,環境変数 ADSH_CMDLN_OPT_I_F に LAST を指定することで最後に指定したオプションを

有効にできます。

-L

--logical

引数リンク先パス名にシンボリックリンクを指定した場合,シンボリックリンクをたどり,リンク先が

示すファイルの実体に対するハードリンクを作成します。ただし,リンク先が示すファイルが存在しな

い場合は作成しません。

このオプションはハードリンク作成時に有効なオプションです。-s オプションと同時に指定した場合は

指定を無視します。

-L オプション,-P オプションのどちらも指定しなかった場合,-L オプションが指定されたものとしま

す。

-L オプションと-P オプションを同時に指定した場合,最後に指定したオプションが有効となります。

-n

--no-dereference

意味を持たないオプションです。指定を無視します。

--follow={yes | no}

このオプションは,引数ターゲットに,ディレクトリに対するシンボリックリンクを指定したときの動

作を選択するオプションです。 yes を指定した場合,引数ターゲットに指定したディレクトリに対するシンボリックリンクをたどり,

リンク先のディレクトリにリンクファイルを作成します。 no を指定した場合,引数ターゲットに指定したディレクトリに対するシンボリックリンクをたどらず,

リンクファイル名として扱います。

--follow オプションの指定がない場合は,yes が指定されたものとします。

-P

--physical

• Windows,Linux,Solaris の場合

引数リンク先パス名にシンボリックリンクを指定した場合,シンボリックリンクをたどらず,シン

ボリックリンク自身のハードリンクを作成します。

このオプションはハードリンク作成時に有効なオプションです。-s オプションと同時に指定した場

合は指定を無視します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

852

-L オプション,-P オプションのどちらも指定をしなかった場合,-L オプションが指定されたもの

とします。

-L オプションと-P オプションを同時に指定した場合,最後に指定したオプションが有効となります。

• AIX,HP-UX の場合

指定を無視し,-L オプションを指定した場合と同じ動作となります。

-s

--symbolic

引数リンク先パス名に指定したファイル,またはディレクトリに対してシンボリックリンクを作成しま

す。

-s オプションの指定がない場合はハードリンクを作成します。ただし,次のハードリンクは作成できま

せん。

• 引数リンク先パス名に指定した対象が存在しない

• ディレクトリに対するハードリンク

• UNIX の場合:異なるファイルシステムのファイル

• Windows の場合:異なるドライブレターのファイル

-s オプションの指定がある場合はシンボリックリンクを作成します。

UNIX の場合

引数リンク先パス名に指定した対象の有無にかかわらず作成できます。

Windows

引数リンク先パス名に指定した対象が存在しない場合,作成できません。引数リンク先パス名に指

定した対象が存在しない状態でシンボリックリンクを作成する場合は--no-exist-directory オプショ

ン,または --no-exist-file オプションを指定してください。

作成したハードリンクはリンク先のアクセス権限を引き継ぎます。

作成したシンボリックリンクのアクセス権限は次のとおりです。

• UNIX の場合:全ユーザーに対してフルコントロール

• Windows:作成するディレクトリのアクセス権限を継承した上で,Everyone にフルコントロール

-t ターゲットディレクトリ名

--target-directory=ターゲットディレクトリ名

リンクファイルを作成するディレクトリを指定します。次のどれかの場合,エラー終了します。

• -T オプションと同時に指定した。

• ターゲットディレクトリ名にディレクトリ,またはディレクトリに対するシンボリックリンクのど

ちらでもないパスを指定した。

• 存在しないディレクトリをターゲットディレクトリ名に指定した。

8. 運用時に使用するコマンド

JP1/Advanced Shell

853

• このオプションを複数指定した。

-T

--no-target-directory

引数ターゲットに指定したディレクトリに対するシンボリックリンクをたどらず,リンクファイル名と

して扱います。

次のどちらかを満たす場合,エラー終了します。

• 引数ターゲットに指定した内容と同名のディレクトリが存在した。

• -t オプションと同時に指定した。

-v

--verbose

引数リンク先パス名と,作成するリンクファイルを標準出力に出力します。出力形式は次のとおりです。

• ハードリンク作成時

`引数リンク先パス名' => `作成するリンクファイル'

• シンボリックリンク作成時

`引数リンク先パス名' -> `作成するリンクファイル'

--no-exist-directory

Windows の場合

このオプションを指定すると,シンボリックリンク作成時に,引数リンク先パス名に指定したファ

イル,ディレクトリが存在しない場合,ディレクトリに対するシンボリックリンクを作成します。

シンボリックリンクが指すディレクトリが存在しない状態で,ディレクトリに対するシンボリック

リンクを先行して作成したい場合は,このオプションを指定してください。

なお,次のどちらかを満たす場合,このオプションの指定を無視します。

・引数リンク先パス名に指定したファイル,ディレクトリが存在する。

・-s オプションが指定されていない。

--no-exist-directory オプションと --no-exist-file オプションを同時に指定した場合は,最後に指定

したオプションが有効になります。

UNIX の場合

指定を無視します。

--no-exist-file

Windows の場合

このオプションを指定すると,シンボリックリンク作成時に,引数リンク先パス名に指定したファ

イル,ディレクトリが存在しない場合,ファイルに対するシンボリックリンクを作成します。

シンボリックリンクが指すファイルが存在しない状態で,ファイルに対するシンボリックリンクを

先行して作成したい場合は,このオプションを指定してください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

854

なお,次のどちらかを満たす場合,このオプションの指定を無視します。

・引数リンク先パス名に指定したファイル,ディレクトリが存在する。

・-s オプションが指定されていない。

--no-exist-file オプションと--no-exist-directory オプションを同時に指定した場合は,最後に指定

したオプションが有効になります。

UNIX の場合

指定を無視します。

リンク先パス名

作成するリンクファイルが指すファイルパス名,またはディレクトリパス名を指定します。リンク先パ

ス名は複数指定できます。リンク先パス名を 2 つ以上指定する場合は,引数ターゲットにディレクトリ

を指定する,または形式 2 によって-t オプションでディレクトリを指定してください。

ターゲット

作成するリンクファイル名,またはリンクファイルを作成するディレクトリ名を指定します。

リンクファイル名を指定した場合,指定したファイル名でリンクファイルを作成します。リンクファイ

ルを作成するディレクトリ名を指定した場合,引数リンク先パス名に指定したファイルと同じ名前のリ

ンクファイルを,指定したディレクトリ配下に作成します。

ターゲットの指定を省略した場合,カレントディレクトリにリンクファイルを作成します。

ディレクトリに対するシンボリックリンクを指定した場合,シンボリックリンクをたどり,リンク先の

ディレクトリにシンボリックリンクを作成します。ただし,次のどれかを指定することでシンボリック

リンクをたどらないでリンクファイル名として扱うことができます。

• -T オプション

• --follow オプションに no を指定する

• 環境変数 ADSH_CMDLN_FOLLOW に NO を指定する

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

プラットフォーム共通の注意事項

• 1 つのファイルに対して複数のハードリンクを作成できます。しかし,OS,またはファイルシステム

によって,1 つのファイルに対して作成できるハードリンク数には上限があります。そのため,上限を

超えた場合,ハードリンクの作成に失敗します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

855

• 引数リンク先パス名,または引数ターゲットに指定したシンボリックリンクをたどる際にシンボリック

リンクのネストの回数が OS の上限を超えるとエラーとなり,シンボリックリンクの作成に失敗します。

• 引数リンク先パス名,引数ターゲットに指定するファイルパスには,実行する OS に合わせたディレク

トリ区切り文字を指定してください。ディレクトリ区切り文字の指定を誤った場合,リンク先をたどる

ことができない場合があります。JP1/Advanced Shell で使用できるディレクトリ区切り文字の詳細は

「 2.2.3(1) JP1/Advanced Shell で使用するファイルの一覧 」の「ファイルとパスの指定に関する注意

事項」に関する説明を参照してください。

• 引数リンク先パス名を相対パスで指定すると,シンボリックリンクは自身が存在するディレクトリを起

点として,その位置からリンク先を指すことになります。そのため,カレントディレクトリとシンボ

リックリンクを作成するディレクトリが異なる場合は注意してください。例を次に示します。

このため,カレントディレクトリとシンボリックリンクを作成するディレクトリが異なる場合は,引数

リンク先パス名を絶対パスで指定するか,シンボリックリンクを作成するディレクトリからの相対パス

で指定してください。

8. 運用時に使用するコマンド

JP1/Advanced Shell

856

• 作成するリンクファイルと同名のファイル,ディレクトリが存在する環境で,-f オプションを指定,ま

たは-i オプションの応答で y,または Y を返した場合,ln コマンドはリンクファイルを作成するディレ

クトリに一時ファイルを作成します。このため,ln コマンドの実行を中断すると,一時ファイルが残

る場合があります。この場合は手動で削除してください。

• リンクファイルを作成するディレクトリパス名の長さによっては一時ファイルの作成に失敗することが

あります。その際は,既に存在する同名のファイルを削除,または名称を変更するか,作成するリンク

ファイル名を変更してください。

• 引数ターゲットにディレクトリに対するシンボリックリンクを指定した場合の解釈は,-T オプション,-follow オプション,環境変数 ADSH_CMDLN_FOLLOW の指定によって切り替えられます。同時に

指定した場合の優先順位は-T オプション,--follow オプション,環境変数 ADSH_CMDLN_FOLLOW

の順となります。

• -i オプションと-f オプションを同時に指定した場合,常に-i オプションの指定が有効になります。ただ

し,環境変数 ADSH_CMDLN_OPT_I_F に LAST を指定することで最後に指定したオプションを有効

にすることができます。

UNIX 版限定の注意事項

次に対するハードリンクを作成することはできません。

• ディレクトリ

• 存在しないファイル

• 異なるファイルシステムのファイル

Windows 版限定の注意事項

• 次に対するハードリンクを作成することはできません。

• ディレクトリ

• 存在しないファイル

• 異なるドライブレターのファイル

• NTFS 以外のファイルシステムにリンクファイルを作成できません。

• ln コマンドで作成したシンボリックリンクには,作成したディレクトリのアクセス権限を継承した上

で,Everyone にフルコントロールのアクセス権限を付加します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

857

• 実行ファイルに対してハードリンク,またはシンボリックリンクを作成する場合は,拡張子「.bat」,

「.com」,「.cmd」,または「.exe」を付加してください。また,ジョブ定義スクリプト内にも拡張子を

付加したリンクファイル名を記述してください。

• 引数リンク先パス名に存在しないファイル,またはディレクトリを指定してシンボリックリンクを作成

しようとすると,エラーとなりシンボリックリンクは作成されません。存在しないファイル,または

ディレクトリに対してシンボリックリンクを作成する場合は,--no-exist-directory, --no-exist-file オ

プションを指定してください。

• 引数ターゲット,またはターゲットディレクトリには UNC 形式を指定できません。指定した場合はエ

ラー終了します。また,引数リンク先パス名に UNC 形式を指定して,ハードリンクを作成するとエ

ラー終了します。

• -f オプション指定時,または-f オプションを指定して y,Y を応答した場合であっても,すでに存在す

るファイルのアクセス権限によっては削除できないで,新しいリンクファイルの作成に失敗する場合が

あります。

• シンボリックリンク作成時にフルコントロールの割り当てに失敗した場合,不当なシンボリックリンク

が残る場合があります。

• ファイルシステムの保護を目的とした製品をインストールしている環境では,シンボリックリンクを使

用できない場合があります。ファイルシステムの保護を目的とした製品をインストールしている環境

で,このコマンドを使用した場合,「Failed to rename a temporary file 」というメッセージを出力

し,エラー終了することがあります。また,このメッセージを出力した場合,一時ファイルが残ること

があります。この場合,JP1/Advanced Shell が提供する rm コマンドなどを使用して一時ファイルを

削除し,シンボリックリンクを再作成してください。

使用例

ファイルへのハードリンクを作成します。

C:\TEMP>%ADSH_OSCMD_DIR%ln test.txt hlink.txt

C:\TEMP>%ADSH_OSCMD_DIR%ls -l total 714

-rw------- 2 Administrators 357 Jun 01 15:05 hlink.txt

-rw------- 2 Administrators 357 Jun 01 15:05 test.txt

引数ターゲットを省略してファイルへのハードリンクを作成します。

C:\TEMP>%ADSH_OSCMD_DIR%ln testdir\new.txt

C:\TEMP>%ADSH_OSCMD_DIR%ls -l total 3572

-rw------- 2 Administrators 3572 Jun 04 11:19 new.txt

drwx------ 1 Administrators Jun 04 11:19 testdir

C:\TEMP>%ADSH_OSCMD_DIR%ls -l testdir total 3572

-rw------- 2 70247321 3572 Jun 04 11:19 new.txt

8. 運用時に使用するコマンド

JP1/Advanced Shell

858

ファイルへのシンボリックリンクを作成します。

C:\TEMP>%ADSH_OSCMD_DIR%ln -s test.txt slink.txt

C:\TEMP>%ADSH_OSCMD_DIR%ls -l total 357 lrw------- 1 Administrators 0 Jun 01 15:07 slink.txt -> test.txt

-rw------- 1 Administrators 357 Jun 01 15:05 test.txt

ディレクトリへのシンボリックリンクを作成します。

C:\TEMP>%ADSH_OSCMD_DIR%ln -s testdir slinkdir

C:\TEMP>%ADSH_OSCMD_DIR%ls -l total 0 lrw------- 1 Administrators 0 Jun 01 15:08 slinkdir -> testdir drwx------ 1 Administrators Jun 01 15:05 testdir

オプションエラーのメッセージを表示します。このメッセージは,コマンドを実行するプラットフォーム

によって異なる場合があります。Windows の例を次に示します。

C:\TEMP>%ADSH_OSCMD_DIR%ln -z ln: illegal option -- z usage: ln [-f] [-i] [-L] [-n] [-P] [-s] [-T] [-v] [--follow={yes | no}]

[--no-exist-directory] [--no-exist-file] linkpath ... [target]

ln [-f] [-i] [-L] [-n] [-P] [-s] [-v] [--follow={yes | no}]

[--no-exist-directory] [--no-exist-file] -t target_directory linkpath ...

8.4.21 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 文字は,対象の種類として次の内容が表示されます。

-:通常ファイル

8. 運用時に使用するコマンド

JP1/Advanced Shell

859

b:ブロック型スペシャルファイル c:キャラクタ型スペシャルファイル d:ディレクトリ l:シンボリックリンク p:FIFO s:ソケット

• 以降の 9 文字は,3 文字ごとの 3 つのセットとして解釈され,所有者,グループ,その他のユーザーの

パーミッションを表示します。Windows の場合は所有者だけのパーミッションを表示します。

権限 パーミッション

内の順序

1 つ目

2 つ目

3 つ目

4 つ目

5 つ目

6 つ目

7 つ目

8 つ目

9 つ目 t x r w

T s

S w x r

S x s r w

表示される

文字

所有者による読み取り

所有者による書き込み

所有者による実行

所有者によるセットユーザー ID またはセットグループ ID/実行

所有者によるセットユーザー ID またはセットグループ ID/非実行

グループによる読み取り

グループによる書き込み

グループによる実行

グループによるセットユーザー ID またはセットグループ ID/実行

グループによるセットユーザー ID またはセットグループ ID/非実行

その他のユーザーによる読み取り

その他のユーザーによる書き込み

その他のユーザーによる実行

その他のユーザーによるスティッキービット/実行

その他のユーザーによるスティッキービット/非実行 r

-

文字 w

注※

表示される文字の意味は次のとおりです。

意味

対応するパーミッションが与えられていない

Windows の場合,ファイルまたはディレクトリが存在する

UNIX の場合,読み取り権限が与えられている

Windows の場合,読み取り専用属性が設定されていない

UNIX の場合,書き込み権限が与えられている

8. 運用時に使用するコマンド

JP1/Advanced Shell

860

t

T s

S

文字 x

意味

Windows の場合,次のどれかに該当する

• 拡張子が「.com」,「.exe」,「.cmd」または「.bat」である

• ディレクトリである

UNIX の場合,実行権限が与えられている

セットユーザー ID またはセットグループ ID が与えられていて,実行権限が与えられている【UNIX 限定】

セットユーザー ID またはセットグループ ID が与えられていて,実行権限が与えられていない【UNIX 限定】

スティッキービットが与えられていて,実行権限が与えられている【UNIX 限定】

スティッキービットが与えられていて,実行権限が与えられていない【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

8. 運用時に使用するコマンド

JP1/Advanced Shell

861

--time=status

ソート(-t オプション)やリスト出力(-g オプション,-l オプション,-n オプション,--full-time オ

プション)を指定した場合,ファイルの最終修正日時ではなく,ファイル情報の最終変更日時を使いま

す。

Windows の場合,指定が無視されます。

-d

--directory

ディレクトリの内容を表示しないで,ディレクトリ名を出力します。

Windows の場合,このオプションを指定して,パス名に末尾がディレクトリ区切り文字のディレクト

リへのシンボリックリンクを指定しても末尾のディレクトリ区切り文字が無視されます。シンボリック

リンクのリンク先のディレクトリの内容を出力したい場合は,-L オプションと同時に指定してください。

-F

--classify

--indicator-style=classify

ディレクトリ名の後ろに「/」,実行可能ファイルの後ろに「

*

」,シンボリックリンクの後ろに「@」,

FIFO 名の後ろに「

|

」,ソケットの後ろに「=」を出力します。Windows の場合,指定が無視されます。

-f

--sort=none

ソートをしないで出力します。

-g

ロングフォーマットで出力しますが,所有者は出力しません。

Windows の場合,このオプションを指定して,パス名に末尾がディレクトリ区切り文字のディレクト

リへのシンボリックリンクを指定しても末尾のディレクトリ区切り文字が無視されます。シンボリック

リンクのリンク先のディレクトリの内容を出力したい場合は,-L オプションと同時に指定してください。

-h

--human-readable

ロングフォーマット使用時に,ファイルサイズを 2 のべき乗で割って小数点第 2 位を四捨五入した値

をファイルサイズとして出力します。ファイルサイズには,サイズ文字(M:1048576,K:1024)

が付加されます。

ディレクトリ内にスペシャルファイルが存在する場合,-h オプションは無視されます。

-i

--inode

UNIX の場合,ファイルごとに inode 番号を出力します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

862

Windows の場合,常に 0 を出力します。

-k

UNIX の場合,-l オプション,-g オプション,-s オプションおよび--full-time オプションで出力する

ディレクトリの合計ブロック数と,-s オプションで表示するファイルサイズを KB 単位で出力します。

Windows の場合,-s オプションで表示するファイルサイズを KB 単位で出力します。

-L

--dereference

シンボリックリンクではなく,参照しているファイルの情報を出力します。

-l

--format=long

--format=verbose

次の項目をロングフォーマットで出力します。日時を完全な形式で出力するには--full-time オプション

を使用してください。

• UNIX の場合

アクセス権,リンク数,所有者名,グループ名,サイズ,最終修正日時,ファイル名またはディレ

クトリ名。ただし,表示対象がディレクトリの場合は,「.」や「..」も含めて,そのディレクトリ直

下に存在するディレクトリの総数を表示します。

ファイルがシンボリックリンクの場合は,リンク先のパス名を「->」のあとに表示します。

• Windows の場合

ファイル所有者のアクセス権,リンク数,所有者名,サイズ(ディレクトリの場合は表示しません),

最終修正日時,ファイル名またはディレクトリ名。

ファイルがシンボリックリンクの場合は,リンク先のパス名を「->」のあとに表示します。

このオプションを指定して,パス名に末尾がディレクトリ区切り文字のディレクトリへのシンボリッ

クリンクを指定しても末尾のディレクトリ区切り文字が無視されます。シンボリックリンクのリン

ク先のディレクトリの内容を出力したい場合は,-L オプションと同時に指定してください。

-m

--format=commas

ファイル名をコンマ(,)で区切って出力します。

-n

--numeric-uid-gid

• UNIX の場合

ユーザー名,グループ名の代わりにユーザー ID,グループ ID を出力します。

• Windows の場合

8. 運用時に使用するコマンド

JP1/Advanced Shell

863

ユーザー ID に 0 を出力します。また,グループ ID は出力しません。

このオプションを指定して,パス名に末尾がディレクトリ区切り文字のディレクトリへのシンボリッ

クリンクを指定しても末尾のディレクトリ区切り文字が無視されます。シンボリックリンクのリン

ク先のディレクトリの内容を出力したい場合は,-L オプションと同時に指定してください。

-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

ファイルの最終修正日時でソートします。最新の修正が先頭になります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

864

-u

--time=atime

--time=access

--time=use

ソート(-t オプション)およびリスト表示(-g オプション,-l オプション,-n オプション,--full-time

オプション)の場合,ファイルの最終修正日時ではなくファイルの最終アクセス日時を使用します。

Windows の場合,指定が無視されます。

-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:日

8. 運用時に使用するコマンド

JP1/Advanced Shell

865

hh:時 mm:分 ss:秒 nnnnnnnnn:1 秒未満の日時。常に 000000000 と出力します。

+/-hhmm:タイムゾーン。UTC からの時差を示します。

Windows の場合,このオプションを指定して,パス名に末尾がディレクトリ区切り文字のディレ

クトリへのシンボリックリンクを指定しても末尾のディレクトリ区切り文字が無視されます。シン

ボリックリンクのリンク先のディレクトリの内容を出力したい場合は,-L オプションと同時に指定

してください。

--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 オプションを指定しても無視されま

す。

8. 運用時に使用するコマンド

JP1/Advanced Shell

866

ファイル日時には次の値を指定できます。 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 の場合,ユーザー名が取得できないときは「...」と表示します。

• Windows の場合,ディレクトリ内のファイルサイズ合計はバイト単位で表示します。

• Windows 上で隠しファイル属性の場合も表示対象となります。

• このコマンドは,次の環境変数が有効になります。

• 環境変数 COLUMNS

-C オプションの指定による,複数列で出力したときの 1 行当たりの出力幅を定義します。

• 環境変数 BLOCKSIZE

UNIX の場合,-s オプションの指定で表示する,ブロック数の 1 ブロック当たりのサイズを定義し

ます。環境変数 BLOCKSIZE には 512 から 1GB(1024×1024×1024)まで指定できます。範囲

8. 運用時に使用するコマンド

JP1/Advanced Shell

867

外の値を指定した場合は次のように処理し,警告メッセージを標準エラー出力に出力して,後続の

処理を続行します。

・環境変数 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:

\

)の情報を表示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

868

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

HARDLINK.txt TestLog test_result.txt

SYMLINK.txt test_data.txt uap.exe

• -1 オプションを指定して,1 列で表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -1

HARDLINK.txt

SYMLINK.txt

TestLog test_data.txt

test_result.txt

uap.exe

• -A オプションを指定して,「.」および「..」を除いたすべてのエントリを表示します。Windows の場

合は,-A オプションの指定に関係なく「.」で始まるエントリを表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -A

HARDLINK.txt TestLog test_result.txt

SYMLINK.txt test_data.txt uap.exe

• -a オプションを指定して,「.」で始まるディレクトリを含めて表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -a

. SYMLINK.txt test_result.txt

.. TestLog uap.exe

HARDLINK.txt test_data.txt

• -C オプションを指定し,縦方向にソートして複数列で表示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

869

C:\TEMP>%ADSH_OSCMD_DIR%\ls -C

HARDLINK.txt TestLog test_result.txt

SYMLINK.txt test_data.txt uap.exe

• -f オプションを指定して,ソートをしないで表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -f

HARDLINK.txt TestLog test_result.txt

SYMLINK.txt test_data.txt uap.exe

• -g オプションを指定し,所有者表示なしのロングフォーマットで表示します。Windows の場合はグ

ループ名を表示しません。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -g total 337744

-rw------- 2 102000 Jul 06 16:26 HARDLINK.txt

lrw------- 1 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

drwx------ 1 Jul 06 16:58 TestLog

-rw------- 1 102000 Jul 06 16:20 test_data.txt

-rw------- 2 102000 Jul 06 16:26 test_result.txt

-rwx------ 1 31744 Jun 12 16:23 uap.exe

• -h オプションをロングフォーマットと共に指定して,ファイルサイズにサイズ文字を付加します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -lh total 337744

-rw------- 2 Administrators 99.6K Jul 06 16:26 HARDLINK.txt

lrw------- 1 Administrators 0B Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

drwx------ 1 Administrators Jul 06 16:58 TestLog

-rw------- 1 Administrators 99.6K Jul 06 16:20 test_data.txt

-rw------- 2 Administrators 99.6K Jul 06 16:26 test_result.txt

-rwx------ 1 Administrators 31.0K Jun 12 16:23 uap.exe

• -i オプションを指定して,ファイルごとに inode 番号を表示します。Windows の場合は inode 番号

に 0 を表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -i

0 HARDLINK.txt 0 TestLog 0 test_result.txt

0 SYMLINK.txt 0 test_data.txt 0 uap.exe

C:\TEMP>%ADSH_OSCMD_DIR%\ls -il total 337744

0 -rw------- 2 Administrators 102000 Jul 06 16:26 HARDLINK.txt

0 lrw------- 1 Administrators 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

0 drwx------ 1 Administrators Jul 06 16:58 TestLog

0 -rw------- 1 Administrators 102000 Jul 06 16:20 test_data.txt

0 -rw------- 2 Administrators 102000 Jul 06 16:26 test_result.txt

0 -rwx------ 1 Administrators 31744 Jun 12 16:23 uap.exe

• -l オプションを指定して,ロングフォーマットで表示します。Windows の場合は,所有者のアクセス

権限だけ表示します。グループ名,ディレクトリサイズは表示しません。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -l total 337744

-rw------- 2 Administrators 102000 Jul 06 16:26 HARDLINK.txt

lrw------- 1 Administrators 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

8. 運用時に使用するコマンド

JP1/Advanced Shell

870

drwx------ 1 Administrators Jul 06 16:58 TestLog

-rw------- 1 Administrators 102000 Jul 06 16:20 test_data.txt

-rw------- 2 Administrators 102000 Jul 06 16:26 test_result.txt

-rwx------ 1 Administrators 31744 Jun 12 16:23 uap.exe

• -l オプションのリスト表示で-c オプションを指定して,ファイルの最終修正日時ではなくファイル情報

の最終変更日時を表示します。Windows の場合は,-c オプションの指定を無視してファイルの最終修

正日時を表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -lc total 337744

-rw------- 2 Administrators 102000 Jul 06 16:26 HARDLINK.txt

lrw------- 1 Administrators 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

drwx------ 1 Administrators Jul 06 16:58 TestLog

-rw------- 1 Administrators 102000 Jul 06 16:20 test_data.txt

-rw------- 2 Administrators 102000 Jul 06 16:26 test_result.txt

-rwx------ 1 Administrators 31744 Jun 12 16:23 uap.exe

• -l オプションのリスト表示で-u オプションを指定して,ファイルの最終修正日時ではなくファイルの

最終アクセス日時を表示します。Windows の場合は,-u オプションの指定を無視してファイルの最

終修正日時を表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -lu total 337744

-rw------- 2 Administrators 102000 Jul 06 16:26 HARDLINK.txt

lrw------- 1 Administrators 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

drwx------ 1 Administrators Jul 06 16:58 TestLog

-rw------- 1 Administrators 102000 Jul 06 16:20 test_data.txt

-rw------- 2 Administrators 102000 Jul 06 16:26 test_result.txt

-rwx------ 1 Administrators 31744 Jun 12 16:23 uap.exe

• -m オプションを指定して,ストリーム出力形式でコンマで区切って表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -m

HARDLINK.txt, SYMLINK.txt, TestLog, test_data.txt, test_result.txt, uap.exe

• -n オプションを指定して,ユーザー名,グループ名の代わりにユーザー ID,グループ ID を表示しま

す。Windows の場合はユーザー ID に 0 を表示します。また,グループ ID を表示しません。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -n total 337744

-rw------- 2 0 102000 Jul 06 16:26 HARDLINK.txt

lrw------- 1 0 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

drwx------ 1 0 Jul 06 16:58 TestLog

-rw------- 1 0 102000 Jul 06 16:20 test_data.txt

-rw------- 2 0 102000 Jul 06 16:26 test_result.txt

-rwx------ 1 0 31744 Jun 12 16:23 uap.exe

• -p オプションを指定して,ディレクトリの後ろに「/」を表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -p

HARDLINK.txt TestLog/ test_result.txt

SYMLINK.txt test_data.txt uap.exe

C:\TEMP>%ADSH_OSCMD_DIR%\ls -alp

8. 運用時に使用するコマンド

JP1/Advanced Shell

871

total 337744 drwx------ 1 Administrators Jul 06 16:29 ./ drwx------ 1 TrustedInstaller Jan 01 1980 ../

-rw------- 2 Administrators 102000 Jul 06 16:26 HARDLINK.txt

lrw------- 1 Administrators 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

drwx------ 1 Administrators Jul 06 16:58 TestLog/

-rw------- 1 Administrators 102000 Jul 06 16:20 test_data.txt

-rw------- 2 Administrators 102000 Jul 06 16:26 test_result.txt

-rwx------ 1 Administrators 31744 Jun 12 16:23 uap.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 uap.exe test_data.txt SYMLINK.txt

test_result.txt TestLog HARDLINK.txt

C:\TEMP>%ADSH_OSCMD_DIR%\ls -rl total 337744

-rwx------ 1 Administrators 31744 Jun 12 16:23 uap.exe

-rw------- 2 Administrators 102000 Jul 06 16:26 test_result.txt

-rw------- 1 Administrators 102000 Jul 06 16:20 test_data.txt

drwx------ 1 Administrators Jul 06 16:58 TestLog lrw------- 1 Administrators 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

-rw------- 2 Administrators 102000 Jul 06 16:26 HARDLINK.txt

• -S オプションを指定して,サイズでソートして最も大きいファイルを先頭に表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -S

HARDLINK.txt test_result.txt SYMLINK.txt

test_data.txt uap.exe TestLog

C:\TEMP>%ADSH_OSCMD_DIR%\ls -lS total 337744

-rw------- 2 Administrators 102000 Jul 06 16:26 HARDLINK.txt

-rw------- 1 Administrators 102000 Jul 06 16:20 test_data.txt

-rw------- 2 Administrators 102000 Jul 06 16:26 test_result.txt

-rwx------ 1 Administrators 31744 Jun 12 16:23 uap.exe

8. 運用時に使用するコマンド

JP1/Advanced Shell

872

lrw------- 1 Administrators 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

drwx------ 1 Administrators Jul 06 16:58 TestLog

• -s オプションを指定して,ファイルのブロック数を表示します。Windows の場合は 0 です。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -sl total 337744

0 -rw------- 2 Administrators 102000 Jul 06 16:26 HARDLINK.txt

0 lrw------- 1 Administrators 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

0 drwx------ 1 Administrators Jul 06 16:58 TestLog

0 -rw------- 1 Administrators 102000 Jul 06 16:20 test_data.txt

0 -rw------- 2 Administrators 102000 Jul 06 16:26 test_result.txt

0 -rwx------ 1 Administrators 31744 Jun 12 16:23 uap.exe

• -T オプションを指定して,月,日,時間,分,秒,年などの時間情報を表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -lT total 337744

-rw------- 2 Administrators 102000 Jul 06 16:26:40 2015 HARDLINK.txt

lrw------- 1 Administrators 0 Jul 06 16:27:11 2015 SYMLINK.txt -> .\test_data.txt

drwx------ 1 Administrators Jul 06 16:58:21 2015 TestLog

-rw------- 1 Administrators 102000 Jul 06 16:20:28 2015 test_data.txt

-rw------- 2 Administrators 102000 Jul 06 16:26:40 2015 test_result.txt

-rwx------ 1 Administrators 31744 Jun 12 16:23:18 2015 uap.exe

• -t オプションを指定して,ファイルの最終修正日時でソートします。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -t

TestLog HARDLINK.txt test_data.txt

SYMLINK.txt test_result.txt uap.exe

C:\TEMP>%ADSH_OSCMD_DIR%\ls -lt total 337744 drwx------ 1 Administrators Jul 06 16:58 TestLog lrw------- 1 Administrators 0 Jul 06 16:27 SYMLINK.txt -> .\test_data.txt

-rw------- 2 Administrators 102000 Jul 06 16:26 HARDLINK.txt

-rw------- 2 Administrators 102000 Jul 06 16:26 test_result.txt

-rw------- 1 Administrators 102000 Jul 06 16:20 test_data.txt

-rwx------ 1 Administrators 31744 Jun 12 16:23 uap.exe

• -x オプションを指定し,横方向にソートして複数列で表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\ls -x

HARDLINK.txt SYMLINK.txt TestLog test_data.txt test_result.txt uap.exe

• --full-time オプションを指定し,日時を完全な形式でロングフォーマット表示します。

C:\Program Files\HITACHI\JP1AS\JP1ASE\cmd>ls --full-time total 2638901

-rwx------ 1 SYSTEM 327168 2014-01-10 19:47:42.000000000 +0900 awk.exe

-rwx------ 1 SYSTEM 10240 2014-01-10 19:45:32.000000000 +0900 basename.exe

-rwx------ 1 SYSTEM 12800 2014-01-10 19:48:44.000000000 +0900 cat.exe

-rwx------ 1 SYSTEM 11264 2014-01-10 19:48:44.000000000 +0900 cmp.exe

-rwx------ 1 SYSTEM 19968 2014-01-10 19:48:40.000000000 +0900 cp.exe

-rwx------ 1 SYSTEM 14848 2014-01-10 19:48:04.000000000 +0900 cut.exe

-rwx------ 1 SYSTEM 10240 2014-01-10 19:48:36.000000000 +0900 date.exe

8. 運用時に使用するコマンド

JP1/Advanced Shell

873

-rwx------ 1 SYSTEM 237056 2014-01-10 19:48:14.000000000 +0900 diff.exe

-rwx------ 1 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 ...]

8.4.22 mkdir コマンド(ディレクトリを作成する)

形式 mkdir[-p][-m パーミッション]ディレクトリ ...

機能

ディレクトリを作成します。

引数

-p

必要に応じて,存在しない中間のディレクトリを作成します。

-m パーミッション

UNIX の場合,作成したディレクトリにパーミッションを設定します。umask 値は反映されません。

パーミッションは 8 進数の数値またはシンボルを指定します。

数値を指定した場合,8 進数以外または 8 進数の 07777(10 進数の 4095)より大きな値を指定する

とエラーとなります。

シンボルを指定した場合,何も指定されていない状態(数値表現での 0)に対して設定,追加および削

除をします。1 つまたは複数のシンボルで指定された結果が検索に使用されます。

シンボルは 3 つの部分から構成されます。次に示すシンボルを 1 つまたは複数指定します。複数指定

する場合は,コンマ(,)でシンボル間を区切ります。

指定できる値 シンボル内の

順序

1 つ目 アクセス権を設定する項目を指定します。複数同時に指定できます。指定できる項目を次に示します。省略

するとすべてのユーザーが仮定されます。

• u:所有者

• g:グループ

• o:その他

8. 運用時に使用するコマンド

JP1/Advanced Shell

874

シンボル内の

順序

1 つ目

2 つ目

3 つ目

指定できる値

• a:全ユーザー

モードに対する操作を指定します。1 つ目のシンボルで指定した項目に対して次の処理をします。

• =:アクセス権の設定(上書き)

• +:アクセス権の追加

• -:アクセス権の削除

設定,追加および削除する値は,3 つ目のシンボルで指定します。

3 つ目のシンボルに続けて 2 つ目および 3 つ目のシンボルを記述できます。このとき 3 つ目のシンボルは省

略できます。

設定するアクセス権を指定します。複数同時に指定できます。指定できる値を次に示します。

• r:読み取り

• w:書き込み

• x:実行

• s:実行時にユーザーまたはグループ ID を設定する

• t:スティッキービット

• u:モードに現在設定されている所有者のアクセス権

• g:モードに現在設定されているグループのアクセス権

• o:モードに現在設定されているその他のアクセス権

省略するとアクセス権を設定する項目を消去します。消去した値を 2 つ目のシンボルに従って設定,追加お

よび削除します。2 つ目で設定する追加および削除では,3 つ目で設定する値は変化しません。 s と t の指定は,1 つ目で o だけを指定した場合には無視されます。

シンボルの指定例を次の表に示します。

-perm の指

定値 u=x,g=w u=x,g=u u=x,=u u=x,u=w u=x,u+w ug=x u=rw u=r+x u=r=w

=x,u=

=

同等の数値指定 説明

300

110

600

500

120

110

111

200

200

011

000 u に対して x を設定し,g に対して w を設定しています。 u に対して x を設定し,g に対して u と同じ値を設定しています。 u に対して x を設定し,そのあと a(省略値)に u と同じ値を設定しています。 u に対して x を設定し,そのあと u に対して w を設定(上書き)しています。 u に対して x を設定し,そのあと u に対して w を追加しています。 u と g に対して x を設定しています。 u に対して r および w を設定しています。 u に対して r を設定し,x を追加しています。 u に対して r を設定し,さらに w を設定(上書き)しています。 a(省略値)に x を設定し,u の設定を消去しています。 a(省略値)を消去しています。

Windows の場合,指定は無視されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

875

ディレクトリ

作成するディレクトリ名を指定します。ディレクトリ名は複数指定できます。

終了コード

終了コード

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 ...

8.4.23 

mv

コマンド(ファイルまたはディレクトリを移動する)

形式 mv[-f][-i][-u] mv[-f][-i][-u]

移動元 移動先

移動元

...

移動先ディレクトリ

機能

ファイルまたはディレクトリを移動します。ファイル名またはディレクトリ名も変更できます。

引数

-f

--force

確認しないでパスを上書きします。

-i

オプションの前に指定すると無視されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

876

-i

--interactive

上書きする場合に確認します。標準入力から y

または

Y

を応答すると,上書きします。

-f

オプションの

前に指定すると無視されます。

-u

--update

ディレクトリ以外のファイルの移動で,移動先ファイルがすでに存在し,ファイルの最終修正日時が移

動元より新しい場合(同じ場合を含む),移動しません。ファイルの最終修正日時は,秒未満の値は切

り捨てて判定します。

移動元

移動するパス名を指定します。移動元には,複数のパス名を指定できます。

移動先

移動先のパス名を指定します。移動元,移動先にパス名を指定した場合,ファイル名またはディレクト

リ名を変更することもできます。

移動先ディレクトリ

移動先のディレクトリ名を指定します。移動元に複数のパス名を指定した場合,複数のファイルやディ

レクトリを移動できます。

終了コード

終了コード

0

1

以上

意味

正常終了

エラー終了

注意事項

-i

オプションと

-f

オプションは最後に指定されたオプションが有効となります。

• Windows の場合,オーバーライド時にオーナーのアクセス権以外は表示しません。

表示するパーミッションの詳細については,「 8.4.21 ls コマンド(ファイルまたはディレクトリの内

• Windows の場合,グループおよびモードは保持されません。

• Windows の場合,移動先のファイル名は移動元に指定したファイル名で作成されます。また,

Windows の場合,ファイル名の英大文字は英小文字に置き換えられます。例えば,移動対象のファイ

ル名が

A.txt

の場合, mv a.txt tmpdir

と実行すると, tmpdir

の中のファイル名は a.txt

になります。

• Windows の場合,ファイルをバイナリモードで入出力します。改行コードは変換しません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

877

• Windows の場合,移動先に移動元と同じ名称のファイルが存在する状態でファイルの移動をしようと

すると,実行する Windows 環境の状態によって「

Permission denied

」を出力してエラー終了するこ

とがあります。

• UNIX の場合, mv

コマンドでファイルおよびディレクトリを移動したとき,次の条件をすべて満たす

と,移動後のファイルおよびディレクトリの所有者は mv

コマンドの実行者になります。

• 一般ユーザーが mv

コマンドを実行した。

• 移動元ファイルの所有者が mv

コマンドの実行者と異なる。

• 移動元と移動先のファイルシステムが異なる。

また,次の情報は引き継がれません。

• 移動元ファイルに設定されていた setuid ビットと setgid ビットのアクセス権情報

• 移動元ディレクトリに設定されていた setuid ビット,setgid ビット,スティッキービットのアクセ

ス権情報

-u

オプション指定で,移動先が新しい(同じ場合を含む)ため移動しない場合は,エラーではな

く,正常終了します。

使用例

-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 [-fiu] source target

mv [-fiu] source ... directory

• ファイルがない場合のエラーメッセージを表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\mv file3.txt file4.txt

mv: file3.txt: No such file or directory

8.4.24 paste コマンド(複数のファイルを行単位で連結する)

形式 paste[-s][-d リスト][パス名 ...]

8. 運用時に使用するコマンド

JP1/Advanced Shell

878

機能

複数のファイルを行単位に連結して標準出力に出力します。ファイル内のすべての行を 1 行に結合してか

ら複数のファイルを連結することもできます。

引数

-s

ファイル内のすべての行を区切り文字によって結合して 1 つの行にします。

-s オプションを指定しない場合は,各ファイルの同じ行番号の行を区切り文字で結合します。

-d リスト

結合する行と行の間に挿入する区切り文字をリストに指定します。-d オプションを指定しない場合,

タブ文字が指定されたものとします。

スペースまたはタブを指定する場合は,"(ダブルクォーテーション)で囲んでください。

区切り文字には次の特殊文字も指定できます。

使用できる特殊文字 意味

\n

改行文字

\t

\\

\0

タブ文字

1 つのバックスラッシュ

文字

空文字列

備考

Windows の場合,[CR]+[LF]が改行文字となります。

UNIX の場合,[LF]が改行文字となります。

長さ 0 の文字列("")です。結合する行と行の間に区切り文字を挿入しま

せん。

(凡例)

−:該当なし

特殊文字を指定する場合,paste コマンドを実行するシェルによってはエスケープ文字として扱われる

ため,特殊文字をクォーテーション("または')で囲む必要があります。特殊文字以外の文字の直前に

\

」を指定した場合,「

\

」は無視され,「

\

」の直後の文字が区切り文字として使用されます。また,「

\

だけを指定した場合はエラーで終了します。

区切り文字は複数指定できます。区切り文字を複数指定した場合の動作を次に示します。

• 行を結合するたびに区切り文字を取り出して,行と行の間に挿入します。区切り文字は先頭の区切

り文字から順に取り出されます。

• -s オプションが指定されていない場合,結合した行を出力したときは,再び先頭の区切り文字から

順に取り出されます。

• -s オプションが指定されている場合,ファイル内のすべての行を結合して出力したときは,再び先

頭の区切り文字から順に取り出されます。

• 区切り文字を取り出すときに,-d オプションに指定した区切り文字を使い切っていた場合は再び先

頭の区切り文字から順に取り出されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

879

パス名

連結して出力するファイルのパス名を指定します。パス名を指定しない,またはパス名に「-」を指定

した場合は,標準入力から入力します。

パス名,および「-」は複数指定できます。パス名と「-」を混在して指定することもできます。

複数のファイルを指定した場合,オープンに失敗したファイルがあると次のように動作します。

• -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

8. 運用時に使用するコマンド

JP1/Advanced Shell

880

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.

1.

file1 , file2 , file3 , file4 の 1 行目の内容を結合して出力します。行と行の間にはタブ文字を挿入します。

2. 次の値をタブ文字によって結合し出力します。

• file1 の 2 行目の内容

• file2 の 2 行目は空行のため空文字列

• file3 の 2 行目の内容

• file4 はファイル終端のため空文字列

空文字列は長さ 0 の文字列であるため,実際には「 file1 の 2 行目の内容+タブ文字+タブ文字+ file3

の 2 行目の内容+タブ文字」が出力されます。

3. 次の値をタブ文字によって結合し出力します。

• file1 はファイル終端のため空文字列

• file2 の 3 行目の内容

• file3 の 3 行目の内容

• file4 はファイル終端のため空文字列

実際には「タブ文字+ file2 の 3 行目+タブ文字+ file3 の 3 行目+タブ文字」が出力されます。

4. 次の値をタブ文字によって結合し出力します。

• file1 はファイル終端のため空文字列

8. 運用時に使用するコマンド

JP1/Advanced Shell

881

• 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.

1.

file1 のすべての行を区切り文字で結合して出力します。

2.

file2 は空のファイルのため改行文字だけを出力します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

882

3.

file3 のすべての行を区切り文字で結合して出力します。

4.

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 -

行は次の順に結合されます。

1.

file1 から入力した行(標準入力から入力)

2.

file2 から入力した行

3.

file1 から入力した行(標準入力から入力)

このとき,次のように連結します。「→」は区切り文字のタブ文字を表します。 a001→b001→a002 1.

a003→b002→a004 2.

a005→b003→ 3.

→ b004→ 4.

1. 次の値をタブ文字によって結合し出力します。

・標準入力から入力した行の内容( file1 の 1 行目の内容)

・ file2 の 1 行目の内容

8. 運用時に使用するコマンド

JP1/Advanced Shell

883

・標準入力から入力した行の内容( file1 の 2 行目の内容)

2. 次の値をタブ文字によって結合し出力します。

・標準入力から入力した行の内容( file1 の 3 行目の内容)

・ file2 の 2 行目の内容

・標準入力から入力した行の内容( file1 の 4 行目の内容)

3. 次の値をタブ文字によって結合し出力します。

・標準入力から入力した行の内容( file1 の 5 行目の内容)

・ file2 の 3 行目の内容

・標準入力からは EOF を入力した(標準入力に出力するファイルが終端に到達している)ため空

文字列

4. 次の値をタブ文字によって結合し出力します。

・標準入力からは 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.

1. 標準入力から入力したすべての行( file1 のすべての行)を区切り文字で結合して出力します。

2.

file2 から入力したすべての行を区切り文字で結合して出力します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

884

終了コード

終了コード

0

1

2

3

意味

正常終了

エラー終了

• 引数に指定したファイルのうち,オープンに失敗したファイルがありました。

-s オプションが指定されていない場合は,ファイルは連結されません。

-s オプションが指定されている場合は,ファイルのオープン失敗時にエラーメッセージを出力し,

次に指定されているファイルを処理します。

エラー終了

• 不正なオプションを指定しました。

エラー終了

• メモリ不足が発生したなどの処理を続行できないエラーが発生しました。

注意事項

• paste コマンドはテキストファイルを対象としています。バイナリファイルからの入力やバイナリデー

タの出力は,動作を保証しません。

• -s オプションを指定しない場合,引数に指定した複数のファイルを同時にオープンします。UNIX の

場合,OS 全体で同時にオープンできるファイルの最大値,または ulimit でそのプロセスのファイル

ディスクリプタ数の最大値制限されているなどの OS の設定値によっては,ファイルをオープンすると

きにエラーが発生するおそれがあります。

使用例

• 複数のファイルを行単位に連結します。結合する行と行の間に挿入する区切り文字はタブ文字としま

す。出力結果の「→」はタブ文字を表します。

入力ファイル( file01 )の内容 a001 a002 a003

入力ファイル( file02 )の内容 b001 b002 b003

入力ファイル( file03 )の内容 c001 c002 c003

このときのコマンド指定と実行結果を次に示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

885

$ 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 )の内容

8. 運用時に使用するコマンド

JP1/Advanced Shell

886

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 )の内容

8. 運用時に使用するコマンド

JP1/Advanced Shell

887

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

注※

標準エラー出力に出力される内容

8.4.25 

printf

コマンド(書式の引数を書式に従って変換し,標準出力に出

力する)

形式 printf 書式 [ 書式の引数 ...]

8. 運用時に使用するコマンド

JP1/Advanced Shell

888

機能

書式の引数

書式

に従って変換し,標準出力に出力します。

引数

書式

書式

は,次の 3 種類の文字列で構成されます。

• 標準出力に出力する文字

• 変換指定

• エスケープ文字

変換指定は変換指定を示す

%

の後ろに,フラグ文字,最小フィールド幅,精度,変換指定子の順で指定しま

す。フラグ文字,最小フィールド幅,精度の指定は省略できます。

• 変換指定

%

変換指定を示します。

• フラグ文字列

変換指定を示す

%

の後ろに次のフラグ文字を指定できます。この項目は指定を省略できます。

フラグ文字

-

+

スペース

#

0

意味

変換の結果はフィールド内で左そろえになります。

このフラグ文字を指定していない場合,右そろえになります。

符号付き変換の結果に符号

+

,または

-

が付きます。

このフラグ文字を指定していない場合,変換の結果が負の値の時だけ

-

が付きます。

符号付き変換の結果で,正の数値の前にスペースが付きます。

+

フラグ文字と同時に指定した場合は,

+

フラグ文字が優先されます。

以下の変換指定子を指定した時に,変換の結果を別の形式で出力します。

• o

変換の場合,変換結果の先頭に

0

が付きます(変換の結果の

0

は除きます)。

• x

X

変換の場合,変換結果の先頭に

0x

または

0X

が付きます(変換の結果の

0

は除きます)。

• e

E

, f

, g

G

変換の場合,小数点を含まない値を指定しても,必ず小数点を付けて出力します。

• g

G

変換の場合,末尾の

0

は変換結果から削除されません。 d

, i

, o

, u

, x

X

, e

E

, f

, g

および

G

変換の場合,変換結果のフィールド内の左側のスペース

を 0 で埋めます。

-

フラグ文字,もしくは変換指定子 d

, i

, o

, u

, x

X

の精度と共に指定した場合は,

0

フラグ文字

は無視されます。

• 最小フィールド幅

最小フィールド幅を 10 進数で指定します。最小フィールド幅は

0

2147483647

の範囲で指定できます。

この項目は指定を省略できます。変換された値の文字数がフィールドよりも少ない場合,フィールドの

左側をスペースで埋めます。ただし,左そろえのフラグ文字が指定されている場合は右側をスペースで

8. 運用時に使用するコマンド

JP1/Advanced Shell

889

埋めます。変換結果がフィールド幅よりも広い場合,フィールドは変換結果が入る幅に広げられます。

アスタリスク(

*

)を指定した場合,

書式の引数

に指定した値を最小フィールド幅として使用します。

• 精度

精度は,ピリオド(

.

)とそれに続く 10 進数で指定します。UNIX の場合は

0

2147483647

の範囲で,

Windows の場合は

0

512

の範囲で指定できます。この項目は指定を省略できます。ピリオド(

.

)だけ

を指定した場合は

0

が指定されたと仮定します。 d

, i

, o

, u

, x

または

X

変換では,表示する最小の桁

数を指定します。 e

E

および f

変換では表示する小数点以下の桁数を指定します。 g

G

変換では最大

有効桁数を指定します。 s

変換では表示する文字列の最大バイト数を指定します。値の代わりにアスタ

リスク(

*

)を指定した場合, 書式の引数 に指定した値を使用します。

• 変換指定子

変換指定子 d

, i o u x

X e

E f g

G c

意味

符号付き 10 進数表記に変換します。

精度は表示する最小桁数を指定します。変換後の値が精度で指定した桁数に満たない場合は,値の先頭

0

が付きます。デフォルトの精度は

1

です。

精度に

0

を指定し,値

0

を変換した場合,空文字を出力します。

符号なし 8 進数表記に変換します。

精度は表示する最小桁数を指定します。変換後の値が精度で指定した桁数に満たない場合は,値の先頭

0

が付きます。デフォルトの精度は

1

です。

精度に

0

を指定し,値

0

を変換した場合,空文字を出力します。

符号なし 10 進数表記に変換します。

精度は表示する最小桁数を指定します。変換後の値が精度で指定した桁数に満たない場合は,値の先頭

0

が付きます。デフォルトの精度は

1

です。

精度に

0

を指定し,値

0

を変換した場合,空文字を出力します。

16 進数表記に変換します。 x

を指定した場合は小文字( abcdef

)で表記し,

X

を指定した場合は大文字

(

ABCDEF

)で表記します。

精度は表示する最小桁数を指定します。変換後の値が精度で指定した桁数に満たない場合は,

値の先頭に

0

が付きます。デフォルトの精度は

1

です。

精度に

0

を指定し,値

0

を変換した場合,空文字を出力します。

浮動小数点数を[-]d.dddde± dd[d]の 10 進数スタイルに変換します。 e

を指定した場合は小文字で表記し,

E

を指定した場合は大文字で表記します。

小数点の前は 1 桁です。また,小数点以下の桁数は,精度を指定していない場合は 6 桁,精度を指定し

た場合は指定した桁数です。また,精度に

0

を指定した場合,小数点以下は出力されません。

浮動小数点数を[-]dddd.dddd の 10 進数スタイルに変換します。

小数点の前は 1 桁以上表示されます。また,小数点以下の桁数は,精度を指定していない場合は 6 桁,

精度を指定した場合は指定した桁数です。

浮動小数点数をスタイル f

または e

E

の形式で表示します。

表示するスタイルは変換される値によって異なります。

表示する桁数は,精度を指定していない場合は 6 桁,精度を指定した場合は指定した桁数となります。

末尾の

0

は変換結果から削除されます。

書式の引数

の最初の 1 バイトを表示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

890

変換指定子 s

% b

意味

書式の引数 を文字列と解釈して表示します。

精度を指定していない場合は文字列すべてを表示し,精度を指定した場合は指定した値のバイト数分を

表示します。

ただし,OS の仕様で,精度を指定して出力する区切りがマルチバイト文字の途中の場合,出力するバ

イト数は指定値より少なくなることがあります。

%

を表示します。

フラグ文字,最小フィールド幅,精度の指定はできません。

書式の引数

を文字列と解釈して表示します。

文字列に含まれているエスケープ文字も文字列として解釈し,変換表示します。

ただし,

書式の引数

の文字列に

\c

が現れた場合は,それ以降の変換は表示されません。

フラグ文字,最小フィールド幅,精度の指定はできません。

• エスケープ文字

使用できるエスケープ文字を次の表に示します。

エスケープ文字

\a

\b

\f

\n

\r

\t

\v

\d

\dd

\ddd

\xhex

\\

\'

\"

意味

アラート文字(ベル)

バックスペース文字

フォームフィード文字(改ページ)

改行文字

復帰文字

タブ文字

垂直タブ文字

1〜3 桁の 8 進数で表された ASCII コードの文字(

0

7

)

1〜2 桁の 16 進数で表された ASCII コードの文字(

0

9

, a

〜 f

A

F

)

\

の表示

'

の表示

"

の表示

上記以外で文字列に

\

が含まれる場合は,

\

も出力されます。

書式の引数

書式

に指定した変換指定の数より,

書式の引数

に指定した数が多い場合は,

書式

を繰り返し使用しま

す。余分な

書式

0

または

NULL

で評価されます。

$ printf "%x %d " 123 456 789

7b 456 315 0

8. 運用時に使用するコマンド

JP1/Advanced Shell

891

• 数値変換の場合,

書式の引数

で文字の前にシングルクォーテーション(

'

),またはダブルクォーテーショ

ン(

"

)を付加すると ASCII コードで出力されます。

$ printf "%x %x" \'a \"b

61 62

• 変換指定子 d

, i

, o

, u

, x

X

書式の引数

に数値を指定する場合,8 進数(

0

指定),10 進数,16 進数

(

0x

指定)が指定できます。

$ printf "%d %d %d" 010 10 0x10

8 10 16

終了コード

終了コード

0

1

意味

正常終了。

エラー終了。

注意事項

• 改行文字は,Windows の場合は[CR]+[LF],Unix の場合は[LF]で出力されます。

• printf

コマンドは,変換指定子 d

, i

, o

, u

, x

X

を指定して出力および変換する場合,4 バイトの整

数で扱います。変換指定子 e

E

, f

, g

G

を指定して出力および変換する場合は倍精度浮動小数点数

(8 バイト)として扱います。このため,変換結果に誤差が発生します。この誤差は OS に依存します。

使用例

• フラグ文字に

#0

,最小フィールド幅に

10

を指定して,16 数変換した内容を出力します。

$ ./printf "%#010x\n" 123

0x0000007b

• フラグ文字に

#+

を指定して 10 進数変換した内容を出力します。

$ ./printf "%#+d\n" 123

+123

• 精度に

8

を指定して浮動小数点を f 形式に変換した内容を出力します。

$ ./printf "%.8f\n" 123.456

123.45600000

• 指定した浮動小数点を e 形式に変換した内容を出力します。

$ ./printf "%e\n" 123.456

1.234560e+02

8. 運用時に使用するコマンド

JP1/Advanced Shell

892

• 文字列 abcdef

のうち,1 バイト分を出力します。

$ ./printf "%c\n" abcdef a

• 精度に

3

を指定し,文字列 abcdef

を出力します。

$ ./printf "%.3s\n" abcdef abc

書式

にエスケープ文字(

\t

)を指定して,

書式の引数

に指定された内容を出力します。

$ ./printf "%s %d\txyz\n" abc 123 abc 123 xyz

• フラグ文字に

0

,精度に

*

(アスタリスク)を指定して出力します。

この場合,

*

(アスタリスク)は

5

に置き換えられます。

$ ./printf "%0*d" 5 123

00123

8.4.26 rm コマンド(ファイルまたはディレクトリを削除する)

形式 rm[-d][-f][-i][-R][-r]パス名 ...

機能

ファイルまたはディレクトリを削除します。

引数

-d

ファイルまたはディレクトリを削除します。ディレクトリの場合,ディレクトリごと削除します。

-f

ファイルを削除します。存在しないファイルは無視されます。削除するかどうかは問い合わせません。i オプションの前に指定すると無視されます。

-i

ファイルを削除する前に確認します。標準入力から y または Y を応答すると削除します。-f オプショ

ンの前に指定すると無視されます。

-R

|

-r

再帰的にディレクトリツリーを削除します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

893

パス名

削除するパス名を指定します。複数指定できます。

終了コード

終了コード

0

1 以上

意味

正常終了

• 指定したファイルやディレクトリの削除に成功しました。

• -f オプションを指定した場合は,指定したファイルのうち,存在するファイルの削除に成功しま

した。

エラー終了

注意事項

• Windows の場合,write 権限がなく削除を確認するときは,オーナーのアクセス権以外は表示しません。

表示するパーミッションの詳細については,「 ls コマンド(ファイルまたはディレクトリの内容を表示

• -f オプションおよび-i オプションは最後に指定したオプションが有効となります。

• rm コマンドの引数には削除する権限が割り当たっているファイル,ディレクトリを指定してください。

削除する権限が割り当たっていないファイル,ディレクトリを指定すると削除に失敗する場合がありま

す。【Windows 版】

使用例

• -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

の例を次に示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

894

C:\TEMP>%ADSH_OSCMD_DIR%\rm -w rm: illegal option -- w usage: rm [-dfiRr] file ...

8.4.27 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

• 削除するディレクトリが指定されていない場合のエラーメッセージを表示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

895

C:\TEMP>%ADSH_OSCMD_DIR%\rmdir usage: rmdir directory ...

8.4.28 sed コマンド(テキスト中の文字列を置換する)

形式 sed[-a][-E][-n][-r][-u]コマンド[入力ファイルパス名...] sed[-a][-E][-n][-r][-u][-e コマンド]...[-f スクリプトファイルパス名]...[入力

ファイルパス名...]

機能

ファイルや標準入力のテキストの文字列を置換して標準出力に出力します。

引数

-a

-E

|

-r

コマンドで指定するパターンを,拡張した正規表現として扱います。どちらのオプションを指定しても

同じように実行されます。

-n

編集コマンドの解析エラーが発生した場合に,ファイルが作成されないようにしたり,既存ファイルが

空にならないようにしたりするときに指定します。w コマンドまたは s コマンドの w フラグで指定す

るパターンスペース出力ファイルの作成方法を定義します。パターンスペース出力ファイルは,w コマ

ンド,または w フラグ指定の s コマンドが適用されるときに作成されます。-a オプションを指定しな

い場合は,w コマンド,または s コマンドの w フラグ解析時にパターンスペース出力ファイルを作成

します。

標準出力へのパターンスペースの出力を抑止します。p コマンドまたは P コマンドによる出力以外はパ

ターンスペースの標準出力への出力は行いません。

-u

Windows の場合,標準出力への実行結果出力時のバッファリングを抑止します。

UNIX の場合,標準出力への実行結果出力時のバッファリングをレコード単位にします。

コマンド

|

-e コマンド

入力ファイルを編集するコマンドを指定します。-e オプションは複数指定できます。-e オプションを

複数指定する場合,コマンドの実行順序は指定された順番です。-f オプションを指定しない場合は,e オプションの指定を省略できます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

896

-f スクリプトファイルパス名

スクリプトファイルのパス名を指定します。スクリプトファイルには,入力ファイルのレコードを編集

する編集コマンドを記述します。-f オプションは複数指定できます。-f オプションを複数指定する場

合,または-e オプションと組み合わせて指定する場合,コマンドの実行順序は指定された順番です。

入力ファイルパス名

編集する入力ファイルのパス名を指定します。複数指定できます。パス名を指定しない場合は,標準入

力から入力します。ファイルを複数指定した場合,処理中のファイルが終端に到達したときに次のファ

イルをオープンしてレコードを入力します。

編集コマンドの記述形式

入力ファイルを編集する編集コマンドの記述形式を次に示します。

[address[,address]]command[arguments] address には,編集対象のレコードを特定するためのアドレス(レコードの行番号,または検索パターン

文字列)を指定します。 command には,入力レコードに適用する編集コマンドを指定します。 arguments には,編集コマンドに渡す引数を指定します。

入力ファイルから 1 レコードを入力するたびにアドレスで指定したレコードの行番号,または検索パター

ン文字列と比較し,一致した場合に編集コマンドが実行されます。アドレスを省略した場合はすべてのレ

コードが編集の対象となります。編集コマンドの実行結果は標準出力に出力されます。

アドレス

入力ファイル内の編集対象となるレコードを特定するためのアドレスです。

• 行番号

入力ファイルの先頭レコードを 1 とした行番号を指定します。最終レコードは「$」を使うこともでき

ます。複数の入力ファイルを指定した場合は通し番号になります。なお,行番号(アドレス範囲指定時

は開始行番号)に 0 を指定した場合,編集コマンドは入力レコードに適用されません。

• 検索パターン文字列

レコード内の文字列に一致させる検索パターン文字列を「/」で囲んで指定します。検索パターン文字

列には正規表現が指定できます。指定例を次に示します。

/abc/w file

検索パターン文字列を囲む「/」は,「

\

」と改行文字以外のすべての 1 バイト文字のどれかに変更でき

ます。「/」以外の文字を区切り文字として使用する場合は,先頭の区切り文字の前に「

\

」を記述します。

指定例を次に示します。検索パターン文字列を囲む「/」を「#」に変更して指定します。

\#abc#w file

8. 運用時に使用するコマンド

JP1/Advanced Shell

897

• アドレス範囲指定

「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. 入力ファイルから改行コードで分割された 1 レコードを入力します。

Windows では,[CR]+[LF]または[LF]です。UNIX では,[LF]だけです。UNIX の場合,

入力ファイルの改行コードが[CR]+[LF]のときは,パターンスペースに[CR]が格納されます。

2. 入力レコードの内容をパターンスペースにコピーします。

8. 運用時に使用するコマンド

JP1/Advanced Shell

898

3. パターンスペースがアドレスで指定した行番号,またはパターンスペースの内容に検索パターン文字列

が一致する場合に編集コマンドを実行します。

実行するコマンドが D コマンドの場合に,D コマンド実行後にパターンスペースの内容が残っている

ときは,手順 1 と手順 2 は処理されません。

4. パターンスペースの内容を標準出力に出力します。

ただし,-n オプションが指定されている場合は処理されません。

5. パターンスペースの内容を消去します。

ホールドスペースはパターンスペースの内容を退避したり,ホールドスペースの内容をパターンスペース

に戻したりする一時的な作業領域として使用できます。

編集コマンド 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 コマンドの後ろに記述されているコマンドは実行されないで,次の入力レコードを読み込んで

先頭のコマンドから実行が開始されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

899

[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 進数で出力します。ま

た,「

\

」は「

\\

」として出力され,次の表に示す制御コードはエスケープ文字として出力されます。

制御コード

アラート文字(ベル)

バックスペース文字

フォームフィード文字(改ページ)

改行文字。なお,行(複数行の場合は最終行)の終端の改行文字は出力されません。

\ f

\ n

出力されるエスケープ

文字

\ a

\ b

8. 運用時に使用するコマンド

JP1/Advanced Shell

900

制御コード

復帰文字

タブ文字

垂直タブ文字

出力されるエスケープ

文字

\ r

\ t

\ v

1 レコードの出力幅は,次の優先順位で値が決まります。

1. 環境変数 COLUMNS の値

2. コンソールへの出力の場合はコンソール画面の幅

3. 半角文字で 60 文字

各レコードの終わりには$記号が出力されます。なお,1 レコードが出力幅を超える場合は折り返して

出力されます。折り返し部分には「

\

」が出力されます。

[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 の区切り文字である「/」を,「

\

」と改行文字以外の

8. 運用時に使用するコマンド

JP1/Advanced Shell

901

すべての 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 オプションを指定するとき

8. 運用時に使用するコマンド

JP1/Advanced Shell

902

アドレス 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 コマンドの検索文字と置き換え文字には次のエスケープ文字

を使用できます。

\ n

\ r

\ t

エスケープ文字

\ a

\ b

\ f

意味

アラート文字(ベル)

バックスペース文字

※1

フォームフィード文字(改ページ)

改行文字

※2

復帰文字

タブ文字

8. 運用時に使用するコマンド

JP1/Advanced Shell

903

エスケープ文字

\ v

\ xhex

\ c

\\

意味

垂直タブ文字

1〜2 桁の 16 進値で表された文字(0〜9,a〜f,A〜F)

※3

任意のリテラル文字(「

\

"」なら「"」)

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

904

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

です。

8. 運用時に使用するコマンド

JP1/Advanced Shell

905

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

の内容

日立 横浜支店 日立グループ

日立 東京支店 日立グループ

8. 運用時に使用するコマンド

JP1/Advanced Shell

906

日立 沖縄支店 日立グループ

日立 福岡支店 日立グループ

コマンドの実行例を次に示します。

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

です。

8. 運用時に使用するコマンド

JP1/Advanced Shell

907

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 の内容

= p

}

#n

/ print/{ 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 に一致するレコードを処理対象とします。

8. 運用時に使用するコマンド

JP1/Advanced Shell

908

コマンドの実行例を次に示します。

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 の内容 d

}

/^<Header>/{ r header.txt

prog02.awk の内容

###################################################################

<Header>

###################################################################

BEGIN{

str = "日立#横浜支店#日立グループ"

num = split(str, arry,"#")

for (i = 1; i <= num; i++ ) {

print arry[i]

}

} header.txt の内容

8. 運用時に使用するコマンド

JP1/Advanced Shell

909

# 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

/^Error01/!d

}

b LOOP

※2

} d

※2

注※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.

8. 運用時に使用するコマンド

JP1/Advanced Shell

910

コマンドの実行例を次に示します。

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 ...]

8.4.29 sleep コマンド(指定された時間だけ停止する)

形式 sleep 秒数

8. 運用時に使用するコマンド

JP1/Advanced Shell

911

機能

指定した時間だけ実行を停止します。

引数

秒数

実行を停止する時間を秒単位で指定します。数字以外を指定すると usage が表示されます。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

使用例

• 5 秒間実行を停止します。

C:\TEMP>%ADSH_OSCMD_DIR%\sleep 5

• seconds に数字以外を指定した場合を表示します。

C:\TEMP>%ADSH_OSCMD_DIR%\sleep poipoi usage: sleep seconds

8.4.30 sort コマンド(テキストファイルをソートする)

形式 sort[-c|-m][-b][-f][-n][-r][-u][-z]

[-k 開始位置[,終了位置]][-o 出力先パス名]

[-T 一時ファイルディレクトリ][-t フィールド区切り文字]

[入力パス名 ...]

機能

ファイルや標準入力から入力して,次のどれかの処理を実施します。実行結果を標準出力に出力します。

• ソート

• マージ

• ソートされているかのチェック

8. 運用時に使用するコマンド

JP1/Advanced Shell

912

引数

動作モードの指定

動作モードの指定をするオプションを省略すると,ソートします。ソートを昇順にするか降順にするか

は,-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 コマンドで内部処理として使用する一時ファイルを作成するディレクトリとして,一時ファイ

ルディレクトリで指定したディレクトリを使用します。

一時ファイルとは,ソートおよびマージ処理でメモリ上だけで処理ができない場合に使用する作業

用のファイルのことです。

このオプションを複数指定した場合,最後の指定が有効になります。

このオプションを省略した場合,次のディレクトリを使用します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

913

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 フィールド区切り文字

フィールド区切り文字を指定します。ソートキーのオフセットを決める場合,フィールド区切り文

字はフィールドの一部と見なされません。また,連続するフィールド区切り文字は空のフィールド

となります。レコードの区切り文字と同じ文字は指定できません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

914

-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 型の最大値まで指定できます。それ以上を指定すると,オーバーフローが発生し

て予測しない値になることがあるため,指定しないでください。

フィールド位置の開始位置でインデントを省略した場合,フィールドの先頭バイト位置となります。

フィールド位置の終了位置でインデントを省略した場合,フィールドの最終バイト位置となります。

・ソートキーに指定するオプション

8. 運用時に使用するコマンド

JP1/Advanced Shell

915

その他の指定

-u

同一のソートキーであるレコードが複数あった場合は,どれか 1 レコードだけ出力します。-c オプ

ションと同時に指定すると,ソートキーが同じレコードがないかどうかをチェックします。複数回

指定してもエラーになりません。

-z

ソートキーは,b オプション,f オプション,n オプション,r オプションで指定できます。 b オプションでは,前のスペースを無視してソートキーの位置を決めます。 f オプションでは,小文字を大文字と見なしてソートします。 n オプションでは,先頭の数値文字列を数値としてソートします。 r オプションでは,降順にソートします。

開始位置に指定した b オプションは開始位置にだけ有効です。また,終了位置に指定した b オプ

ションは終了位置にだけ有効です。終了位置にインデントの指定がない場合は,b オプションは無

効になります。-b オプション以外のオプションは,開始位置または終了位置のどちらにも指定で

き,意味は同じです。

レコードの区切りを変更するオプションです。レコードの区切りとして NULL(0x00)を使用しま

す。このオプションは複数指定するとエラーとなります(sort: multiple field delimiters)。

Windows の場合,入力データの改行コードは,入力時に削除され,出力時に追加されます。その

ため,バイナリファイルを入力しないでください。

ソート機能

ソート機能は,1 つまたは複数のファイルを読み込み,1 つまたは複数のソートキーを比較します。ソー

トキーは,-k オプションで指定し,1 つまたは複数のフィールドで指定します。フィールドは,-t オプショ

ンで指定するフィールド区切り文字でレコードを区切ります。

ソートキーの指定がない場合,デフォルトではレコード全体を 1 つのソートキーと見なします。ソートキー

同士はバイトごとに比較します。

ソートキーが複数ある場合,先頭に指定したソートキーを比較し,一致したときは次のソートキーを不一

致になるまで順次比較します。

ソートキーがすべて一致した場合,レコード全体をバイト単位で比較して出力します。-r オプションの指

定がない場合は昇順に,-r オプションの指定がある場合は降順に出力します。

ソートキーに対するオプションの指定方法

ソートキーに対するオプションは 2 つに分類されます。1 つまたは複数のキーを指定した場合にそれぞ

れに有効となるグローバルオプションと,-k オプションに指定するローカルオプションです。 sort コマンドで指定する-fnrb オプションはグローバルオプションです。また,sort コマンドの-k オプ

ションに指定する fnbr をローカルオプションと呼びます。グローバルオプションは-k オプションより

後ろに指定できません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

916

各オプションをグローバルオプションとローカルオプションで指定した場合の動作を次に示します。

オプション b f

| n

| r

動作

グローバルオプションの指定は,-k オプションに指定する開始位置および終了位置の両方に有効にな

ります。終了位置にインデント指定がない場合,または終了位置のインデントに 0 を指定した場合

は,終了位置に対する指定は無効となります。

-k オプションを指定しない場合は,-b オプションの指定は無効となります。

ローカルオプションに指定がある場合,グローバルオプションの指定を無視します。

グローバルオプションの指定例を次に示します。

-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 番目のフィールドの最終バイト

までをソートキーとします。

8. 運用時に使用するコマンド

JP1/Advanced Shell

917

マージ機能

マージ機能はソート済みの各入力ファイル間のレコードを比較してデータを整列し,結合します。実際に

はソートされていない場合でも,ソートしたと仮定して動作します。 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 オプションを追加します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

918

大文字と見なすソートコマンドの出力

A:b a:B

2 つ目のフィールドを-f オプションの指定に従って大文字と見なして比較するため,同じ値のソート

キーと評価します。ソートキーが同じ値であるため,レコード全体をバイトで比較します。この結果, a より A が小さいため「A:b」が先に出力されます。

終了コード

終了コード

0

1

2

意味

正常終了

正常終了

• 入力したデータはソートされていません(-c オプションを指定した場合)。

• 重複するキーが存在します(-c オプションと-u オプションを指定した場合)。

エラー終了

注意事項

• メモリ上で処理ができない場合,一時ファイルを使用して処理をします。一時ファイルの使用時にディ

スク容量が不足した場合,次のメッセージを出力してエラーになります。 sort: fwrite: No space left on device

上記のメッセージが出力された場合は,-T オプションを使用して,容量に十分な空きがあるディスク

を指定してください。

• sort コマンドの実行を中断すると,-o オプションで指定したファイルが存在するディレクトリに中間

ファイルが残ることがあります。この場合は手動で削除してください。-o オプションを指定しない場

合も一時ファイルを使用すると,実行中断などで一時ファイルが残ることがあるため,手動で削除して

ください。

• sort コマンドでのスペースとは,

\ t(タブ)とスペース文字(0x20)のことです。また,-z オプション

を指定すると

\ n(改行)もスペースと見なされます。

• 入力ファイルの最終レコードにレコード区切り文字がなくても,ソートおよびマージの結果にはレコー

ド区切り文字が付加されます。

• 入力の改行コードは<CR><LF>または<LF>で処理できますが,UNIX の場合,< CR >はデータと

して扱います。また,出力結果は入力ファイルの改行コードの形式に関係なく,プラットフォームの改

行コードに従った改行コードになります。

• レコードが格納できない場合,格納できるまで拡張します。メモリが確保できない場合,エラーとなり

ます。

• ソートで使用するバッファは 16MB です。このバッファでソートを継続できない場合,一時ファイル

を作成します。そのため,大容量データではこのコマンドを使用しないことを推奨します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

919

• ソート・マージ処理でメモリ上だけで処理ができない場合,sort コマンドの処理を中断すると,次の名

前の一時ファイルが残ることがあります。この場合は手動で一時ファイルを削除してください。

【Windows の場合】 sor uuuu

.tmp( uuuu

は任意の 16 進文字列)

【UNIX の場合】 sort ppppp

.

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 つのテキストファイルを合わせて,数値部分の降順で並べ替えます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

920

$ 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

8. 運用時に使用するコマンド

JP1/Advanced Shell

921

-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

8. 運用時に使用するコマンド

JP1/Advanced Shell

922

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

923

8.4.31 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,…となります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

924

終了コード

終了コード

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

925

$ 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]]

8. 運用時に使用するコマンド

JP1/Advanced Shell

926

8.4.32 stat コマンド(ファイルまたはディレクトリの状態を標準出力に出

力する)

形式 stat [-L] [-c 書式] [-t] パス名 ...

機能

ファイルまたはディレクトリの状態を標準出力に出力します。パス名にシンボリックリンクファイルが指

定された場合,リンクをたどらないでシンボリックリンクファイルの状態を表示します。

引数

-L

--dereference

パス名にシンボリックリンクファイルを指定した場合,リンクをたどった先のファイルまたはディレク

トリの状態を表示します。

-c 書式

--format=書式

ファイルまたはディレクトリの状態を書式に従った形式で表示します。書式には,書式指定コードおよ

び任意の文字列を指定できます。このオプションを指定した場合の表示形式および書式指定コードにつ

いては,項目「表示形式」の「独自の表示形式」を参照してください。指定可能な書式指定コード以外

を指定した場合,標準エラー出力に警告メッセージを出力し,標準出力に「?」を出力して,後続の処

理を続行します。

-t オプションと同時に指定した場合,このオプションが優先されます。

-t

--terse

簡潔な表示形式で情報を出力します。簡潔な表示形式については,項目「表示形式」の「簡潔な表示形

式」を参照してください。

パス名

状態を表示するファイル名またはディレクトリ名を指定します。

パス名を複数指定した場合は,ファイルまたはディレクトリの状態を縦に連続して表示します。複数指

定して実行した場合はすべてのファイルまたはディレクトリを処理し,1 つでも状態の表示に失敗した

ファイルまたはディレクトリがあると,終了コード 1 で終了します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

927

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

表示形式

ファイル情報の表示形式には,通常表示形式,簡潔な表示形式,独自の表示形式の 3 種類があります。ど

の表示形式になるかは指定するオプションによって決まります。

通常表示形式

オプションを指定しないで実行した場合の表示形式です。次のファイル情報をラベル付きで表示します。

出力情報

クォートされたファイル名

シンボリックリンクの場合は,シンボリックリンクの参照先も表示します。

合計サイズ

割り当てられたブロック数

ファイルシステム I/O 操作での最適なブロックサイズ

ファイルの種類

表示内容は,項目「表示形式」の「ファイルの種類の表示内容」を参照してください。

デバイス番号

デバイス番号の16進数表記h/デバイス番号の10進数表記d

」の形式で表示します。

デバイスファイルではない場合は表示しません。 i ノード番号

ハードリンクの数

デバイスファイルの種類

メジャーデバイス番号

マイナーデバイス番号

」の形式で表示します。デバイスファイルではない場

合は表示しません。

パーミッション

パーミッションの8進数表記

/

パーミッションの文字列表記

」の形式で表示します。

所有者のユーザー情報

所有者のユーザーID

/

所有者のユーザー名

」の形式で表示します。

所有者のグループ情報

所有者のグループID

/

所有者のグループ名

」の形式で表示します。

ファイルの最終アクセス日時

ファイルの最終修正日時

ラベル

File:

Size:

Blocks:

IO Block:

Device:

Inode:

Links:

Device type:

Access:

Uid:

Gid:

Access:

Modify:

8. 運用時に使用するコマンド

JP1/Advanced Shell

928

出力情報

ファイル情報の最終変更日時

ラベル

Change:

(凡例)

−:ラベルがないことを示します。

簡潔な表示形式

-t オプションを指定した場合の表示形式です。次のファイル情報をスペース区切りで連続して表示します。

• ファイル名

• 合計サイズ

• 割り当てられたブロック数

• raw モードの 16 進数表記

• 所有者のユーザー ID

• 所有者のグループ ID

• デバイス番号の 16 進数表記

• i ノード番号

• ハードリンクの数

• メジャーデバイス番号

• マイナーデバイス番号

• ファイルの最終アクセス日時(エポックからの秒数)

• ファイルの最終修正日時(エポックからの秒数)

• ファイル情報の最終変更日時(エポックからの秒数)

• ファイルシステム I/O 操作での最適なブロックサイズ

独自の表示形式

-c オプションを指定した場合の表示形式です。書式指定コードおよび任意の文字列を組み合わせて,独自

の表示形式を指定できます。また,書式指定コードの%の後ろには,フラグ文字,フィールド幅,精度も

定義できます。

• 書式指定コード

指定できる書式指定コードを次の表に示します。

書式指定コード 意味

%a パーミッションの 8 進数表記

Windows の場合,所有者だけのパーミッションを表示します。

%A パーミッションの文字列表記

8. 運用時に使用するコマンド

JP1/Advanced Shell

929

書式指定コード 意味

%A Windows の場合,所有者だけのパーミッションを表示します。

%b

%B

割り当てられたブロック数

Windows の場合,常に 0 を表示します。

各ブロックの大きさ(バイト単位)

Windows の場合,常に 0 を表示します。

%d

%D

デバイス番号の 10 進数表記

Windows の場合,ドライブ番号を表示しますが,次の場合は表示が異なります。

• フルパスにしたときにドライブレターに続く「:」がないパスの場合

デバイス番号として「-」を表示して,後続の処理を続行します。

• デバイス番号取得処理でエラーが発生した場合

警告メッセージを標準エラー出力に出力し,デバイス番号として「?」を表示して,後続の処理を続行し

ます。

デバイス番号の 16 進数表記

Windows の場合,ドライブ番号を表示しますが,次の場合は表示が異なります。

• フルパスにしたときにドライブレターに続く「:」がないパスの場合

デバイス番号として「-」を表示して,後続の処理を続行します。

• デバイス番号取得処理でエラーが発生した場合

警告メッセージを標準エラー出力に出力し,デバイス番号として「?」を表示して,後続の処理を続行し

ます。

%f

%F

%g

%G

%h

%i

%n

%N

%o raw モードの 16 進数表記

Windows の場合,所有者だけのパーミッションを表示します。

ファイルの種類

表示内容は,項目「表示形式」の「ファイルの種類の表示内容」を参照してください。

所有者のグループ ID

Windows の場合,常に 0 を表示します。

所有者のグループ名

Windows の場合,常に「

...

」を表示します。

UNIX の場合,所有者のグループ名を取得できないときは所有者のグループ ID を表示して,後続の処理を

続行します。

ハードリンクの数 i ノード番号

Windows の場合,常に 0 を表示します。

ファイル名

クォーテーションで囲まれたファイル名

シンボリックリンクの場合は参照先ファイル名も表示します。

参照先ファイル名の取得に失敗したときは,警告メッセージを標準エラー出力に出力し,参照先ファイル名

は表示しないで,後続の処理を続行します。

ファイルシステム I/O 操作での最適なブロックサイズ

8. 運用時に使用するコマンド

JP1/Advanced Shell

930

書式指定コード 意味

%o Windows の場合,常に 0 を表示します。

%s 合計サイズ(バイト単位)

Windows の場合,ディレクトリの合計サイズは常に 0 を表示します。

UNIX の場合,デバイスファイルの合計サイズは常に 0 を表示します。

%t

%T

%u

%U

%x

メジャーデバイス番号の 16 進数表記

Windows の場合,常に 0 を表示します。

マイナーデバイス番号の 16 進数表記

Windows の場合,常に 0 を表示します。

所有者のユーザー ID

Windows の場合,常に 0 を表示します。

所有者のユーザー名

Windows の場合,所有者のユーザー名が取得できないときは「

...

」を表示して,後続の処理を続行します。

UNIX の場合,所有者のユーザー名が取得できないときは所有者のユーザー ID を表示して,後続の処理を

続行します。

ファイルの最終アクセス日時

Windows の場合,ファイルの最終修正日時と同じ情報を表示します。

ファイルの最終アクセス日時の表示に失敗した場合,警告メッセージを標準エラー出力に出力し,ファイル

の最終アクセス日時の表示は「?」にして,後続の処理を続行します。

%X

%y

%Y

%z

%Z

%%

ファイルの最終アクセス日時のエポック(UTC の 1970 年 1 月 1 日 00:00:00)からの秒数

Windows の場合,ファイルの最終修正日時と同じ情報を表示します。

ファイルの最終修正日時

ファイルの最終修正日時の表示に失敗した場合,警告メッセージを標準エラー出力に出力し,ファイルの最

終修正日時の表示は「?」にして,後続の処理を続行します。

ファイルの最終修正日時のエポック(UTC の 1970 年 1 月 1 日 00:00:00)からの秒数

ファイル情報の最終変更日時

Windows の場合,ファイルの最終修正日時と同じ情報を表示します。

ファイル情報の最終変更日時の表示に失敗した場合,警告メッセージを標準エラー出力に出力し,ファイル

情報の最終変更日時の表示は「?」にして,後続の処理を続行します。

ファイル情報の最終変更日時のエポック(UTC の 1970 年 1 月 1 日 00:00:00)からの秒数

Windows の場合,ファイルの最終修正日時と同じ情報を表示します。

%(パーセント)記号

注※

「ファイルの最終アクセス日時」,「ファイルの最終修正日時」,「ファイル情報の最終変更日時」で出

力する日時の出力形式は次のとおりです。

YYYY-MM-DD hh:mm:ss.nnnnnnnnn +/-hhmm

 YYYY:西暦年

 MM:月

8. 運用時に使用するコマンド

JP1/Advanced Shell

931

 DD:日

 hh:時

 mm:分

 ss:秒

 nnnnnnnnn:1 秒未満の日時。常に 000000000 と出力します。

 +/-hhmm:タイムゾーン。UTC からの時差を示します。

• フラグ文字

書式指定コードの%の後ろに次のフラグ文字を指定できます。省略することもできます。

フラグ文字

#

-

+

スペース

0

内容

0 以外の 8 進数表記に対しては前に 0 を付けます。

0 以外の 16 進数表記に対しては前に 0x を付けます。

出力文字列をフィールドの左にそろえます。

数値の正負を示す記号(+/-)を常に表示します。

符号なし整数として定義されているファイル情報に対しては,この指定は無視されます。

符号付き整数として定義されているファイル情報に対して,正の数字の前にスペースを表示します。

+と同時に指定した場合は,+が優先されます。

フィールドの左側をスペースの代わりに 0 で埋めます。

• フィールド幅

書式指定コードの%またはフラグ文字の後ろに数値を指定することで,最小のフィールド幅を定義しま

す。フィールド幅は 0〜2147483647 の範囲で指定できます。省略することもできます。

• 精度

書式指定コードの%またはフラグ文字の後ろに,ピリオド(

.

)と次に示す数値を定義します。精度は,

UNIX の場合は 0〜2147483647 の範囲で,Windows の場合は 0〜512 の範囲で指定できます。省

略することもできます。

• ファイル情報が文字列の場合

表示する最大長を定義します。

• ファイル情報が数値の場合

最小桁数を定義します。

ファイルの種類の表示内容

表示されるファイルの種類と,その意味は次のとおりです。

ファイルの種類 regular file directory

意味

通常ファイル

ディレクトリ

8. 運用時に使用するコマンド

JP1/Advanced Shell

932

ファイルの種類 symbolic link fifo socket block special file character special file unknown file

意味

シンボリックリンク

FIFO【UNIX 限定】

ソケット【UNIX 限定】

ブロック型スペシャルファイル【UNIX 限定】

キャラクタ型スペシャルファイル【UNIX 限定】

不明なファイル(上記以外のファイル)【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 バイトとし

て,警告メッセージを標準エラー出力に出力し,後続の処理を続行します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

933

• 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

• ファイルの状態を独自の表示形式で出力します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

934

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 [-L] [-c format] [-t] file ...

8.4.33 tail コマンド(ファイルの最後の部分を表示する)

形式 tail[-r][-b ブロック数|-c バイト数|-n 行数|-行数][パス名 ...]

機能

ファイルや標準入力の最後の部分を標準出力に出力します。デフォルトは標準入力です。入力のバイト単

位,行単位またはブロック単位の位置から表示されます。指定した表示範囲のデータが存在しない場合で

もエラーになりません。表示できるデータは表示されます。

引数

+符号のある数は入力の先頭からの位置を示します。例えば,-c +2 は入力の先頭から 2 バイト目で表示

を始めます。

-符号がある数字または符号のない数字は最後からの位置を示します。例えば,-n 2 は入力の最後から 2

行目を示します。デフォルトは,-n 10 または入力の最後の 10 行です。

-r

行単位で逆順に表示します。

-b オプションと共に指定した場合,ファイルの終端から,-b オプションに指定したブロック数分戻っ

た所まで,行単位にファイルの終端から出力します。表示開始位置がマルチバイト文字の中間の場合,

文字化けすることがあります。

-c オプションと共に指定した場合,ファイルの終端から,-c オプションに指定したバイト数分戻った

所まで,行単位にファイルの終端から出力します。表示開始位置がマルチバイト文字の中間の場合,文

字化けすることがあります。

-n オプションまたは行数と共に指定した場合,ファイルの終端から,-n オプションまたは行数で指定

した行数分戻った所まで,行単位にファイルの終端から出力します。

-r オプションだけ指定した場合,入力したすべての行を,行単位にファイルの終端から出力します。複

数回指定してもエラーになりません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

935

-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 で終了します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

936

終了コード

終了コード

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 行目以降を表示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

937

$ 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

8. 運用時に使用するコマンド

JP1/Advanced Shell

938

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 ...]

8.4.34 

tar

コマンド(対象パス名をアーカイブに格納,およびアーカイブか

ら抽出,表示する)

形式

【Windows 限定】 tar {-c|-r|-t|-u|-x} [-b ブロック化係数 ] [-d] [-f アーカイブ ] [-h] [-m] [-P] [-V] [-v]

[-X

除外リストファイル

[-T

ファイル

] [

] [-z] [--cmdrc0] [--compatible=

対象パス名

...]

種別

] [-C

ディレクトリ

] tar {c|r|t|u|x}[b][d][f][h][m][P][V][v][X][z] [

[

[-T ファイル ] [ 対象パス名 ...]

ブロック化係数

] [

アーカイブ

]

除外リストファイル

] [--cmdrc0] [--compatible=

種別

] [-C

ディレクトリ

]

8. 運用時に使用するコマンド

JP1/Advanced Shell

939

【UNIX 限定】 tar {-c|-r|-t|-u|-x} [-b ブロック化係数 ] [-d] [-f アーカイブ ] [-h] [-m] [-P] [-p] [-V]

[-v] [-X

[-T

除外リストファイル

ファイル

] [

対象パス名

] [-z] [--cmdrc0] [--compatible=

...]

種別

] [-C

ディレクトリ

] tar {c|r|t|u|x}[b][d][f][h][m][P][p][V][v][X][z] [

[

[-T ファイル ] [ 対象パス名 ...]

ブロック化係数

] [

アーカイブ

]

除外リストファイル

] [--cmdrc0] [--compatible=

種別

] [-C

ディレクトリ

]

機能

対象パス名をアーカイブに格納,およびアーカイブから抽出,表示します。コマンドの動作は,1 つの機

能文字( c

, r

, t

, u

,または x

)とその他の機能修飾子を指定することで決定します。

このコマンドで作成するアーカイブは ustar format 形式です。

引数

機能文字オプション

-c

--create

新しいアーカイブを作成します。アーカイブの先頭から対象パス名を格納します。対象パス名がディレ

クトリの場合,ディレクトリ下も格納します。

-r

--append

指定したアーカイブの終端に対象パス名を追加格納します。

-t

--list

アーカイブに格納されているファイル名一覧を表示します。

-v

オプションと共に指定した場合,次の詳細情報も表示されます。

「 パーミッション uid

/ gid ファイルサイズ 日時 ファイル名 」

-u

--update

対象パス名がアーカイブ内の同名ファイルより新しい,またはアーカイブに格納されていないファイル

を追加格納します。

-x

--extract

8. 運用時に使用するコマンド

JP1/Advanced Shell

940

--get

アーカイブから対象パス名を抽出します。対象パス名がディレクトリの場合,ディレクトリ下も抽出し

ます。

ファイルの抽出では次のように動作します。

• 既存のファイルが存在する場合は,既存のファイルを削除した上で新規作成します(既存のファイ

ルのパーミッションは保持されません)。

UNIX で

-p

オプションを指定していない場合,パーミッションはアーカイブに格納されているパー

ミッションと umask

によって決定され,実行者が一般ユーザーの場合 setuid ビット,setgid ビッ

ト,スティッキービットは設定されません。

すでにディレクトリが存在する場合,該当するディレクトリに抽出ファイルを復元します。

• UNIX で実行者がスーパーユーザーの場合,ユーザー,グループを抽出して設定します。

• Windows は,パーミッション,ユーザー,グループは抽出して設定されません。

機能修飾子オプション

-b

ブロック化係数

--blocking-factor=

ブロック化係数

ブロックサイズを

ブロック化係数

*512 バイトとします。

デフォルト値は 20(ブロックサイズは 20*512 バイト)です。

ブロック化係数

に指定できる範囲は 1〜63 です。

-c

オプションと共に指定した場合に有効となり,

-t

-x

オプションと共に指定した場合は意味のない

指定となります。

-r

-u

オプションと共に指定した場合は,アーカイブのサイズと指定した ブロック化係数 で決定され

ます。

複数指定は,最後に指定したブロック化係数が有効となります。

指定できる範囲外を指定した場合,

20

を仮定して動作します。

-d

アーカイブに格納する場合,スペシャルファイル,パイプファイルも対象とします。

このオプションはデフォルトで付加され,オプション有無による動作の違いはありません。

-f

アーカイブ

--file=

アーカイブ

アーカイブを指定します。指定できるアーカイブは通常ファイル,パイプファイル,シンボリックリン

クファイルです。

このオプションを指定していない,または「

-

」(ハイフン)を指定した場合は,標準入出力を示します。

-r

-u

オプションの場合,標準入出力とパイプファイルの組み合わせは使用できません。

このオプションを複数指定した場合,最後に指定したアーカイブが有効となります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

941

-h

--dereference

シンボリックリンクをたどり,ファイルまたはディレクトリとして扱います。

-c

-r

-u

オプションと共に指定した場合に有効となり,

-t

-x

オプションと共に指定した場合は意

味のない指定となります。

-m

--touch

ファイルの最終修正日時は抽出し設定しません。

-x

オプションと共に指定した場合に有効となり,

-c

-r

-u

-t

オプションと共に指定した場合は意

味のない指定となります。

Windows の場合は

-m

オプションの指定に関わらず,ディレクトリの最終修正日時は設定できません。

-P

--absolute-names

対象パス名のルートディレクトリを取り除きません。

-p

--same-permissions

--preserve-permissions

【UNIX 限定】

パーミッションを抽出して設定します。

-x

オプションと共に指定した場合に有効となり,

-c

-r

u

-t

オプションと共に指定した場合は意味のない指定となります。

スーパーユーザーはデフォルトで動作します。

-V

アーカイブの詳細情報を表示する際,ファイルのタイプを示す英字も出力します。

このオプションはデフォルトで付加され,オプションの有無による動作の違いはありません。

-v

--verbose

詳細情報を出力します。

-z

--gzip

--gunzip

8. 運用時に使用するコマンド

JP1/Advanced Shell

942

--ungzip gzip 形式のアーカイブを操作します。

-c

オプションと共に指定した場合,新しいアーカイブを gzip 形式で圧縮して作成します。

-x

オプションと共に指定した場合,gzip 形式で圧縮されたアーカイブから対象パス名を抽出します。

-t

オプションと共に指定した場合,gzip 形式で圧縮されたアーカイブに格納されているファイル名一

覧を表示します。 gzip 形式のアーカイブを操作するとき, tar

コマンドは gzip

コマンドを呼び出します。 tar

コマンドか

ら呼び出す gzip

コマンドに, gzip

コマンドのオプションを渡したい場合は,環境変数

GZIP

に gzip

コマ

ンドのオプションを設定してから tar

コマンドを実行してください。環境変数

GZIP

の詳細については,

「 2.5 環境変数を設定する 」を参照してください。

-z

オプションは,

-r

オプション,または

-u

オプションと同時には指定できません。

-r

オプション,

u

オプションと同時に指定した場合はエラー終了します。

-x

オプション,または

-t

オプションと共に指定する場合に,アーカイブが gzip 形式で圧縮されていな

いときは,抽出や表示ができません。

なお,

--gzip

--gunzip

,および

--ungzip

オプションは,

-z

オプションのロングオプションという意

味しかありません。例えば,

-c

オプションと

--gunzip

オプションを指定した場合も,新しいアーカイ

ブを gzip 形式で圧縮して作成します。

--cmdrc0

オプションの解析後にエラーが発生しても戻り値を必ず

0

とします。

--compatible=

種別

種別

には次の文字列を指定できます。 long-file-name

対象パス名をアーカイブに格納する場合,対象パス名長はディレクトリパス長 155 バイト,ファイル

名 100 バイト,シンボリックリンクのリンク先のファイル名長 100 バイトのアーカイブ内のヘッダ領

域の制限があります。

このオプションを使用した場合,制限を解除できます(対象パス名は 3072 バイトまで可能です。実際

に作成できるパス名長は各 OS の最大長に依存します)。

ただし,このオプションで作成したアーカイブは,ustar format 形式の OS 提供の tar

コマンドと互換

性はありません。

-c

-r

-u

オプションと共に指定した場合に有効となり,

-t

-x

オプションと共に指定した場合は無

視されます。

-C

ディレクトリ

--directory=

ディレクトリ

指定したディレクトリに移動して動作します。

対象パス名,

-T

オプション,

-C

オプションを組み合わせた場合,

-C

オプションのあとに指定した対象

パスが対象となります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

943

-C

オプションを複数指定する場合,2 個目以降の

-C

オプションは以前に指定した

-C

オプションによっ

てカレントディレクトリが移動していることを考慮する必要があります。

-T

ファイル

-L

ファイル

-I

ファイル

--files-from=

ファイル

格納,抽出,表示する対象パス名の一覧を指定ファイルから読み込みます。1 行に 1 つの対象パス名を

正確に記載します。スペース,空行もパス名とみなされます。

このオプションで複数指定した場合,どの指定も有効となります。

また,短いオプション

-T

-L

-I

オプションはどの指定も同じ動作となります。

-x

または

-t

オプションと組み合わせた場合,対象パス名は,ワイルドカードの組み合わせで指定でき

ます。

ワイルドカードで使用する文字そのものを指定するために,

\

でエスケープすることもでき,

\

の指定は

\

でエスケープする必要があります。

ワイルドカードとして使用できる文字を次に示します。

ワイルドカード

?

*

[…]

意味

任意の 1 文字に合致します。

0 文字以上の文字列に合致します。

[ ]

に囲まれた文字列のどれか 1 文字に合致します。

[ ]

に囲まれた文字列の先頭に

!

また

^

を付けた場合,

[ ]

に囲まれていない文字に合致します。

-

(ハイフン)で区切るとハ

イフンで区切られた,間にある任意の文字(その 2 文字も含む)に合致します。

ワイルドカード

[ ]

の記述例を次の表に示します。

記述例

[!abc]

[0-9]

[a-z]

[A-Z]

[0-9a-zA-Z]

意味 a

, b

, c

の 3 つを除く文字と合致します。

0

から

9

までのどれかに合致します。

英小文字に合致します。

英大文字に合致します。

英数字に合致します。

-X

ファイル

--exclude-from=

ファイル

格納,抽出,表示を除外する対象パス名の一覧を指定ファイルから読み込みます。1 行に 1 つの対象パ

ス名を記載します。対象パスは部分的なディレクトリパスの記載でも除外する対象となります。

スペース,空行もパス名とみなされます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

944

このオプションで指定した除外するファイル一覧は,

-T

-L

-I

--files-from

オプションで指定し

たファイル一覧より優先されます。

対象パス名は,ワイルドカードの組み合わせで指定できます。ワイルドカードで使用する文字そのもの

を指定するために,

\

でエスケープすることもでき,

\

の指定は

\

でエスケープする必要があります。

ワイルドカードとして使用できる文字を次に示します。

ワイルドカード

?

*

[…]

意味

任意の 1 文字に合致します。

0 文字以上の文字列に合致します。

[ ]

に囲まれた文字列のどれか 1 文字に合致します。

[ ]

に囲まれた文字列の先頭に

!

また

^

を付けた場合,

[ ]

に囲まれていない文字に合致します。

-

(ハイフン)で区切るとハ

イフンで区切られた,間にある任意の文字(その 2 文字も含む)に合致します。

ワイルドカード

[ ]

の記述例を次に示します。

記述例

[!abc]

[0-9]

[a-z]

[A-Z]

[0-9a-zA-Z]

意味 a

, b

, c

の 3 つを除く文字と合致します。

0

から

9

までのどれかに合致します。

英小文字に合致します。

英大文字に合致します。

英数字に合致します。

対象パス名

格納,抽出,表示するファイルまたはディレクトリのパス名を指定します。

格納時,対象パス名とアーカイブが同一である場合,格納されません。

対象パス名の長さの制限に関しては

--compatible=long-file-name

オプションを参照してください。

-x

または

-t

オプションと組み合わせた場合,対象パス名は,ワイルドカードの組み合わせで指定する

ことが出来ます。

ワイルドカードで使用する文字そのものを指定するために,

\

でエスケープすることもでき,

\

の指定は

\

でエスケープする必要があります。

ワイルドカードとして使用できる文字を次に示します。

ワイルドカード

?

*

[…]

意味

任意の 1 文字に合致します。

0 文字以上の文字列に合致します。

[ ]

に囲まれた文字列のどれか 1 文字に合致します。

[ ]

に囲まれた文字列の先頭に

!

また

^

を付けた場合,

[ ]

に囲まれていない文字に合致します。

-

(ハイフン)で区切るとハ

イフンで区切られた,間にある任意の文字(その 2 文字も含む)に合致します。

ワイルドカード

[ ]

の記述例を次に示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

945

記述例

[!abc]

[0-9]

[a-z]

[A-Z]

[0-9a-zA-Z]

意味 a

, b

, c

の 3 つを除く文字と合致します。

0

から

9

までのどれかに合致します。

英小文字に合致します。

英大文字に合致します。

英数字に合致します。

格納,抽出する対象パス名のルートディレクトリの扱い

コマンドは,格納,抽出の操作をする際,対象パス名のルートディレクトリを取り除いて動作します。該

当するルートディレクトリは次の表のとおりです。

-P

オプションを使用することで,対象パス名のルート

ディレクトリは取り除かないで動作することができます。

また,環境変数

ADSH_CMDTAR_ROOTPATH

を指定した場合,コマンドのデフォルト動作を「対象パス名のルー

トディレクトリは取り除く」から「対象パス名のルートディレクトリは取り除かない」に変更できます。

表 8-19 格納,および抽出で取り除かれる対象パス名のルートディレクトリ

OS

UNIX

説明

対象パス名を格納,抽出する際,先頭部分の次のルートディレクトリを取り除きます。

/ ../

Windows 対象パス名を格納,抽出する際,先頭部分の次のルートディレクトリを取り除きます。

\ ..\

ドライブレター

:\

• 環境変数

ADSH_CMDTAR_ROOTPATH

指定なし

コマンドのデフォルト動作はルートディレクトリを取り除いて格納,抽出します。ルートディレクトリ

を取り除きたくない場合は

-P

オプションを指定して実行します。

• 環境変数

ADSH_CMDTAR_ROOTPATH

指定あり

ADSH_CMDTAR_ROOTPATH=absolute

を設定することで,コマンドのデフォルト動作はルートディレクトリ

を取り除かないで格納,抽出します。

ユーザー名,ユーザー ID,グループ名,グループ ID の扱い

アーカイブの作成,抽出,および表示でのユーザー,グループの扱いは次のとおりです。マルチプラット

フォーム間でアーカイブを操作した場合,ユーザー,グループが異なることがあります。

アーカイブの状態

アーカイブ作成時

ユーザー ID/名 グループ ID/名

UNIX

該当ファイルの

ユーザー ID

ユーザー名

を格納。

UNIX

該当ファイルの

グループ ID

グルー

プ名 を格納。

8. 運用時に使用するコマンド

JP1/Advanced Shell

946

アーカイブの状態

アーカイブ作成時

アーカイブ抽出時

アーカイブ表示時

ユーザー ID/名

Windows

ユーザー ID

0

と,該当ファイルの

ユーザー名

を格納。

グループ ID/名

Windows

グループ ID

0

グループ名

は設定

しない。

UNIX

・スーパーユーザー

抽出した ユーザー名 から ユーザー ID を求めて

ファイルに設定する。求められない場合は抽出

した

ユーザー ID

を設定。

・一般ユーザー

実行ユーザー ID

または

実行ユーザー名

で設定。

Windows

ログオンユーザー名。

UNIX

・スーパーユーザー

抽出した グループ名 から グループ ID

を求めてファイルに設定する。求めら

れない場合は抽出した

グループ ID

設定。

・一般ユーザー

実行ユーザー名に属する グループ ID

または

グループ名

で設定。

Windows

該当なし。

UNIX

抽出した

ユーザー名

から

ユーザー ID

を求めて表

示する。求められない場合は,抽出した

ユーザー

ID を表示。

Windows

抽出した

ユーザー ID

を表示。

UNIX

抽出した

グループ名

から

グループ ID

を求めて表示する。求められない場合

は,抽出した グループ ID を表示。

Windows

抽出した

グループ ID

を表示。

一時ファイルディレクトリ

このコマンドは,一時ファイルを作成することがあります。一時ファイルディレクトリは次のとおりです。

Windows の場合

共通アプリケーションフォルダ

\HITACHI\JP1AS\misc

UNIX の場合

環境変数

TMPDIR

に定義されたディレクトリ

環境変数

TMPDIR

が定義されていないときは,

/var/tmp

終了コード

0

1

2

正常終了。

エラー終了。

2

のケースを除く。

エラー終了。不正なオプションを指定。

注意事項

•「

-

」なしショートオプションの形式で指定する場合,オプションとオペランドは「形式」で示した順で

指定する必要があります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

947

• シンボリックリンクの場合は最終修正日時・最終アクセス日時を保持しません。

• 対象パス名をアーカイブに格納している途中に tar

コマンドを中断すると,次の名前の一時ファイルが

残ることがあります。この場合は手動で一時ファイルを削除する必要があります。

【Windows の場合】 tar.

XXXXXX

XXXXXX

は任意の 6 文字の文字列)

【UNIX の場合】 tar ppppp

.

XXXXXXXX

( ppppp

は 5 桁以上のプロセス ID,

XXXXXXXX

は任意の 8 文字の文字

列)

• 抽出で未知の種別のファイルを検出した場合,通常ファイルとして処理を試みます。

Windows の場合,ブロックデバイスファイル,キャラクタデバイスファイル,パイプファイルの抽出

は未知のファイル種別として判断されます。

(例)

C:\TEMP>%ADSH_OSCMD_DIR%\tar xvf PIPE.tar

tar: PIPE/pp creating as regular file.

PIPE/pp

• アーカイブに同じ名前のパス名が複数存在する場合,最後のパス名でそれ以前のファイルを上書き

します。

• Windows の UNC パスの格納,抽出はサポートしていません。

• Windows の場合,抽出するファイル名が大文字と小文字の違いだけのファイル名は同一ファイル

として扱われます。

• Windows の場合,ショートネーム指定は,ロングネームで格納,抽出および表示をします。ただ

し,シンボリックリンク先は指定されたファイル名で格納,抽出および表示をします。

• Windows の場合,ディレクトリ区切り文字を

\

で使用している場合,格納,抽出は「

/

」に変換統

一されます。

• Windows の場合,ジャンクションは実ファイルとして処理されます。

• Windows の場合,シンボリックリンクの抽出はユーザーにシンボリックリンク作成の権限が必要

です。

• Windows の場合,NTFS 以外のファイルシステムにリンクファイルは抽出できません。

• Windows の場合,シンボリックリンク先が存在しない状態ではシンボリックリンクを抽出できま

せん。

• UNIX で

\

を含むファイルを格納し,Windows で抽出をする場合,

\

はディレクトリ区切り文字と

して扱われます。

• Windows で格納し,UNIX で抽出する場合,Windows 固有のパス指定はディレクトリ階層が格

納時と抽出時で異なることがあります。

(例)

UNIX ではドライブレターはディレクトリの一部と判断されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

948

ドライブレターを使用した例を次に示します。

Windowsで格納

C:\TEMP>%ADSH_OSCMD_DIR%\tar cvfP reg.tar G:\DIR\regfile

G:/DIR/regfile

UNIXで抽出

$ tar xvf reg.tar

G:/DIR/regfile

$ ls -lR ./G: total 8 drwxrwxr-x 2 USER1 GROUP1 4096 Oct 30 15:59 DIR

./G:/DIR: total 8

-rw-rw-r-- 1 USER1 GROUP1 3 Oct 30 15:59 regfile

UNIX 上でドライブレターはディレクトリとして作成されます。

• UNIX の場合,スペシャルファイルの抽出は,スペシャルファイルの作成権限を持つユーザーで行って

ください。

• このコマンドは,このコマンド自身が作成したアーカイブの操作だけをサポートします。アーカイブの

形式の違いによって,各 OS 提供の tar

コマンドと JP1/AS の tar

コマンド間でアーカイブの操作をし

た場合,正しく格納,抽出および表示できないことがあります。

• 格納時,抽出時,表示時でエンコーディングが異なる場合,ファイル名が正しく抽出,表示できない場

合があります。

• 8GB 以上のファイルをアーカイブに格納,抽出および表示はサポートしていません。

• UNIX の場合,2097152 以上のユーザー ID,グループ ID,メジャー番号,マイナー番号はサポート

していません。

• ユーザー名,グループ名が 32 文字以上のファイルはサポートしていません。

使用例

例 1 アーカイブの作成

C:\TEMP>%ADSH_OSCMD_DIR%\tar cvf ar.tar ar ar ar/file1 ar/file2

例 2 アーカイブの抽出

C:\TEMP>%ADSH_OSCMD_DIR%\tar xvf ar.tar ar ar ar\file1 ar\file2

8. 運用時に使用するコマンド

JP1/Advanced Shell

949

例 3 アーカイブの表示

C:\TEMP>%ADSH_OSCMD_DIR%\tar tvf ar.tar

drwx------ 1234/5678 0 Oct 30 15:52:24 2015 ar

-rw------- 1234/5678 0 Oct 30 15:52:24 2015 ar/file1

-rw------- 1234/5678 0 Oct 30 15:52:24 2015 ar/file2

例 4 アーカイブの追加格納(

-r

オプション時)

C:\TEMP>%ADSH_OSCMD_DIR%\tar rvf ar.tar ar tar: Reading archive to position at the end...done.

ar ar/file1 ar/file2

例 5 アーカイブの追加格納(

-u

オプション時)

C:\TEMP>%ADSH_OSCMD_DIR%\tar uvf ar.tar ar tar: Reading archive to position at the end...done.

ar/file2 ar/file2

は ar.tar

にすでに格納されていますが,格納する ar/file2

は ar.tar

のファイルより新しい時

刻のため格納されます。

例 6 クロスプラットフォームでの格納と抽出

Windowsで格納

C:\TEMP>%ADSH_OSCMD_DIR%\tar cvf reg.tar .\regfile

./regfile

UNIXで抽出

$ tar xvf reg.tar

./regfile

例 7 アーカイブ先を標準入出力にする

$ tar cvf - regfile > reg.tar

regfile

$ cat reg.tar | ./tar tvf -

-rw------- 1234/5678 5 Feb 17 16:47:28 2015 regfile

例 8 Windows 固有のパス名で格納して UNIX で抽出する

Windowsで格納

C:\TEMP>%ADSH_OSCMD_DIR%\tar cvfP reg.tar G:\DIR\regfile

G:/DIR/regfile

UNIXで抽出

$ ./tar xvf reg.tar

G:/DIR/regfile

$ ls -lR ./G: total 8 drwxrwxr-x 2 USER1 GROUP1 4096 Oct 30 15:59 DIR

8. 運用時に使用するコマンド

JP1/Advanced Shell

950

./G:/DIR: total 8

-rw-rw-r-- 1 USER1 GROUP1 3 Oct 30 15:59 regfile

UNIX での抽出は,

G:

もディレクトリとして抽出されます。

例 9 スーパーユーザーで抽出

$ ./tar tvf reg.tar

-rw-rw-r-- 1234/5678 3 Oct 30 15:59:00 2015 regfile

スーパーユーザーで抽出

# ./tar xvf reg.tar regfile

# ls -al regfile

-rw-rw-r-- 1 USER1 GROUP1 3 Oct 30 15:59 regfile

スーパーユーザーで抽出した場合,ユーザー,グループも抽出し設定されます。

例 10 異なるパス名のファイルを同一の親ディレクトリとして格納

DIR1/SUB1/file1

DIR2/SUB1/file2

が存在し, DIR1,DI2と同階層でtarコマンドを実行

$ tar -c -v -f ar.tar -C DIR1 SUB1 -C ../DIR2 SUB1

SUB1

SUB1/file1

SUB1

SUB1/file2

例 11 gzip 形式のアーカイブの作成

C:\TEMP>%ADSH_OSCMD_DIR%\tar cvzf ar.tar.gz ar ar ar/file1 ar/file2

例 12  gzip

コマンドのオプションを環境変数

GZIP

に指定して,gzip 形式のアーカイブの作成

$ export GZIP="-9 -q"

$ /opt/jp1as/cmd/tar cvzf ar.tar.gz ar ar ar/file1 ar/file2

例 13 gzip 形式のアーカイブからディレクトリの抽出

C:\TEMP>%ADSH_OSCMD_DIR%\tar xvzf ar.tar.gz ar ar ar/file1 ar/file2

8. 運用時に使用するコマンド

JP1/Advanced Shell

951

例 14 gzip 形式のアーカイブの表示

C:\TEMP>%ADSH_OSCMD_DIR%\tar tvzf ar.tar.gz

drwx------ 0/0 0 Dec 09 19:44:24 2015 ar

-rw------- 0/0 2758 Dec 09 19:39:35 2015 ar/file1

-rw------- 0/0 5516 Dec 09 19:39:55 2015 ar/file2

8.4.35 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 オプションを指定した場合は,ファイルの最終修正日時だけを変更

し,ファイルの最終アクセス日時は変更しません。

設定する日時の指定

8. 運用時に使用するコマンド

JP1/Advanced Shell

952

設定する日時は,-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 の両方の指定を省略した場合は,コマンド実行日時の西暦年が設定されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

953

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

8. 運用時に使用するコマンド

JP1/Advanced Shell

954

 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. 運用時に使用するコマンド

JP1/Advanced Shell

955

表 8-20 -r オプションを指定した場合に設定されるファイルの最終アクセス日時,最終修正

日時

-a オプションと-m オプションの指定

-a だけを指定

-m だけを指定

-a,-m の両方を指定,

または

-a,-m とも指定なし

パス名に指定されたファイル

の有無

存在する

存在しない

存在する

存在しない

存在する

存在しない

設定される最終アクセス日時 設定される最終修

Windows UNIX

正日時

(凡例)

◎:-r オプションに指定したファイルの対応する最終アクセス日時および最終修正日時が設定され

ます。

○:コマンドの実行日時が設定されます。

−:コマンド実行前のファイルの最終アクセス日時および最終修正日時がそのまま適用されます。

-t オプションまたは MMDDhhmm[YY]形式の設定日時を指定した場合

-t オプションまたは MMDDhhmm[YY]形式の設定日時で指定した日時は, パス名 に指定したファイル

の有無によって,次の表のように設定されます。

表 8-21 引数に設定日時を指定した場合に設定されるファイルの最終アクセス日時,最終修

正日時

-a オプションと-m オプショ

ンの指定

パス名に指定されたファイルの

有無

-a だけを指定

-m だけを指定

-a,-m の両方を指定,

または

-a,-m とも指定なし

存在する

存在しない

存在する

存在しない

存在する

存在しない

設定されるファイルの最終アクセス日時 設定されるファイ

Windows UNIX

ルの最終修正日時

(凡例)

◎:-t オプションに指定した設定日時,または MMDDhhmm[YY]形式の設定日時が設定されます。

○:コマンドの実行日時が設定されます。

−:コマンド実行前のファイルの最終アクセス日時および最終修正日時がそのまま適用されます。

8. 運用時に使用するコマンド

JP1/Advanced Shell

956

-r オプション,-t オプションおよび MMDDhhmm[YY]形式の設定日時を指定しないとき

-r オプション,-t オプションおよび MMDDhhmm[YY]形式の設定日時が指定されていない場合, パス

名 に指定したファイルの有無によって,次の表のように設定されます。

表 8-22 設定日時の取得および指定がない場合に設定されるファイルの最終アクセス日時,

最終修正日時

-a オプションと-m オプションの

指定

パス名に指定されたファイル

の有無

設定されるファイル

の最終修正日時

-a オプションだけを指定

-m オプションだけを指定

-a,-m の両方を指定,

または

-a,-m とも指定なし

存在する

存在しない

存在する

存在しない

存在する

存在しない

設定されるファイルの最終アクセ

ス日時

Windows

UNIX

− ○

(凡例)

○:コマンドを実行した日時

−:コマンド実行前のファイルの最終アクセス日時および最終修正日時がそのまま適用されます。

終了コード

終了コード

0

1

2

意味

正常終了。

エラー終了。

• 不正なオプションを指定しました。

• -t オプションに指定した設定日時,MMDDhhmm[YY]形式の設定日時が正しくありません。

• -r オプションに指定したファイルの読み込みに失敗しました。

エラー終了。

• ファイルの作成に失敗しました。

• ファイルの最終アクセス日時,最終修正日時の変更に失敗しました。

• 最終修正日時を変更するファイルのパス名にディレクトリを指定しました。【Windows 限定】

引数に複数のファイルが指定されているときは,後続のファイルを処理します。

注意事項

• UNIX の場合,-r オプションに指定するパス名,ファイルの最終アクセス日時と最終修正日時を変更す

るパス名にシンボリックリンク名を指定した場合,シンボリックリンク先のパスが対象となります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

957

Windows の場合,-r オプションに指定するパス名,ファイルの最終修正日時を変更するパス名にシン

ボリックリンク名を指定した場合,シンボリックリンク先のパスが対象となります。

• -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]形式の設定日時で指定した日時

になります。ファイルの最終アクセス日時はコマンド実行前のままです。

8. 運用時に使用するコマンド

JP1/Advanced Shell

958

• 複数のファイルに対して,ファイルの最終アクセス日時と最終修正日時を-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

8.4.36 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 のバージョン

・マシン(ハードウェア)のタイプ

8. 運用時に使用するコマンド

JP1/Advanced Shell

959

-m

マシン(ハードウェア)のタイプを表示します。

-n

【UNIX 限定】

次の情報を 1 行にまとめて順番に表示します。

・OS 名

・ノード名

・OS のリリース

・OS のバージョン

・マシン(ハードウェア)のタイプ

ノード名を表示します。

-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 以上

意味

正常終了

エラー終了

8. 運用時に使用するコマンド

JP1/Advanced Shell

960

注意事項

• 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 上でコマンドを実行した場合)

8. 運用時に使用するコマンド

JP1/Advanced Shell

961

$ /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

8. 運用時に使用するコマンド

JP1/Advanced Shell

962

8.4.37 uniq コマンド(ソートされたファイルから重複した行を削除する)

形式 uniq[-c][-d][-u][入力パス名[出力パス名]]

機能

ファイル中の重複した行を 1 行にして出力します。なお,同一内容の行が連続している場合だけ重複行と

見なします。

引数

オプションを省略した場合,-d オプションおよび-u オプションを指定したときと同じ動作となります。重

複している行は 1 行だけ出力し,重複していない行はすべて出力します。

-c

各出力行の先頭に,同一行が続けて出現した回数およびスペースを 1 つ出力します。回数は 4 桁で表

示します。4 桁で表示できない場合は,順次桁数を増やします。回数の後ろには 1 文字のスペースを表

示します。

-d

重複している行を 1 行だけ表示します。

-u

重複していない行を出力します。

入力パス名

入力対象のファイルを指定します。入力パス名を指定しない,または「-」を指定した場合は標準入力

から入力します。

出力パス名

結果を出力するファイルを指定します。出力パス名を指定しない,または「-」を指定した場合は標準

出力に出力します。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• 入力パス名と出力パス名に同じファイルを指定すると,ファイルは空になります。

• 比較できる 1 行の最大バイト数は 8192 バイトです。

8. 運用時に使用するコマンド

JP1/Advanced Shell

963

• バイナリファイルからの入力およびバイナリデータの出力は,動作を保証しません。

使用例 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 オプションを指定して,重複している行だけを表示します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

964

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]]

8.4.38 wc コマンド(ファイルのバイト,行,文字および単語をカウントす

る)

形式 wc[-c][-l][-m][-w][パス名 ...]

機能

ファイルのバイト,行,文字または単語をカウントします。入力ファイルの行数・単語数・文字数・バイ

ト数・ファイル名の順序に,オプションに指定された情報だけ表示します。

引数

-c

入力ファイルのバイト数を標準出力に出力します。

-l

入力ファイルの行数を標準出力に出力します。改行コードの数を行数とします。

8. 運用時に使用するコマンド

JP1/Advanced Shell

965

-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

8. 運用時に使用するコマンド

JP1/Advanced Shell

966

• -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

無効または不完全な文字として,次のものがあります。

• 無効または不完全なマルチバイト,ワイド文字,バイナリデータ

• ロケールと異なる文字コードの文字

8.4.39 which コマンド(外部コマンドのパスを取得する)

形式 which[-a]コマンド名 ...

機能

環境変数 PATH に設定されているコマンド検索パスから,実行する外部コマンドのコマンドパスを取得し

ます。取得したコマンドパスは標準出力に出力します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

967

引数

-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 コマンドの実行者に外部コマンドの実行権限があれば,実行できる外部コマンドと判断し,

コマンドパスを出力します。外部コマンドの実行権限がない場合,その外部コマンドはコマンドパ

スの出力対象にはなりません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

968

引数に指定したコマンド名にパスが含まれている場合

Windows の場合 which コマンドの実行者に外部コマンド格納ディレクトリの読み込み権限があればコマンドパス名を

出力します。外部コマンドの実行権限の有無は判断されません。

外部コマンド格納ディレクトリの読み込み権限がない場合は外部コマンドのコマンドパスが見つからな

かったことを示すメッセージを出力します。

コマンドパスの出力対象となる外部コマンドは拡張子が「.com」,「.exe」,「.cmd」,「.bat」の実行ファ

イルです。

指定した外部コマンドに拡張子が含まれない場合は,外部コマンド名に環境変数 PATHEXT に定義さ

れている順に拡張子を付けます。対象となる拡張子は「.com」,「.exe」,「.cmd」,「.bat」です。

指定した外部コマンドがシンボリックリンクの場合は,次のように動作します。

• シンボリックリンクとリンク先ファイルの両方の拡張子が「.com」,「.exe」,「.cmd」,「.bat」であ

ることで実行権限があると判断します。

• シンボリックリンクに拡張子が含まれていない場合は,環境変数 PATHEXT に定義されている順に

拡張子を付けます。ただし,リンク先のファイルは拡張子の付加の対象外です。対象となる拡張子

は「.com」,「.exe」,「.cmd」,「.bat」です。

UNIX の場合 which コマンドの実行者に外部コマンド格納ディレクトリ(パスを構成するすべてのディレクトリ)

の検索権限と外部コマンドの実行権限がある場合,引数に指定したコマンド名を出力します。これらの

権限がない場合は,外部コマンドのコマンドパスが見つからなかったことを示すメッセージを出力しま

す。

終了コード

終了コード

0

1

2

意味

正常終了

エラー終了。

外部コマンドのコマンドパスが見つかりませんでした。または,複数の外部コマンドを検索した際,

コマンドパスが見つからなかった外部コマンドがありました。

エラー終了。

• 不正なオプションを指定しました。

• 環境変数 PATH が定義されていません。

• Windows の場合,環境変数 PATHEXT が定義されていません。

注意事項

• 環境変数 PATH が定義されていない場合はエラー終了します。

• Windows の場合,環境変数 PATHEXT が定義されていない場合はエラー終了します。

• 次の名前を引数のコマンド名に指定した場合,外部コマンドとして検索します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

969

• 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 は存在しません。

8. 運用時に使用するコマンド

JP1/Advanced Shell

970

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. 運用時に使用するコマンド

JP1/Advanced Shell

971

8.5 UNIX 互換コマンド(スクリプト形式)【Windows 限定】

次の UNIX 互換コマンドは,JP1/Advanced Shell が提供するサンプルスクリプトファイルを使用して実

行します。提供するサンプルスクリプトファイルは Windows 限定です。UNIX では OS 提供のコマンド

を使用してください。

表 8-23 サンプルスクリプトファイルで提供する UNIX 互換コマンド

コマンド名 サンプルスクリプトファ

イル名

機能概要

全コマンド script_0 chmod script_chmod1 script_chmod2 script_chmod3 su who script_su1 script_who1

ジョブ定義スクリプトに記述されているコマンドの指定を無効にします。

ファイルの読み取り専用属性の有効・無効を切り替えます。

ファイルまたはフォルダに対するパーミッションを数値で設定します。

ファイルまたはフォルダに対するパーミッションをシンボルまたは数値で設定します。

実行ユーザーの権限でプログラムを実行します。

ログインユーザーの情報をログに出力します。

サンプルスクリプトファイルを使うための詳細手順は,「

(2) スクリプト形式の UNIX 互換コマンドを使

8.5.1 chmod コマンド(ジョブ定義スクリプトに記述されている chmod

コマンドの指定を無効にする)

形式 chmod [オプション][モード][パス名]

このコマンドはサンプルスクリプトファイル script_0 を基に作成します。作成手順については「

(2) スク

機能

ジョブ定義スクリプトに記述されているすべての chmod コマンドとその引数の指定を無効にします。こ

のコマンドを実行すると,常に終了コード 0 で正常終了します。

Windows ではログインユーザーごとにアクセス制御する運用とすると,ジョブ定義スクリプトの実行時

のアクセス権変更が不要になる場合があります。このような場合,このコマンドを実行することで,ジョ

ブ定義スクリプトのすべての chmod コマンドの定義を無効にできるため,UNIX から Windows に移行

してきたジョブ定義スクリプトの修正が不要になります。

8. 運用時に使用するコマンド

JP1/Advanced Shell

972

引数

オプション

指定を無視します。

モード

指定を無視します。

パス名

指定を無視します。

終了コード

終了コード

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

8.5.2 chmod コマンド(ファイルの読み取り専用属性の有効・無効を切り

替える)

形式 chmod [-fhR] モード パス名

このコマンドはサンプルスクリプトファイル script_chmod1 を基に作成します。作成手順については

「 (2) スクリプト形式の UNIX 互換コマンドを使うための準備【Windows 限定】

8. 運用時に使用するコマンド

JP1/Advanced Shell

973

機能

ファイルの読み取り専用属性の有効・無効を切り替えます。

このコマンドは,ファイルの更新を抑止したい場合などに使用します。

引数

-f

指定を無視します。

-h

指定を無視します。

-R

指定を無視します。

モード

モードをシンボルまたは数値で指定して,読み取り専用属性の有効・無効を切り替えます。指定方法を

次に示します。これ以外のモードが指定された場合,標準エラー出力へ「chmod: invalid file mode:

モード

」を出力し,アクセス許可は変更しません。

指定内容 数値での指定

読み取り専用属性を無効にし,書き込みを可能にす

る場合

(adshscripttool -fmode -s w コマンドの実行結果が

AAA または RRR の場合に相当)

読み取り専用属性を有効にし,書き込みを禁止にす

る場合

(adshscripttool -fmode -s w コマンドの実行結果が

DDD の場合に相当)

シンボルでの

指定

+w を指定

-w を指定 u,g,o の書き込み権限のモードビットがすべて

ON になるよう指定(777,666,333,222,733

など) u,g,o の書き込み権限のモードビットがすべて

OFF になるよう指定(555,444,111,000,511

など)

パス名

対象とするファイルを指定します。複数指定することもできます。フォルダは指定できません。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

8. 運用時に使用するコマンド

JP1/Advanced Shell

974

注意事項

• ファイルの属性の変更権限がない場合,attrib コマンドが標準エラー出力にメッセージ「アクセスは拒

否されました -

パス名

」を出力して attrib コマンドがエラーとなり,権限を変更できません。実行ユー

ザーに属性の変更権限を付与して使用してください。

• パス名にフォルダを指定した場合,メッセージ「chmod: cannot access [

パス名

]: change for the directory is not supported」を出力し,フォルダの読み取り専用属性は変更されないで,終了コード

1 で終了します。

• 引数パス名にシンボリックリンクを指定した場合,リンク先のファイルが変更の対象となります。シン

ボリックリンク自身を変更の対象とする場合は OS が提供するコマンドを使用してください。

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイル script_chmod1 を基に chmod コマンドが作成されていることを前提とします。

• シンボル指定でファイルへの書き込みを禁止します。 chmod -w test.txt

• シンボル指定でファイルへの書き込みを許可します。 chmod +w test.txt

• 数値指定でファイルへの書き込みを禁止します。 chmod 444 test.txt

• 指定が許可されていないモードを指定します。 chmod -r test.txt

この場合,標準エラー出力には次のように出力されます。 chmod: invalid file mode: -r

8.5.3 chmod コマンド(パーミッションを数値で設定する)

形式 chmod [-fhR] モード パス名

このコマンドはサンプルスクリプトファイル script_chmod2 を基に作成します。作成手順については

「 (2) スクリプト形式の UNIX 互換コマンドを使うための準備【Windows 限定】

8. 運用時に使用するコマンド

JP1/Advanced Shell

975

機能

既存の ACL(Access Control List)を削除して,モードの数値の指定に従った ACL を再設定します。

このコマンドは,次のような設定をしたい場合などにアクセス権を数値で設定します。

•「所有者」以外のユーザーの「書き込み」「読み取り」を抑止したい場合

• すべてのユーザーの「書き込み」または「読み取り」を許可したい場合

•「所有者」を含むすべてのユーザーの「書き込み」を抑止したい場合

引数

-f

指定を無視します。

-h

指定を無視します。

-R

指定を無視します。

モード

モードの指定値と,それによって設定される各 ACE(Access Control Entry)のアクセス許可を次に

示します。これ以外のモードが指定された場合,標準エラー出力へ「chmod: invalid file mode:

モー

」を出力し,アクセス許可は変更されません。

666

655

644

633

622

600

744

733

722

700

モードの指定値

777

766

755

設定されるアクセス許可

所有者:F,Everyone:F

所有者:F,Everyone:C

所有者:F,Everyone:R

所有者:F,Everyone:R

所有者:F,Everyone:W

所有者:F,Everyone:W

所有者:F

所有者:C,Everyone:C

所有者:C,Everyone:R

所有者:C,Everyone:R

所有者:C,Everyone:W

所有者:C,Everyone:W

所有者:C

8. 運用時に使用するコマンド

JP1/Advanced Shell

976

300

222

200

422

400

333

322

522

500

444

433

モードの指定値

555

544

533

設定されるアクセス許可

所有者:R,Everyone:R

所有者:R,Everyone:R

所有者:R,Everyone:W

所有者:R,Everyone:W

所有者:R

所有者:R,Everyone:R

所有者:R,Everyone:W

所有者:R,Everyone:W

所有者:R

所有者:W,Everyone:W

所有者:W,Everyone:W

所有者:W

所有者:W,Everyone:W

所有者:W

(凡例)

表の F,C,R,W は,cacls コマンドの次のアクセス許可と対応しています。

 F:フルコントロール

 C:変更権限

 R:読み取り権限

 W:書き込み権限

モードでは,読み取り権限と書き込み権限を合わせたもの(モードビット 6 の場合)を変更権限として

定義しています。すべての権限を合わせたもの(モードビット 7 の場合)をフルコントロールとして定

義しています。

モードで,実行権限に相当する指定は無視します。したがって,モードビット 5 は 4 と同等,モード

ビット 3 は 2 と同等として定義しています。

パス名

対象とするファイルまたはフォルダを指定します。複数指定することもできます。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

8. 運用時に使用するコマンド

JP1/Advanced Shell

977

注意事項

• このコマンドを実行すると,既存の ACL は削除され,モードの説明にある ACE の設定だけを実施し

ます。必要なアカウントの ACE がある場合は,サンプルスクリプト内の cacls コマンドの定義に追加

してください。

•「その他のユーザー」のアカウントを Everyone にしているため,所有者のアクセス権がその他のユー

ザーのアクセス権より低い場合でも,所有者は Everyone のアクセス権でアクセスできるようになりま

す。

• ファイルおよびフォルダのアクセス許可の変更権限がない場合,cacls コマンドが標準エラー出力に

メッセージ「アクセスが拒否されました」を出力して cacls コマンドがエラーとなり,権限を変更でき

ません。実行ユーザーにアクセス許可の変更権限を付与して使用してください。

• 引数パス名にシンボリックリンクを指定した場合,リンク先のファイル,ディレクトリが変更の対象と

なります。シンボリックリンク自身を変更の対象とする場合は OS が提供するコマンドを使用してくだ

さい。

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイル script_chmod2 を基に chmod コマンドが作成されていることを前提とします。

• 指定したファイルに対し,すべてのユーザーを読み取り可能にします。 chmod 444 test.txt

• 指定が許可されていないモードを指定します。 chmod 611 test.txt

この場合,標準エラー出力には次のように出力されます。 chmod: invalid file mode: 611

8.5.4 chmod コマンド(パーミッションをシンボルまたは数値で設定する)

形式 chmod [-fhR] モード パス名

このコマンドはサンプルスクリプトファイル script_chmod3 を基に作成します。作成手順については

「 (2) スクリプト形式の UNIX 互換コマンドを使うための準備【Windows 限定】

8. 運用時に使用するコマンド

JP1/Advanced Shell

978

機能

所有者および Everyone 以外の ACE を削除して,モードのシンボルまたは数値の指定に従い,アクセス

許可を変更または設定します。

このコマンドは,次のような設定をしたい場合などにアクセス権をシンボルまたは数値で設定します。

• chmod コマンドのモードがシンボルで指定されたジョブ定義スクリプトを Windows に移行したい

場合

•「所有者」またはすべてのユーザーのアクセス権を追加および抑止したい場合

引数

-f

指定を無視します。

-h

指定を無視します。

-R

指定を無視します。

モード

モードの指定値と,それによって設定される各 ACE のアクセス許可を次に示します。これ以外のモー

ドが指定された場合,標準エラー出力へ「chmod: invalid file mode:

モード

」を出力し,アクセス許

可は変更しません。

設定されるアクセス許可 モードの指定値

(括弧内:adshscripttool -fmode コマンドの実行結果) u+r(A00000000) u+rw(AA0000000) u+rwx(AAA000000) u+w(0A0000000) u-rwx(DDD000000) u=r(RDD000000) u=rw(RRD000000) u=rwx(RRR000000) u=w(DRD000000) o+r(000000A00) o+rw(000000AA0) o+rwx(000000AAA)

所有者:R を追加

所有者:C を追加

所有者:F を追加

所有者:W を追加

所有者の ACE を削除

所有者:R に置き換え

所有者:C に置き換え

所有者:F に置き換え

所有者:W に置き換え

Everyone:R を追加

Everyone:C を追加

Everyone:F を追加

8. 運用時に使用するコマンド

JP1/Advanced Shell

979

モードの指定値

(括弧内:adshscripttool -fmode コマンドの実行結果) o+w(0000000A0) o-rwx(000000DDD) o=r(000000RDD) o=rw(000000RRD) o=rwx(000000RRR) o=w(000000DRD)

+r / ugo+r(A00A00A00)

+rw / ugo+rw(AA0AA0AA0)

+rwx / ugo+rwx(AAAAAAAAA)

+w / ugo+w(0A00A00A0)

-rwx / ugo-rwx(DDDDDDDDD)

=r / ugo=r(RDDRDDRDD)

=rw / ugo=rw(RRDRRDRRD)

=rwx / ugo=rwx(RRRRRRRRR)

=w / ugo=w(DRDDRDDRD)

777(RRRRRRRRR)

766(RRRRRDRRD)

755(RRRRDRRDR)

744(RRRRDDRDD)

733(RRRDRRDRR)

722(RRRDRDDRD)

700(RRRDDDDDD)

666(RRDRRDRRD)

655(RRDRDRRDR)

644(RRDRDDRDD)

633(RRDDRRDRR)

622(RRDDRDDRD)

600(RRDDDDDDD)

555(RDRRDRRDR)

544(RDRRDDRDD)

8. 運用時に使用するコマンド

JP1/Advanced Shell

設定されるアクセス許可

Everyone:W を追加

Everyone の ACE を削除

Everyone:R に置き換え

Everyone:C に置き換え

Everyone:F に置き換え

Everyone:W に置き換え

所有者:R,Everyone:R を追加

所有者:C,Everyone:C を追加

所有者:F,Everyone:F を追加

所有者:W,Everyone:W を追加

所有者,Everyone の ACE を削除

所有者:R,Everyone:R に置き換え

所有者:C,Everyone:C に置き換え

所有者:F,Everyone:F に置き換え

所有者:W,Everyone:W に置き換え

所有者:F,Everyone:F に置き換え

所有者:F,Everyone:C に置き換え

所有者:F,Everyone:R に置き換え

所有者:F,Everyone:R に置き換え

所有者:F,Everyone:W に置き換え

所有者:F,Everyone:W に置き換え

所有者:F に置き換え

所有者:C,Everyone:C に置き換え

所有者:C,Everyone:R に置き換え

所有者:C,Everyone:R に置き換え

所有者:C,Everyone:W に置き換え

所有者:C,Everyone:W に置き換え

所有者:C に置き換え

所有者:R,Everyone:R に置き換え

所有者:R,Everyone:R に置き換え

980

モードの指定値

(括弧内:adshscripttool -fmode コマンドの実行結果)

533(RDRDRRDRR)

522(RDRDRDDRD)

500(RDRDDDDDD)

444(RDDRDDRDD)

433(RDDDRRDRR)

422(RDDDRDDRD)

400(RDDDDDDDD)

333(DRRDRRDRR)

322(DRRDRDDRD)

300(DRRDDDDDD)

222(DRDDRDDRD)

200(DRDDDDDDD)

設定されるアクセス許可

所有者:R,Everyone:W に置き換え

所有者:R,Everyone:W に置き換え

所有者:R に置き換え

所有者:R,Everyone:R に置き換え

所有者:R,Everyone:W に置き換え

所有者:R,Everyone:W に置き換え

所有者:R に置き換え

所有者:W,Everyone:W に置き換え

所有者:W,Everyone:W に置き換え

所有者:W に置き換え

所有者:W,Everyone:W に置き換え

所有者:W に置き換え

(凡例)

表の F,C,R,W は,cacls コマンドの次のアクセス許可と対応しています。

 F:フルコントロール

 C:変更権限

 R:読み取り権限

 W:書き込み権限

モードでは,読み取り権限と書き込み権限を合わせたもの(モードビット 6 の場合)を変更権限として

定義しています。すべての権限を合わせたもの(モードビット 7 の場合)をフルコントロールとして定

義しています。

モードで,実行権限に相当する指定は無視します。したがって,モードビット 5 は 4 と同等,モード

ビット 3 は 2 と同等として定義しています。

パス名

対象とするファイルまたはフォルダを指定します。複数指定することもできます。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

8. 運用時に使用するコマンド

JP1/Advanced Shell

981

注意事項

• このコマンドを実行すると,所有者および Everyone 以外の ACE は削除され,モードの説明にある

ACE の設定だけを実施します。必要なアカウントの ACE がある場合は,サンプルスクリプト内の cacls

コマンドの定義に追加してください。

•「その他のユーザー」のアカウントを Everyone にしているため,所有者のアクセス権がその他のユー

ザーのアクセス権より低い場合でも,所有者は Everyone のアクセス権でアクセスできるようになりま

す。

• ファイルおよびフォルダのアクセス許可の変更権限がない場合,cacls コマンドが標準エラー出力に

メッセージ「アクセスが拒否されました」を出力して cacls コマンドがエラーとなり,権限を変更でき

ません。実行ユーザーにアクセス許可の変更権限を付与して使用してください。

• 引数パス名にシンボリックリンクを指定した場合,リンク先のファイル,ディレクトリが変更の対象と

なります。シンボリックリンク自身を変更の対象とする場合は OS が提供するコマンドを使用してくだ

さい。

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイル script_chmod3 を基に chmod コマンドが作成されていることを前提とします。

• その他のユーザーに書き込み権限を追加します。 chmod o+w test.txt

• 指定が許可されていないモードを指定します。 chmod g-w test.txt

この場合,標準エラー出力には次のように出力されます。 chmod: invalid file mode: g-w

8.5.5 su コマンド(ジョブ定義スクリプトに記述されている su コマンドの

指定を無効にする)

形式 su [-] [ユーザー名] [引数...]

このコマンドはサンプルスクリプトファイル script_0 を基に作成します。作成手順については「

(2) スク

8. 運用時に使用するコマンド

JP1/Advanced Shell

982

機能

ジョブ定義スクリプトに記述されているすべての 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

8. 運用時に使用するコマンド

JP1/Advanced Shell

983

8.5.6 su コマンド(実行ユーザーの権限でプログラムを実行する)

形式 su [-] ユーザー名 {-c コマンドライン|スクリプトファイルのパス名}

[実行時パラメーター]

このコマンドはサンプルスクリプトファイル script_su1 を基に作成します。作成手順については「

(2) 

機能

引数に指定されたコマンドを実行します。ユーザー名の指定は無視され,実行ユーザーの権限で実行され

ます。

既存のジョブ定義スクリプトに su コマンドが記述されている場合に,ジョブ定義スクリプトを書き換えな

いで Windows に移行できます。

引数

-

指定を無視します。

ユーザー名

指定を無視します。

-c コマンドライン

ジョブで実行するコマンドラインを指定します。

コマンドラインには,シェル運用コマンド,UNIX 互換コマンドなど,ジョブ定義スクリプトファイル

に記述できるコマンドを指定できます。

スクリプトファイルのパス名

実行するスクリプトファイルのパス名を指定します。

実行時パラメーター

コマンドライン

または

スクリプトファイルのパス名

の位置パラメーターに格納する値を指定します。ス

ペースを実行時パラメーターとして指定する場合は,その文字列を"(ダブルクォーテーション)で囲

んでください。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

8. 運用時に使用するコマンド

JP1/Advanced Shell

984

注意事項

• 実行ユーザーに必要な権限を与えてからこのコマンドを実行してください。

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイル script_su1 を基に su コマ

ンドが作成されていることを前提とします。

• 実行ユーザーに必要な権限を与え,引数-c に複数のコマンドを指定して実行します。

# 必要な権限を持ったユーザーからコマンドを実行 su - ${DBADMIN} -c 'export PDDIR=C:\\db\\db1; start -q'

• 実行ユーザーに必要な権限を与え,引数にスクリプトファイル名を指定して実行します。

# 必要な権限を持ったユーザーからジョブ定義スクリプトを実行 su - ${DBADMIN} '.\\DBSTART.ash'

8.5.7 who コマンド(ジョブ定義スクリプトに記述されている who コマン

ドの指定を無効にする)

形式 who [am i]

このコマンドはサンプルスクリプトファイル script_0 を基に作成します。作成手順については「

(2) スク

機能

ジョブ定義スクリプトに記述されているすべての who コマンドとその引数の指定を無効にします。このコ

マンドを実行すると,常に終了コード 0 で正常終了します。

UNIX で who コマンドを使っていたが,Windows ではその情報が不要となったときなどに,ジョブ定義

スクリプトに記述されている who コマンドの処理が不要になる場合があります。このような場合,このコ

マンドを使用することで,ジョブ定義スクリプトのすべての who コマンドの定義を無効にできるため,

UNIX から Windows に移行してきたジョブ定義スクリプトの修正が不要になります。

引数 am i

指定を無視します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

985

終了コード

終了コード

0

意味

正常終了

注意事項

• コマンド置換で引数に指定したコマンドは実行されるため,後続の処理に影響がある場合は,指定を見

直してください。

8.5.8 who コマンド(ログインユーザーの情報をログに出力する)

形式 who [am i]

このコマンドはサンプルスクリプトファイル script_who1 を基に作成します。作成手順については「 (2) 

機能 quser.exe コマンドまたは qwinsta.exe コマンドを起動します。

ジョブ定義スクリプトの実行時にシステムにログインしているユーザーの一覧をログに出力したい場合に

指定します。

引数 am i

指定を無視します。

終了コード

終了コード

0

0 以外

意味

正常終了

エラー終了(quser.exe コマンドまたは qwinsta.exe コマンドの終了コード)

使用例

ジョブ定義スクリプトの定義例を次に示します。サンプルスクリプトファイル script_who1 を基に who

コマンドが作成されていることを前提とします。

• 実行時のログインユーザーの一覧をログファイル「log.txt」に出力します。

8. 運用時に使用するコマンド

JP1/Advanced Shell

986

who >>log.txt

8. 運用時に使用するコマンド

JP1/Advanced Shell

987

9

ジョブ定義スクリプトのコマンドおよび制御文

この章では,ジョブ定義スクリプトファイルに使用するコマンドや制御文に関して,記述形式と

詳細を説明します。

JP1/Advanced Shell

988

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

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

989

• 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. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

990

9.1.1 シェル標準コマンドの記述形式

シェル標準コマンドの記述形式を次に示します。

0

コマンド名[△

1

オプション]…[△

1

オプション][△

1

オペランド]

• 最初にオプションを指定し,次にオペランドを指定します。オペランドとは,オプション名とオプショ

ン値のほかにコマンドに指定できる引数のことです。オプションの前にオペランドを指定した場合は,

指定内容をすべてオペランドとして処理します。

• オプションは「オプション名 [△

1

順序は任意です。

値 ]」の形式で指定します。オプションを複数指定する場合,指定

• 値のないオプションは連続して指定できます(例:「-a -b -c」と「-abc」は同じです)。その場合,最

後のオプションには値を指定できます(例:「-abc xyz」の「xyz」は,-c オプションの値となります)。

• 不当なオプション,または指定できる範囲外の値を指定した場合,エラーになります。

• オプション名にはマルチバイト文字は使用できません。

9.1.2 シェル拡張コマンドの記述形式

シェル拡張コマンドの記述形式を次に示します。

0

コマンド名[△

1

オプション][△

1

オペランド]

9.1.3 スクリプト拡張コマンドの記述形式

スクリプト拡張コマンドの記述形式を次に示します。

0

コマンド名△

1

属性値[…△

1

属性値][△

1

-属性名△

1

属性値[…△

1

-属性名△

1

属性値]]

• スクリプト拡張コマンドのコマンド名は,必ず「#-adsh_」で開始します。

• コマンド名のあとに,「 属性値 」のリストと,「属性名 属性値 」のリストを連続して記載します。

•「 属性値 」のリストは順序に意味があるため,省略できません。「属性名 属性値 」のリストは順不同で

あり,省略できます。

•「 属性値 」に「-」で開始する文字列を指定すると,「属性名 」の指定と見なされます。このため,「-」

を「

\

」,「"」,または「'」でエスケープしてください。

• スクリプト拡張コマンドと同一のコメントは記述できません。スクリプト拡張コマンドをコメントにす

る場合は,先頭にもう 1 つ「#」を書いてください。

• すべての記述でダブルクォーテーション「"」,シングルクォーテーション「'」,エスケープ文字「

\

」が

使用できます。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

991

ただし,スクリプト拡張コマンドではダブルクォーテーションで囲まれた文字列中の「

\

」は,直後の

文字の種類に関係なくすべてエスケープ文字となります。ダブルクォーテーションで囲まれた文字列に

\

」を指定したい場合は,

\\

と記述してください。

• コマンド名,属性名および属性値(予約語の場合)は,すべて大文字と小文字を区別します。

• 属性値には環境変数名が指定でき,スクリプト起動前に設定していた値で置換できます。環境変数名を

記述する場合,{ }で囲む必要があります。環境変数名は「 (2) 文字セットの定義

」で示す<環境変数

名>の形式で,255 バイト以内で記述します。

• スクリプト拡張コマンドは各行の先頭に記述してください。また,コマンド名の後ろから改行コードま

でに必ずスペースを指定します。スペース以外が存在すると構文解析エラーになります。

• コマンド区切り記号を指定して,同一行の 2 番目以降にスクリプト拡張コマンドを記述できません。記

述すると構文解析エラーになります。

• 関数内にスクリプト拡張コマンドを記述できません。記述すると構文解析エラーになります。

• for 文,while 文,until 文のブロック内および関数定義内に,スクリプト拡張コマンドを記述できませ

ん。記述すると,実行前に文法エラーになります。

•「.」で呼び出す外部スクリプトの中に,スクリプト拡張コマンドを記述できません。記述するとコメン

トとして扱われます。

スクリプト拡張コマンドを複数行に分けて記述する場合は,2 行目以降を次の形式で記述します。

#-adsh△

1

継続指定内容

• コマンド名および属性の区切り文字の個所だけ,継続行指定ができます。コマンド名,属性名および属

性値の途中で継続行指定はできません。

• 継続行で文法エラーがある場合,エラーメッセージに表示される行番号は,そのスクリプト拡張コマン

ドの先頭行の行番号となります。

(1) 制限事項

• 継続する行を含めて,スクリプト拡張コマンドの 1 行は 8,191 バイト以下にしてください。

• 属性値を複数指定する場合はスペースまたはコンマで区切ります。コンマの間の値は省略できません。

(2) 文字セットの定義

属性値として使用できる文字セットの定義を次の表に示します。

表 9-1 属性値として使用できる文字セットの定義

構文要素 指定できる文字の内容

<記号名称>

<環境変数名>

{<英字>

|

<数字>

|

@

|

#

|

_(アンダースコア)}+

{<英字>

|

_(アンダースコア)}{<英字>

|

_(アンダースコア)

|

<数字>}

*

対象

ジョブ名など

ファイル環境変数定義名

など

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

992

構文要素

<パス名>

<任意文字列>

指定できる文字の内容

OS のファイルパス名規則に従った文字列です。

\

」はメタキャラクタ(エスケープ文字)として扱うため,

Windows では次のように記述してください。メタキャラクタにつ

いては,「 メタキャラクタ 」を参照してください。

 指定例:'C:

\ test'または C:

\\ test など

任意の文字による文字列です。

次の範囲での利用を推奨します。

{<英字>

|

<数字>

|

@

|

#

|

_(アンダースコア)}+

対象

パス名

環境変数値など

9.1.4 スクリプト制御文の記述形式

スクリプト制御文の記述形式を次に示します。

0

制御文[△

1

条件][△

1

予約語[△

1

     [△

[△

1

条件][△

1

予約語[△

0

制御文(終了)または予約語]

1

処理]]…

処理]]

条件 , 予約語 , 処理

条件,予約語,処理などを指定します。

9.1.5 スクリプト予約語コマンドの記述形式

スクリプト予約語コマンドの記述形式を次に示します。

0

コマンド名[△

1

オプション]…[△

1

オプション][△

1

オペランド]

• 最初にオプションを指定し,次にオペランドを指定します。オペランドとは,オプション名とオプショ

ン値のほかにコマンドに指定できる引数のことです。オプションの前にオペランドを指定した場合は,

指定内容をすべて任意名として処理します。

• オプションは「オプション名 [△

1

順序は任意です。

値 ]」の形式で指定します。オプションを複数指定する場合,指定

• 値のないオプションは連続して指定できます(例:「-a -b -c」と「-abc」は同じです)。その場合,最

後のオプションには値を指定できます(例:「-abc xyz」の「xyz」は,-c オプションの値となります)。

• 不当なオプション,または指定できる範囲外の値を指定した場合,エラーになります。

• オプション名にはマルチバイト文字は使用できません。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

993

9.2 コマンドおよび制御文の一覧

シェル標準コマンド,シェル拡張コマンド,スクリプト拡張コマンド,スクリプト制御文,およびスクリ

プト予約語コマンドの概要を説明します。

9.2.1 シェル標準コマンドの一覧

シェル標準コマンドには,特殊組み込みコマンドと正規組み込みコマンドがあります。

表 9-2 特殊組み込みコマンドの一覧

コマンド名 機能概要 readonly return set shift trap typeset unset

:

.

break continue eval exec exit export

シェルスクリプトを実行します。

引数を展開し,終了コード 0 を返します。

繰り返し処理を抜けます。

ループの処理を中断して,ループの先頭に戻ります。

引数を 1 つにまとめて,コマンドとして実行します。

指定されたコマンド実行して終了します。

シェルを終了します。

シェル変数をエクスポートします。

変数の属性を読み込み専用に変更する,または読み込み専用の変数を表示します。

関数またはジョブ定義スクリプトから復帰します。

シェルオプションを設定する,配列を作成する,または変数の値を表示します。

実行時パラメーターをシフトします。

シグナルや強制終了要求を受けたときの動作を設定します。

変数や関数の属性と値を明示的に宣言します。

変数の値と属性の設定を解除します。

表 9-3 正規組み込みコマンドの一覧

コマンド名 alias builtin cd command echo

機能概要

エイリアスを定義します。

組み込みコマンドを実行します。

カレントディレクトリを移動します。

組み込みコマンドや外部コマンドを実行します。

引数で指定した値を標準出力に出力します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

994

let print pwd read

コマンド名 false getopts kill test times true ulimit【UNIX 限定】 umask【UNIX 限定】 unalias wait whence

機能概要

終了コード 1 を返します。

引数を解析します。

プロセスにシグナルを送信します。

算術式による数値計算を行って,評価します。

引数で指定した値を,標準出力に出力します。

カレントディレクトリのパスを表示します。

標準入力から読み込んでシェル変数に格納します。

条件式を判定します。

シェルが消費した CPU 時間を表示します。

終了コード 0 を返します。

システムリソースの上限を設定し,情報を表示します。

ファイルモード作成マスクを設定し,表示します。

エイリアス定義を無効にします。

プロセスの完了を待ちます。

指定された文字列をコマンドとした場合の解釈を表示します。

9.2.2 シェル拡張コマンドの一覧

シェル拡張コマンドの一覧を次の表に示します。すべて正規組み込みコマンドです。

表 9-4 シェル拡張コマンドの一覧

コマンド名 adshappexec

【Windows 実行

環境限定】 adshappexec

【Windows 開発

環境限定】 adshcmdrc adshecho adshjoberr adshmktemp adshparsecsv

機能概要

アプリケーション実行エージェントに実行アプリケーションの起動要求をします。

開発環境でのデバッグのために,アプリケーション実行エージェントを経由しないで実行アプリケーショ

ンを起動します。

コマンドの終了コードのしきい値を定義します。

ユーザー応答機能で,指定した事象通知メッセージを JP1 イベントとして発行します。

ジョブおよびジョブステップにエラーを通知します。

ほかと重ならない名前を持つファイルを作成します。

CSV データを解析します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

995

コマンド名 adshparsejson adshread adshscripttool

【Windows 限

定】 adshvarconv

機能概要

JSON データを解析します。

ユーザー応答機能で,指定した応答要求メッセージを応答待ちイベントとして発行します。

ジョブ定義スクリプトを作成しやすくするための情報の取得や出力などを実行します。

変数の値を変換します。

9.2.3 スクリプト拡張コマンドの一覧

スクリプト拡張コマンドの一覧およびジョブ内での指定個数の上限値を次の表に示します。

表 9-5 スクリプト拡張コマンドの一覧

コマンド名

#-adsh_file

#-adsh_file_temp

#-adsh_job

#-adsh_job_stop

#-adsh_path_var

#-adsh_rc_ignore

#-adsh_script

#-adsh_spoolfile

#-adsh_step

機能概要

通常ファイルの割り当ておよび後処理をします。

一時ファイルの割り当ておよび後処理をします。

ジョブ名を宣言します。

ジョブの打ち切り条件を定義します。

パス名を扱うシェル変数を定義します。

常に正常終了するコマンドを定義します。

実行中のジョブ定義スクリプトから外部のジョブ定義スクリプ

トファイルを呼び出します。

プログラム出力データファイルの割り当てをします。

指定個数の上限値

4,095

4,095

1

1,023

1

1,023

4,095

ジョブ内:4,095

1 つのジョブステップ内:255

ジョブステップ外:255

ジョブステップを定義します。#-adsh_step_start,#adsh_step_end および#-adsh_step_error コマンドがあります。

4,095

注※

ジョブ内の指定個数の上限は,adshexec コマンドの引数に指定したジョブ定義スクリプトファイルに

定義されたスクリプトと,そのスクリプトから呼び出される#-adsh_script コマンドによる外部スクリ

プトで指定された個数の合計です。外部スクリプトには,ネストで呼び出しているスクリプトも含みま

す。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

996

9.2.4 スクリプト制御文の一覧

スクリプト制御文の一覧を次の表に示します。

表 9-6 スクリプト制御文の一覧

制御文 case for if until while

機能概要

文字列の内容に応じて,幾つかある処理のうち,1 つを実行します。

値を順次変化させながら,同じ処理を繰り返し実行します。

条件に合わせて分岐することで,各条件に沿った処理を実行します。

条件が成立するまで,同じ処理を繰り返し実行します。

条件が成立している間,同じ処理を繰り返し実行します。

9.2.5 スクリプト予約語コマンドの一覧

スクリプト予約語コマンドの一覧を次の表に示します。

表 9-7 スクリプト予約語コマンドの一覧

コマンド名 time

機能概要

コマンドの実行時間を表示します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

997

9.3 シェル標準コマンド

シェル標準コマンドは,次の 2 つの組み込みコマンドに分類されます。組み込みコマンドはシェル本体に

組み込まれたコマンドであり,シェル自身によって実行できます。

• 特殊組み込みコマンド

コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

• 正規組み込みコマンド

コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。

9.3.1 .コマンド(シェルスクリプトを実行する)

形式

. filename[args]

機能

カレントシェル上でシェルスクリプトを実行します。 filename に指定されたシェルスクリプトをシェル環

境で実行します。 filename で指定されたシェルスクリプトのカレントディレクトリは,.(ドット)コマ

ンドを使用したカレントシェルのカレントディレクトリと同じになります。

カレントシェル環境で実行するため, filename のシェルスクリプトが終了したあとも, filename のシェ

ルスクリプト内で設定された変数および定義された関数を使用できます。また, filename のシェルスクリ

プト開始前に設定された変数および定義された関数を, filename のシェルスクリプト内で使用できます。

ただし, filename に指定したシェルスクリプト内でスクリプト拡張コマンドは使用できません。スクリプ

ト拡張コマンドが記述されていた場合は,コメントとして扱います。スクリプト拡張コマンドについては,

「 9.5 スクリプト拡張コマンド 」を参照してください。

引数 filename

カレントシェル上で実行するシェルスクリプトのファイル名を指定します。 args filename のシェルスクリプト内で使用する位置パラメーターを指定します。args の指定の有無または filename 内での位置パラメーターの変更の有無によって,位置パラメーターは次のように値が設定さ

れます。 args の指定

あり filename 内の位置パラメーターの変更あり

• filename 内の位置パラメーターの値は引数 args

に指定した値になります。 filename 内の位置パラメーターの変更なし

左の説明と同じです。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

998

args の指定

あり

なし filename 内の位置パラメーターの変更あり

• filename 終了後の位置パラメーターの値は.

(ドット)コマンド実行直前の値になります。

• filename 内の位置パラメーターの値は.(ドッ

ト)コマンド実行直前の値になります。

• filename 終了後の位置パラメーターの値は filename 内で変更した値になります。 filename 内の位置パラメーターの変更なし

左の説明と同じです。

• filename 内の位置パラメーターの値は.(ドッ

ト)コマンド実行直前の値になります。 filename 終了後の位置パラメーターの値は.

(ドット)コマンド実行直前の値になります。

終了コード

終了コード

0〜255

0

1

意味

正常終了

• 実行したスクリプトの終了コードが設定されます。

正常終了

• 引数 filename を指定しないで実行しました。

エラー終了

• 引数 filename に通常ファイル以外を指定しました。

• 引数 filename に指定されたファイルを読み込むことができませんでした。

注意事項

• このコマンドで指定したシェルスクリプトは,スプールディレクトリのスクリプトイメージファイルに

は出力されません。実行履歴としてスクリプトイメージファイルに出力したい場合は,#-adsh_script

コマンドを使用してください。

• このコマンドが正常終了した場合,コマンドの実行結果はジョブ実行ログに出力されません。また,

ジョブやジョブステップの正常終了またはエラー終了の判定にも使用されません。呼び出した外部スク

リプトの実行結果を参照してください。

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

• カレントシェル上でシェルスクリプトを実行します。

. ./test.sh

9.3.2 :コマンド(引数を展開する)

形式

: [arguments]

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

999

機能

引数を展開し,終了コード 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

意味

正常終了

エラー終了

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1000

終了コード

1

意味

• 引数に${variable:?word}の書式による変数置換が指定されていて variable が定義されていな

い,または variable に値が格納されていません。

• 引数に${variable?word}の書式による変数置換が指定されていて variable が定義されていませ

ん。

注意事項

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

• 引数だけを展開します。

: $test

9.3.3 alias コマンド(エイリアスを定義する)

形式 alias [-p|-x|+p|+x][name[=value]...]

機能

エイリアスを定義または定義されているエイリアスを標準出力に出力します。引数を 1 つも指定しなかっ

た場合は,現在定義されているエイリアスの名称と値を出力します。

引数

-p

定義済みのエイリアスを,「alias

エイリアス名

=

」の書式で出力します。

-x

|

+x

エクスポートされたエイリアスを定義または出力します。

+p

定義済みのエイリアスを,「alias

エイリアス名

」の書式で出力します。 name

定義または出力するエイリアス名を指定します。エイリアスを出力する場合は,定義されているエイリ

アス名を name に指定します。 value name に指定されたエイリアス名に設定する内容を指定します。エイリアスを定義する場合は,「

エイ

リアス名

=

」の書式で指定します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1001

終了コード

終了コード

0

1

意味

正常終了

エラー終了

• 定義されていないエイリアスを出力しようとしました。

注意事項

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

使用例

• 定義されているエイリアス(functions)を出力します。

ジョブ定義スクリプトの内容 alias functions='typeset -f' alias functions

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ******** functions='typeset -f'

9.3.4 break コマンド(繰り返し処理を抜ける)

形式 break [n]

機能 for 文や while 文などの繰り返し処理を,指定した数だけ抜けます。1 つも繰り返し処理に含まれていない

状態で実行した場合,メッセージを出力し,正常終了します。

引数 n

繰り返し処理を抜ける数を 1 以上の整数で指定します。 n

に指定した数の繰り返し処理を抜けます。 n

を指定しなかった場合,1 段外側の繰り返し処理を抜け

ます。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1002

n

に繰り返し処理の数より大きな値を指定し実行した場合,最上位の繰り返し処理まで抜けた上でメッ

セージを出力し,正常終了します。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

• n に 0 を指定しています。

• n に数字以外を指定しています。

• n に負の値,またはオプション文字列(-

英数字

)を指定しています。

注意事項

• n

に 0 以下,または 2,147,483,647 より大きな値を指定すると桁あふれが発生し,あふれた桁を無視

した値で動作します。1〜2,147,483,647 の範囲内の値を指定してください。

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

• 繰り返し処理を 2 段抜けます。 break 2

9.3.5 builtin コマンド(組み込みコマンドを実行する)

形式 builtin [command [args ...]]

機能

引数を指定して組み込みコマンドを実行します。

引数 command

実行する組み込みコマンド名を指定します。引数 command を指定しなかった場合,正常終了します。 args

組み込みコマンドの引数を指定します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1003

終了コード

終了コード

0

1

意味

正常終了

• 組み込みコマンドが正常終了しました。

エラー終了

• 引数 command に組み込みコマンド以外を指定した,またはコマンドがエラーで終了しました。

注意事項

• このコマンドには指定可能なオプションが存在しません。そのため,引数にオプションを指定した場

合,そのオプションを引数 command として解釈し,ジョブはエラー終了します。

• このコマンドの実行結果はジョブ実行ログに出力されません。また,ジョブやジョブステップの正常終

了またはエラー終了の判定にも使用されません。呼び出したコマンドの実行結果を参照してください。

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

使用例

• builtin コマンドで組み込みコマンド pwd を実行します。

ジョブ定義スクリプトの内容 cd /tmp builtin pwd

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

/tmp

9.3.6 cd コマンド(カレントディレクトリを移動する)

形式 1 cd [ディレクトリパス]

形式 2 cd old new

機能

カレントディレクトリを移動します。移動先を指定する方法として 2 つの形式が使用できます。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1004

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 に移動しようとし

ます。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1005

使用例

• /var/log から/var/lib に移動します。

ジョブ定義スクリプトの内容 pwd cd log lib pwd

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

/var/log

/var/lib

/var/lib

9.3.7 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

に指定されたコマンドを標準パスで検索します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1006

-w 【Windows 限定】

Windows で外部コマンドを実行する場合に次の処理をスキップします。

• 引数内の"(ダブルクォーテーション)の前の「

\

」を「

\\

」に変換する処理

• 引数内の"(ダブルクォーテーション)の前の「

\

」を付与する処理

• 引数を"(ダブルクォーテーション)で囲む処理

ただし, command

に指定した文字列については,このオプションを指定した場合でも上記の処理を実施

します。

-v command

に指定された文字列をコマンドとして扱った場合のコマンドパスを出力します。

-V command

に指定された文字列がコマンド,予約語,エイリアス,シェル標準コマンド,シェル拡張コマ

ンドまたは関数かどうかを出力します。 command

実行するコマンド名またはコマンドとして扱う文字列を指定します。引数 command

を指定しなかった場

合,何も実行しないで正常終了します。 args command

に指定したコマンドの引数を指定します。

終了コード

-v,または-V を指定しなかった場合

終了コード

0

127

上記以外

意味

正常終了

エラー終了

• コマンドを特定できません。

エラー終了

• コマンドの形式が不正か,またはコマンドがエラーで終了しました。

-v,または-V を指定した場合

終了コード

0

1

意味

正常終了

エラー終了。または command に指定したコマンドのどれかが見つかりませんでした。

注意事項

• 引数 command にシンボリックリンクを指定した場合,実行できるかどうかの判定では,シンボリッ

クリンクとリンク先の両方の実行権限を判定します。【Windows 版】

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1007

• このコマンドが正常終了した場合,コマンドの実行結果はジョブ実行ログファイルに出力されません。

また,ジョブやジョブステップの正常終了またはエラー終了の判定にも使用されません。標準出力およ

び呼び出したコマンドの実行結果を参照してください。

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

使用例

• command コマンドで pwd コマンドを実行します。

ジョブ定義スクリプトの内容 command -p pwd

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

/tmp

9.3.8 continue コマンド(繰り返し処理を中断して繰り返し処理の先頭に

戻る)

形式 continue [n]

機能 for 文や while 文などの繰り返し処理を中断して,繰り返し処理の先頭に戻ります。 n

には繰り返し処理を

中断する数を指定します。1 つも繰り返し処理に含まれていない状態で実行した場合,メッセージを出力

し,正常終了します。

引数 n

繰り返し処理を中断する数を 1 以上の整数で指定します。 n

に指定した数の繰り返し処理を中断して,繰り返し処理の先頭に戻ります。 n

を指定しなかった場合,

1 段分繰り返し処理を中断し,繰り返し処理の先頭に戻ります。 n

に繰り返し処理の数より大きな値を指定した場合,最上位の繰り返し処理の先頭に戻った上でメッ

セージを出力し,正常終了します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1008

終了コード

終了コード

0

1

意味

正常終了

エラー終了

• n

に 0 を指定しました。

• n

に数字以外の値を指定しました。

• n

に負の数値またはオプション文字列(-

英数字

)を指定しました。

注意事項

• n

に 0 以下,または 2,147,483,647 より大きな値を指定すると桁あふれが発生し,あふれた桁を無視

した値で動作します。1〜2,147,483,647 の範囲内の値を指定してください。

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

• 2 段分の繰り返し処理を中断します。 continue 2

9.3.9 echo コマンド(引数で指定した内容を標準出力に出力する)

形式 echo [-n][-e|-E][args ...]

機能

引数で指定した内容を標準出力に出力します。

出力する場合は,

\

で始まるエスケープ文字を置き換えます。エスケープ文字を置き換えたときの意味を次

の表に示します。

\ f

\ n

エスケープ文字 意味

\ a アラート文字(ベル)

\ b

\ c

バックスペース文字

行末の改行を抑止する(

\ c の後ろに指定した文字は出力されない)

フォームフィード文字(改ページ)

改行文字

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1009

エスケープ文字 意味

\ r 復帰文字

\ t

\ v

\

0 nnn

※1

\ x nn

※2

タブ文字

垂直タブ文字

1〜3 桁の 8 進数で表された ASCII コードの文字(0〜7)

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 オプションの指定によるエスケープ文字の解釈を次の例に示します。

1. 次の例では,標準出力には「ta」と出力されます。 echo -e \ta

2. 次の例では,標準出力には「<タブ文字>a」と出力されます。 echo -e "\ta"

3. 次の例では,標準出力には「ta」と出力されます。 echo -E \ta

4. 次の例では,標準出力には「

\ ta」と出力されます。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1010

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 パラメーター(エスケープ文字関連のオプショ

引数

-n

出力の最後で改行しないで,標準出力に出力します。

-e

エスケープ文字を解釈します。解釈するエスケープ文字は環境設定パラメーター

ESCAPE_SEQ_ECHO_HEX の指定に従います。エスケープ文字を解釈したい場合は,"(ダブルクォー

テーション)または'(シングルクォーテーション)で囲んでください。

-E

エスケープ文字を解釈しません。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1011

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'

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1012

FILE="d:\\\\a\\\\b\\\\c" echo $FILE echo 'd:\\a\\b\\c' echo d:\\\\a\\\\b\\\\c

使用例

• LANG 変数を出力します。

ジョブ定義スクリプトの内容 echo $LANG

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ******** ja_JP.eucJP

9.3.10 eval コマンド(引数を 1 つにまとめてコマンドとして実行する)

形式 eval [command [args ...]]

機能

引数を 1 つにまとめて,コマンドとして実行します。引数として与えられた文字列をそのままコマンドと

して実行します。

引数 command

実行するコマンドのコマンド名を指定します。引数 command

を指定しなかった場合,何も実行しないで

正常終了します。 args

1 つにまとめて実行するコマンドの引数を指定します。

終了コード

終了コード

0

127

上記以外

意味

正常終了

エラー終了

• コマンドを特定できません。

エラー終了

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1013

終了コード

上記以外

意味

• コマンドの形式が不正か,またはコマンドがエラーで終了しました。

注意事項

• このコマンドの実行結果はジョブ実行ログに出力されません。また,ジョブやジョブステップの正常終

了またはエラー終了の判定にも使用されません。呼び出したコマンドの実行結果を参照してください。

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

• /home/adsh/script ディレクトリに移動します。 eval cd /home/adsh/script

9.3.11 exec コマンド(コマンドを実行して終了する)

形式 exec [command [args]...]

機能

指定されたコマンドを実行し,終了します。

引数に外部コマンドを指定した場合,そのコマンドを adshexec コマンドの子プロセスとして実行します。

外部コマンドが完了するのを待ってから,一時ファイルの削除など,ジョブの後処理を行います。

入出力リダイレクト記号とリダイレクト先だけを指定すると,入出力リダイレクト記号に従って,入出力

先を切り替えます。リダイレクトについては,「

(8) 入出力リダイレクト

」を参照してください。

引数 command

実行するコマンドのコマンド名を指定します。 command

に引数を指定しなかった場合,exec コマンド

は何もしないで,ジョブ定義スクリプトの実行を継続します。 args

実行するコマンドの引数を指定します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1014

終了コード

終了コード

0

127

上記以外

意味

正常終了

エラー終了

• コマンドを特定できません。

エラー終了

• コマンドがエラーで終了しました。

注意事項

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

• ユーザープログラム UAP01 を実行し,ジョブを終了します。 exec UAP01

• 標準出力先を file01 に切り替えます。 exec > file01

9.3.12 exit コマンド(シェルを終了する)

形式 exit [n]

機能

シェルを終了します。このコマンドは,終了コードの値とは関係なく,コマンドの構文が正しいかどうか

でコマンドの正常終了およびエラー終了を決定します。

引数を指定しない場合は,最後に実行したコマンドの終了コードをこのコマンドの終了コードとして正常

終了します。引数に適切な数値を指定して実行した場合は,正常終了します。引数に数字以外の文字など

不適切な値を指定して実行した場合は,エラー終了します。エラー終了のとき,コマンドの終了コードは

1 を返します。

ジョブステップエラーブロック内でこのコマンドを実行したときの動作を次に示します。

• 引数を指定して正常終了した場合は,引数に指定した値がジョブステップの終了コードになります。

• 引数を指定しないで正常終了した場合,または引数を指定してエラー終了した場合は,ジョブステップ

正常ブロック内で最後に実行したコマンドの終了コードが,ジョブステップの終了コードになります。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1015

引数 n

 〜<符号なし整数>((0〜255))

シェル終了時の終了コードを指定します。 n

を指定しなかった場合,最後に実行したコマンドの終了

コードを返してシェルを終了します。 n

に 256 以上の値を指定した場合, n

の値を 256 で割った余りを終了コードとして,正常終了します。 n

に負の値を指定した場合,指定した値の 2 の補数を終了コードとして,正常終了します。

終了コード

終了コード

0〜255

1

意味

正常終了

• n

または最後に実行したコマンドの終了コードを返します。

エラー終了

• n

に数字以外を指定しました。

注意事項

• n

には負の値および 256 以上の値も指定できますが,JP1/Advanced Shell では 0〜255 の範囲内の値

を指定することを推奨します。

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

•「&」やコマンド置換など,別プロセスで exit コマンドを実行する場合は,「 5.1.7 別プロセスでの実

」に示す注意事項もあわせて参照してください。

使用例

• 終了コード 2 でシェルを終了します。 exit 2

9.3.13 export コマンド(シェル変数をエクスポートする)

形式 export [-p][name[=value]...]

機能 name

に指定されたシェル変数をエクスポートします。なお,-p オプションと name

を同時に指定した場合, name

のエクスポートが優先されます。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1016

すべてのオプションを指定しないで実行した場合,エクスポートされているすべての変数の変数名を標準

出力に出力します。

引数

-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

意味

正常終了

エラー終了

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1017

注意事項

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

• シェル変数 HOME に"/home/jp1as"を代入してエクスポートします。 export HOME="/home/jp1as"

9.3.14 false コマンド(終了コード 1 を返す)

形式 false

機能

終了コード 1 を返します。

なお,このコマンドには指定可能なオプションが存在しません。オプションが指定された場合でも無視し

て処理を実行します。

終了コード

終了コード

1

意味

正常終了

• 常に 1 を返します。

注意事項

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

• このコマンドの実行結果は KNAX6113-I メッセージに出力されます。

使用例

• 終了コード 1 を設定します。

ジョブ定義スクリプトの内容 false echo $?

実行ジョブの STDOUT ファイルの内容

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1018

******** 実行ジョブのSTDOUTファイルの内容 ********

1

9.3.15 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

意味

正常終了

• 正常終了(オプションの終了を検出)

• エラー終了

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1019

注意事項

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

•「&」やコマンド置換など,別プロセスで getopts コマンドを実行する場合は,「

5.1.7 別プロセスで

の実行

」に示す注意事項もあわせて参照してください。

使用例

• -b を有効オプションとして解析します。

ジョブ定義スクリプトの内容 getopts b: name -b 10 echo $name

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ******** b

9.3.16 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 に指定します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1020

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

9.3.17 let コマンド(数値計算を行って評価する)

形式 1 let 算術式[,算術式 ... ]

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1021

形式 2

((算術式))

機能

算術式

による数値計算を行って評価します。

また,let コマンドの代わりに,「((

算術式

))」と記載することで let コマンドと同様に算術式を計算し,評

価できます。 let コマンドは,コンマで区切ると算術式を複数指定できます。複数指定した場合,算術式は左から右へ順

に計算します。そのため,コンマで区切って指定した算術式を条件式の判定に使用すると,最後に実行し

た算術式の結果に従って条件判定をします。また,コンマの前後にスペースが存在すると,算術エラーで

終了します。演算を括弧でまとめると,演算の優先順位を変更できます。

算術式の詳細については「

5.3 算術演算

」,条件判定の詳細については「

5.2 条件判定 」を参照してくだ

さい。

終了コード

終了コード

0

1

2

意味

正常終了

• 算術式の値が 0 以外です。

正常終了

• 算術式の値が 0 です。

• 算術式を指定しないで,(( ))を実行しました。

エラー終了

• 算術式を指定しないで,let コマンドを実行しました。

エラー終了

• 算術エラー(ゼロ除算,算術式不正)です。

注意事項

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

*

,&,<,<<,>および>>などの算術演算子はメタキャラクタとして特別な意味を持っています。

これらの文字を let コマンドで使用する場合は,メタキャラクタを無効にする必要があります。

例 1 を 2 ビット左シフトした結果を変数 RC に設定します。

 ジョブ定義スクリプトの内容

 let "RC=1<<2"

 echo $RC

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1022

 実行ジョブの STDOUT ファイルの内容

 ******** 実行ジョブのSTDOUTファイルの内容 ********

 4

• let コマンドには指定できるオプションがありません。そのため,let コマンドの引数に「-英字」を指

定すると,オプションではなく変数名として解釈し動作します。

例 引数に「-a」を指定すると「-3」と解釈し,終了コードは 0 になります。

 ジョブ定義スクリプトの内容

a=3

let -a

echo $?

 実行ジョブの STDOUT ファイルの内容

 ******** 実行ジョブのSTDOUTファイルの内容 ********

0

•「&」やコマンド置換など,別プロセスで let コマンドを実行する場合は,「

5.1.7 別プロセスでの実

」に示す注意事項もあわせて参照してください。

使用例

• 3+4 を行ったあとに 2 を掛けます。

ジョブ定義スクリプトの内容 let "VAR=2*(3+4)" echo $VAR

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

14

• 1+2 の結果を変数 RC に設定します。

ジョブ定義スクリプトの内容

((RC=1+2)) echo $RC

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

3

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1023

9.3.18 print コマンド(標準出力に出力する)

形式 print [-n|-p|-r][-u[num]][--][args]

機能

引数で指定した内容を標準出力に出力します。出力の最後に改行します。

出力する場合は,

\

で始まるエスケープ文字を置き換えます。エスケープ文字を置き換えたときの意味を次

の表に示します。

エスケープ文字

\ a

\ b

\ c

\ r

\ t

\ f

\ n

\ v

\

0 nnn

\\

意味

アラート文字(ベル)

バックスペース文字

行末の改行を抑止する(

\ c の後ろに指定した文字は出力されない)

フォームフィード文字(改ページ)

改行文字

復帰文字

タブ文字

垂直タブ文字

1〜3 桁の 8 進数で表された ASCII コードの文字(0〜7)

1 つのバックスラッシュ文字

注※

指定した ASCII コード文字が 1 桁または 2 桁の場合,前に 0 を付けて 3 桁で指定しても,同じ意味と

して解釈されます。

-r オプションを指定した場合,エスケープ文字を無視します。

引数

-n

出力の最後で改行しないで,標準出力に出力します。

-p

標準出力ではなく,パイプを使ってバックグラウンドプロセスの標準入力に出力します。

-r

エスケープ文字を無視します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1024

-u[num]

ファイル識別子 num に出力します。num を指定しない場合,1 が指定されたものとします。 num では,出力先のファイル識別子または p を指定します。num に p を指定した場合,-p オプショ

ンを指定したときと同じになります。

--

オプション終端文字です。このオプション以降に指定したオプションは,args として解釈します。 args

引数(出力する内容)を指定します。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

• ASCII コードの文字列でエスケープ文字を表す時に,ASCII コードの範囲外の値を指定すると,出力

される内容は端末に指定された文字コードに従います。そのため,印字不可能文字の場合,正しく出力

されないことがあります。

使用例

• 改行文字の付いた文字列 abc を出力します。

ジョブ定義スクリプトの内容 print "abc\n"

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ******** abc

• バックグラウンドプロセス(coproc.sh)の標準入力に文字列 abc を出力します。 coproc.sh |& print -p abc

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1025

9.3.19 pwd コマンド(カレントディレクトリのパスを出力する)

形式 pwd [-L|-P]

機能

カレントディレクトリのパスを標準出力に出力します。

引数

オプションをすべて指定しなかった場合は,-L オプションが指定されたときと同じになります。

-L

カレントディレクトリがシンボリックリンク(実際のファイルパスを格納したファイルを使ってリンク

する)を含むパスの場合,シンボリックリンクを解決しない状態でパスを出力します。-L オプション

および-P オプションの両方を指定した場合は,最後に指定したオプションに従います。

-P

カレントディレクトリがシンボリックリンクを含むパスの場合,シンボリックリンクを解決した状態で

パスを出力します。-L オプションおよび-P オプションの両方を指定した場合は,最後に指定したオプ

ションに従います。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• Windows の場合,pwd コマンドを実行するとディレクトリ区切り文字の「/」は「

\

」で表示されます。

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

使用例

• カレントディレクトリのパスを出力します。

ジョブ定義スクリプトの内容 cd /tmp pwd

実行ジョブの STDOUT ファイルの内容

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1026

******** 実行ジョブのSTDOUTファイルの内容 ********

/tmp

9.3.20 read コマンド(標準入力から読み込んで変数に格納する)

形式 read [-p][-r][-u[num]][varname ...]

機能

標準入力から読み込みを行います。標準入力から 1 行読み取り,読み込んだ内容を varname に指定した

シェル変数に格納します。

引数

-p

パイプを使用して,バックグラウンドプロセスの出力から読み込みます。

-r

\

(バックスラッシュ)をエスケープ文字として扱いません。 read コマンドは読み込む内容に

\

(バックスラッシュ)が含まれていた場合,エスケープ文字として扱

います。行中に指定されていた場合は,

\

(バックスラッシュ)の後ろがシェル変数 IFS で定義した区

切り文字であっても区切り文字とは扱いません。行末に指定されていた場合は,次の行を継続して読み

込みます。

\

(バックスラッシュ)をエスケープ文字として扱わない場合は,-r オプションを使用して

ください。

-u[num]

ファイル識別子 num から読み込みます。num を指定しない場合,標準入力から読み込みます。 num では,読み込みを行うファイル識別子または p を指定します。num に p を指定した場合,-p オ

プションを指定したときと同じになります。 varname

読み込んだ内容を格納する変数名を指定します。 varname を複数指定した場合,入力行を IFS 変数を区切り文字としてフィールド分割し,分割した

フィールドを varname に順次格納します(1 つ目の varname には入力行の最初のフィールドを格納

し,2 つ目の varname には 2 つ目のフィールドを格納します)。

フィールド数が varname に指定した変数よりも多い場合は,最後に指定した変数に残りの全フィール

ドの値を格納します。

フィールド数が変数よりも少ない場合は,残りの変数に改行文字を格納します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1027

終了コード

終了コード

0

1

意味

正常終了

正常終了

• ファイルの終了(EOF)を検出しました。

エラー終了

• 上記以外です。

注意事項

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

•「&」やコマンド置換など,別プロセスで read コマンドを実行する場合は,「 5.1.7 別プロセスでの実

」に示す注意事項もあわせて参照してください。

• Windows の場合,エディタからのデバッグ実行でコンソールまたはコマンドプロンプトから入力など

をするときは,ブレークポイントでの停止中や先行コマンドの実行中など,read コマンドが開始する

前であってもキー入力が受け付けられます。その結果,入力内容を正しく読み込めなくなるため,read

コマンドの開始前にキー入力をしないでください。 read コマンドの開始前にキー入力した内容は,read コマンド開始時に表示されます。その場合は表示

内容をすべて削除してから再度入力してください。

使用例

• ファイル string.txt の内容を読み込み,標準出力に出力します。

ジョブ定義スクリプトの内容 while read LINE do

echo "$LINE" done < string.txt

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

HITACHI

JP1

Advanced Shell

• バックグラウンドプロセス(coproc.sh)の標準出力に出力された文字列を変数 NAME に読み込みます。 coproc.sh |& read -p NAME

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1028

9.3.21 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

意味

正常終了

エラー終了

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1029

注意事項

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

• 変数 test の属性を読み込み専用に変更します。 readonly test

9.3.22 return コマンド(関数または外部スクリプトから復帰する)

形式 return [n]

機能

関数または外部スクリプトから復帰し,呼び出し元の処理を継続します。ただし,関数の外かつ外部スク

リプトではない位置でこのコマンドを実行すると,シェルを終了します。

このコマンドは,終了コードの値とは関係なく,コマンドの構文が正しいかどうかでコマンドの正常終了

およびエラー終了を決定します。

引数を指定しない場合は,最後に実行したコマンドの終了コードをこのコマンドの終了コードとして正常

終了します。引数に適切な数値を指定して実行した場合は,正常終了します。引数に数字以外の文字など

不適切な値を指定して実行した場合は,エラー終了します。エラー終了のとき,コマンドの終了コードは

1 を返します。

引数 n

 〜<符号なし整数>((0〜255))

復帰時の終了コードを指定します。 n

を指定しなかった場合,最後に実行したコマンドの終了コードを返して復帰します。 n

に 256 以上の値を指定した場合, n

の値を 256 で割った余りを終了コードとして,正常終了します。 n

に負の値を指定した場合,指定した値の 2 の補数を終了コードとして,正常終了します。

終了コード

終了コード

0〜255

1

意味

正常終了

• n

または最後に実行したコマンドの終了コードを返します。

エラー終了

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1030

終了コード

1

意味

• n

に数字以外を指定しました。

注意事項

• n

には負の値および 256 以上の値も指定できますが,JP1/Advanced Shell では 0〜255 の範囲内の値

を指定することを推奨します。

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

•「&」やコマンド置換など,別プロセスで return コマンドを実行する場合は,「 5.1.7 別プロセスでの

実行 」に示す注意事項もあわせて参照してください。

使用例

• 関数または外部スクリプトから終了コード 2 で復帰し,呼び出し元の処理を継続します。 return 2

9.3.23 set コマンド(シェルオプションを設定する,配列を作成する,また

は変数の値を表示する)

形式 set [-a|+a][-f|+f][-u|+u][-v|+v][-x|+x]

[{-o|+o}[opt]]...

[{-A|+A}name][--][val ...]

[{-D|+D}name][--][{ val ... } ...]

機能

シェルオプションの設定,配列の作成,または変数の値を表示します。

このコマンドは,シェルオプションの設定と配列の作成を同時に指定できます。同時に指定する場合は,

シェルオプション,配列の作成の順に指定してください。配列の作成を先に指定すると,-A オプションお

よび-D オプション以降の内容を name

および val

として解釈します。

引数

オプションは同時に複数指定できます。同じオプションを複数回指定した場合,最後に指定した内容が設

定されます。

オプションを指定しないで実行すると,割り当てられているすべての変数が「変数名=値」の書式で標準

出力に出力されます。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1031

-a

|

+a

• -a :allexport オプションを有効にします。

-f

|

+f

• +a :allexport オプションを無効にします。

• -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

1 次元配列に値を代入する場合に指定します。

-A オプションを指定し実行すると,name に指定した配列や変数がすでに存在している場合,name

の内容を消去してから,name に指定した配列や変数へ val に指定した値を代入して作成します。val

に指定した引数の数だけ,配列の要素を作成します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1032

+A オプションを指定し実行すると,name に指定した配列や変数が存在していても name の内容は消

去しないで,name に指定した配列や変数へ val に指定した値を代入します。代入する要素数が既存の

配列の要素数より少ない場合,代入されない配列要素の値は変更されません。name に指定した配列や

変数がすでに存在しない場合は,-A オプションを指定した場合と同じ動作となります。

作成できる配列の要素数は 2 から 65,536 で,val の個数が 1 つの場合は配列ではなく変数を作成しま

す。また,複数の配列を同時に作成できません。

-D

|

+D

2 次元配列に値を代入する場合に指定します。

-D オプションを指定し実行すると,name に指定した配列や変数がすでに存在している場合,name

の内容を消去してから,name に指定した配列や変数へ val に指定した値を代入して作成します。val

に指定した引数の数だけ,配列の要素を作成します。

+D オプションを指定し実行すると,name に指定した配列や変数が存在していても name の内容は消

去しないで,name に指定した配列や変数へ val に指定した値を代入します。代入する要素数が既存の

配列の要素数より少ない場合,代入されない配列要素の値は変更されません。name に指定した配列や

変数がすでに存在しない場合は,-D オプションを指定した場合と同じ動作となります。

作成できる配列の要素数は 65,536×64 で,val の個数が 1 つの場合は配列ではなく変数を作成しま

す。また,複数の配列を同時に作成できません。 name

割り当てる配列の名称を指定します。name に読み込み専用属性の変数を指定した場合,エラー終了し

ます。

--

オプション終端文字です。このオプション以降に指定したオプションは,val として解釈します。 val

1 次元配列の要素に代入する値を指定します。val だけを指定し実行すると,val に指定された値は位

置パラメーターに代入されます。val を複数指定した場合は,左から$1,$2...の順序で代入されます。

2 次元配列の要素に代入する値を指定する場合は,括弧 { } で囲んで指定する必要があります。括弧と val の間には 1 つ以上の空白文字を入れる必要があります。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

• braceexpand オプションと noglob オプションを同時に指定した場合,noglob オプションが優先的に

適用され,ブレース展開は無効になります。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1033

使用例

• 1 次元配列 test を作成し,test[0]に a01,test[1]に a02,test[2]に a03 を代入します。 set -A test a01 a02 a03

• 2 次元配列 test2 を作成し,test[0][0]に a01,test[0][1]に a02,test[0][2]に a03 を代入します。 set -D test { a01 a02 a03 }

9.3.24 shift コマンド(実行時パラメーターをシフトする)

形式 shift [n]

機能

実行時パラメーターをシフトします。実行時パラメーターをシフトした場合,シフトの数だけ先頭から移

動します。

引数 n

実行時パラメーターをシフトする数を指定します。n を指定した場合,n に指定した数だけ実行時パラ

メーターをシフトします。n を指定しなかった場合,引数を 1 シフトします。n に 0 を指定すると,実

行時パラメーターはシフトされません。n に負の値,または数値以外を指定した場合,エラー終了しま

す。実行時パラメーターの個数より大きい値を指定した場合,エラー終了します。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• n に 0 を指定すると実行時パラメーターはシフトされません。実行時パラメーターを for 文や while 文

を終了するための条件に使用する場合,shift コマンドの引数に 0 を指定しないでください。

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

使用例

• 実行時パラメーターを 2 つシフトします。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1034

shift 2

9.3.25 test コマンド(条件式を判定する)

形式 1 test 条件式

形式 2

[ 条件式 ]

形式 3

[[ 条件式 ]]

機能

条件式を判定します。条件判定の演算子を用いて記述した条件式を判定し,判定結果が真のときは 0 を返

し,判定結果が偽のときは 1 を返します。条件式を指定しないで test コマンドおよび[ ]を実行した場合も

1 を返します。

条件式については,「

5.2 条件判定 」を参照してください。

終了コード

終了コード

0

1

2

意味

正常終了

• 条件式の判定結果が真です。

正常終了

• 条件式の判定結果が偽です。

エラー終了

• コマンドがエラー終了しました。

注意事項

•「<」および「>」などの演算子はメタキャラクタとして特別な意味を持っています。これらの文字を test コマンドで使用する場合は,メタキャラクタを無効にする必要があります。

• [[ ]]の場合,[[と]]の間にある文字列に対して,ワイルドカードやファイル名置換は適用されません。

例を次に示します。この例では,カレントディレクトリに「test.ash」「hhh」というファイルが存在す

ると仮定しています。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1035

[[ -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

9.3.26 times コマンド(シェルが消費した CPU 時間を出力する)

形式 times

機能

シェルとシェルから起動したプロセスの CPU 時間を標準出力に出力します。次に示す情報を出力します。

• シェルが消費したユーザー CPU 時間(秒)

• シェルが消費したシステム CPU 時間(秒)

• シェルから起動したプロセスが消費したユーザー CPU 時間(秒)の合計

• シェルから起動したプロセスが消費したシステム CPU 時間(秒)の合計 times コマンドの出力形式を次の表に示します。

出力形式

Shell: CPU時間 user CPU時間 system

Kids: CPU時間 user CPU時間 system

内容

シェルが消費した CPU 時間を,ユーザー CPU 時間,システ

ム CPU 時間の順に出力します。

シェルから起動したプロセスが消費した CPU 時間を,ユー

ザー CPU 時間,システム CPU 時間の順に出力します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1036

注※

CPU 時間は小数点第 2 位まで出力します。

なお,このコマンドは書式の判定は行わないで,不当なオプションが指定された場合でも無視して処理を

実行します。

終了コード

終了コード

0

意味

正常終了

注意事項

• Windows の場合,子プロセスの CPU 時間に孫プロセスの CPU 時間を含みません。

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

使用例

• シェルとシェルから起動したプロセス(ps コマンド)の CPU 時間を出力します。

ジョブ定義スクリプトの内容 ps > /dev/null times

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

Shell: 0.01s user 0.02s system

Kids: 0.00s user 0.01s system

9.3.27 trap コマンド(シグナルや強制終了要求を受けたときの動作を設定

する) trap コマンドは UNIX 版と Windows 版で提供する機能が異なります。UNIX 版で提供する機能につい

ては,「

(1) trap コマンド【UNIX 版】

「 (2) trap コマンド【Windows 版】

(1) trap コマンド【UNIX 版】

形式 trap [action][signal ...]

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1037

機能

シグナルを受け取ったときの動作を設定します。 signal

に指定されたシグナルをシェルが受け取ると, action

に指定された動作を実行します。

引数を指定しないで実行した場合,シグナルに設定されている動作を次の形式で標準出力に出力します。

シグナル種別

名称が定義されているシグナルの場合

名称が定義されていないシグナルの場合

出力形式 trap -- action "先頭の SIG を除いたシグナル名" trap -- action UNKNOWN SIGNAL

1 つのシグナル番号に複数の名称が定義されているシグナルに対する動作を次に示します。

【Linux 限定】

シグナル名称

SIGSYS

別名称

SIGUNUSED

拡張機能では,SIGUNUSED ではなく,SIGSYS を主なシグナル名称として扱っているため,trap

コマンドでも SIGSYS をシグナル名称として扱います。

【AIX 限定】

シグナル名称

SIGABRT

別名称 1

SIGLOST

別名称 2

SIGIOT

SIGIO SIGPOLL なし trap コマンドによる action の設定

SIGABRT 設定できます

SIGLOST

SIGIOT

設定できます

設定できます

SIGIO

SIGPOLL

設定できます

設定できます

【HP-UX,Solaris 限定】

シグナル名称

SIGABRT

SIGIO

別名称

SIGIOT

SIGPOLL trap コマンドによる action の設定

SIGSYS 設定できます

SIGUNUSED 設定できます trap コマンドによる action の設定

SIGABRT 設定できます

SIGIOT

SIGIO

SIGPOLL

設定できます

設定できます

設定できます

また,1 つのシグナル番号に複数の名称が定義されているシグナルに対して,trap コマンドで action

を設

定した場合,出力するシグナル名はどれか 1 つのシグナル名になります。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1038

引数 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

注意事項

意味

正常終了

エラー終了

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1039

• 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 ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ******** trap -- 'echo Hangup.' HUP trap -- 'echo trapped.' INT

(2) trap コマンド【Windows 版】

形式

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1040

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

意味

正常終了

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1041

終了コード

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 を指定して強制終了すると,trap アク

ション内で Java のバッチアプリケーションを実行できますが,trap アクション実行中にさらに強制終

了すると,adshjava コマンドは強制終了されません。このため,TRAP_ACTION_SIGTERM パラ

メーターのオペランドに TERM を指定した場合,または AUTO を指定して JP1/AJS からジョブを起

動した場合は 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 コマンドを設定します。

• 強制終了要求を受けたときに,バックグラウンドで実行されているプロセスは,「trap action TERM」

で定義された action の前に終了します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1042

使用例

• 強制終了要求を受けた場合,echo コマンドで'trapped.'を出力します。 trap 'echo trapped.' TERM

• 強制終了要求に対して設定されている action

を表示します。 action

を設定する trap コマンドで method

に 15 を指定しても,強制終了の方法には TERM が出力されます。

ジョブ定義スクリプトの内容 trap 'echo trapped.' 15 trap

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ******** trap -- 'echo trapped.' TERM

9.3.28 true コマンド(終了コード 0 を返す)

形式 true

機能

終了コード 0 を返して正常に終了します。

なお,このコマンドには指定可能なオプションが存在しません。オプションが指定された場合でも無視し

て処理を実行します。

終了コード

終了コード

0

意味

正常終了

• 常に 0 を返します。

注意事項

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

• このコマンドの実行結果は KNAX6113-I メッセージに出力されます。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1043

使用例

• 終了コード 0 を設定します。

ジョブ定義スクリプトの内容 true echo $?

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

0

9.3.29 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

の先

頭から領域長までが代入され,残りは切り捨てになります。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1044

同時に-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

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1045

属性・型オプションです。-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

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1046

関数オプションです。-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

には,同時に指定する引数ごとに設けられた範囲内の値を指定してください。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1047

• マルチバイト文字を含む変数に対して,左詰めまたは右詰めで切り捨てられると,マルチバイト文字を

構成する一部のデータが消失することがあります。この場合,文字として不完全なバイト列が代入され

ることがあります。

• 引数が指定できるオプションとその引数を 1 つのハイフンで同時に指定できません。8 進数の int 型

で,かつ右詰め 16 桁として定義する場合は,「-i8 -R16」と指定します。「-i8R16」のように指定した

場合は,エラー終了します。

• -f オプションと同時に-x オプションを指定した場合,-x オプションの指定は無視されます。typeset

コマンドは-f オプションが指定された場合と同じ動作をします。

• -i オプションを指定して属性変更をする指定の場合,配列の一括定義(配列名=(…)または配列名

[]=({…}…)の指定で定義する指定)はできません。配列の属性を一括変更する場合は,配列の一括定義

後に–i オプションを指定した typeset コマンドで定義済みの配列名を指定してください。

使用例

• 変数 num の属性を左に詰めて,10 桁の整数型に変更します。 typeset -L10 -i num

• 関数 func のトレースモードを有効にします。 typeset -ft func

9.3.30 ulimit コマンド(システムリソースの上限を設定する)【UNIX 限定】

形式 ulimit [-H][-S][-a][-c][-d][-f][-l][-m]

[-n][-p][-s][-t][limit]

機能

システムリソースの上限の設定および情報を標準出力に出力します。指定されたオプションに従って,シ

ステムリソースの上限値を設定し,出力します。

出力するリソース上限の出力形式を次の表に示します。

出力形式 time(cpu-seconds) 上限値 file(blocks) 上限値 coredump(blocks) 上限値 data(kbytes) 上限値

内容

CPU 時間の上限

ファイルサイズの上限

コアダンプのファイルサイズの上限

データ領域サイズの上限

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1048

出力形式 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 単位で設定または出力します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1049

-t

CPU 時間の上限を秒単位で設定または出力します。 limit

変更するリソースの上限値を指定します。unlimited を指定すると,上限なしで設定します。上限値に

は任意の数値を指定できますが,実際に有効となる上限値の仕様については,使用している OS のマ

ニュアルを参照してください。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• このコマンドは次のどちらかに該当する場合,サポートしていないことを示すメッセージ KNAX6710-

I を出力し,終了コード 0 を返して常に正常終了します。

• OS がサポートしていないオプションを指定した。

• Windows 環境で実行した。

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

• adshexec コマンドはジョブ定義スクリプトの実行時に実行に必要なファイルを生成するため,ulimit

コマンドで指定するファイルサイズの上限値が小さいと,SIGXFSZ シグナルを受信する場合がありま

す。

• ハードリミットを増加させる場合は,管理者権限が必要です。

• 設定できるリソースの上限は実行環境や OS ごとに異なります。

• 変更するリソースによっては,設定できない値を指定すると,実行環境や OS によって異なる値が設定

される場合があります。

使用例

• すべてのリソースの上限値を出力します。

ジョブ定義スクリプトの内容 ulimit -a

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ******** time(cpu-seconds) unlimited file(blocks) unlimited coredump(blocks) 0 data(kbytes) unlimited

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1050

stack(kbytes) 10240 lockedmem(kbytes) 32 memory(kbytes) unlimited nofiles(descriptors) 1024 processes 4096

9.3.31 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 の既存のマスクに追加します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1051

-: 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 コマンドおよび adshmktemp コマンドを使用して作成した一時ファイルのパーミッ

ションは,ファイルの所有者(作成者)の部分だけ umask 値の指定に従い,グループおよびその他の

ユーザーのアクセス権限部分は常に 0 になります。

使用例

• ファイル作成時にユーザー以外の全アクセス権限を設定しません。 umask 077

• ファイル作成時にユーザー以外の write 権限を設定しません。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1052

umask u=rwx,go=rx

9.3.32 unalias コマンド(エイリアス定義を無効にする)

形式 unalias [-a]name [name...]

機能

エイリアス定義を無効します。 name

には定義を無効にするエイリアスの名称を指定します。スペースで区

切ると複数のエイリアスを指定できます。定義されていないエイリアス名称を name

に指定した場合,また

はオプションや引数を指定しないで実行した場合は,終了コード 1 でエラー終了します。

引数

-a

すべてのエイリアス定義を無効にします。 name

定義を無効にするエイリアスを指定します。

終了コード

終了コード

0

1

意味

正常終了

エラー終了。または,name に指定した名称のどれかがエイリアスとして定義されていません。

注意事項

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

使用例

• 定義されているエイリアス(functions)を無効にします。 unalias functions

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1053

9.3.33 unset コマンド(変数の値と属性の設定を解除する)

形式 unset [-f] name[ name ...]

機能

変数および関数の設定を解除します。 name

に指定された変数の設定を解除します。 name

は複数指定できま

す。-f オプションを指定し実行した場合, name

を関数名として扱い,関数の定義を解除します。

引数

-f name

を関数名として扱い,関数の定義を解除します。 name

対象となる変数名または関数名を指定します。 name

に配列名も指定できます。 name

に配列名を指定した場合,配列を構成する全要素の設定を解除します。1 つの要素の設定だけを解

除する場合は,「配列名[要素番号]」または「配列名[要素番号][要素番号]」を name

に指定します。

配列要素番号には配列要素番号を示す数値のほか,@および*を指定できます。指定の組み合わせによ

る unset 対象範囲については,「 (3) 配列の値の参照

」を参照してください。 name

に指定した変数の属性が読み取り専用の場合,エラー終了します。未定義の変数名および関数名

を name

に指定し実行すると,エラー終了します。

終了コード

終了コード

0

1

意味

正常終了

エラー終了。または name に指定した名称のどれかが変数,もしくは関数として定義されていません。

注意事項

• このコマンドで LINENO,OPTARG,OPTIND,RANDOM,SECONDS などのシェル変数の設定

を解除すると,再びこれらのシェル変数を定義しても,シェル変数が持つ特殊な意味は失われます。

• このコマンドで配列の要素の設定を個別に解除した場合,デバッガでは定義済みの変数として扱いま

す。そのため,unset コマンドで配列の要素の設定を解除したあとも,デバッガコマンドで表示・設定

の対象にできます。

配列を構成する全要素の設定を解除した場合は,デバッガでは未定義の変数として扱うため,デバッガ

コマンドによる表示・設定の対象にできません。デバッガコマンドによる変数の値の表示・設定につい

ては,「

6. ジョブ定義スクリプトのデバッグ 」を参照してください。

• この特殊組み込みコマンドは,コマンドの構文を誤るとコマンドを実行しているシェルが終了します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1054

使用例

• unset コマンドで変数を解除します。 unset val

• unset コマンドで関数を解除します。 unset -f func

9.3.34 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 を指定します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1055

終了コード

終了コード

0

127

上記以外

意味

正常終了

正常終了

• pid に指定された子プロセスを特定できません。

• 実行中の子プロセス以外のプロセス ID を pid に指定しました。

エラー終了

注意事項

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

使用例

• プロセス ID が 4848 の子プロセスの完了を待ちます。 wait 4848

9.3.35 whence コマンド(文字列をコマンドとした場合の解釈を表示する)

形式 whence [-p][-v] name [name...]

機能

指定された文字列をコマンドとした場合の解釈を標準出力に出力します。オプションを指定しない場合は

次の内容を出力します。

• name

に指定された文字列がコマンドのときは,コマンドのパス名を出力します。

• name

に指定された文字列がエイリアスのときは,エイリアスの値を出力します。

• name

に指定された文字列が予約語,シェル標準コマンド,シェル拡張コマンドまたは関数のときは, name

を出力します。

• 上記のどれにも該当しない場合は,何も出力しないで終了コード 1 で終了します。

-p オプションと-v オプションを同時に指定した場合は, name

に指定された文字列をコマンドと解釈して

出力します。引数 name

を指定しなかった場合は,終了コード 1 でエラー終了します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1056

引数

-p name

に指定された文字列をコマンドとした場合のコマンドパスを出力します。

-v name

に指定された文字列がコマンド,予約語,エイリアス,シェル標準コマンド,シェル拡張コマン

ドまたは関数かどうかを出力します。

出力内容を次の表に示します。

項番

1

2

3

10

11

8

9

6

7

4

5

出力内容 name

is a reserved word name

is a function name

is a traced function name

is an undefined function name

is an extended shell command name

is a shell builtin name

is a special shell builtin name

is a shell builtin not supported name

is

パス名 name

is an alias for '

エイリアスの値

' name

is an exported alias for '

エイリア

スの値

' name

not found

意味 name

は予約語です。 name

は関数です。 name

はトレースモードが有効な関数です。

関数が未定義で,かつ関数のトレースモードが有効な場合は,項番 4 の

内容が出力されます。 name

は未定義の関数です。 name

はシェル拡張コマンドです。 name

は組み込みコマンドです。 name

は特殊組み込みコマンドです。 name

は JP1/Advanced Shell で提供しないコマンドです。 name

はコマンドまたは実行できるファイルです。 name

はエイリアスです。 name

はエクスポートされたエイリアスです。

12 name

はコマンド,予約語,エイリアス,シェル標準コマンド,シェル拡

張コマンドまたは関数のどれも該当しません。 name

コマンドとして扱う文字列を指定します。引数 name を指定しなかった場合は,終了コード 1 でエラー

終了します。

終了コード

終了コード

0

1

意味

正常終了

エラー終了。または, name に指定したコマンドのどれかが見つかりません。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1057

注意事項

• 引数 name にシンボリックリンクを指定した場合,実行可能かどうかの判定は,シンボリックリンク

とリンク先の両方の実行権限を判定します。【Windows 版】

• この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しませ

ん。

使用例

• pwd をコマンドとした場合のコマンドパスを出力します。

ジョブ定義スクリプトの内容 whence -p pwd

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

/bin/pwd

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1058

9.4 シェル拡張コマンド

シェル拡張コマンドは,JP1/Advanced Shell 独自の組み込みコマンドです。組み込みコマンドはシェル

本体に組み込まれたコマンドであり,シェル自身によって実行します。

シェル拡張コマンドは,コマンドの構文を誤っても,コマンドを実行しているシェルは終了しません。

9.4.1 adshappexec コマンド(GUI アプリケーション実行コマンド)

【Windows 実行環境限定】

シェル運用コマンドの機能と同じです。このコマンドの機能については,「 8.3.2 adshappexec コマンド

9.4.2 adshappexec コマンド(GUI アプリケーション実行コマンド)

【Windows 開発環境限定】

形式 adshappexec [-m] [-d ワークフォルダ] [-v 表示名] {-w 実行アプリケーション名 | -n 実行アプリ

ケーション名} [-- 引数1 引数2...]

機能

開発環境でのデバッグのために,アプリケーション実行エージェントを経由しないで実行アプリケーショ

ンを起動します。

実行アプリケーションが返す戻り値は標準出力に出力します。ジョブの戻り値として後続ジョブで使用す

る場合はコマンド置換で変数に格納します。

引数

-m

標準エラー出力へのメッセージの出力を抑止します。標準入出力を使用できない環境で使用します。

コマンドの引数指定エラー,およびライセンスチェックエラーは,-m オプションを指定しても出力さ

れます。

-d ワークフォルダ 〜<パス名>((1〜247 バイト))

実行アプリケーション実行時のワークフォルダを指定します。

ワークフォルダを指定しなかった場合は,adshappexec コマンド実行時のカレントパスで動作します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1059

ワークフォルダはスペースを含む場合,ジョブ定義スクリプトからの実行であれば「"」で囲むなどし

て,スペースを含めて指定してください。

-v 表示名 〜<パス名>((1〜247 バイト))

アプリケーション実行エージェントアイコンを左クリックした時に表示される表示名を指定します。

表示名はスペースを含む場合,ジョブ定義スクリプトからの実行であれば「"」で囲むなどして,スペー

スを含めて指定してください。

表示名を省略した場合には,実行アプリケーション名を出力します。

Windows 開発環境の場合,メッセージ出力にだけ使用します。

複数の実行アプリケーションを動作させたときにアプリケーションを区別するためにこの引数を指定す

ることを推奨します。

-w 実行アプリケーション名 〜<パス名>((1〜247 バイト))

実行アプリケーションの終了まで実行を終了しません。

実行アプリケーション名は,実行アプリケーションのファイル名を指定します。

実行アプリケーション名はスペースを含む場合,ジョブ定義スクリプトからの実行であれば「"」で囲

むなどして,スペースを含めて指定してください。

-n 実行アプリケーション名 〜<パス名>((1〜247 バイト))

実行アプリケーションの終了を待たずに終了します。

実行アプリケーション名は,実行アプリケーションのファイル名を指定します。

実行アプリケーション名はスペースを含む場合,ジョブ定義スクリプトからの実行であれば「"」で囲

むなどして,スペースを含めて指定してください。

-- 引数 1 引数 2... 〜<引数>((1〜1,023 バイト))

「--」のあとに実行アプリケーションの実行時に指定するパラメーターを指定します。

関連付けを行った実行アプリケーションを指定した場合には引数を指定しないでください。

引数は,合計の引数長が 1,023 バイト以内であれば,いくつでも指定できます。

終了コード

終了コード

0

0 以外

意味

正常終了

異常終了 adshappexec コマンドでは,次の 2 つのプロセスでの終了コードがあります。プロセスごとの終了コー

ドの扱いは次のようになります。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1060

エラー発生個所での戻り値の出力は次のとおりです

(a) adshappexec コマンド処理でのエラー

コマンドの戻り値として出力します。

また,標準エラー出力にメッセージを出力します。

(b) 実行アプリケーションの戻り値

標準出力に出力します。

また,標準エラー出力には,実行アプリケーションの戻り値を出力します。

実行アプリケーションの戻り値で 0 以外の戻り値を返しても,adshappexec コマンドは異常終了しま

せん。

実行アプリケーションの戻り値を確認するにはメッセージを確認するか,標準出力の内容を確認してく

ださい。

注意事項

• adshappexec コマンドの-w 引数と-n 引数は必ず指定してください。

次の場合,最後に指定したものが有効になります。

・-w オプションと-r オプションを同時に指定した場合

・-w オプションを複数指定した場合

・-r オプションを複数指定した場合

• 実行アプリケーションは実行ユーザーの環境変数を使用します。

• 同じオプションを複数指定した場合,最後の指定が有効になります。

• 次の仕様のアプリケーションを-w 引数で実行した場合,指定したファイルを閉じても adshappexec

コマンドが終了しないことがあります。

• 実行アプリケーションに指定したファイルを閉じても,アプリケーション自体が終了しない

このような場合は,アプリケーション自体が終了すれば,adshappexec コマンドも終了します。

例:実行アプリケーションとして指定した Excel ファイルだけ閉じて,Excel 自体は終了させていない

場合

• 実行アプリケーションのプロセス起動に関する仕様によっては,-w 引数を指定しても,アプリケーショ

ンの終了を待たずに adshappexec コマンドが終了することがあります。

次に示す場合があります。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1061

(1)KNAX7259-W が出力される場合

例:Excel ファイルを実行アプリケーションとして実行する前から,すでに Excel 自体が動作して

いた場合

この場合は,Excel が起動していない状態で運用するか,-w 引数を使用しない運用としてください。

(2)KNAX7259-W が出力されない場合

例:explorer.exe を実行アプリケーションとして実行した場合

この場合は,-w 引数を使用しない運用としてください。

• 強制終了時は次のことに注意してください。

• 実行アプリケーション動作中にエディタを使用してデバッグの中止,もしくは「×」ボタンでエディ

タを終了することはできません。

実行アプリケーションの終了待ちとなります。

• TRAP_ACTION_SIGTERM パラメーターで TERM を指定した場合,trap コマンドによる動作定

義に adshappexec コマンドを指定しないでください。

また,対話操作をする実行アプリケーションを指定した場合,応答待ちになり,ジョブ定義スクリ

プトが終了しない可能性があります。

9.4.3 adshcmdrc コマンド(コマンドの終了コードしきい値を定義する)

形式 adshcmdrc コマンド名 しきい値

機能

ジョブ定義スクリプトから実行されるコマンドの終了コードが 0 でない場合でも正常終了と見なしたい場

合,対象となるコマンド名と,しきい値となる値を定義します。これによって,コマンドの終了コードが

しきい値以下の場合が正常終了となります。引数に指定したコマンドがシグナルを受信して終了した場合

は,この指定に関係なく,引数に指定したコマンドはエラー終了します。このコマンドは,4095 個まで

指定できます。

このコマンドの定義の有効範囲を次に示します。

• コマンドを指定した個所以降のジョブ定義スクリプト実行で有効。

• 同じコマンドに対しての定義が 2 つ以上ある場合,対象のコマンドの個所に近い定義が有効。

• ジョブステップ外に指定した場合,ジョブ定義スクリプト全体に有効。

• ジョブステップ内に指定した場合,指定した個所以降からジョブステップ終了まで有効。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1062

引数

コマンド名 〜<コマンド名>((1〜255 バイト))

正常終了と見なす終了コードを定義するコマンドの名称を指定します。Windows の場合は拡張子付き

の指定もできます。コマンドのパスは指定できません。指定できるコマンドの種類を次に示します。こ

れら以外のコマンドも,別プロセス実行(パイプ,コマンド置換,|&,&を使用)した場合は対象にな

ります。

• 外部コマンド

• UNIX 互換コマンド

• シェル運用コマンド

• コマンドとして実行したスクリプト(#!によって実行)

• 子孫ジョブ

• 関数(CMDRC_CMDGRP_CHECK パラメータのオペランドに FUNCTION を指定したときだけ)

Windows でコマンド名の拡張子を省略すると,指定した名称と同じ名称のコマンドやバッチファイル

が,拡張子に関係なくしきい値の管理対象になります。Windows でスペースを含むコマンド名を指定

する場合は,"(ダブルクォーテーション)で囲んでください。

しきい値 〜<整数>((-1〜255))

終了コードで正常終了と見なすしきい値を定義します。ここで指定したしきい値より終了コードが大き

い場合,エラー終了と見なします。

-1 を指定した場合,実行結果は常にエラー終了します。

255 を指定した場合,実行結果は常に正常終了します。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• このコマンドは,変数置換やエイリアスの解決後のコマンド名に対して適用されます。

• 子孫ジョブとして実行するジョブ定義スクリプトに対して,正常終了と見なす終了コードしきい値を定

義したい場合,子孫ジョブの定義には CHILDJOB_EXT パラメータまたは CHILDJOB_SHEBANG パ

ラメータを使用してください。CHILDJOB_PGM パラメータで子孫ジョブを定義した場合,終了コー

ドのしきい値の対象と見なされません。

• CMDRC_CMDGRP_CHECK パラメータに FUNCTION を指定した場合,引数のコマンド名に関数

名を指定することで,関数に対して正常終了とみなす終了コードしきい値を定義できます。

CMDRC_CMDGRP_CHECK パラメータを指定しない場合,または CMDRC_CMDGRP_CHECK パ

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1063

ラメータに NONE を指定した場合,引数のコマンド名に関数名を指定しても,同名のコマンド名が指

定されたとして処理されます。

• CMDRC_CMDGRP_CHECK パラメータに FUNCTION を指定した場合,関数内に指定した adshcmdrc コマンドの定義は有効になりません。CMDRC_CMDGRP_CHECK パラメータを指定し

ない場合,または CMDRC_CMDGRP_CHECK パラメータに NONE を指定した場合,関数内に指定

した adshcmdrc コマンドの定義は関数呼び出し元のスクリプトのコマンドに有効になります。

• adshcmdrc コマンドを別プロセス実行した場合,呼び出し元のスクリプトのコマンドには正常終了と

見なす終了コードしきい値の定義は有効になりません。adshcmdrc コマンドは別プロセス実行しない

ようにしてください。

• adshcmdrc コマンドを子孫ジョブ内に定義して実行した場合,子孫ジョブ呼び出し元のスクリプトの

コマンドには正常終了と見なす終了コードしきい値の定義は有効になりません。子孫ジョブ内のコマン

ドにだけ,正常終了と見なす終了コードしきい値の定義が有効になります。

• 指定個数の上限は,adshexec コマンドの引数に指定したジョブ定義スクリプトファイルに定義された

スクリプト,そのスクリプトから呼び出される.(ドット)コマンド,および#-adsh_script コマンドに

よる外部スクリプトで指定された個数の合計です。外部スクリプトには,ネストで呼び出しているスク

リプトも含みます。

使用例

UAP が正常終了したと見なす終了コードのしきい値を定義します。次の例では,ジョブステップ STEP1

内で UAP が終了コード 1 以下で終了した場合,UAP は正常終了したと見なします。

#-adsh_step_start STEP1

adshcmdrc UAP 1

UAP data

#-adsh_step_end

9.4.4 adshecho コマンド(指定した事象通知メッセージを JP1 イベントと

して発行する)

形式 adshecho [-d] 事象通知メッセージ

機能

指定された事象通知メッセージを JP1 イベントとして発行します。発行された JP1 イベントは,JP1/IM -

View に表示されます。ただし,ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行した

場合,事象通知メッセージを標準出力に表示します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1064

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 イベントの処理中にエ

ラーが発生

5

6

JP1 イベントの処理中にエ

ラーが発生

指定されたホストへの JP1

イベントの転送に失敗

対処

なし。

システム管理者に連絡してください。

メッセージに出力されたエラー情報を基に,「

ユーザー応答機

能で表示されるエラー情報の意味および対処方法 」を参照して

対処してください。

メッセージに出力されたエラー情報を基に,「

ユーザー応答機

能で表示されるエラー情報の意味および対処方法 」を参照して

対処してください。

次の点を確認してください。

• JP1/IM - Manager がインストールされているホストに,

JP1/Base がインストールされているか

• JP1/IM - Manager がインストールされているホストの

JP1/Base のイベントサービスが起動しているか

リトライの可否

×

×

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1065

終了コード

6

7

意味

指定されたホストへの JP1

イベントの転送に失敗

JP1/Base のライブラリが

見つからない

8

10

128+シグナ

ル番号

【UNIX 限

定】

200

【Windows

限定】

自ホストの JP1/Base のイ

ベントサービスの接続に

失敗

指定された形式が不正 adshecho コマンドがシグ

ナルを受信して終了 adshecho コマンドが強制

終了

対処

• JP1/Advanced Shell がインストールされているホストと,

JP1/IM - Manager がインストールされているホストの間

の,JP1/Base のコネクションが確立されているか

リトライの可否

JP1/Advanced Shell がインストールされているホストに,

JP1/Base がインストールされているか確認してください。

JP1/Base がインストールされていてこの現象が発生した場合

は,JP1/Base を再インストールしてください。

×

○ JP1/Advanced Shell がインストールされているホストで,

JP1/Base のイベントサービスが起動しているか確認してくだ

さい。

コマンドの形式を確認してください。

ジョブがシグナルを受信して終了していることを確認してくだ

さい。

×

×

ジョブが強制終了されていることを確認してください。 ×

(凡例)

○:リトライ可

×:リトライ不可

−:対象外

注意事項

• このコマンドは別プロセスで実行しないでください。別プロセスで実行した場合,流量制御

(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 イベントの送信に成功したとしてコマンドは動作します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1066

• リトライ可能なエラーでコマンドが終了した場合は,そのコマンドを再実行することで成功する可能性

があります。コマンドを再実行したい場合は,「 3.8.5 adshecho コマンドまたは adshread コマンド

がエラー終了した場合の対処 」に記載しているジョブ定義スクリプトの記述例を参考として,そのコマ

ンドを再実行するようにジョブ定義スクリプトを作成してください。

• このコマンドはパイプ記号と組み合わせて実行しないでください。

• このコマンドはリダイレクト記号と組み合わせて実行しないでください。

9.4.5 adshjoberr コマンド(ジョブおよびジョブステップにエラーを通知

する)

形式 adshjoberr 終了コード

機能

指定した場所からジョブおよびジョブステップにエラーを通知できます。指定した場所がジョブステップ

内またはジョブステップ外の場合,次のように動作します。

ジョブステップ内に指定した場合

ジョブステップの onError 属性の指定に関わらず,ジョブステップ正常ブロックの後続処理は実行し

ないで,ジョブステップエラーブロックが定義されていれば実行し,ジョブステップがエラー終了しま

す。

ジョブステップ外に指定した場合 run 属性が abnormal または always の後続のジョブステップが定義されていれば実行し,ジョブがエ

ラー終了します。

引数

終了コード 〜<整数>((0〜255))

ジョブまたはジョブステップに通知する終了コードを定義します。

終了コード

終了コード

0〜255

1

意味

エラー終了 adshjoberr コマンドの引数に指定した終了コードをジョブまた

はジョブステップに通知します。

エラー終了

続行不可能なエラーが発生しました。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1067

終了コード

200

意味

エラー終了

コマンドラインの指定に誤りがあります。

注意事項

• adshjoberr コマンドを別プロセス実行すると,呼び出し元のスクリプトのジョブおよびジョブステッ

プにエラーが通知されない場合があります。adshjoberr コマンドは別プロセス実行しないようにして

ください。

• adshjoberr コマンドを子孫ジョブ内に定義して実行した場合,子孫ジョブおよび子孫ジョブ内のジョ

ブステップにだけエラーが通知されます。子孫ジョブ呼び出し元のジョブまたはジョブステップにはエ

ラーは通知されません。

• trap コマンドのアクション内で adshjoberr コマンドを実行した場合,実行したタイミングがジョブス

テップ外の場合はジョブに,ジョブステップ内の場合はジョブステップにエラーが通知されます。

• CMDRC_CMDGRP_CHECK パラメータのオペランドに FUNCTION を定義した場合,関数内のコ

マンドはエラー判定対象外であるため,関数内に指定した adshjoberr コマンドから,呼び出し元のス

クリプトのジョブおよびジョブステップにエラーが通知されません。CMDRC_CMDGRP_CHECK パ

ラメータのオペランドに FUNCTION を定義した場合,adshjoberr コマンドは関数内に定義しないよ

うにしてください。

使用例

ファイルが存在しない場合,ジョブステップを終了コード 1 で異常終了させます。

ジョブ定義スクリプト

#-adsh_job J01

#-adsh_step_start S01

cmd1

if [[ ! -a /tmp/tempfile ]]; then

echo "tempfile not found"

adshjoberr 1

fi

#-adsh_step_end

実行結果

******** ジョブコントローラのメッセージ出力 ********

17:02:02 046277 KNAX0091-I J01 ジョブが開始しました。

17:02:02 046277 KNAX7901-I ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセス

の完了を待ちます。

17:02:02 046277 KNAX7902-I ジョブコントローラは,"端末入力モード"で動作します。

17:02:02 046277 KNAX0092-I J01.S01 ステップが開始しました。

17:02:02 046277 KNAX6116-I コマンド(./cmd1, 行番号=4)が正常終了しました。rc=0 E-

Time=0.001s C-Time=0.000s

17:02:02 046277 KNAX6112-I コマンド([[, 行番号=5)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1068

17:02:02 046277 KNAX6112-I コマンド(echo, 行番号=6)が正常終了しました。rc=0 E-

Time=0.000s C-Time=0.000s

17:02:02 046277 KNAX6150-E ジョブステップにエラーが通知されました。rc=1 line=7

17:02:02 046277 KNAX6596-E J01.S01 ジョブステップがエラー終了しました。rc=1 E-

Time=0.003s C-Time=0.000s

17:02:02 046277 KNAX0101-E J01 ジョブを実行中にエラーが発生しました。

17:02:02 046277 KNAX0098-I J01 ジョブが終了しました。rc=1 E-Time=0.004s C-Time=0.000s

9.4.6 adshmktemp コマンド(ほかと重ならない名前を持つファイルを作

成する)

形式 adshmktemp プリフィックス

機能

他と重ならない名前を持つファイルを作成し,そのパス名を標準出力に出力します。

作成されるファイルのパス名を次に示します。

一時ファイルディレクトリパス名 プリフィックス_ジョブ識別子_プロセス ID_時間情報_ファイル通し

番号

一時ファイルディレクトリパス名

TEMP_FILE_DIR パラメーターによって定義されたディレクトリのパス名。

プリフィックス

引数に指定したプリフィックス。

ジョブ識別子

10 進数の 6 桁のジョブ識別子。6 桁未満の場合,前方に 0 を付加して 6 桁にする。

プロセス ID

10 進数のプロセス ID。5 桁未満の場合,前方に 0 を付加して 5 桁にする。5 桁以上の場合,そのまま

の値とする。

時間情報

時間情報を 16 進数で表した数値文字列。

ファイル通し番号

1 つのプロセス内で作成するファイルパス名の通し番号。0001 から 4095 までの 10 進数 4 桁の数値

文字列。

1 つのプロセス内で,ファイル通し番号が 4095 を超えるまでファイルを作成できる。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1069

UNIX の場合,作成するファイルのパーミッションは,ファイルの所有者(作成者)の部分だけ umask

値の指定に従い,グループおよびその他のユーザーのアクセス権限部分は常に 0 になります。

Windows の場合,権限の指定はありません。

引数

プリフィックス  〜<任意文字列>((1〜128 バイト))

ファイル名の先頭に付与する文字列を指定します。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• 作成したファイルパス名が OS の許容するパス名の最大バイト数を超える場合,エラー終了します。

• 引数のプリフィックスに次の文字を含む文字列を指定するとエラー終了します。

UNIX の場合:「/」

Windows の場合:「/」,「¥」,「:」

• 引数のプリフィックスにパス名として使用できない文字を指定しないでください。指定した場合,ファ

イルの作成に失敗してエラー終了します。

使用例

# UNIX版でTEMP_FILE_DIRパラメーターがデフォルト値の場合 adshmktemp testjob

# 以下のファイルが作成され,標準出力にパス名が出力される。

/var/opt/jp1as/temp/testjob_000150_12278_557539f8_0001

# Windows版でTEMP_FILE_DIRパラメーターに「E:\temp」を指定した場合 adshmktemp testjob

# 以下のファイルが作成され,標準出力にパス名が出力される。

E:\temp\testjob_000030_00826_55265a48_0002

# ファイルをadshfileコマンドに指定し,echoコマンドで文字列を出力する。

# adshfileコマンドによって,ファイルはジョブ終了時に削除される。 tempfile=$(adshmktemp job1)

"${ADSH_DIR_BIN}adshfile" -n del -a del "$tempfile" echo "OK" > "$tempfile"

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1070

9.4.7 adshparsecsv コマンド(CSV データを解析する)

形式 adshparsecsv [-e] 配列名

機能

このコマンドはスクリプト開発部品の中で使用されるコマンドです。そのため,CSV データを解析する場

合は,スクリプト開発部品の CSV 操作の部品の使用を推奨します。

標準入力から読み込んだ CSV データを 2 次元配列に格納します。具体的には,カンマで区切られたデー

タを 2 次元配列の各要素の値として格納します。入力できる CSV データのサイズは,100KB 以下を対象

としています。100KB より大きいサイズのデータを入力すると,ジョブの実行時間が長大化する可能性が

あります。

CSV データと 2 次元配列の要素の対応例を次に示します。

CSV データ(data.csv) name,value,id

"Yokohama",200,0001

"Kawasaki",100,0002

2 次元配列(array)の要素と CSV データ(data.csv)の対応 array[0][0]=name array[0][1]=value array[0][2]=id array[1][0]="Yokohama" array[1][1]=200 array[1][2]=0001 array[2][0]="Kawasaki" array[2][1]=100 array[2][2]=0002

引数

-e

CSV データに含まれるダブルクォートをメタキャラクタと解釈します。

配列名 〜<環境変数名>

データを格納する配列名を指定します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1071

終了コード

終了コード

0

1

意味

正常終了

エラー終了

使用例

CSVデータ(data.csv) name,value,id

"Yokohama",200,0001

"Kawasaki",100,0002

# CSVデータを2次元配列に格納する。 adshparsecsv array < data.csv

echo "${array[1][0]}" # 「"Yokohama"」が出力される。 echo "${array[1][1]}" # 「200」が出力される。

# CSVデータのダブルクォートをメタキャラクタと解釈して2次元配列に格納する。 adshparsecsv –e array < data.csv

echo "${array[1][0]}" # 「Yokohama」が出力される。 echo "${array[1][1]}" # 「200」が出力される。

9.4.8 adshparsejson コマンド(JSON データを解析する)

形式 adshparsejson 名前

機能

このコマンドはスクリプト開発部品の中で使用されるコマンドです。そのため,JSON データを解析する

場合は,スクリプト開発部品の JSON 操作の部品の使用を推奨します。

標準入力から読み込んだ JSON データから名前を検索し,完全一致した名前に対応する値を改行区切りで

標準出力に出力します。

【UNIX 限定】

JP1/Advanced Shell が動作する環境の環境変数 LANG の値と異なるエンコーディングの JSON デー

タを入力する場合,シェル変数 ADSH_PARSER_LANG に値を設定しておくことで,adshparsejson

コマンドを実行する間はエンコーディングを統一して動作させることができます。シェル変数

ADSH_PARSER_LANG には,環境変数 LANG に指定可能な値を設定します。例えば,次の条件に当

てはまる場合,エンコーディングを統一して動作させるためには,シェル変数 ADSH_PARSER_LANG

に JA_JP.UTF-8 を設定してから adshparsejson コマンドを実行します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1072

• AIX で環境変数 LANG に SJIS を示す値(Ja_JP)が設定されている

• エンコーディングが UTF-8 の JSON データを入力する

引数

名前

検索する名前を指定します。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• 一致する項目が見つからなかった場合,エラー終了します。

• 同じ名前のデータをネストしている場合,データの最も外側の名前に対応する値を出力します。

例(test.json):{"num":{"id":"0001","num":200}}

上記データに対して num で検索すると,{"id":"0001","num":200}が出力されます。この場合,次のよ

うに指定して,データの内側の名前に対応する値(200)を出力できます。 adshparsejson num < test.json | adshparsejson num

使用例

JSONデータ(data.json)

{ "city": [

{ "name":"Yokohama", "id":"0001", "value":{ "A":200, "B":100 } },

{ "name":"Kawasaki", "id":"0002", "value":{ "A":100, "B":300 } }

]

} adshparsejson name < data.json

# 以下の内容が出力される。

"Yokohama"

"Kawasaki" adshparsejson value < data.json

# 以下の内容が出力される。(ネストされているデータをそのまま出力する)

{ "A":200, "B":100 }

{ "A":100, "B":300 } adshparsejson B < data.json

# 以下の内容が出力される。

100

300

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1073

9.4.9 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 バイト以降の文字列は無視されます。また,改行を含む文字

列が指定された場合,改行以降の文字列は無視されます。

変数に配列を指定する場合は,要素ごとに指定します。1 次元配列の要素数は 0〜65,535 の間で指定

できます。

2 次元配列の要素数は要素番号指定ごとに 0〜65,535 の間で指定できます。

通常の変数指定:adshread ans“処理を続行しますか(Y/N)”

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1074

配列指定:adshread ans[1] “処理を続行しますか(Y/N)”

指定したシェル変数の属性に対する,このコマンドの実行結果を次の表に示します。

指定したシェル変数の属性

読み取り専用

数値型

文字列型/文字列型の配列

存在しない変数

変数名が不正

配列の要素数が範囲外の変数

コマンドの実行結果

KNAX6008-E を出力して終了します。

KNAX7404-E を出力して終了します。

値を更新して終了します。

文字型の変数を新規作成し,値を設定して終了します。

KNAX6003-E を出力し終了します。

KNAX6007-E を出力し終了します。

応答要求メッセージ 〜<任意文字列>((0〜1,023 バイト))

応答待ちイベントとして発行する応答要求メッセージを指定します。

応答要求メッセージの文字コードは,同一ホスト内で稼働する JP1/Base と合わせてください。文字

コードが異なると文字化けします。

指定された応答要求メッセージは,コマンド「echo -E

応答要求メッセージ

」の実行時と同様の変換内

容が応答待ちイベントとして発行されます。複数の応答要求メッセージが指定された場合はエラー

(KNAX7403-E)となります。

終了コード

終了コード

0

1

2

3

4

5

意味

正常終了

次に示す続行不可能なエ

ラーが発生

• メモリ不足

• 変数名として使用でき

ない変数を検出

• 内部矛盾を検出

セマフォ(Mutex)・共有

メモリの操作でエラーが

発生

共有メモリに空きがない

JP1 イベントの処理中にエ

ラーが発生

JP1 イベントの処理中にエ

ラーが発生

対処

なし。

変数名として使用できない変数を指定している場合は,変数

の指定を変更してください。

問題が解決しない場合は,システム管理者に連絡してくださ

い。

メッセージに出力されたエラー情報を基に,「 ユーザー応答

機能で表示されるエラー情報の意味および対処方法

」を参照

して対処してください。

USERREPLY_WAIT_MAXCOUNT パラメーターの設定を

見直してください。

メッセージに出力されたエラー情報を基に,「 ユーザー応答

機能で表示されるエラー情報の意味および対処方法

」を参照

して対処してください。

メッセージに出力されたエラー情報を基に,「 ユーザー応答

機能で表示されるエラー情報の意味および対処方法

」を参照

して対処してください。

リトライの可否

×

×

×

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1075

終了コード

6

7

8

10

128+シグナル

番号【UNIX 限

定】

200

【Windows 限

定】

意味

指定されたホストへの JP1

イベントの転送に失敗

JP1/Base のライブラリが

見つからない

自ホストの JP1/Base のイ

ベントサービスの接続に

失敗

指定された形式が不正 adshread コマンドがシグ

ナルを受信して終了 adshread コマンドが強制

終了

対処

次の点を確認してください。

• JP1/IM - Manager がインストールされているホストに,

JP1/Base がインストールされているか

• JP1/IM - Manager がインストールされているホストの

JP1/Base のイベントサービスが起動しているか

• JP1/Advanced Shell がインストールされているホスト

と,JP1/IM - Manager がインストールされているホス

トの間の,JP1/Base のコネクションが確立されているか

リトライの可否

× JP1/Advanced Shell がインストールされているホストに,

JP1/Base がインストールされているか確認してください。

JP1/Base がインストールされていてこの現象が発生した場

合は,JP1/Base を再インストールしてください。

JP1/Advanced Shell がインストールされているホストで,

JP1/Base のイベントサービスが起動しているか確認してく

ださい。

コマンドの形式を確認してください。

ジョブがシグナルを受信して終了していることを確認してく

ださい。

ジョブが強制終了されていることを確認してください。

×

×

×

(凡例)

○:リトライ可

×:リトライ不可

−:対象外

注意事項

• このコマンドは別プロセスで実行しないでください。別プロセスで実行した場合,流量制御

(USERREPLY_JP1EVENT_INTERVAL パラメーターで指定)が機能しません。また,運用者からの

応答は adshread コマンドを実行したジョブの指定された変数に格納されません。

• このコマンドはパイプを指定して実行しないでください。

• このコマンドにリダイレクトで値を受け取る処理を指定しないでください。

• ユーザー応答機能の入出力先に標準入出力を指定してデバッグ実行する場合を除いて,JP1/Base や

JP1/IM が存在しない環境やユーザー応答機能管理デーモンまたはサービスが起動していない状態では

実行しないでください。

実行すると次の問題が発生します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1076

• 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

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1077

9.4.10 adshscripttool コマンド(ジョブ定義スクリプトの作成を支援す

る)【Windows 限定】

形式 adshscripttool -fowner [-L] パス名 adshscripttool -fentry [-L] パス名 adshscripttool -fmode [-s {u|g|o|r|w|x}] モード adshscripttool -exec [-m {SIMPLE|MINIMUM}]

{-r コマンドライン|ジョブ定義スクリプトファイルのパス名}

[実行時パラメーター]

機能

ジョブ定義スクリプトを作成しやすくするための情報の取得や出力などを実行します。指定できる引数と

用途を次に示します。

引数

-fowner

-fentry

-fmode

-exec

実行内容

ファイルまたはフォルダの所有者名を出力します。

ファイルまたはフォルダの ACL に登録されているア

カウント名の一覧を出力します。

用途

ファイルまたはフォルダの所有者のアクセス権を変更す

るために,ファイルまたはフォルダの所有者名を取得し

たい場合に使用します。

取得した ACL のアカウント情報に従って,ジョブ定義

スクリプト内の cacls コマンドや attrib コマンドの実行

を変更したい場合に使用します。

シンボルまたは数値の指定内容に従って,ジョブ定義ス

クリプト内の cacls コマンドや attrib コマンドの実行を

変更したい場合に使用します。 chmod コマンドのモードとして指定されたシンボル

または数値を解析して,「所有者」「グループ」「その

他のユーザー」に対しての権限の変更内容を,ジョブ

定義スクリプト中で使用しやすいように 9 桁の文字列

として出力します。

-s オプションと同時に指定すると,-fmode オプショ

ン指定時の出力のうち,ugorwx の指定に対応する桁

の文字だけを出力します。

指定したコマンドラインまたはジョブ定義スクリプト

を子孫ジョブとして実行します。

指定したコマンドラインまたはジョブ定義スクリプトを

子孫ジョブとして実行したい場合に使用します。

引数

-L

情報の取得先を選択します。

パス名に指定したファイルが通常ファイルの場合,指定したファイルの情報を取得します。パス名に指

定したファイルがシンボリックリンクの場合,-L オプションの指定に従います。

-L オプションが指定された場合,シンボリックリンクが指す実体の情報を取得します。

-L オプションが指定されなかった場合,シンボリックリンクの情報を取得します。

環境変数 ADSH_LINK_SUPPORT に L0 を指定した場合,-L オプションを使用できません。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1078

-fowner

ファイルまたはフォルダの所有者名を標準出力に出力します。

出力する所有者名の形式は,「

ドメインまたはコンピュータ名\ユーザー名

」または「

ユーザー名

」とな

ります。 cacls コマンドで Creator Owner を定義しても,ファイルまたはフォルダの所有者とマッピングされ

ない場合があります。cacls コマンドで所有者名を指定する前に,このオプションを指定して adshscripttool コマンドを実行し,所有者名を求めておいてください。

-fentry

ファイルまたはフォルダの ACL に登録されているアカウント名の一覧を「;(セミコロン)」区切りで

標準出力に出力します。

出力するアカウント名の形式は「

ドメインまたはコンピュータ名\ユーザー名

」または「

ユーザー名

となります。

パス名

対象とするファイルまたはフォルダを指定します。

-fmode chmod コマンドのモードとして指定されたシンボルまたは数値を解析し,「所有者」「グループ」「その

他のユーザー」に対しての権限の変更内容を 9 桁の文字列として標準出力に出力します。

数値が指定された場合,モードビット ON に対応する値を R に,モードビット OFF に対応する値を

D に設定します。エラー時は'E'だけを出力して終了します。

-fmode オプション指定時の adshscripttool コマンドの実行結果として出力される文字列の意味を桁ご

とに次に示します。

6

7

4

5

8

9

2

3

左から数えた桁番号

1

意味

所有者の読み込み権限

所有者の書き込み権限

所有者の実行権限

グループの読み込み権限

グループの書き込み権限

グループの実行権限

その他のユーザーの読み込み権限

その他のユーザーの書き込み権限

その他のユーザーの実行権限

A

D

各桁には次の値が設定されます。

意味

追加(「+」が設定された)

削除(「-」が設定された)

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1079

0

E

R

意味

置き換え(「=」または数値が設定された)

指定されていない 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:グループ

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1080

シンボル内の

順序

1 つ目

指定できる値

2 つ目

3 つ目 o:その他 a:全ユーザー

モードに対する操作を指定します。1 つ目のシンボルで指定された項目に対して次の処理をします。

=:アクセス権の設定(上書き)

+:アクセス権の追加

-:アクセス権の削除

設定,追加および削除する値は,3 つ目のシンボルで指定します。

3 つ目のシンボルに続いて 2 つ目および 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"」が出力されます。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1081

コマンドラインの指定

コマンドラインには,シェル運用コマンドや 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) 子孫

ジョブのスプールジョブをルートジョブのスプールジョブへマージした場合

」を参照してください。

・子孫ジョブの JOBLOG の開始を表す記号

「>>>>>> [JOBLOG] "-r CMDLINE"」

・子孫ジョブの JOBLOG の終了を表す記号

「<<<<<< [JOBLOG] "-r CMDLINE"」

・子孫ジョブの標準エラー出力の開始を表す記号(通常実行時)

「>>>>>> [STDERR] "-r CMDLINE"」

・子孫ジョブの標準エラー出力の終了を表す記号(通常実行時)

「<<<<<< [STDERR] "-r CMDLINE"」

・子孫ジョブの標準エラー出力および標準出力の開始を表す記号(デバッグ実行時)

「>>>>>> [STDERR,STDOUT] "-r CMDLINE"」

・子孫ジョブの標準エラー出力および標準出力の終了を表す記号(デバッグ実行時)

「<<<<<< [STDERR,STDOUT] "-r CMDLINE"」

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1082

また,スクリプトイメージファイルに出力されるジョブ定義スクリプトファイル名の部分にも「"-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」を指定した例と,標準出力への出力結果を示します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1083

ジョブ定義スクリプトの内容 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 桁目の結果を出力)

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1084

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

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1085

• コマンドライン「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 オプションを指定する場合は,対象のファイルまたはフォルダの所有者

が実行してください。所有者でない場合,エラーメッセージを出力してエラー終了することがあります。

• -fowner オプション,または-fentry オプションの前に-L オプションは指定できません。指定した場

合,コマンドの解析エラーになります。

• -fmode オプションの前に-s オプションは指定できません。指定した場合,コマンドの解析エラーにな

ります。

• 内部矛盾を検出した場合,実行しているシェルを終了します。内部矛盾以外のエラーの場合,実行して

いるシェルは終了しないで処理を続行します。

• -fentry オプションで各 ACE のセキュリティ情報を参照中にエラーになった場合,参照できた ACE の

アカウント名までの結果を出力し,エラー終了します。

• -exec オプションで子孫ジョブを実行した場合,ジョブ実行ログに出力されるコマンド名は JP1/

Advanced Shell のコマンド(adshexecsub コマンド)となります。

9.4.11 adshvarconv コマンド(変数の値を変換する)

形式 adshvarconv [-o] –p シェル変数名 [シェル変数名 ・・・] adshvarconv [-o] [-c] –b 変換前文字列 [–a 変換後文字列]

シェル変数名 [シェル変数名 ・・・] adshvarconv [-o] –i \の増加数 シェル変数名 [シェル変数名 ・・・]

【Windows限定】 adshvarconv [-o] [-u] –e 変換前エンコーディング 変換後エンコーディング

シェル変数名 [シェル変数名 ・・・]

機能

オプションに従って変数の値を変換します。

オプション

-p

機能

パス変換ルールに従ってシェル変数値を変換します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1086

オプション

-b,-a,-c

-i

-e,-u

機能

シェル変数値の 変換前文字列 を 変換後文字列 に変換します。

シェル変数値の¥を指定個数分増加します。

シェル変数値のコード変換を行います。【Windows 限定】

-o オプションについて次に示します。

-o オプション

無し

出力先

元のシェル変数値を変換後の値で更新します。

元のシェル変数値は変更せずに,変換後の値を標準出力に出力します。

引数

-p

パス変換ルール(PATH_CONV_ENABLE,PATH_CONV 環境設定パラメーター)に従って,シェル

変数の値を変換します。adshvarconv コマンド実行時に変換します。このため,コマンド実行後に変

数の値を変更した場合,その値は自動的に変換されません。この変更後の値がパス変換ルールに一致す

る値であっても,自動的に変換しません。

パス変換の動作は,変換ルールとは異なります。パス変換の動作を次に示します。

パス変換動作

PATH_CONV_ENABLE で指定したパス区切り文字で区切られた,それぞれのパスを環境設定パラメーター PATH_CONV

で変換する。

注 環境設定パラメーターでは Windows のディレクトリ区切り記号は¥¥と記述しますが,このコマンドの変換では¥2

個を¥1個に自動的に変更して変換します。

PATH_CONV 環境設定パラメーターで変換した場合,パス区切り文字,ディレクトリ区切り文字を該当 OS の区切り文

字に変換します。

注 通常のパス変換機能では Windows のディレクトリ区切り記号は¥¥に変換しますが,このコマンドの変換では¥1個

に変換します。

パス変換機能が無効のとき,このコマンドは何もしません。

-b 変換前文字列 [-a 変換後文字列]

シェル変数値の 変換前文字列 を 変換後文字列 に変換します。-a を指定しない場合は, 変換前文字列 を

削除します。

変換前文字列 〜<任意文字列>((1 から 256 バイト))

変換後文字列 〜<任意文字列>((1 から 256 バイト))

-c

パス変換機能が有効の場合だけ変換します。パス変換機能が無効のときは,このコマンドは何もしませ

ん。-c 指定がないときは,無条件に変換します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1087

-i ¥の増加数

シェル変数値の¥をそれぞれの文字に対して,指定個数分増加します。-i 1 と指定した場合,変換前の

文字列が abc¥def¥¥ghi¥¥¥jkl であれば,変換後は abc¥¥def¥¥¥¥ghi¥¥¥¥¥¥jkl です。

¥の増加数 〜<3 桁の十進数>((1〜256))

-e 変換前エンコーディング 変換後エンコーディング【Windows 限定】

シェル変数の値をコード変換します。

• 変換前エンコーディング 〜{SJIS | UTF8}

SJIS:エンコーディングが Shift-JIS であることを示します。

UTF8:エンコーディングが UTF-8 であることを示します。

• 変換後エンコーディング 〜{SJIS | UTF8}

SJIS:エンコーディングが Shift-JIS であることを示します。

UTF8:エンコーディングが UTF-8 であることを示します。

変換前エンコーディングと変換後エンコーディングの組み合わせの妥当性チェックはしません。

-u

コード変換時に変換できないコードがあった場合,エラー終了します。

-u オプションを指定しない場合,変換できない文字を「?」に変換して処理を続行します。

-o

変換後の値を標準出力に出力します。シェル変数値は更新しません。

-o オプションを指定する場合,複数のシェル変数名を指定できません。配列で複数要素を指定するこ

ともできません。

-e オプション以外の場合,変換をしない場合でも-o オプションがあるときは,変換前の変数の値を標

準出力に出力します。

-e オプションでは変換できなかったときは-o オプションがあっても標準出力には結果を出力しません。

シェル変数名 〜<シェル変数名>((1 から 256))

値を変更するシェル変数を指定します。長さの上限は,配列の場合,引数指定を含んだ文字列の長さの

上限です。

配列を指定する場合は次の形式で指定します。

配列の要素番号は 0 から 65,535 まで指定できます。

配列の指定方法 array[n] array[@] array[*] array[] array[n][m] array[n][@]

説明 n 番目の要素

全要素

全要素 array[0]と同一 n 行 m 列の要素 n 行目のすべての要素

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1088

配列の指定方法 array[n][*] array[n][] array[@][m] array[@][@] array[@][*] array[@][] array[*][m] array[*][@] array[*][*] array[*][] array[][m] array[][@] array[][*] array[][]

終了コード

終了コード

0

1

説明 n 行目のすべての要素 array[n][0]と同一 m 列のすべての要素

すべての要素

すべての要素

すべての要素 m 列のすべての要素

すべての要素

すべての要素

すべての要素 array[0][m]と同一

すべての要素

すべての要素 array[0][0]と同一

意味

正常終了

• -e で変換できない文字がありました。(-u を指定した場合)

• 変数が読み込み専用属性です。

• 変数が整数型属性です。

• 変数名が妥当ではありません。

• 変数名の指定がありません。

• -a があるときに-b がありません。

• 変換前文字列,変換後文字列の文字列長が正しくありません。

• 値が必要なオプションに値の指定がありません。

• オプションの組み合わせが誤っています。

• -o オプション指定時に複数の変数を指定しています。

• -o オプション指定時に配列要素に*または@を指定しています。

• -e でエンコーディングの指定が不当です。

• 不当なオプションを指定しています。

• 必要なオプションが指定されていません。

• 予期しないエラーが発生しました。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1089

注意事項

• 同一変数を複数回指定すると 2 重に変換します。

• 配列変数で指定した要素が存在しないとき,エラーにしないで後続の変数の処理をします。

• 指定した変数名が存在しないとき,エラーにしないで後続の変数の処理をします。

• 右詰め属性などで値が変数格納時に加工されている場合,パス変換ルールによる変換では,属性によっ

て加工された値を変換ルールと評価するため,変換対象にならないことがあります。

• 変換後の値は変数の属性によって加工されることがあるので注意が必要です。

たとえば typeset –R10(右詰で領域長が 10 文字)の場合,変換後の値が領域長を超えると,仕様に

従って切り捨てが発生します。また,先頭の空白を削除しても領域長より短い場合は先頭に空白が挿入

されます。

使用例

• ジョブ定義スクリプト起動時のパラメーターにパスが指定されていて,それを PATH_CONV の変換

ルールで変換したい場合。

• 環境設定パラメーター

#-adsh_conf PATH_CONV_ENABLE / :

#-adsh_conf PATH_CONV_RULE 2

#-adsh_conf PATH_CONV /home/user001 "d:\\user001"

• ジョブ定義スクリプト(sample.ash) infile=$1 adshvarconv –p infile

"${ADSH_DIR_CMD}cat" ${infile}

• 実行例

D:\user001>cat d:\user001\zzzz.txt

Data_zzzz.txt(d:\user001\zzzz.txtファイルの内容)

 

D:\user001>adshexec –m MINIMUM sample.ash /home/user001/zzzz.txt

Data_zzzz.txt(d:\user001\zzzz.txtファイルの内容)

• ファイルに記述されたパスを引数の値で変換する場合。

• ジョブ定義スクリプト(sample.ash) while read LINE do

adshvarconv -b "/home/user1" -a "$1" LINE

adshvarconv -b "/" -a "\\" LINE

echo -E "$LINE" >&2 done < input.txt

• input.txt

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1090

/home/user1/data001

/home/user1/data002

• 実行例

D:\user001>adshexec –m MINIMUM sample.ash D:/home/winuser001

D:\home\winuser001\data001

D:\home\winuser001\data002

• 入力データから¥de の文字列を削除する場合。

• ジョブ定義スクリプト(sample.ash) echo -E 'abc\de\kkk' >test.txt echo -E '123\de\kkk' >>test.txt

"${ADSH_DIR_CMD}cat" test.txt >&2 echo -E start_sed >&2

"${ADSH_DIR_CMD}cat" test.txt | "${ADSH_DIR_CMD}sed" -e 's/\de//' >&2 echo -E start_adshvarconv >&2 while read -r LINE do adshvarconv -o -b '\de' LINE >&2 done < test.txt

• 実行結果 abc\de\kkk

123\de\kkk start_sed abc\\kkk

123\\kkk start_adshvarconv abc\kkk

123\kkk sed コマンドのパターンに指定した文字列の¥はエスケープ文字として扱われるため,正しく¥de

の文字列の削除ができません。

• awk コマンドにパス名を渡す時に¥を 1 個増加して,エスケープ文字の処理で¥が消えないようにする

場合。

• ジョブ定義スクリプト(sample.ash) aa=d:\\g1234z\\azzzz echo -E 'hitachi' | "$ADSH_DIR_CMD"awk -v VVV1=$aa '/hitachi/ { \ print "VVV1=" VVV1 ; \

}' >&2 adshvarconv –i 1 aa echo -E 'hitachi' | "$ADSH_DIR_CMD"awk -v VVV1=$aa '/hitachi/ { \ print "VVV1=" VVV1 ; \

}' >&2

• 実行例

D:\user001>adshexec -m MINIMUM sample.ash

VVV1=d:g1234zzzzz

VVV1=d:\g1234z\azzzz

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1091

• ファイルを read で読んで UTF-8 から Shift-JIS に変換する場合。

• ジョブ定義スクリプトファイル(sample1.ash) echo -E "--- before ---"

"${ADSH_DIR_CMD}ls" outdir while read LINE do

"${ADSH_DIR_CMD}cp" $(adshvarconv –o –e UTF8 SJIS LINE) outdir done < input.txt

echo -E "--- after ---"

"${ADSH_DIR_CMD}ls" outdir

• input.txt ファイル(UTF-8)

東京.txt

京都.txt

• 実行例

D:\user001>adshexec -m MINIMUM sample.ash

--- before ---

--- after ---

京都.txt 東京.txt

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1092

9.5 スクリプト拡張コマンド

スクリプト拡張コマンドとは,ジョブ定義スクリプトファイルに記載する「#-adsh_」で始まるコマンド

のことです。

ファイルの作成および環境変数への割り当て,ジョブ定義スクリプトまたはジョブステップ実行後のファ

イルの後処理や,ジョブ定義スクリプトのジョブ名を宣言できます。また,ジョブステップを定義してジョ

ブの実行を制御したり,スクリプト拡張コマンドを記載した外部のスクリプトを呼び出したりできます。

スクリプト拡張コマンドの終了コードは,環境設定パラメーターの ADSHCMD_RC_ERROR パラメー

ターおよび ADSHCMD_RC_SUCCESS パラメーターで変更できます。ただし,次の場合の終了コードは

変更できません。

• #-adsh_step_end コマンドでジョブステップ正常終了およびジョブステップエラー終了した場合

• #-adsh_script コマンドで正常終了した場合

環境設定パラメーターについては,「 7. 環境ファイルで設定するパラメーター 」を参照してください。

また,スクリプト拡張コマンドは別プロセスで実行しないでください。

9.5.1 

#-adsh_file

コマンド(通常ファイルの割り当ておよび後処理を指定す

る)

形式

#-adsh_file ファイル環境変数定義名 ファイルパス

[-chk{exist|no}]

[-normal{del|keep}][-abnormal{del|keep}]

機能

通常ファイルの割り当て,通常ファイルの存在有無の確認および後処理を指定します。通常ファイルの割

り当ては,4,095 個まで指定できます。

通常ファイルの割り当て,後処理, adshfile コマンドとの機能差については,「

5.9.1 通常ファイルの割

り当ておよび後処理をする

」を参照してください。

このコマンドで割り当てた通常ファイルは, adshfile コマンドで割り当てた通常ファイルとは別に管理さ

れ,後処理は adshfile コマンド, #-adsh_file コマンドの順に実行されます。そのため,両方のコマンド

で同じファイルを割り当てると,ファイルの後処理が二重に実行されることになり,エラーが発生する場

合があるので注意してください。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1093

引数

ファイル環境変数定義名

〜<環境変数名>((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

該当するジョブステップまたはジョブ終了後,割り当てた通常ファイルを削除しません。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1094

終了コード

終了コード

0

1

意味

正常終了

エラー終了

9.5.2 

#-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 が指定されたものと

します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1095

• create

割り当てる一時ファイルを新規に作成して割り当てます。JP1/Advanced Shell がファイル名を生

成し 0 バイトファイルを作成します。

• exist

先行ジョブステップで作成した一時ファイルを割り当てる場合に指定します。ジョブステップ外で

割り当てる場合,および一時ファイル識別名を省略した場合は指定できません。

-normal{del

| keep}

一時ファイルの後処理を指定します。指定が省略されている場合,del が指定されたものとします。

• del

該当するジョブステップまたはジョブ終了後,割り当てた一時ファイルを削除します。

• keep

該当するジョブステップ終了時,割り当てた一時ファイルを削除しません。ジョブステップ外で割

り当てる場合,および一時ファイル識別名を省略した場合は指定できません。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

9.5.3 #-adsh_job コマンド(ジョブ名を宣言する)

形式

#-adsh_job ジョブ名

機能

ジョブ定義スクリプトのジョブ名を宣言します。ジョブ名の宣言は,1 行目または 2 行目のどちらかに 1

個指定できます。

引数

ジョブ名

〜<記号名称>((1〜31 バイト))

ジョブを識別する情報の 1 つであるジョブ名を定義します。ジョブ名はジョブ実行ログなどにメッセー

ジとして表示されるほか,JP1/Advanced Shell が作成するファイル名の一部にも使用されます。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1096

終了コード

終了コード

0

1

意味

正常終了

エラー終了

9.5.4 #-adsh_job_stop コマンド(ジョブの打ち切り条件を定義する)

形式

#-adsh_job_stop 終了コード定義[,終了コード定義 ...]

機能

ジョブステップ終了時に,ジョブを打ち切るかどうかを判断する条件を定義します。ジョブの打ち切り条

件の定義は,1,023 個まで指定できます。

引数

終了コード定義[,終了コード定義]...

ジョブを打ち切ると判断するジョブステップの終了コードの値を定義します。

終了コード定義を「,」で区切って複数指定した場合,どれかの定義を満たしたときにジョブを打ち切

ります。終了コード定義は 8 個まで指定できます。

終了コード定義

〜<符号なし整数>((0〜255))

・ 終了コード

終了コードの場合,ジョブを打ち切ります。

・ 終了コード 1:終了コード 2

終了コード 1 以上,終了コード 2 以下の場合,ジョブを打ち切ります。

・ 終了コード:

終了コード以上の場合,ジョブを打ち切ります。

・ :終了コード

終了コード以下の場合,ジョブを打ち切ります。

・ :

終了コード定義を無効にし,ジョブが打ち切られない状態にします。終了コードを「,」で区切って

複数指定した場合,この形式が含まれている場合は文法エラーになります。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1097

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• このコマンドをジョブステップ内に記述した場合,構文解析エラーになります。

• ジョブを打ち切った場合,後続ジョブステップの run 属性値に関係なく,後続ジョブ定義スクリプトは

一切実行しません。

9.5.5 #-adsh_path_var コマンド(パス名を扱うシェル変数を定義する)

形式

#-adsh_path_var シェル変数名[, ... シェル変数名]

機能

パス名を扱うシェル変数を定義します。環境ファイルに PATH_CONV_ENABLE パラメーターが定義さ

れている場合に有効となります。

環境ファイルの PATH_CONV_VAR パラメーターと PATH_CONV_NOVAR パラメーターの指定より

優先します。

#-adsh_path_var コマンドは,次のどれかの場合だけ使用できます。

• 1 行目の「#!

任意文字列

」の次の行

• #-adsh_job コマンドの次の行

• 1 行目(継続行は指定できる)

このコマンドで指定したシェル変数をパス名の先頭に記述すると,そのパス名中の PATH_CONV_ENABLE

パラメーターで定義したパス区切り文字とディレクトリ区切り文字が,実行先の OS のパス区切り文字と

ディレクトリ区切り文字に変換されます。

次の形式で指定したシェル変数と前方一致する記述を,パス名とみなして変換します。

• $

シェル変数名

• ${

シェル変数名

}

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1098

変数名は完全一致で判定されるため,

シェル変数名

の後ろに英数字または「_(アンダーバー)」が付く場

合は,対象のシェル変数ではないと判定されて変換されません。

変換後,変換対象の文字列に 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」に変換される。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1099

• コメント内の文字列も変換されます。

• SPOOLJOB_CHILDJOB パラメーターに DELETE を指定した場合,子孫ジョブとして実行するジョ

ブ定義スクリプトはスクリプトイメージが出力されません。そのため,子孫ジョブで実行したジョブ定

義スクリプトに対して,このコマンドで定義した変換規則に基づいて変換した場合,変換結果は出力さ

れないので注意してください。

• パス変換ルール 2 の場合でも,「"(ダブルクォーテーション)」で囲んだ範囲内に「'(シングルクォー

テーション)」を入れ子として指定することはできません。指定するとパス変換の対象となるので注意

してください。

• #-adsh_path_var コマンドで指定した変数は,別プロセスではパスを扱う変数として定義されません。

別プロセスでもパスを扱う変数として定義したい場合は,PATH_CONV_VAR パラメーターと

PATH_CONV_NOVAR パラメーターで指定してください。【Windows 限定】

9.5.6 #-adsh_rc_ignore コマンド(常に正常終了するコマンドを定義する)

形式

#-adsh_rc_ignore コマンド名[,コマンド名 ...]

機能

このコマンドに引数として定義したコマンドは,終了コードに関係なく常に正常終了します。その場合,

対象コマンドの終了コードはジョブステップの成功または失敗の判定に影響しません。常に正常終了する

コマンドの定義は,1,023 個まで指定できます。

ただし,コマンドがシグナルを受信して終了した場合は,指定に関係なくコマンドがエラー終了します。

定義方法については,「 (2) 常に正常終了するコマンドを定義する 」を参照してください。

このコマンドを指定した個所以降のジョブ定義スクリプト実行で有効となります。ジョブステップ外に指

定した場合はジョブ定義スクリプト全体に有効で,ジョブステップ内に指定した場合はジョブステップ内

だけで有効です。ジョブステップ内に指定した場合,指定した個所以降からジョブステップ終了まで有効

となり,ジョブステップ外に指定した値は一時的に無効になります。また,ジョブステップ内に指定する

まではジョブステップ外に指定した値が有効になります。

引数

コマンド名[,コマンド名 ...]

常に正常終了するコマンドを定義します。

コマンド名を「,」で区切って複数指定した場合,指定したすべてのコマンドに対して有効になります。

コマンド名は,255 個まで指定できます。

• コマンド名

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1100

Windows の場合 〜<パス名>((1〜247 バイト))

UNIX の場合 〜<パス名>((1〜256 バイト))

コマンド名をベース名で指定します。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• コマンド名をベース名で指定します。ジョブステップ内で実行するコマンド名が重複する場合は,エイ

リアスやリンクを利用してベース名が重複しないようにしてください。

• このコマンドは,ジョブ定義スクリプトファイル中に 1,023 個まで指定できます。

• このコマンドは,スクリプト拡張コマンドに対して指定できません。スクリプト拡張コマンドの終了

コードは,必ず 0 が正常終了で 1 がエラー終了であり,エラー終了の場合はジョブを続行できないた

めです。

• このコマンドをジョブステップエラーブロックに記載できません。

• KNAX6584-I メッセージを出力してバッチジョブを中断する場合,最後に実行したコマンドに対して

はこのコマンドの指定は有効になりません。

• この#-adsh_rc_ignore コマンドを使って「

5.1.7 別プロセスでの実行

」に示す書式で実行されたコマ

ンドを常に正常終了させる場合,文字列を置換する前のコマンド名に対するベース名をコマンドの引数

に指定してください。

• CMDRC_CMDGRP_CHECK パラメータに FUNCTION を指定した場合,引数のコマンド名に関数

名を指定することで,関数を常に正常終了にすることができます。CMDRC_CMDGRP_CHECK パラ

メータを指定しない場合,または CMDRC_CMDGRP_CHECK パラメータに NONE を指定した場

合,引数のコマンド名に関数名を指定しても,同名のコマンド名が指定されたとして処理されます。

使用例

• grep の終了コードを無視します。

#-adsh_step_start STEP1

#-adsh_rc_ignore grep

UAP data|grep "TOTAL:"

#-adsh_step_end

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1101

9.5.7 #-adsh_script コマンド(実行中のジョブ定義スクリプトから外部の

ジョブ定義スクリプトファイルを呼び出す)

形式

#-adsh_script ジョブ定義スクリプトファイル名

機能

外部のジョブ定義スクリプトファイルの JP1/Advanced Shell 起動時点での内容を,現在実行中のジョブ

定義スクリプトファイルに挿入します。実行中のジョブ定義スクリプトから外部のジョブ定義スクリプト

ファイルの呼び出しは,4,095 個まで指定できます。呼び出した外部スクリプトは呼び出し元のジョブ定

義スクリプトに展開され,全体を 1 個のジョブ定義スクリプトとして解析し,実行します。

引数

ジョブ定義スクリプトファイル名

Windows の場合 〜<パス名>((1〜247 バイト))

UNIX の場合 〜<パス名>((1〜4,096 バイト))

展開するジョブ定義スクリプトファイルのパスを指定します。相対パスで指定した場合は,ジョブコン

トローラ起動時のカレントディレクトリからの相対パスとなります。

終了コード

終了コード

呼び出した外部スクリプト内で最後に終了したコマンドの終了コード

1

意味

正常終了

エラー終了

#-adsh_script コマンドの正常終了の終了コードは,環境設定パラメーターで変更できません。

注意事項

• シェル標準コマンドの.(ドット)コマンドと次の個所が異なります。

• .(ドット)コマンドは,ジョブ定義スクリプト実行処理時点での外部スクリプトの内容が実行され

ます。#-adsh_script コマンドは,ジョブ定義スクリプトの解析処理時点での外部スクリプトの内

容が実行されます。ジョブ定義スクリプトの解析処理から実行処理の間に外部スクリプトの内容を

変更しないでください。

• .(ドット)コマンドは外部スクリプト内にスクリプト拡張コマンドが記述されている場合,コメン

トと見なします。#-adsh_script コマンドは,外部スクリプト内にスクリプト拡張コマンドを記述

し,実行できます。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1102

• #-adsh_script コマンドで実行した外部スクリプトから,さらに#-adsh_script コマンドを実行する

場合,同一の外部スクリプトを 2 回以上呼び出さないでください。

• .(ドット)コマンドで呼び出す外部スクリプトの内容は,スクリプトイメージに出力されません。

#-adsh_script コマンドで呼び出す外部スクリプトの内容は,スクリプトイメージに出力されます。

• .(ドット)コマンドに相対パスで外部スクリプトを指定した場合,環境変数 PATH の値を参照し

てパスを解決します。#-adsh_script コマンドに相対パスで外部スクリプトを指定した場合,環境

変数 PATH の値を参照しないで,adshexec 起動時のカレントディレクトリからの相対パスとして

解釈します。

• .(ドット)コマンドはジョブ内で使用できる数に制限がありません。#-adsh_script コマンドは,

ジョブ内で使用できる上限数が 4,095 個です。

• .(ドット)コマンドは外部スクリプトへの引数を指定できます。#-adsh_script コマンドは,外部

スクリプトへの引数を指定できません。

• ファイル名として.(ドット)から始まるファイル名を指定しないでください。

• ファイル名に予約デバイス名(CON や AUX,NUL など)は使用しないでください。【Windows 限定】

• ファイル名に NTFS のストリームは使用しないでください。【Windows 限定】

• このコマンドが正常終了した場合,ジョブやジョブステップの正常終了またはエラー終了の判定には使

用されません。呼び出した外部スクリプトの実行結果を参照してください。

9.5.8 

#-adsh_spoolfile

コマンド(プログラム出力データファイルの割り当

てをする)

形式

#-adsh_spoolfile ファイル環境変数定義名

機能

プログラム出力データファイルを割り当てます。

出力ファイルの割り当ては,4,095 個まで指定できます。また,1 つのジョブステップ内およびジョブス

テップ外には 255 個まで指定できます。割り当て方法については,「 5.9.3 プログラム出力データファイ

ルの割り当てをする 」を参照してください。

引数

ファイル環境変数定義名

〜<環境変数名>((1〜31 バイト))

割り当てたプログラム出力データファイルを識別するキーとなる,ファイル環境変数定義名を指定しま

す。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1103

Windows の場合,環境設定パラメーター VAR_ENV_NAME_LOWERCASE で ENABLE を指定し

ていれば小文字を指定できます。DISABLE を指定していれば小文字は指定できません。

終了コード

終了コード

0

1

意味

正常終了

エラー終了

注意事項

• #-adsh_spoolfile コマンドで割り当てたパス名を利用して,スプールジョブディレクトリ下にディレ

クトリを生成しないでください。スプールジョブディレクトリ下にディレクトリが生成されていると, adshhk コマンドでスプールジョブの削除に失敗するなどの予期しない障害が発生することがあります。

• スプールジョブ作成抑止機能を使用した場合, #-adsh_spoolfile コマンドは使用できません。使用す

ると,KNAX6385-E メッセージを出力して終了します。

9.5.9 #-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 ジョブステップを定義する 」を参照してください。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1104

ジョブステップ内で実行するコマンドの正常・エラーの判定については,「

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 バイト))

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1105

ジョブステップ内だけで有効なシェル変数の名称を指定します。ただし,関数情報配列の名称は指

定できません。

-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 コマンドを

実行して終了

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1106

終了コード

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 コマンド(/home/hitachi/bin/cmdA, 行番号=3)が終了しました。rc=4 E-

Time=0.001s C-Time=0.000s

 KNAX6117-I コマンド(/home/hitachi/bin/cmdA, 行番号=4)が終了しました。rc=4 E-

Time=0.001s C-Time=0.000s

 KNAX6597-I ADSH152256.S1 ジョブステップが正常終了しました。rc=4 E-Time=0.004s C-

Time=0.000s

• KNAX6584-I メッセージを出力してバッチジョブを中断する場合,最後に実行したコマンドに対して

は,successRC 属性の指定は有効になりません。

• ジョブステップ正常ブロック内およびジョブステップエラーブロック内に関数を定義した場合,ジョブ

ステップが run 属性によってスキップされても,定義した関数を使用できます。

• CMDRC_CMDGRP_CHECK パラメータの指定によって,関数と関数内のコマンドのエラー判定およ

び suceessRC 属性の定義は次のようになります。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1107

CMDRC_CMDGRP_CHEC

K パラメータの指定

FUNCTION

対象 定義可否 詳細

NONE またはパラメータの

指定なし

関数

関数内のコマンド

関数

関数内のコマンド

×

×

関数の終了コードと successRC 属性の定義

に従い,ジョブステップのエラー判定をし

ます。

関数内のコマンドの終了コードに従いジョ

ブステップのエラー判定はされないで,常

に正常終了したと見なされるため,ジョブ

ステップのエラー判定と successRC 属性の

定義の対象外となります。

関数の終了コードに従いジョブステップの

エラー判定はされないため,ジョブステッ

プのエラー判定と successRC 属性の定義の

対象外となります。

関数内のコマンドの終了コードと successRC 属性の定義に従い,ジョブス

テップのエラー判定をします。

(凡例)

○:対象が正常終了したと見なす終了コードの値を successRC 属性によって定義できる。

×:対象が正常終了したと見なす終了コードの値を successRC 属性によって定義できない。

使用例

• 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. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1108

9.6 スクリプト制御文

スクリプト制御文とは,ジョブ定義スクリプトに記述する制御文のことです。

ジョブ定義スクリプトは,制御文に記述された条件式の結果を基に,実行する処理を制御します。制御文

を構成する予約語,処理の前には 0 個以上のスペースおよびタブ文字を挿入できます。

9.6.1 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" ;;

*)

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1109

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

9.6.2 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 文の変数に代

入される値は変更されません。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1110

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

9.6.3 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 以外)のどちらかによって処理を分岐します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1111

説明 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

9.6.4 until 文(条件が成立するまでの繰り返し)

形式 1 until 条件 do

処理 done

形式 2 until 条件;do

処理 done

機能

条件が成立するまで,同じ処理を繰り返し実行する制御文です。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1112

説明

先頭に 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

9.6.5 while 文(条件が成立している間の繰り返し)

形式 1 while 条件 do

処理 done

形式 2 while 条件;do

処理 done

機能

条件が成立している間,同じ処理を繰り返し実行する制御文です。

説明

先頭に while 文があり,do と done で終わります。条件には任意のコマンドまたは&&,

||

,( ),{ }など

を使用し,複数のコマンドをまとめて指定するコマンドリストを記述します。条件に記述したコマンドや

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1113

コマンドリストの実行による終了コードが 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. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1114

9.7 スクリプト予約語コマンド

スクリプト予約語コマンドとは,ジョブ定義スクリプトで予約語として使用できるコマンドのことです。

9.7.1 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 時間を出力したいコマンドの名称を指定します。

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1115

終了コード

終了コード command に指定したコマンドの終了コード command を指定しない場合は 0

意味

正常終了

注意事項

• time コマンドの結果を標準エラー出力以外のファイルにリダイレクトできません。

• このコマンドの実行結果はジョブ実行ログファイルに出力されません。また,ジョブやジョブステップ

の正常終了またはエラー終了の判定にも使用されません。標準エラー出力に出力される実行時間,およ

び呼び出したコマンドの実行結果を参照してください。

使用例

• コマンドの実行時間および CPU 時間を出力します。

ジョブ定義スクリプトの内容 time date

実行ジョブの STDOUT ファイルの内容

******** 実行ジョブのSTDOUTファイルの内容 ********

2013/12/06 金曜日 13:16:21 JST

実行ジョブの STDERR ファイルの内容

******** 実行ジョブのSTDERRファイルの内容 ********

0.00s real 0.00s user 0.00s system

9. ジョブ定義スクリプトのコマンドおよび制御文

JP1/Advanced Shell

1116

10

スクリプト開発部品

この章では,スクリプト開発部品の記述形式と詳細を説明します。

JP1/Advanced Shell

1117

10.1 スクリプト開発部品の記述形式

スクリプト開発部品の記述形式を次に示します。

0

部品名[△

1

オプション]…[△

1

オプション][△

1

オペランド]

• 最初にオプションを指定し,次にオペランドを指定します。オペランドとは,オプション名とオプショ

ン値のほかにコマンドに指定できる引数のことです。オプションの前にオペランドを指定した場合は,

指定内容をすべてオペランドとして処理します。

• オプションは「-オプション名[△1 値]」の形式で指定します。オプションを複数指定する場合,指定

順序は任意です。

• 値のないオプションは連続して指定できます(例:「-a -b -c」と「-abc」は同じです)。その場合,最

後のオプションには値を指定できます(例:「-abc xyz」の「xyz」は,-c オプションの値となります)。

• 不当なオプション,または指定できる範囲外の値を指定した場合,エラーになります。

オプション名にはマルチバイト文字は使用できません。

10. スクリプト開発部品

JP1/Advanced Shell

1118

10.2 スクリプト開発部品の一覧

スクリプト開発部品の一覧を次の表に示します。

表 10-1 スクリプト開発部品の一覧

分類

変数操作

文字列操作

数値操作

日付操作

ファイル・ディレクトリ

操作 getHour getMinute getMonth getSecond getTime getWeekday getYear isLeapYear getFileMTime getFileSize isDir isEmptyDir

部品名 getArrayIndex isEmptyVar isInitVar sortArray deleteSpace getStrLen getStrPos isLowerStr isUpperStr isNumericStr cmpDate getCalcDate getDate getDateDiff getDay

機能概要

配列の値をキーにした添え字取得

変数の空文字判定

変数の初期化判定

配列のデータのソート

空白を削除した文字列の取得

文字列の文字数取得

文字列の位置取得

文字列の半角英小文字の判定

文字列の半角英大文字の判定

数値判定

日付の比較

加減算した日付の取得

現在の日付取得

日付の経過日数の取得

日付から日の取得

時刻から時の取得

時刻から分の取得

日付から月の取得

時刻から秒の取得

現在の時刻取得

日付から曜日の取得

日付から年の取得

うるう年の判定

ファイルの日付と時刻取得

ファイルのサイズ取得

ディレクトリの存在有無判定

ディレクトリの内容有無判定

10. スクリプト開発部品

JP1/Advanced Shell

1119

分類

ファイル・ディレクトリ

操作

CSV 操作

JSON 操作

XML 操作

部品名 isFileOrDir isNormalFile arrayToCsv convCsvSep csvToArray getCsvColumn searchCsvColumn getJsonValue getXmlAttrValue getXmlDecl getXmlElem

機能概要

ファイル・ディレクトリの存在有無判定

通常ファイルの存在有無判定

2 次元配列の値の CSV データ出力

CSV データの区切り文字の変換

CSV データの 2 次元配列への格納

CSV データの空白行を意識したカラム取得

CSV データの特定の列を対象とした検索によるレコード取得

JSON データの要素に対応する値の取得

XML データの要素の属性値の取得

XML 宣言の取得

XML データの要素の内容の取得

10. スクリプト開発部品

JP1/Advanced Shell

1120

10.3 スクリプト開発部品

スクリプト開発部品とは,JP1/Advanced Shell が提供する,関数形式のジョブ定義スクリプトです。空

白を削除した文字列の取得や,日付の経過日数の取得,ファイルサイズの取得など,汎用的な処理を関数

として呼び出すことができます。

スクリプト開発部品の格納場所を次に示します。

Windows の実行環境の場合

• インストール先フォルダ¥JP1ASE¥parts¥en

• インストール先フォルダ¥JP1ASE¥parts¥ja

Windows の開発環境の場合

• インストール先フォルダ¥JP1ASD¥parts¥en

• インストール先フォルダ¥JP1ASD¥parts¥ja

UNIX の実行環境の場合

• /opt/jp1as/parts/en

• /opt/jp1as/parts/ja en ディレクトリ配下のスクリプト開発部品には英語のコメントが記述されています。ja ディレクトリ配下

のスクリプト開発部品には日本語のコメントが記述されています。両者の違いはコメントだけであり,機

能は同じです。

提供するスクリプト開発部品のファイルのエンコーディングを次に示します。

表 10-2 スクリプト開発部品のファイルのエンコーディング

OS エンコーディング

UTF-8 Linux

AIX

HP-UX

Solaris

Windows SJIS

スクリプト開発部品を使うための詳細手順は,「 2.6.22 スクリプト開発部品を使うための準備

」を参照し

てください。

なお,スクリプト開発部品を改造した場合の動作は保証しません。

10. スクリプト開発部品

JP1/Advanced Shell

1121

10.3.1 getArrayIndex(配列の値をキーにした添え字取得)

形式 getArrayIndex [-d 要素番号] 配列名 文字列

機能

引数に指定された配列から文字列を検索し,最初に完全一致した配列の添え字を返します。配列の 0 番目

の要素から順に検索します。

引数

-d 要素番号

指定した要素番号に対応する 2 次元配列から文字列を検索します。

配列名

添え字を取得する配列名を指定します。

文字列

検索する文字列を指定します。

標準出力への出力

添え字を示す文字列。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• 一致する文字列が見つからなかった場合,エラー終了します。

• 引数の要素番号には 0 から 65535 までの数値を指定できますが,指定できる文字列かどうかのチェッ

クはしません。

• 引数の配列名に「adsh」から始まる配列名を指定しないでください。指定すると,部品内のローカル

変数の名称と重複し,不当な出力結果となることがあります。

• 引数の配列名に指定できる文字列は,変数名として使用できる文字列と同じですが,指定できる文字列

かどうかのチェックはしません。

10. スクリプト開発部品

JP1/Advanced Shell

1122

使用例 set -A input Tokyo Yokohama Fukuoka Nagoya getArrayIndex input Tokyo # 「0」が出力される。 getArrayIndex input Yokohama # 「1」が出力される。 set -D input { Osaka Fukuoka Nagoya } { Tokyo Yokohama Chiba } getArrayIndex -d 0 input Osaka # 「0」が出力される。 getArrayIndex -d 1 input Chiba # 「2」が出力される。

10.3.2 isEmptyVar(変数の空文字判定)

形式 isEmptyVar 変数名

機能

引数に指定された変数の値が空かどうかを判定します。

次のどれかの場合,1 を出力します。

• 変数が定義されていない

• 変数に値が代入されていない

• 変数に空文字列が代入されている

次の場合,0 を出力します。

• 変数に 1 文字以上の値が代入されている

引数

変数名

判定する変数名を指定します。

配列を指定する場合,要素番号を含めて指定します(例:array[1])。

標準出力への出力

1 または 0。

終了コード

終了コード

0

意味

正常終了

10. スクリプト開発部品

JP1/Advanced Shell

1123

終了コード

1 以上

意味

エラー終了

注意事項

• 引数の変数名に「adsh」から始まる変数名を指定しないでください。指定すると,部品内のローカル

変数の名称と重複し,不当な出力結果となることがあります。

• 引数の変数名に指定できる文字列は,変数名として使用できる文字列と同じですが,指定できる文字列

かどうかのチェックはしません。

使用例 typeset var1 isEmptyVar var1 # 「1」が出力される。 var1="" isEmptyVar var1 # 「1」が出力される。 var1=100 isEmptyVar var1 # 「0」が出力される。

# 変数var1が空の場合,1でreturnする。 result=$(isEmptyVar var1) if [[ $result –eq 1 ]]; then

return 1 fi

10.3.3 isInitVar(変数の初期化判定)

形式 isInitVar 変数名

機能

引数に指定された変数に値が代入されているかどうかを判定します。

次のどちらかの場合,1 を出力します。

• 変数に空文字列が代入されている

• 変数に 1 文字以上の値が代入されている

次のどちらかの場合,0 を出力します。

• 変数が定義されていない

• 変数に値が代入されていない

10. スクリプト開発部品

JP1/Advanced Shell

1124

引数

変数名

判定する変数名を指定します。

配列を指定する場合,要素番号を含めて指定します(例:array[1])。

標準出力への出力

1 または 0。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• 引数の変数名に「adsh」から始まる変数名を指定しないでください。指定すると,部品内のローカル

変数の名称と重複し,不当な出力結果となることがあります。

• 引数の変数名に指定できる文字列は,変数名として使用できる文字列と同じですが,指定できる文字列

かどうかのチェックはしません。

使用例 typeset var1 isInitVar var1 # 「0」が出力される。 var1="" isInitVar var1 # 「1」が出力される。 var1=100 isInitVar var1 # 「1」が出力される。

# 変数var1が初期化されていない場合,1でreturnする。 result=$(isInitVar var1) if [[ $result –eq 0 ]]; then

return 1 fi

10.3.4 sortArray(配列のデータのソート)

形式 sortArray [-d 要素番号] [-n] [-r] 配列名1 配列名2

10. スクリプト開発部品

JP1/Advanced Shell

1125

機能

引数に指定された配列の値をソートします。値に含まれる文字の大文字と小文字は区別されます。

引数

-d 要素番号

指定した要素番号に対応する 2 次元配列の値をソートします。2 次元配列のすべての要素の値をソート

する場合は,要素番号に「@」を指定します。「@」を指定すると,2 次元配列の 1 つ目の要素番号に

対応する各配列内で要素の値をソートします。例えば,2×3 の 2 次元配列 array の場合,array[0][0]

と array[0][1]と array[0][2]の間で要素の値をソートし,array[1][0]と array[1][1]と array[1][2]の間

で要素の値をソートします。

このオプションを指定しない場合,配列を 1 次元配列と解釈してソートします。

-n

先頭の数値文字列を数値と解釈してソートします。

-r

降順にソートします。

このオプションを指定しない場合,昇順にソートします。

配列名 1

ソート対象の配列名を指定します。

配列名 2

ソートしたデータを格納する配列名を指定します。

標準出力への出力

なし

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• ソート対象の配列の値に改行が含まれていると,正しくソートされません。

• ソート対象の配列に値を持たない要素が含まれていると,その要素は削除されてソートされます。

• 引数の要素番号には「@」または 0 から 65535 までの数値を指定できますが,指定できる文字列かど

うかのチェックはしません。

10. スクリプト開発部品

JP1/Advanced Shell

1126

• 引数の配列名 1 配列名 2 に「adsh」から始まる配列名を指定しないでください。指定すると,部品内

のローカル変数の名称と重複し,不当な出力結果となることがあります。

• 引数の配列名 1 と配列名 2 に指定できる文字列は,変数名として使用できる文字列と同じですが,指

定できる文字列かどうかのチェックはしません。

使用例 set –A input Tokyo Yokohama Fukuoka Nagoya sortArray input output echo "${output[@]}" # 「Fukuoka Nagoya Tokyo Yokohama」が出力される。 set –A input Tokyo Yokohama Fukuoka Nagoya sortArray –r input output echo "${output[@]}" # 「Yokohama Tokyo Nagoya Fukuoka」が出力される。 set -A input -- -3 70 -50 8 100 sortArray -n input output echo "${output[@]}" # 「-50 -3 8 70 100」が出力される。 set -D input { Osaka Fukuoka Nagoya } { Tokyo Yokohama Chiba } sortArray -d 1 input output echo "${output[0][@]}" # 「Osaka Fukuoka Nagoya」が出力される。 echo "${output[1][@]}" # 「Chiba Tokyo Yokohama」が出力される。 set -D input { Osaka Fukuoka Nagoya } { Tokyo Yokohama Chiba } sortArray -d @ input output echo "${output[0][@]}" # 「Fukuoka Nagoya Osaka」が出力される。 echo "${output[1][@]}" # 「Chiba Tokyo Yokohama」が出力される。

10.3.5 deleteSpace(空白を削除した文字列の取得)

形式 deleteSpace [-a] [-l] [-r] 文字列

機能

引数に指定された文字列から空白を削除した文字列を出力します。空白とは,正規表現[:space:]で示す文

字であり,半角空白やタブなどを示します。

引数

-a

文字列に含まれるすべての空白を削除します。

-l

文字列の先頭の空白だけを削除します。

10. スクリプト開発部品

JP1/Advanced Shell

1127

-r

文字列の末尾の空白だけを削除します。

上記オプションを何も指定しなかった場合は,文字列の先頭と末尾の空白を削除します。これは,-l オプ

ションと-r オプションを同時に指定した場合とおなじです。

-a オプションとほかのオプションを同時に指定した場合,-a オプションを優先します。

文字列

空白を削除する文字列を指定します。

標準出力への出力

空白が削除された文字列。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

使用例 deleteSpace " ab cd " # 「ab cd」が出力される。 deleteSpace –l " ab cd " # 「ab cd 」が出力される。 deleteSpace –r " ab cd " # 「 ab cd」が出力される。 deleteSpace –a " ab cd " # 「abcd」が出力される。

10.3.6 getStrLen(文字列の文字数取得)

形式 getStrLen 文字列

機能

引数に指定された文字列の文字数を出力します。文字列に含まれる改行は 1 文字と解釈されます。

引数

文字列

文字数を取得する文字列を指定します。

10. スクリプト開発部品

JP1/Advanced Shell

1128

標準出力への出力

文字数を示す文字列。

終了コード

終了コード

0

1 以上

使用例 getStrLen abcdefg # 「7」が出力される。 getStrLen あいう # 「3」が出力される。

意味

正常終了

エラー終了

10.3.7 getStrPos(文字列の位置取得)

形式 getStrPos 文字列1 文字列2 [検索開始位置]

機能

引数に指定された文字列の中から文字列を検索し,最初に完全一致した文字列の位置(先頭からその位置

までの文字数)を出力します。文字列が見つからなかった場合は 0 を出力します。

検索を開始する位置を指定できます。検索開始位置を省略すると,1 を仮定し,文字列の先頭から検索を

開始します。

引数

文字列 1

位置を取得する文字列を指定します。

文字列 2

検索する文字列を指定します。

検索開始位置

検索を開始する位置を指定します。

標準出力への出力

文字数を示す文字列。

10. スクリプト開発部品

JP1/Advanced Shell

1129

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

引数の検索開始位置には 1 以上の数値を指定できますが,指定できる文字列かどうかのチェックはしません。

使用例 getStrPos abcdefg c # 「3」が出力される。 getStrPos abcdefg cd # 「3」が出力される。 getStrPos abcdabcd c 2 # 「3」が出力される。(2文字目以降で出現するcの位置) getStrPos abcdabcd c 4 # 「7」が出力される。(4文字目以降で出現するcの位置) getStrPos abcdabcd cd # 「3」が出力される。 getStrPos ABCDabcd cd # 「7」が出力される。 getStrPos あいう う # 「3」が出力される。 getStrPos あiうeお e # 「4」が出力される。 getStrPos ab\tcd \t # 「3」が出力される。

10.3.8 isLowerStr(文字列の半角英小文字の判定)

形式 isLowerStr 文字列

機能

引数に指定された文字列がすべて半角の英小文字であるかどうかを判定します。

次の場合,1 を出力します。

• すべての文字が半角の英小文字である

次の場合,0 を出力します。

• 半角の英小文字でない文字が含まれている

引数

文字列

判定する文字列を指定します。

10. スクリプト開発部品

JP1/Advanced Shell

1130

標準出力への出力

1 または 0。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

使用例 isLowerStr abc # 「1」が出力される。 isLowerStr ABC # 「0」が出力される。 isLowerStr aBc # 「0」が出力される。 isLowerStr あいう # 「0」が出力される。

# 変数var1の値に半角の英小文字でない文字が含まれている場合,1でreturnする。 result=$(isLowerStr "$var1") if [[ $result -eq 0 ]]; then

return 1 fi

10.3.9 isUpperStr(文字列の半角英大文字の判定)

形式 isUpperStr 文字列

機能

引数に指定された文字列がすべて半角の英大文字であるかどうかを判定します。

次の場合,1 を出力します。

• すべての文字が半角の英大文字である

次の場合,0 を出力します。

• 半角の英大文字でない文字が含まれている

引数

文字列

判定する文字列を指定します。

10. スクリプト開発部品

JP1/Advanced Shell

1131

標準出力への出力

1 または 0。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

使用例 isUpperStr ABC # 「1」が出力される。 isUpperStr abc # 「0」が出力される。 isUpperStr AbC # 「0」が出力される。 isUpperStr あいう # 「0」が出力される。

# 変数var1の値に半角の英大文字でない文字が含まれている場合,1でreturnする。 result=$(isUpperStr "$var1") if [[ $result -eq 0 ]]; then

return 1 fi

10.3.10 isNumericStr(数値判定)

形式 isNumericStr 文字列

機能

引数に指定された文字列が数値として評価できるかどうかを判定します。

数値とは,次の形式です(例:123,-100,001)

[-]<数字>+

次の場合,1 を出力します。

• 数値として評価できる

次の場合,0 を出力します。

• 数値として評価できない

10. スクリプト開発部品

JP1/Advanced Shell

1132

引数

文字列

判定する文字列を指定します。

標準出力への出力

1 または 0。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

使用例 isNumericStr 123 # 「1」が出力される。 isNumericStr -100 # 「1」が出力される。 isNumericStr 001 # 「1」が出力される。 isNumericStr +5 # 「0」が出力される。 isNumericStr abc # 「0」が出力される。

# 変数var1の値が数値として評価できない場合,1でreturnする。 result=$(isNumericStr "$var1") if [[ $result –eq 0 ]]; then

return 1 fi

10.3.11 cmpDate(日付の比較)

形式 cmpDate 日付1 {eq|ne|ge|gt|le|lt} 日付2

機能

引数に指定された 2 つの日付を比較します。

次の場合,1 を出力します。

• 日付の比較結果が真である。

次の場合,0 を出力します。

10. スクリプト開発部品

JP1/Advanced Shell

1133

• 日付の比較結果が偽である。

引数

日付 1

日付を示す文字列を指定します。

日付 2

日付を示す文字列を指定します。

日付には,date コマンドにおける絶対日時による日付の形式を指定できます(例:yyyy/mm/dd, yyyymm-dd,yyyymmdd,mm/dd/yyyy など)。 eq

日付 1 が日付 2 と等しいことを判定します。 ne

日付 1 が日付 2 と等しくないことを判定します。 ge

日付 1 が日付 2 以上であることを判定します。 gt

日付 1 が日付 2 より大きいことを判定します。 le

日付 1 が日付 2 以下であることを判定します。 lt

日付 1 が日付 2 より小さいことを判定します。

標準出力への出力

1 または 0。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

引数の 日付 1 と 日付 2 に指定できる文字列は,date コマンドにおける絶対日時による日付の形式と同じ

ですが,指定できる文字列かどうかのチェックはしません。

10. スクリプト開発部品

JP1/Advanced Shell

1134

使用例 cmpDate 2016/05/02 eq 2016/05/02 # 「1」が出力される。 cmpDate 2016/05/02 ne 2016/05/02 # 「0」が出力される。 cmpDate 20160505 ge 20160502 # 「1」が出力される。 cmpDate 20160101 gt 20160502 # 「0」が出力される。 cmpDate 20160505 le 20160502 # 「0」が出力される。 cmpDate 20160101 lt 20160502 # 「1」が出力される。

# 変数date1が示す日付と変数date2が示す日付が異なる場合,1でreturnする。 result=$(cmpDate "$date1" ne "$date2") if [[ $result –eq 1 ]]; then

return 1 fi

10.3.12 getCalcDate(加減算した日付の取得)

形式 getCalcDate 日付 [+|-]年数 [+|-]月数 [+|-]日数

機能

引数に指定された 日付 に,引数に指定された 年数 ・ 月数 ・ 日数 を加減算して求めた日付を yyyy/mm/dd

の形式で出力します。

引数

日付

日付を示す文字列を指定します。

年数

年数を示す 0 以上の数値を指定します。

月数

月数を示す 0 以上の数値を指定します。

日数

日数を示す 0 以上の数値を指定します。

日付には,date コマンドにおける絶対日時による日付の形式を指定できます(例:yyyy/mm/dd, yyyymm-dd, yyyymmdd, mm/dd/yyyy など)。

標準出力への出力

加減算された日付を示す文字列。

10. スクリプト開発部品

JP1/Advanced Shell

1135

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• 日数と月数を加減算した結果,日付がその月の末日を超えている場合,超えた分を次の月に加算して出

力します。

例えば,引数に「2015/03/31 0 -1 0」を指定すると,末日の「2015/02/28」から超えた 3 日分を次

の月に加算し,「2015/03/03」を出力します。

• 引数の日付に指定できる文字列は,date コマンドにおける絶対日時による日付の形式と同じですが,

指定できる文字列かどうかのチェックはしません。

• 引数の年数と月数と日数には 0 以上の数値を指定できますが,指定できる文字列かどうかのチェックは

しません。

使用例 getCalcDate 2016/05/02 +1 -4 18 # 「2017/01/20」が出力される。 getCalcDate 2016/05/02 0 -6 0 # 「2015/11/02」が出力される。

10.3.13 getDate(現在の日付取得)

形式 getDate

機能

現在の日付を yyyy/mm/dd の形式で出力します。

標準出力への出力

現在の日付を示す文字列。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

10. スクリプト開発部品

JP1/Advanced Shell

1136

使用例 getDate # 「2015/04/23」が出力される。

10.3.14 

getDateDiff

(日付の経過日数の取得)

形式 getDateDiff [-m|-y] 日付1 日付2

機能

引数に指定された 2 つの日付の差を出力します。

引数

-m

日付の差を月の単位で出力します。

例えば, 日付 1 が 2016/05/10 で, 日付 2 が 2016/06/10 の場合は 1 を出力し, 日付 1 が

2016/05/10 で, 日付 2 が 2016/06/09 の場合は 0 を出力します。

-y

日付の差を年の単位で出力します。

例えば, 日付 1 が 2015/05/10 で, 日付 2 が 2016/05/10 の場合は 1 を出力し, 日付 1 が

2015/05/10 で, 日付 2 が 2016/4/10 の場合は 0 を出力します。

なお,うるう年の場合は 366 日を 1 年と解釈し,うるう年ではない場合は 365 日を 1 年と解釈します。

上記オプションをどちらも指定しなかった場合は,日付の差を日の単位で出力します。上記オプションを

どちらも指定した場合,エラー終了します。

日付 1

日付を示す文字列を指定します。

日付 2

日付を示す文字列を指定します。

日付には,date コマンドにおける絶対日時による日付の形式を指定できます(例:yyyy/mm/dd, yyyymm-dd, yyyymmdd, mm/dd/yyyy など)。

標準出力への出力

日付の差を示す文字列。

10. スクリプト開発部品

JP1/Advanced Shell

1137

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

引数の 日付 1 と 日付 2 に指定できる文字列は,date コマンドでの絶対日時による日付の形式と同じです

が,指定できる文字列かどうかのチェックはしません。

使用例 getDateDiff 2016/05/10 2016/06/10 # 「31」が出力される。 getDateDiff –m 2016/05/10 2016/08/20 # 「3」が出力される。 getDateDiff –y 2016/05/10 2018/06/10 # 「2」が出力される。

# 現在の日付と変数date1が示す日付との差を出力する。 getDateDiff $("${ADSH_DIR_CMD}date" +%Y%m%d) "$date1"

10.3.15 getDay(日付から日の取得)

形式 getDay [日付]

機能

引数に指定された 日付 の日を 01 から 31 までの 2 桁の文字列(数字)で出力します。引数を省略すると,

現在の日付を仮定します。

引数

日付

日付を示す文字列を指定します。

日付には,date コマンドにおける絶対日時による日付の形式を指定できます(例:yyyy/mm/dd, yyyymm-dd, yyyymmdd, mm/dd/yyyy など)。

標準出力への出力

日を表す 2 桁の文字列(数字)

10. スクリプト開発部品

JP1/Advanced Shell

1138

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

引数の 日付 に指定できる文字列は,date コマンドでの絶対日時による日付の形式と同じですが,指定でき

る文字列かどうかのチェックはしません。

使用例 getDay 2016/05/02 # 「02」が出力される。

10.3.16 getHour(時刻から時の取得)

形式 getHour [時刻]

機能

引数に指定された 時刻 の時を 00 から 23 までの 2 桁の文字列(数字)で出力します。引数を省略すると,

現在の時刻を仮定します。

引数

時刻

時刻を示す文字列を指定します。

時刻には,date コマンドでの絶対日時による時刻の形式を指定できます(例:hh:mm:ss, hhmm など)。

標準出力への出力

時を表す 2 桁の文字列(数字)

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

10. スクリプト開発部品

JP1/Advanced Shell

1139

注意事項

引数の 時刻 に指定できる文字列は,date コマンドでの絶対日時による日付の形式と同じですが,指定でき

る文字列かどうかのチェックはしません。

使用例 getHour 15:20:01 # 「15」が出力される。

10.3.17 getMinute(時刻から分の取得)

形式 getMinute [時刻]

機能

引数に指定された時刻の分を 00 から 59 までの 2 桁の文字列(数字)で出力します。引数を省略すると,

現在の時刻を仮定します。

引数

時刻

時刻を示す文字列を指定します。

時刻には,date コマンドでの絶対日時による時刻の形式を指定できます(例:hh:mm:ss, hhmm など)。

標準出力への出力

分を表す 2 桁の文字列(数字)

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

引数の 時刻 に指定できる文字列は,date コマンドでの絶対日時による時刻の形式と同じですが,指定でき

る文字列かどうかのチェックはしません。

10. スクリプト開発部品

JP1/Advanced Shell

1140

使用例 getMinute 15:20:01 # 「20」が出力される。

10.3.18 getMonth(日付から月の取得)

形式 getMonth [日付]

機能

引数に指定された日付の月を 01 から 12 までの 2 桁の文字列(数字)で出力します。引数を省略すると,

現在の日付を仮定します。

引数

日付

日付を示す文字列を指定します。

日付には,date コマンドにおける絶対日時による日付の形式を指定できます(例:yyyy/mm/dd, yyyymm-dd, yyyymmdd, mm/dd/yyyy など)。

標準出力への出力

月を表す 2 桁の文字列(数字)

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

引数の 日付 に指定できる文字列は,date コマンドでの絶対日時による日付の形式と同じですが,指定でき

る文字列かどうかのチェックはしません。

使用例 getMonth 2016/05/02 # 「05」が出力される。

10. スクリプト開発部品

JP1/Advanced Shell

1141

10.3.19 getSecond(時刻から秒の取得)

形式 getSecond [時刻]

機能

引数に指定された時刻の秒を 2 桁の文字列(数字)で出力します。数字の範囲は,うるう秒への対応の違

いから,OS によって異なります。引数を省略すると,現在の時刻を仮定します。

引数

時刻

時刻を示す文字列を指定します。

時刻には,date コマンドでの絶対日時による時刻の形式を指定できます(例:hh:mm:ss, hhmm など)。

標準出力への出力

秒を表す 2 桁の文字列(数字)

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

引数の 時刻 に指定できる文字列は,date コマンドでの絶対日時による日付の形式と同じですが,指定でき

る文字列かどうかのチェックはしません。

使用例 getSecond 15:20:01 # 「01」が出力される。

10.3.20 getTime(現在の時刻取得)

形式 getTime

10. スクリプト開発部品

JP1/Advanced Shell

1142

機能

現在の時刻を hh:mm:ss の形式で出力します。

標準出力への出力

現在の時刻を示す文字列。

終了コード

終了コード

0

1 以上

使用例 getTime # 「09:20:50」が出力される。

意味

正常終了

エラー終了

10.3.21 getWeekday(日付から曜日の取得)

形式 getWeekday [-l|-s] [日付]

機能

引数に指定された日付の曜日を文字(数字)または文字列で出力します。引数の日付を省略すると,現在

の日付を仮定します。

引数

-l

曜日の正式名を表す文字列を出力します。

-s

曜日の省略名を表す文字列を出力します。

上記オプションをどちらも指定しなかった場合は,0(日曜)から 6(土曜)までの 1 桁の文字(数字)を

出力します。上記オプションをどちらも指定した場合,エラー終了します。

各出力内容は部品内の date コマンドの動作に従います。

10. スクリプト開発部品

JP1/Advanced Shell

1143

日付

日付を示す文字列を指定します。

日付 には,date コマンドでの絶対日時による 日付 の形式を指定できます(例:yyyy/mm/dd, yyyy-mmdd, yyyymmdd, mm/dd/yyyy など)。

標準出力への出力

曜日を表す 1 桁の文字(数字),または曜日を表す文字列。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

引数の 日付 に指定できる文字列は,date コマンドでの絶対日時による日付の形式と同じですが,指定でき

る文字列かどうかのチェックはしません。

使用例 getYear 2016/05/02 # 「2016」が出力される。

10.3.22 getYear(日付から年の取得)

形式 getYear [日付]

機能

引数に指定された日付の年を 4 桁の文字列(数字)で出力します。引数を省略すると,現在の日付を仮定

します。

引数

日付

日付を示す文字列を指定します。

日付には,date コマンドにおける絶対日時による日付の形式を指定できます(例:yyyy/mm/dd, yyyymm-dd, yyyymmdd, mm/dd/yyyy など)。

10. スクリプト開発部品

JP1/Advanced Shell

1144

標準出力への出力

年を表す 4 桁の文字列(数字)。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

引数の 日付 に指定できる文字列は,date コマンドでの絶対日時による日付の形式と同じですが,指定でき

る文字列かどうかのチェックはしません。

使用例 getYear 2016/05/02 # 「2016」が出力される。

10.3.23 isLeapYear(うるう年の判定)

形式 isLeapYear 年

機能

引数に指定された年がうるう年かどうかを判定します。

次の場合,1 を出力します。

• うるう年である。

次の場合,0 を出力します。

• うるう年でない。

引数

年を示す文字列を指定します。

10. スクリプト開発部品

JP1/Advanced Shell

1145

標準出力への出力

1 または 0。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

引数の 年 には 0 以上の数値を指定できますが,指定できる文字列かどうかのチェックはしません。

使用例 isLeapYear 2016 # 「1」が出力される。 isLeapYear 2015 # 「0」が出力される。

# 変数var1の値がうるう年の場合,UAP1を実行する。 result=$(isLeapYear "$var1") if [[ $result –eq 1 ]]; then

UAP1 fi

10.3.24 getFileMTime(ファイル・ディレクトリの日付と時刻取得)

形式 getFileMTime [-d] [-t] パス名

機能

引数に指定されたファイルまたはディレクトリの更新日付および更新時刻を出力します。更新日付は yyyy/ mm/dd の形式で出力します。更新時刻は hh:mm:ss の形式で出力します。

引数

-d

更新日付を出力します。

-t

更新時刻を出力します。

10. スクリプト開発部品

JP1/Advanced Shell

1146

上記オプションをどちらも指定しなかった場合,または上記オプションをどちらも指定した場合,更新日

付と更新時刻を空白区切りで 1 行にして出力します。

パス名

更新日付・更新時刻を取得するファイルまたはディレクトリのパス名を指定します。

標準出力への出力

ファイルまたはディレクトリの更新日付および更新時刻を示す文字列。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

使用例 getFileMTime log.txt # 「2015/04/23 09:20:50」が出力される。 getFileMTime –d log.txt # 「2015/04/23」が出力される。 getFileMTime –t log.txt # 「09:20:50」が出力される。

10.3.25 getFileSize(ファイルのサイズ取得)

形式 getFileSize [-k|-m] パス名

機能

引数に指定されたファイルのサイズを出力します。

引数

-k

サイズをキロバイト単位で出力します(1 キロバイト=1024 バイト)。

-m

サイズをメガバイト単位で出力します(1 メガバイト=1048576 バイト)。

上記オプションをどちらも指定しなかった場合,サイズをバイト単位で出力します。上記オプションをど

ちらも指定した場合,エラー終了します。

10. スクリプト開発部品

JP1/Advanced Shell

1147

小数点以下の数値は切り上げてサイズを出力します。

パス名

サイズを取得するファイルのパス名を指定します。

標準出力への出力

ファイルのサイズを示す文字列。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

Windows の場合,ディレクトリのサイズは常に 0 を出力します。

UNIX の場合,デバイスファイルのサイズは常に 0 を出力します。

使用例 getFileSize log.txt # 「1279571」が出力される。 getFileSize –k log.txt # 「1250」が出力される。 getFileSize –m log.txt # 「2」が出力される。

10.3.26 isDir(ディレクトリの存在有無判定)

形式 isDir ディレクトリパス名

機能

引数に指定されたディレクトリが存在するかどうかを判定します。なお,ファイルはディレクトリではな

いものと解釈されます。

次の場合,1 を出力します。

• ディレクトリが存在する。

次の場合,0 を出力します。

10. スクリプト開発部品

JP1/Advanced Shell

1148

• ディレクトリが存在しない。

引数

ディレクトリパス名

判定するディレクトリのパス名を指定します。

標準出力への出力

1 または 0。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

使用例

ディレクトリtestは存在し,ディレクトリprogは存在しない場合 isDir test # 「1」が出力される。 isDir prog # 「0」が出力される。

# ディレクトリdir1が存在しない場合,dir1を作成する。 result=$(isDir dir1) if [[ $result –eq 0 ]]; then

mkdir dir1 fi

10.3.27 isEmptyDir(ディレクトリの内容有無判定)

形式 isEmptyDir ディレクトリパス名

機能

引数に指定されたディレクトリが空かどうかを判定します。

次の場合,1 を出力します。

• ディレクトリが空である。

次のどちらかの場合,0 を出力します。

10. スクリプト開発部品

JP1/Advanced Shell

1149

• ディレクトリが空でない。

• ディレクトリが存在しない。

引数

ディレクトリパス名

判定するディレクトリのパス名を指定します。

標準出力への出力

1 または 0。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

使用例

ディレクトリtestの配下にはファイルが存在し,ディレクトリtmpの配下には何も存在しない場合 isEmptyDir test # 「0」が出力される。 isEmptyDir tmp # 「1」が出力される。

# ディレクトリdir1が空の場合,dir1を削除する。 result=$(isEmptyDir dir1) if [[ $result –eq 1 ]]; then

rmdir dir1 fi

10.3.28 isFileOrDir(ファイル・ディレクトリの存在有無判定)

形式 isFileOrDir パス名

機能

引数に指定されたファイルまたはディレクトリが存在するかどうかを判定します。

次の場合,1 を出力します。

• ファイルまたはディレクトリが存在する。

10. スクリプト開発部品

JP1/Advanced Shell

1150

次の場合,0 を出力します。

• ファイルとディレクトリがどちらも存在しない。

引数

パス名

判定するファイルまたはディレクトリのパス名を指定します。

標準出力への出力

1 または 0。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

使用例

ファイルlog.txtは存在し,ファイルtmp.txtは存在しない場合 isFileOrDir log.txt # 「1」が出力される。 isFileOrDir tmp.txt # 「0」が出力される。

ディレクトリtestは存在し,ディレクトリprogは存在しない場合 isFileOrDir test # 「1」が出力される。 isFileOrDir prog # 「0」が出力される。

# ファイルまたはディレクトリentry1が存在しない場合,1でreturnする。 result=$(isFileOrDir entry1) if [[ $result –eq 0 ]]; then

return 1 fi

10.3.29 isNormalFile(通常ファイルの存在有無判定)

形式 isNormalFile ファイルパス名

機能

引数に指定された通常ファイルが存在するかどうかを判定します。なお,ディレクトリはファイルではな

いものと解釈されます。

10. スクリプト開発部品

JP1/Advanced Shell

1151

次の場合,1 を出力します。

• 通常ファイルが存在する。

次の場合,0 を出力します。

• 通常ファイルが存在しない。

引数

ファイルパス名

判定するファイルのパス名を指定します。

標準出力への出力

1 または 0。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

使用例

通常ファイルlog.txtは存在し,通常ファイルtmp.txtは存在しない場合 isNormalFile log.txt # 「1」が出力される。 isNormalFile tmp.txt # 「0」が出力される。

ディレクトリtestは存在し,ディレクトリprogは存在しない場合 isNormalFile test # 「0」が出力される。 isNormalFile prog # 「0」が出力される。

# 通常ファイルfile1が存在しない場合,file1を作成する。 result=$(isNormalFile file1) if [[ $result –eq 0 ]]; then

touch file1 fi

10.3.30 arrayToCsv(2 次元配列の値の CSV データ出力)

形式 arrayToCsv [-i] 配列名

10. スクリプト開発部品

JP1/Advanced Shell

1152

機能

引数に指定された 2 次元配列のデータを CSV データとして出力します。CSV データの各フィールドはダ

ブルクォートで囲まれます。2 次元配列のデータと出力内容の対応例を次に示します。

2 次元配列(array)のデータ array[0][0]=name array[0][1]=value array[0][2]=id array[1][0]=Yokohama array[1][1]=200 array[1][2]=1 array[2][0]=Kawasaki array[2][1]=100 array[2][2]=2

2 次元配列(array)のデータを出力した場合の内容

"name","value","id"

"Yokohama","200","1"

"Kawasaki","100","2"

なお,2 次元配列のデータにダブルクォートが含まれている場合,ダブルクォートを 1 つ増やして出力し

ます。

2 次元配列のデータ a"b"c

出力されるデータ

"a""b""c"

引数

-i

フィールド値が数値の場合は,出力時にダブルクォートを付与しません。

数値とは,以下の形式である。例:123,-100,001

[-]<数字>+

配列名

データを出力する 2 次元配列の名前を指定します。

標準出力への出力

CSV の形式にした 2 次元配列のデータ。

10. スクリプト開発部品

JP1/Advanced Shell

1153

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• 引数の配列名に「adsh」から始まる配列名を指定しないでください。指定すると,部品内のローカル

変数の名称と重複し,不当な出力結果となることがあります。

• 引数の配列名に指定できる文字列は,変数名として使用できる文字列と同じですが,指定できる文字列

かどうかのチェックはしません。

使用例 set -D array { name value id } { Yokohama 200 1 } { Kawasaki 100 2 } arrayToCsv array

# 以下の内容が出力される。

"name","value","id"

"Yokohama","200","1"

"Kawasaki","100","2" set -D array { name value id } { Yokohama 200 1 } { Kawasaki 100 2 } arrayToCsv -i array

# 以下の内容が出力される。

"name","value","id"

"Yokohama",200,1

"Kawasaki",100,2

10.3.31 convCsvSep(CSV データの区切り文字の変換)

形式 convCsvSep 区切り文字 [ファイルパス名]

機能

引数に指定された CSV ファイルの区切り文字(カンマ)を別の区切り文字に変換します。

引数

区切り文字

変換先の区切り文字を指定します。

10. スクリプト開発部品

JP1/Advanced Shell

1154

ファイルパス名

CSV ファイルのパスを指定します。ファイルパス名を指定しない場合,標準入力から入力します。

入力できる CSV データのサイズは,100KB 以下を対象としています。100KB より大きいサイズの

データを入力すると,ジョブの実行時間が長大化する可能性があります。

標準出力への出力

区切り文字変換後の CSV データ。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

使用例

CSVデータ(data.csv) name,value,id

Yokohama,200,1

Kawasaki,100,2 convCsvSep : data.csv

# 以下の内容が出力される。 name:value:id

Yokohama:200:1

Kawasaki:100:2

10.3.32 csvToArray(CSV データの 2 次元配列への格納)

形式 csvToArray 配列名 [ファイルパス名]

機能

引数に指定された CSV ファイルのデータを 2 次元配列に格納します。具体的には,カンマで区切られた

データを 2 次元配列の各要素の値として格納します。CSV データと 2 次元配列の要素の対応例を次に示

します。

CSVデータ(data.csv) name,value,id

Yokohama,200,1

Kawasaki,100,2

10. スクリプト開発部品

JP1/Advanced Shell

1155

2次元配列(array)の要素とCSVデータ(data.csv)の対応 array[0][0]=name array[0][1]=value array[0][2]=id array[1][0]=Yokohama array[1][1]=200 array[1][2]=1 array[2][0]=Kawasaki array[2][1]=100 array[2][2]=2

なお,CSV データのフィールドの前後を囲むダブルクォートは,削除されて格納されます。また,フィー

ルド内で 2 つ連続して記述されたダブルクォートは,1 つのダブルクォートと解釈して格納されます。

CSV データ

"abc"

"a""b""c"

2 次元配列に格納されるデータ abc a"b"c

引数

配列名

データを格納する配列名を指定します。

ファイルパス名

CSV ファイルのパスを指定します。ファイルパス名を指定しない場合,標準入力から入力します。

入力できる CSV データのサイズは,100KB 以下を対象としています。100KB より大きいサイズの

データを入力すると,ジョブの実行時間が長大化する可能性があります。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• 引数の配列名に「adsh」から始まる配列名を指定しないでください。指定すると,部品内のローカル

変数の名称と重複し,不当な出力結果となることがあります。

• 引数の配列名に指定できる文字列は,変数名として使用できる文字列と同じですが,指定できる文字列

かどうかのチェックはしません。

10. スクリプト開発部品

JP1/Advanced Shell

1156

使用例

CSVデータ(data.csv) name,value,id

Yokohama,200,1

Kawasaki,100,2

# CSVファイルのデータを2次元配列に格納する。 csvToArray array data.csv

echo "${array[1][0]}" # 「Yokohama」が出力される。 echo "${array[1][1]}" # 「200」が出力される。

# CSVファイルから1行目を除いたデータを2次元配列に格納する。

"${ADSH_CMD_DIR}"awk '{if(FNR!=1){print $0}}' data.csv | csvToArray array echo "${array[0][0]}" # 「Yokohama」が出力される。 echo "${array[0][1]}" # 「200」が出力される。

10.3.33 getCsvColumn(CSV データの空白行を意識したカラム取得)

形式 getCsvColumn [-c カラム] [-d] [ファイルパス名]

機能

引数に指定された CSV ファイルのカラムを出力します。

引数

-c カラム

指定した カラム のデータを出力します。 カラム には 1 以上の数値を指定します。このオプションを指定

しない場合,すべての カラム のデータを出力します。

-d

空白行を削除して出力します。

ファイルパス名

CSV ファイルのパスを指定します。ファイルパス名を指定しない場合,標準入力から入力します。

入力できる CSV データのサイズは,100KB 以下を対象としています。100KB より大きいサイズの

データを入力すると,ジョブの実行時間が長大化する可能性があります。

終了コード

終了コード

0

意味

正常終了

10. スクリプト開発部品

JP1/Advanced Shell

1157

終了コード

1 以上

意味

エラー終了

注意事項

引数の カラム には 1 以上の数値を指定できますが,指定できる文字列かどうかのチェックはしません。

使用例

CSVデータ(data.csv) name,value,id

Yokohama,200,1

Kawasaki,100,2

# 1カラム目のデータを出力する。 getCsvColumn –c 1 data.csv

# 以下の内容が出力される。 name

Yokohama

Kawasaki

# 1カラム目のデータから空白行を削除したデータを出力する。 getCsvColumn –c 1 -d data.csv

# 以下の内容が出力される。 name

Yokohama

Kawasaki

# 1行目を除いたデータから空白行を削除したデータを出力する。

"${ADSH_CMD_DIR}"awk '{if(FNR!=1){print $0}}' data.csv | getCsvColumn –d

# 以下の内容が出力される。

Yokohama,200,1

Kawasaki,100,2

10.3.34 searchCsvColumn(CSV データの特定の列を対象とした検索に

よるレコード取得)

形式 searchCsvColumn カラム 文字列 [ファイルパス名]

機能

引数に指定された CSV ファイルからフィールドの値を検索し,一致したフィールドを含むすべてのレコー

ドを出力します。

10. スクリプト開発部品

JP1/Advanced Shell

1158

引数

カラム

指定したカラムのデータを検索の対象とします。一致したフィールドが存在する場合,そのフィールド

を含むレコードを出力します。カラムには 1 以上の数値を指定してください。

文字列

検索するフィールドの値を指定します。拡張された正規表現を使用できます。ダブルクォートで囲まれ

たデータを検索する場合,ダブルクォートを¥でエスケープして指定します。

ファイルパス名

CSV ファイルのパスを指定します。ファイルパス名を指定しない場合,標準入力から入力します。

入力できる CSV データのサイズは,100KB 以下を対象としています。100KB より大きいサイズの

データを入力すると,ジョブの実行時間が長大化する可能性があります。

標準出力への出力

CSV データのレコード。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• 一致するフィールドが見つからなかった場合,エラー終了します。

• 引数の カラム には 1 以上の数値を指定できますが,指定できる文字列かどうかのチェックはしません。

使用例

CSVデータ(data.csv) name,value,id

"Yokohama",200,100

"Kawasaki",100,200

"Tokyo",200,300 searchCsvColumn 2 200 data.csv

# 以下の内容が出力される。

"Yokohama",200,100

"Tokyo",200,300 searchCsvColumn 1 \"Kawasaki\" data.csv

# 以下の内容が出力される。

"Kawasaki",100,200

10. スクリプト開発部品

JP1/Advanced Shell

1159

searchCsvColumn 3 1.* data.csv

#以下の内容が出力される。

"Yokohama",200,100

10.3.35 getJsonValue(JSON データの名前に対応する値の取得)

形式 getJsonValue [-e 文字コード] 名前 [ファイルパス名]

機能

引数に指定された JSON ファイルから名前を検索し,完全一致したすべての名前に対応する値を出力しま

す。

引数

-e 文字コード

Windows 版

JSON ファイルの文字コードを指定します。指定できる値は「SJIS」または「UTF8」です。この

オプションを指定しない場合,文字コードを UTF8 として扱います。

UNIX 版

JSON ファイルの文字コードを環境変数 LANG の値の形式で指定します。指定できる値は,「 2.2.4 

JP1/Advanced Shell を使用するときのエンコーディング

」を参照してください。

このオプションを指定しない場合,JP1/Advanced Shell が動作する環境の環境変数 LANG の値の

形式で文字コードを指定したと仮定します。

例えば,AIX で文字コード UTF-8 の JSON ファイルを扱う場合,-e オプションに「JA_JP」また

は「JA_JP.UTF-8」を指定します。

名前

検索する名前を指定します。

ファイルパス名

JSON ファイルのパスを指定します。ファイルパス名を指定しない場合,標準入力から入力します。

標準出力への出力

JSON データの名前に対応する値。

10. スクリプト開発部品

JP1/Advanced Shell

1160

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• 一致する名前が見つからなかった場合,エラー終了します。

• 同じ名前のデータをネストしている場合,データの最も外側の名前に対応する値を出力します。

例(test.json):{"num":{"id":"0001","num":200}}

上記データに対して num で検索すると,{"id":"0001","num":200}が出力されます。この場合,次のよ

うに指定して,データの内側の名前に対応する値(200)を出力できます。 getJsonValue num test.json | getJsonValue num

• この部品では,adshmktemp コマンドを使用して一時ファイルを作成します。そのため,部品実行中

に強制終了要求を受けると,一時ファイルが残ることがあります。この場合は,手動で一時ファイルを

削除してください。一時ファイルは,環境ファイルの TEMP_FILE_DIR パラメーターで定義したディ

レクトリに次の命名規則で作成されます。 getJsonValue_ジョブ識別子_プロセスID_時間情報_ファイル通し番号

使用例

JSONデータ(data.json)

{ "city": [

{ "name":"Yokohama", "id":"0001", "value":{ "A":200, "B":100 } },

{ "name":"Kawasaki", "id":"0002", "value":{ "A":100, "B":300 } }

]

} getJsonValue name data.json

# 以下の内容が出力される。

"Yokohama"

"Kawasaki" getJsonValue –e SJIS value data.json

# 以下の内容が出力される。

{ "A":200, "B":100 }

{ "A":100, "B":300 }

10. スクリプト開発部品

JP1/Advanced Shell

1161

10.3.36 getXmlAttrValue(XML データの要素の属性値の取得)

形式 getXmlAttrValue [-e 文字コード] 要素名 属性名 [ファイルパス名]

機能

引数に指定された XML ファイルから要素の属性を検索し,完全一致したすべての属性の値を出力します。

属性値に含まれる改行は削除して出力されます。

引数

-e 文字コード

Windows 版

XML ファイルの文字コードを指定します。指定できる値は「SJIS」または「UTF8」です。このオ

プションを指定しない場合,文字コードを UTF8 として扱います。

UNIX 版

XML ファイルの文字コードを環境変数 LANG の値の形式で指定します。指定できる値は,「 2.2.4 

JP1/Advanced Shell を使用するときのエンコーディング

」を参照してください。

このオプションを指定しない場合,JP1/Advanced Shell が動作する環境の環境変数 LANG の値の

形式で文字コードを指定したと仮定します。

例えば,AIX で文字コード UTF-8 の XML ファイルを扱う場合,-e オプションに「JA_JP」または

「JA_JP.UTF-8」を指定します。

要素名

属性を持つ要素名を指定します。

属性名

検索する属性名を指定します。

ファイルパス名

XML ファイルのパスを指定します。ファイルパス名を指定しない場合,標準入力から入力します。

標準出力への出力

XML データの要素の属性の値。

終了コード

終了コード

0

意味

正常終了

10. スクリプト開発部品

JP1/Advanced Shell

1162

終了コード

1 以上

意味

エラー終了

注意事項

• 一致する要素や属性が見つからなかった場合,エラー終了します。

• 要素名や属性名に正規表現のメタキャラクタが含まれている場合,¥でエスケープして指定してくださ

い。

要素名「name+」の属性名「id*」を検索する場合,次のように指定する。 getXmlAttrValue 'name\+' 'id\*' test.xml

• この部品では,adshmktemp コマンドを使用して一時ファイルを作成します。そのため,部品実行中

に強制終了要求を受けると,一時ファイルが残ることがあります。この場合は,手動で一時ファイルを

削除してください。一時ファイルは,環境ファイルの TEMP_FILE_DIR パラメーターで定義したディ

レクトリに次の命名規則で作成されます。 getXmlAttrValue_ジョブ識別子_プロセスID_時間情報_ファイル通し番号

使用例

XMLデータ(data.xml)

<data>

<city>

<name id="0001" value="200">Yokohama</name>

<name id="0002" value="100">Kawasaki</name>

</city>

</data> getXmlAttrValue name id data.xml

# 以下の内容が出力される。

0001

0002 getXmlAttrValue –e SJIS name value data.xml

# 以下の内容が出力される。

200

100

10.3.37 getXmlDecl(XML 宣言の取得)

形式 getXmlDecl 項目名 [ファイルパス名]

10. スクリプト開発部品

JP1/Advanced Shell

1163

機能

引数に指定された XML ファイルから XML 宣言を検索し,指定された項目の値を出力します。

引数

項目名

取得する XML 宣言の項目名を指定します。

ファイルパス名

XML ファイルのパスを指定します。ファイルパス名を指定しない場合,標準入力から入力します。

標準出力への出力

XML 宣言の項目の値。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• 一致する項目が見つからなかった場合,エラー終了します。

• 一致した項目の値が空文字列であった場合,エラー終了します。

使用例

XMLデータ(data.xml)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<data>

</data> getXmlDecl encoding data.xml # 「UTF-8」が出力される。

10.3.38 getXmlElem(XML データの要素の内容の取得)

形式 getXmlElem [-e 文字コード] 要素名 [ファイルパス名]

10. スクリプト開発部品

JP1/Advanced Shell

1164

機能

引数に指定された XML ファイルから要素名を検索し,完全一致したすべての要素の内容を出力します。

要素の内容に含まれる改行は削除して出力されます。

引数

-e 文字コード

Windows 版

XML ファイルの文字コードを指定します。指定できる値は「SJIS」または「UTF8」です。このオ

プションを指定しない場合,文字コードを UTF8 として扱います。

UNIX 版

XML ファイルの文字コードを環境変数 LANG の値の形式で指定します。指定できる値は,「 2.2.4 

JP1/Advanced Shell を使用するときのエンコーディング

」を参照してください。

このオプションを指定しない場合,JP1/Advanced Shell が動作する環境の環境変数 LANG の値の

形式で文字コードを指定したと仮定します。

例えば,AIX で文字コード UTF-8 の XML ファイルを扱う場合,-e オプションに「JA_JP」または

「JA_JP.UTF-8」を指定します。

要素名

検索する要素名を指定します。

ファイルパス名

XML ファイルのパスを指定します。ファイルパス名を指定しない場合,標準入力から入力します。

標準出力への出力

XML データの要素の内容。

終了コード

終了コード

0

1 以上

意味

正常終了

エラー終了

注意事項

• 一致する要素が見つからなかった場合,エラー終了します。

• 出力する要素の内容には,記述された文字列すべてが含まれます。そのため,CDATA セクションな

ども出力されます。

• 要素の内容に含まれる「&amp;」などの実体参照の記述はそのまま出力されます。

要素名に正規表現のメタキャラクタが含まれている場合,¥でエスケープして指定してください。

10. スクリプト開発部品

JP1/Advanced Shell

1165

要素名「name+」を検索する場合,次のように指定します。 getXmlElem 'name\+' test.xml

• 同名の要素をネストしている場合,要素の内容を正しく出力できません。

<value><value>100</value></value>

ただし,ネストされた要素に別の要素を含んでいる場合,次のようにすることで,最も内側の要素の内

容を出力できます。

例(test.xml)

<value><name><value>100</value></name></value> getXmlElem name test.xml | getXmlElem value

• この部品では,adshmktemp コマンドを使用して一時ファイルを作成します。そのため,部品実行中

に強制終了要求を受けると,一時ファイルが残ることがあります。この場合は,手動で一時ファイルを

削除してください。一時ファイルは,環境ファイルの TEMP_FILE_DIR パラメーターで定義したディ

レクトリに次の命名規則で作成されます。 getXmlElem_ジョブ識別子_プロセスID_時間情報_ファイル通し番号

使用例

XMLデータ(data.xml)

<data>

<city>

<name id="0001">Yokohama</name>

<name id="0002">Kawasaki</name>

</city>

</data> getXmlElem -e SJIS name data.xml

# 以下の内容が出力される。

Yokohama

Kawasaki

XMLデータ(data2.xml)

<name>

<city>

<name id="0001">Yokohama</name>

<name id="0002">Kawasaki</name>

</city>

</name> getXmlElem city data2.xml | getXmlElem name

# 以下の内容が出力される。

Yokohama

Kawasaki

10. スクリプト開発部品

JP1/Advanced Shell

1166

第 5 編 トラブルシューティング編

11

トラブルシューティング

トラブルシューティングとして,対処の手順,ログ情報の種類,必要な資料,資料の採取方法に

ついて説明します。

JP1/Advanced Shell

1167

11.1 対処の手順

JP1/Advanced Shell でジョブ定義スクリプトを実行してエラー終了するなどのトラブルが発生した場合

は,トラブルが発生したときの現象を確認します。

メッセージが出力されている場合は,メッセージの内容を確認します。各メッセージの出力要因と対処方

法については,「

12. メッセージ

」を参照してください。また,メッセージの出力要因に応じて,次のよ

うに対処してください。

• ジョブ定義スクリプトの問題の場合

ジョブ定義スクリプトの問題を指摘するメッセージが出力された場合は,次のことを実施します。

• 問題の調査・対処

問題の調査結果を基に開発環境でジョブ定義スクリプトを修正し,デバッガで確認します。

• 運用の実施

再び実行環境で運用を実施します。

• システム管理者に連絡する必要がある問題の場合

システム管理者に連絡する必要があるメッセージが出力された場合は,次のことを実施します。

• 資料の採取

トラブルの要因を調べるために資料の採取が必要です。「 11.2 トラブル発生時に採取が必要な資

」を参照して,必要な資料を採取してください。

• 問題の調査

採取した資料を基に問題の要因を調査し,問題が発生している部分と問題の範囲を切り分けます。

• ユーザー応答機能の応答入力ができない場合

• 問題の調査・対処

11.1.1 ユーザー応答機能使用時の障害対応

」を参照して問題を調査し,対処してください。

11.1.1 ユーザー応答機能使用時の障害対応

応答要求メッセージに対しては JP1/IM - View から応答します。ただし,次のケースでは JP1/IM - View

から応答を入力できません。

表 11-1 応答待ちイベントに対して応答が入力できないケース

項番

1

2

ケース

JP1/IM から応答を入力した際に JP1/Advanced Shell 側でエラー

となり,JP1/IM 側で応答の成功/失敗が不明な場合

滞留する応答待ちイベントが 2,000 件を超えて,応答待ちイベント

の滞留が解除される場合

ユーザーへの通知

電文不正メッセージなど。

JP1/IM - View に KAVB0551-E が表示さ

れる。

11. トラブルシューティング

JP1/Advanced Shell

1168

項番

3

ケース

通信障害などで JP1/IM が使用できない場合

ユーザーへの通知

JP1/IM - View が使用できない状態。

応答要求メッセージは,JP1/Advanced Shell がインストールされているマシン上の共有メモリ上で管理

しているため,JP1/Advanced Shell の管理者は,次のコマンドで応答要求メッセージの状況確認や応答

ができます。

• 応答待ち状態にある応答要求メッセージの一覧表示 adshlsmsg コマンドを使用して,運用者からの応答待ち状態にある応答要求メッセージの一覧を表示

できます。詳細については,「

8.3 シェル運用コマンド

」の「

adshlsmsg コマンド(障害発生時に,

• 応答待ち状態にある応答要求メッセージに対する手動応答とキャンセル adshchmsg コマンドを使用して,運用者からの応答待ち状態にある応答要求メッセージに対して応答

を入力またはキャンセルできます。詳細については,「 8.3 シェル運用コマンド 」の「

adshchmsg コ

11.1.2 ルートジョブが子孫ジョブより先に終了した場合の注意事項

子孫ジョブからさらに実行する子孫ジョブがある場合,中間のジョブが UNIX の SIGKILL や Windows

の TerminateProcess で即時終了すると,ルートジョブがすべての子孫ジョブの完了を待たないで終了す

ることがあります。そのため,このような即時終了操作は実行しないでください。詳細については,「 (4) 

子孫ジョブからさらに実行する子孫ジョブがある場合の注意事項 」を参照してください。

もし,この現象が発生した場合は,関連するルートジョブや子孫ジョブの実行結果を調査してください。

なお,即時終了したジョブ以外のすべての子孫ジョブは,スプールジョブディレクトリが削除に失敗して

残っているか,削除されていても JOBLOG の内容が標準エラー出力へ出力されているため,ログは失わ

れません。

11. トラブルシューティング

JP1/Advanced Shell

1169

11.2 トラブル発生時に採取が必要な資料

トラブルが発生したときに採取が必要な資料を次の表に示します。

表 11-2 トラブルが発生したときに採取が必要な資料

種別

ログ

障害情報

スプール情報

環境情報

【UNIX 限定】

ユーザー応答機能管理

デーモンの情報

内容

JP1/Advanced Shell が出力する

ログ

システムが採取する障害情報

スプールを管理する情報

システムの状態

ユーザー応答機能管理デーモンの起

動・停止に関する情報

採取する資料

• システム実行ログ

• トレースログ

• アプリケーション実行エージェント機能ログ【Windows

実行環境限定】

• dump ファイル【Windows 限定】

• core ファイル【UNIX 限定】

指定の環境ファイルおよびジョブ ID ファイル。.jobid または adsh.jobid のファイル名が該当します。

• 基礎情報

• プロセス情報

• メモリ使用情報

• ファイル情報

• ネットワーク使用状況

• JP1 イベント情報

• エラーログ

• アプリケーション実行エージェント機能情報【Windows

実行環境限定】

ユーザー応答機能管理デーモンの起動ログおよび pid ファ

イル

なお,JP1/Advanced Shell の adshcollect コマンドを使うと必要な資料を一括採取できます。adshcollect

コマンドの詳細については,「

11.3 資料の採取方法

」を参照してください。

種別ごとに必要な資料の詳細を次に示します。なお,環境情報の詳細については,製品の内部情報である

ため,記載しません。

11.2.1 ログ

採取が必要なログを次の表に示します。

11. トラブルシューティング

JP1/Advanced Shell

1170

表 11-3 採取が必要なログ

種類

システム実行

ログ

トレースログ

内容

JP1/Advanced

Shell の統括的

な実行ログ

JP1/Advanced

Shell の内部ト

レースログ

アプリケーショ

ン実行エージェ

ント機能ログ

【Windows 実

行環境限定】

アプリケーショ

ン実行エージェ

ント機能ログ

出力先

環境ファイルの LOG_DIR パラメーター

の指定に従って出力されます。

環境ファイルの TRACE_DIR パラメーター

の指定に従って出力されます。

カスタムジョブ,エディタおよび共通コマンドのトレースログは,システムの仕様に従っ

て出力されます。

共有ドキュメントフォルダ¥Hitachi¥JP1AS¥JP1ASE¥appexec に出力されます。

注※

パラメーターのデフォルト値については,「

11.3.1 adshcollect コマンド(資料を採取する)

してください。

11.2.2 障害情報

採取が必要な障害情報を次の表に示します。障害情報は,保守情報を採取するための定義ファイルに DUMP

または CORE を指定したときだけ採取されます。

表 11-4 採取が必要な障害情報

種類 dump ファイル

【Windows 限定】

内容

ワトソンログなどが採取する障害

情報 core ファイル【UNIX

限定】

システムが採取する障害情報

出力先

ワトソン博士などのデバッグツールを起動している場合,出力

されます。ワトソン博士の場合,デフォルトでは次のディレク

トリに障害情報が出力されます。

共通アプリケーションフォルダ\Microsoft\Dr Watson

\drwtsn32.log

各プロセスのエラー終了時,システムに設定された core ファ

イルの出力先ディレクトリに出力されます。設定がない場合

は,adshexec 起動時のカレントディレクトリに出力されます。

11.2.3 スプール情報

採取が必要なスプール情報を次の表に示します。

11. トラブルシューティング

JP1/Advanced Shell

1171

表 11-5 採取が必要なスプール情報

種類

環境ファイル

スプールディレクトリ

下のファイル

内容

JP1/Advanced Shell の定義情報

スプールに出力したバッチジョブの

情報

出力先

環境変数 ADSH_ENV に作成した環境ファイルのパス adshcollect コマンドの-e オプションで指定した環境ファイル

(カスタムジョブの[実行定義]ダイアログボックスの[ジョ

ブ環境ファイル名]に定義したジョブ環境ファイル,およびエ

ディタの[実行環境の設定]ダイアログボックスのジョブ環境

ファイルに定義したジョブ環境ファイル)

ジョブ ID ファイルは,.jobid または adsh.jobid が該当しま

す。

11.2.4 ユーザー応答機能管理デーモンの情報【UNIX 限定】

採取が必要なユーザー応答機能管理デーモンの情報を次の表に示します。

表 11-6 採取が必要なユーザー応答機能管理デーモンの情報

種類

起動ログ pid ファ

イル

内容 出力先

ユーザー応答機能管理デーモンの起動ログ 「/opt/jp1as/system」にユーザー応答機能管理デーモンの起動ロ

グが出力されます。

詳細は「 ジョブ実行結果とログの出力情報を定義する

」を参照し

てください。

ユーザー応答機能管理デーモンの pid ファ

イル

「/opt/jp1as/system」にユーザー応答機能管理デーモンの pid

ファイルが出力されます。 pid ファイルは次のファイル名が該当します。

• 物理ホストのユーザー応答機能管理デーモンの場合 adshmd.pid

• 論理ホストのユーザー応答機能管理デーモンの場合 adshmd_

論理ホスト名

.pid

11. トラブルシューティング

JP1/Advanced Shell

1172

11.3 資料の採取方法

JP1/Advanced Shell がエラー終了,無応答になった場合などに,システム管理者が障害調査を実施する

ためのコアダンプ(core ファイルまたは dump ファイル),ログなどの資料が必要となります。adshcollect

コマンドを使用すると,これらの障害調査のための資料を一括して採取できます。

この節では,adshcollect コマンドの使用方法,保守情報を採取するための定義ファイルの設定,および

環境ファイルの設定について説明します。adshcollect コマンドで採取する保守情報(資料)は,Windows

と UNIX とで異なる場合があります。

11.3.1 adshcollect コマンド(資料を採取する)

形式 adshcollect 保守情報出力先ディレクトリ [-f 定義ファイル名]

      [-e 環境ファイル名] [-h 論理ホスト名]

機能 adshcollect コマンドによって,障害調査のための資料を一括して収集できます。adshcollect コマンドを

実行する場合は,Windows のときはコマンドプロンプトから,UNIX のときはシェルから起動してくだ

さい。

このコマンドは,障害発生時の障害情報を採取するため,実行ユーザーの権限で実行する必要があります。

ただし,ユーザー応答機能の情報を採取する場合は,管理者権限で実行する必要があります。 adshcollect コマンドの使用手順を次に示します。

1. 障害が発生したときの環境ファイルを用意してください。

障害発生後,環境ファイルを変更した場合は,環境ファイルを障害発生時の運用環境に合わせて書き換

えてください。障害が発生したときに環境ファイルを使用していなかった場合は,用意は不要です。

注意事項

Windows 版の場合,環境ファイルに&(アンパーサンド)が記述されていると,adshcollect コマ

ンドがエラー終了することがあります。

ジョブ環境ファイルに&(アンパーサンド)が記述されている場合は,ジョブ環境ファイルをコピー

して,コピーしたジョブ環境ファイルの&(アンパーサンド)を削除してください。さらに手順 3

で,コピーしたジョブ環境ファイルを-e オプションに指定してください。

システム環境ファイルに&(アンパーサンド)が記述されている場合は,事前にシステム環境ファ

イルを別のディレクトリにコピーしてバックアップを作成したあと,&(アンパーサンド)を削除

してください。

2. 定義ファイルを用意してください。

11. トラブルシューティング

JP1/Advanced Shell

1173

core ファイルまたは dump ファイルを採取する場合,任意の場所に定義ファイルを作成してください。 core ファイルまたは dump ファイルを採取する必要がない場合は,作成は不要です。

3. adshcollect コマンドを実行します。

次のように引数を指定して adshcollect コマンドを実行してください。

実行時の注意点については「注意事項」を参照してください。

保守情報出力先ディレクトリ

指定したディレクトリに保守情報が作成されるため,次の点に注意してください。

・保守情報の出力先は書き込み可能であり,十分な空き容量があること

・JP1/Advanced Shell で使用しないディレクトリであること

環境ファイル名

手順 1 で用意した環境ファイルのパスを-e オプションまたは環境変数 ADSH_ENV に指定してく

ださい。手順 1 で環境ファイルを用意しなかった場合は,指定は不要です。

定義ファイル名

手順 2 で用意した定義ファイルのパスを-f オプションに指定してください。手順 2 で定義ファイル

を用意しなかった場合は,指定は不要です。

論理ホスト名

障害が発生したときの環境が論理ホストの場合は,-h オプションに論理ホスト名を指定してくださ

い。障害が発生したときの環境が論理ホストではない場合は,指定は不要です。

引数

保守情報出力先ディレクトリ

【Windows 限定】

保守情報を格納したファイルを出力先ディレクトリに出力します。ディレクトリの名称は次の形式

となります。

ADSH yyyymmddhhmmss

  yyyymmdd

:adshcollect コマンドを起動した日付

  hhmmss

:adshcollect コマンドを起動した 24 時間制のローカルタイムでの時刻

Windows の標準機能には UNIX の tar 相当の機能がないため,保守情報を提供する場合,このファ

イルをユーザーの圧縮ツールを使用して zip または lzh 形式などの一般的な形式に圧縮してください。

【UNIX 限定】

収集した情報を tar のアーカイブファイルとして出力する場合の,出力先のディレクトリを指定し

ます。また,一時ファイルを必要とする場合は,このディレクトリに作成します。アーカイブファ

イルの名称は次の形式となります。

ADSH yyyymmddhhmmss

.tar

  yyyymmdd

:adshcollect コマンドを起動した日付

  hhmmss

:adshcollect コマンドを起動した 24 時間制のローカルタイムでの時刻

11. トラブルシューティング

JP1/Advanced Shell

1174

保守情報を出力した圧縮ファイルのディスク使用量は次のとおりです。

システム実行ログ,トレースログの容量+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△

1

」に続いてキーワードと値をスペースで区切って記述します。値に

指定するファイル名はすべて絶対パスで指定します。

定義ファイルのキーワードと内容を次の表に示します。どのキーワードも指定は任意ですが,定義ファ

イルにはこれらのキーワード以外の内容(例えばコメントなど)は指定できません。また,どのキー

ワードにも値にワイルドカードは指定できません。

11. トラブルシューティング

JP1/Advanced Shell

1175

表 11-7 定義ファイルのキーワードと指定の関係

キーワード

DUMP【Windows 限

定】

CORE【UNIX 限定】

指定内容

ワトソンログなど,Windows で採取したい dump ファイルを指定します。ワ

トソンログについては,Windows の資料を参照してください。

パスにスペースがある場合は,ダブルクォーテーションで囲んでください。 core ファイルを障害情報として採取する必要があるとき,ファイルを格納して

いるディレクトリ名を指定します。指定したディレクトリ以下にある,名前の一

部に「core」と付いたファイルを一括して採取します。

複数指定

(16 個まで)

(凡例)

○:指定できます。

• 環境ファイルの定義

環境ファイルのキーワードと内容を次の表に示します。どのキーワードも指定は任意です。キーワード

の指定がない場合は,表の「パス名のデフォルト値」に示す情報を採取します。また,どのキーワード

にも値にワイルドカードは指定できません。

表 11-8 環境ファイルのキーワードと指定の関係

指定内容 パス名のデフォルト値 複数指定 キーワード

(環境設定パラ

メーター)

SPOOL_DIR スプールルートディレクトリ

のパス名

× • 実行環境の場合【Windows 限定】

共有ドキュメントフォルダ\Hitachi\JP1AS\JP1ASE\spool

• 開発環境の場合【Windows 限定】

共有ドキュメントフォルダ\Hitachi\JP1AS\JP1ASD\spool

• 実行環境の場合【UNIX 限定】

/var/opt/jp1as/spool

LOG_DIR システム実行ログ出力先ディ

レクトリのパス名

×

TRACE_DIR トレースログ出力先ディレク

トリのパス名

• 実行環境の場合【Windows 限定】

共有ドキュメントフォルダ\Hitachi\JP1AS\JP1ASE\log

• 開発環境の場合【Windows 限定】

共有ドキュメントフォルダ\Hitachi\JP1AS\JP1ASD\log

• 実行環境の場合【UNIX 限定】

/opt/jp1as/log

• 実行環境の場合【Windows 限定】

共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASE

\trace

• 開発環境の場合【Windows 限定】

共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASD

\trace

• 実行環境の場合【UNIX 限定】

/opt/jp1as/trace

×

11. トラブルシューティング

JP1/Advanced Shell

1176

(凡例)

×:指定できません。

注※

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 で異

なります。

表 11-9 adshcollect コマンドで採取するファイルと最大サイズ【Windows 限定】

ファイルの種類 ファイル名 最大サイズ

環境ファイルのSPOOL_DIR

\adsh.jobid

1KB 程度

○ スプール管理ファ

イル

システム実行ログ

(JP1/Advanced

Shell)

環境ファイルのLOG_DIR

\AdshLog.log

環境ファイルのLOG_DIR

\AdshLog_n.log

( n

は面数)

環境ファイルのLOG_DIR

\AdshLog.conf

[環境ファイルの

LOG_FILE_SIZE]×

( n

+ 1) MB

1KB 程度

11. トラブルシューティング

JP1/Advanced Shell

1177

ファイルの種類 ファイル名 最大サイズ

JP1/Advanced

Shell 内部処理の実

行ログ

トレースログ

(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

環境ファイルのTRACE_DIR

\AdshTrace_

[ n

.log

( n

は面数:4 面固

定)

環境ファイルの

TRACE_FILE_SIZE

]× n

MB

1MB トレースログ(カス

タムジョブ)

トレースログ(エ

ディタ)

トレースログ

(JP1/Advanced

Shell,JP1/

Advanced Shell -

Developer 共通コ

マンド)

共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASV\trace

\AdshTrace_1.log

共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASD\adshedit\trace

\AdshTrace_1.log

共通アプリケーションフォルダ\Hitachi\JP1AS\misc\trace\AdshTrace_

[ n

.log

( n

は面数)

1MB

8MB

トレースログ(エ

ディタ独自機能)

アプリケーション実

行エージェント機能

ログ【実行環境限

定】

共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASD\adshedit\trace

\adshedit.txt

共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASE\ appexec

\APPEXECAGENT.log

共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASE\ appexec

\APPEXECAGENT n.log(nは面数:最大2面)

ユーザー環境の設定に

よる

5MB 程度 dump ファイル 定義ファイルの DUMP 以下の dump ファイル ユーザー環境の設定に

よる

1KB 程度 環境ファイル

システム環境ファ

イル

マシンに設定されて

いるホスト名

マシンに設定されて

いるサービスポート

環境情報ファイル

環境変数 ADSH_ENV のファイルまたは-e オプションで指定したファ

イル

共通アプリケーションフォルダ\Hitachi\JP1AS\製品名\conf

\adshrc.ase

システムルートフォルダ\system32\drivers\etc\hosts

システムルートフォルダ\system32\drivers\etc\services

ADSHTMPyyyymmddhhmmss.txt

  yyyymmdd

:adshcollect コマンドの起動日

  hhmmss

:adshcollect コマンドの起動時刻

1KB 程度

ユーザー環境の設定に

よる

ユーザー環境の設定に

よる

ユーザー環境の設定に

よる

11. トラブルシューティング

JP1/Advanced Shell

1178

(凡例)

○:adshcollect コマンドによって必ず採取します。

△:adshcollect コマンドのオプション指定時に採取します。

注※

環境ファイルで変更できます。パス名のデフォルト値については,前記の表を参照してください。

表 11-10 adshcollect コマンドで採取するファイルと最大サイズ【UNIX 限定】

ファイルの種類

スプール

システム実行ログ

トレースログ core ファイル

ユーザー応答機能管理

デーモンの情報

環境ファイル

ファイル名

環境ファイルのSPOOL_DIR

/.jobid

環境ファイルのLOG_DIR

/AdshLog.log

環境ファイルのLOG_DIR

/AdshLog_

[ n

.log

( n

面数)

環境ファイルのLOG_DIR

環境ファイルのTRACE_DIR

( n

は面数)

/AdshLog.conf

]/

AdshTrace_

[ n

.log

最大サイズ

1KB 程度

環境ファイルのLOG_FILE_SIZE

×( n

+ 1) MB

1KB 程度

環境ファイルの

TRACE_FILE_SIZE

]× n

MB

ユーザー環境の設定による 定義ファイルのキーワード「CORE」で採取した core

ファイル

/opt/jp1as/system 以下の起動ログおよび pid ファイル 1KB 程度×稼働するユーザー応

答機能管理デーモンの数

環境変数 ADSH_ENV のファイルまたは-e オプション

で指定したファイル

1KB 程度

採取

1KB 程度

ユーザー環境の設定による

システム環境ファイル

/opt/jp1as/conf/adshrc.ase

インストール済みの日

立製品

/ etc/.hitachi/pplistd/pplistd

環境変数 • AIX または Linux の場合

/etc/environment

• HP-UX の場合

/etc/profile

• Solaris の場合

/etc/skel/.profile

ユーザー環境の設定による ○

環境情報ファイル ユーザー環境の設定による ○ tar のログ

ADSHTMPyyyymmddhhmmss.txt

  yyyymmdd

:adshcollect コマンドの起動日

  hhmmss

:adshcollect コマンドの起動時刻

ADSHTARyyyymmddhhmmss.txt

  yyyymmdd

:adshcollect コマンドの起動日

  hhmmss

:adshcollect コマンドの起動時刻

1KB 程度 ○

(凡例)

○:adshcollect コマンドによって必ず採取します。

11. トラブルシューティング

JP1/Advanced Shell

1179

△:adshcollect コマンドのオプション指定時に採取します。

注※

環境ファイルで変更できます。パス名のデフォルト値については,前記の表を参照してください。

注意事項

• 保守情報出力先ディレクトリには,出力ファイルおよび一時ファイルを作成するため,空き領域を確保

してください。また,保守情報出力先ディレクトリは書き込み可能にしてください。

• adshcollect コマンドの実行中に強制終了すると,一時ファイルが保守情報出力先ディレクトリに残る

場合があります。このような場合は,一時ファイルを手動で削除してください。

•【UNIX 限定】ユーザー応答機能を使用している場合は,root 権限を持つユーザーで adshcollect コマ

ンドを実行してください。root 権限を持つユーザー以外で実行した場合は,ユーザー応答機能の情報

を採取できません。

•【Windows 限定】ユーザー応答機能を使用している場合は,Administrators 権限を持つユーザーで adshcollect コマンドを実行してください。Administrators 権限を持つユーザー以外で実行した場合

は,ユーザー応答機能の情報を採取できません。

• 保守情報出力先ディレクトリのパス,環境ファイルのパス,定義ファイルのパス,SPOOL_DIR のパ

ス,LOG_DIR のパス,TRACE_DIR のパス,DUMP のパス,CORE のパスおよび adshcollect コ

マンド実行時のカレントディレクトリのパスに次の記号を指定しないでください。

& ( ) [ ] { } ^ = ; ! ' + , ` ~ # %

• adshcollect コマンドの引数の保守情報出力先ディレクトリ,定義ファイル名,環境ファイル名,論理

ホスト名にオプションを指定した場合,そのオプションをディレクトリまたはファイル名,論理ホスト

名として解釈します。

11. トラブルシューティング

JP1/Advanced Shell

1180

12

メッセージ

この章では,JP1/Advanced Shell が出力するメッセージとエラーの詳細について説明します。

JP1/Advanced Shell

1181

12.1 メッセージの形式

JP1/Advanced Shell のメッセージの形式について説明します。

12.1.1 メッセージの出力形式

JP1/Advanced Shell が出力するメッセージの形式を次に示します。

KNAXnnnn-t メッセージテキスト

• KNAX

メッセージプリフィックスです。JP1/Advanced Shell のメッセージであることを示します。

• nnnn

メッセージ番号を示します。

• t

メッセージ種別です。メッセージに対する処置の指標を示します。メッセージ種別には,次の表に示す

種類があります。

表 12-1 メッセージ種別

メッセージ種別

E

種類

エラー(Error)

W

I

警告(Warning)

情報(Information)

意味

• 各ライブラリ,コマンドまたはサーバの機能が働かない障害が起きたこ

とを示します。

• 定義誤り,コマンドの引数の指定誤りによって,動作できないことを示

します。

メッセージ出力後,処理は続けられます。

ユーザーに情報を知らせます。

(1) ジョブ実行ログに出力されるメッセージの出力形式

メッセージがジョブ実行ログに出力される場合,次のようにメッセージの前に時刻およびジョブ識別子が

付加されます。

時刻 ジョブ識別子 KNAXnnnn-t メッセージテキスト

時刻

メッセージを出力した時刻を hh:mm:ss の形式で示します。

ジョブ識別子

メッセージを出力したジョブのジョブ識別子を 6 桁で示します。6 桁に満たない場合は,前方に 0 を付

加して 6 桁にします。

12. メッセージ

JP1/Advanced Shell

1182

(2) メッセージ用ダイアログボックスまたはエラーウィンドウに出力される

メッセージの出力形式

一部のメッセージは,次の図で示すメッセージ用ダイアログボックスまたはエラーウィンドウに出力され

ることがあります。

• メッセージ用ダイアログボックス

図 12-1 メッセージ用ダイアログボックス

種類

情報

メッセージ用ダイアログボックスでは,メッセージの内容によってメッセージの種類がアイコンで表示

されます。メッセージ用ダイアログボックスでのアイコンの意味を次の表に示します。

表 12-2 メッセージ用ダイアログボックスでのアイコンの意味

アイコン 意味

処理中にユーザーに伝えるべき事象が発生したときに表示

されます。

ユーザーの対応方法

[OK]をクリックします。

質問

警告

エラー

処理中にユーザーに問い合わせるべき事象が発生したこと

を伝え,二者択一の選択肢のどちらを実施するかを問い合

わせます。

[はい]または[いいえ]を選択

します。

処理中にユーザーに警告すべき事象が発生したことを伝え,

二者択一の選択肢のどちらを実施するかを問い合わせます。

[OK]または[キャンセル]を選

択します。

処理中にエラーが発生したときに表示されます。 [OK]をクリックします。

• エラーウィンドウ

JP1/Advanced Shell エディタを使用している場合,次の図で示すエラーウィンドウにメッセージが表

示されることもあります。

図 12-2 エラーウィンドウ

12. メッセージ

JP1/Advanced Shell

1183

12.1.2 メッセージの記載形式

出力するメッセージの記載形式を次に示します。

メッセージテキスト中の

太字

で書かれている部分は,メッセージテキスト内で表示内容が変わる位置を示

しています。メッセージ ID の右に【Windows 限定】または【UNIX 限定】が記載されている場合は,

おのおのが Windows 環境または UNIX 環境だけで表示されます。

メッセージテキスト内に記載している

エラー詳細

の意味と対策方法については,「

12.4 エラーの詳細

」を

参照してください。

メッセージはメッセージ ID 順に記載しています。記載形式の例を次に示します。

メッセージ ID [【Windows 限定】

|

【UNIX 限定】]

メッセージテキスト

メッセージの説明文

(S)

システムの処置を示します。

(O)

メッセージが出力された場合の,開発者または運用者の対処を示します。

12.1.3 メッセージ番号の割り当て

JP1/Advanced Shell のメッセージプリフィックス KNAX の後に続く,メッセージ番号の範囲で示される

メッセージの意味を次の表に示します。

表 12-3 メッセージ番号の範囲で示されるメッセージの意味

メッセージ番号 メッセージの意味

0001〜0299

0300〜0399

0400〜0699

0700〜0899

1600〜1899

1900〜2199

2200〜2499

2500〜2699

3000〜3999

4414〜4429

ジョブの基本的な動作に関連するメッセージ

コマンドの引数に関連するメッセージ

環境ファイルに関連するメッセージ

ジョブ実行ログに関連するメッセージ

領域の割り当てに関連するメッセージ

ジョブステップの実行に関連するメッセージ

メッセージの処理に関連するメッセージ

データ解析に関連するメッセージ

デーモンに関連するメッセージ

スプールジョブの操作に関連するメッセージ

12. メッセージ

JP1/Advanced Shell

1184

メッセージ番号

5300〜5399

5400〜5499

6000〜6699

6700〜6999

7000〜7199

7200〜7399

7400〜7599

7600〜7799

7800〜7999

9000〜9999

メッセージの意味

アダプタコマンドに関連するメッセージ

ユーザー応答コマンドに関連するメッセージ

バッチジョブの実行制御に関連するメッセージ

クロスプラットフォームに関連するメッセージ

開発環境に関連するメッセージ

アプリケーション実行エージェント機能

ユーザー応答機能に関連するメッセージ

JP1 連携機能に関連するメッセージ

共通機能に関連するメッセージ

ライセンス関連メッセージ

12. メッセージ

JP1/Advanced Shell

1185

12.2 メッセージの出力先

JP1/Advanced Shell が出力するメッセージの出力先を次の表に示します。この表は拡張出力モードのメッ

セージ出力先を示しています。簡潔出力モードまたは最小出力モードのメッセージ出力先については,表

の下の説明を参照してください。

表 12-4 JP1/Advanced Shell が出力するメッセージの出力先(拡張出力モードの場合)

メッセージ ID の範囲 メッセージの出力先

KNAX0001-E

KNAX0004-I

KNAX0030-E,KNAX0031-E

KNAX0091-I,KNAX0092-I

KNAX0098-I

KNAX0101-E

KNAX0220-E

KNAX0235-E〜KNAX0239-E

KNAX0240-I

KNAX0299-E

KNAX0300-I

KNAX0301-E

KNAX0302-E stdout

− stderr

JOBLOG システム実

行ログ

※1

GUI

※12

17

の他

KNAX0303-E〜KNAX0307-E

KNAX0308-E〜KNAX0309-I

KNAX0310-E

KNAX0311-E〜KNAX0336-E

KNAX0401-E〜KNAX0702-E

KNAX0703-E

KNAX0704-E〜KNAX0708-E

KNAX0719-I

KNAX0720-E〜KNAX0723-E

17

12. メッセージ

JP1/Advanced Shell

1186

メッセージ ID の範囲

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

KNAX2500-E

KNAX2501-E

KNAX3000-I

KNAX3001-I

KNAX3002-E

KNAX3003-E

12. メッセージ

JP1/Advanced Shell

※2※3

※2※3

※2※3

※2※3

メッセージの出力先 stdout stderr JOBLOG システム実

行ログ

GUI

※12

の他

1187

メッセージ ID の範囲

KNAX3006-I

KNAX3008-W,KNAX3009-E

KNAX3020-E〜KNAX3029-E

KNAX3261-I

KNAX3400-I〜KNAX3542-W

KNAX3700-I〜KNAX3799-I

KNAX3998-E,KNAX3999-E

KNAX4414-E〜KNAX4429-E

KNAX5300-I〜KNAX5372-E

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〜KNAX6129-I

KNAX6130-E

KNAX6134-E〜KNAX6140-E

KNAX6150-E

KNAX6151-E

KNAX6152-E

KNAX6153-E

KNAX6160-I

KNAX6161-I

KNAX6190-E

KNAX6191-E

KNAX6192-E

KNAX6193-E

12. メッセージ

JP1/Advanced Shell

メッセージの出力先 stdout stderr JOBLOG システム実

行ログ

※2

※2

※2

※2

※4

※5

GUI

※12

の他

1188

メッセージ ID の範囲

KNAX6194-E

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

KNAX6340-E

KNAX6341-E

KNAX6342-E

KNAX6380-I

12. メッセージ

JP1/Advanced Shell

メッセージの出力先 stdout stderr JOBLOG システム実

行ログ

GUI

※12

の他

1189

メッセージ ID の範囲

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〜KNAX6578-I

KNAX6580-E

KNAX6581-E

KNAX6582-E

KNAX6583-E

KNAX6584-I〜KNAX6586-E

KNAX6587-E

KNAX6588-E

KNAX6589-W

KNAX6590-E

KNAX6591-E〜KNAX6592-E

KNAX6593-E

12. メッセージ

JP1/Advanced Shell

メッセージの出力先 stdout stderr JOBLOG システム実

行ログ

GUI

※12

の他

1190

メッセージ ID の範囲

KNAX6594-E

KNAX6595-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

KNAX6996-E,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

12. メッセージ

JP1/Advanced Shell

メッセージの出力先 stdout stderr JOBLOG システム実

行ログ

GUI

※12

の他

1191

メッセージ ID の範囲

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

KNAX7091-W

KNAX7099-E,KNAX7101-E

12. メッセージ

JP1/Advanced Shell

メッセージの出力先 stdout stderr JOBLOG システム実

行ログ

GUI

※12

の他

1192

メッセージ ID の範囲

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

KNAX7129-E

KNAX7200-E〜KNAX7203-W

KNAX7204-E

KNAX7205-E

KNAX7210-E〜KNAX7217-E

KNAX7221-E〜KNAX7225-E

KNAX7250-I〜KNAX7253-I

KNAX7254-E

KNAX7255-I

12. メッセージ

JP1/Advanced Shell

メッセージの出力先 stdout stderr JOBLOG システム実

行ログ

GUI

※12

※15

※15

13

13※

16

13

13

14

13

の他

13

13,14

1193

メッセージ ID の範囲

KNAX7256-E〜KNAX7259-W

KNAX7260-W〜KNAX7262-I

KNAX7263-E

KNAX7264-I〜KNAX7268-I

KNAX7269-E

KNAX7270-E

KNAX7271-I

KNAX7400-E〜KNAX7402-E

KNAX7403-E〜KNAX7405-E

KNAX7408-E

KNAX7420-E

KNAX7450-I

※7

KNAX7451-I

KNAX7460-E〜KNAX7465-W

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

KNAX7901-I

KNAX7902-I

12. メッセージ

JP1/Advanced Shell

メッセージの出力先 stdout stderr

− ○

JOBLOG システム実

行ログ

− −

GUI

※12

※11

※11

13

13

13

の他

13

13

13

10

※8

1194

メッセージ ID の範囲

KNAX7999-I

KNAX9000-E〜KNAX9002-E

メッセージの出力先 stdout stderr JOBLOG システム実

行ログ

GUI

※12

の他

(凡例)

表の「メッセージの出力先」列の意味を次に示します。

表の項目 stdout stderr

JOBLOG

システム実行

ログ

GUI

メッセージの出力先

標準出力

標準エラー出力

ジョブ実行ログ

システム実行ログ

特記事項

簡潔出力モードまたは最小出力モードの場合,通常実行時のジョブと,デバッ

グ実行時の子孫ジョブのメッセージの出力は次のようになります。

• メッセージ種別 I,W のメッセージは出力されません。

• メッセージ種別 E のメッセージは該当の出力先と JOBLOG に出力されます。

デバッグ実行時のルートジョブのメッセージ種別 E のメッセージは JOBLOG

にも出力されます。

• 拡張出力モードの場合

デバッグ実行時は,ジョブ実行中に同じメッセージが標準エラー出力にも出

力されます。

子孫ジョブの場合は JOBLOG には出力されないで,ジョブ実行完了時に標

準エラー出力に出力されます。

• 簡潔出力モードまたは最小出力モードの場合

メッセージ種別 E のメッセージは標準エラー出力にも出力されます。

メッセージ出力時のジョブの状態によっては,この出力先にメッセージが出力

されないことがあります。

なし メッセージ用ダイアログ

ボックスまたはエラー

ウィンドウ

ただし,簡潔出力モードまたは最小出力モードの場合も,次のメッセージは出力されます。

• KNAX0240-I(ADSH_JOBRC_FATAL の値を適用したことを示すメッセージ。出力のタイミング

によって抑止されることもあります。)

• KNAX0300-I(usage)

• KNAX0309-I(バージョン表示)

• シグナル受信で出力するメッセージ(ただし,通常実行時の最小出力モードではシグナル受信で出

力されるメッセージの一部は出力抑止される)

◎:GUI のメッセージで JP1/Advanced Shell エディタのエラーウィンドウで行番号を付けて出力し

ます。ただし,メッセージの行番号が省略される場合については出力しません。

○:出力します。

−:出力しません。

12. メッセージ

JP1/Advanced Shell

1195

注※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 デバッグ実行時には,この出力先には出力されません。

注※12

子孫ジョブからは GUI に出力されません。

注※13

アプリケーション実行エージェント機能ログに出力します。

注※14

メッセージボックスに出力します。

注※15 adshappexec コマンドの場合に出力します。

12. メッセージ

JP1/Advanced Shell

1196

注※16 adshappagent コマンドの起動時にはメッセージボックスに出力します。

注※17 adshappagent コマンドの場合にはアプリケーション実行エージェント機能ログに出力します。

12.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

12. メッセージ

JP1/Advanced Shell

1197

12.3 メッセージの一覧

JP1/Advanced Shell が出力するメッセージと対処方法について説明します。

KNAX0001-E

メモリが不足しています。details=

保守情報

メモリ不足が発生しました。

保守情報

は,8 桁の 16 進数で表示します。

保守情報

は,システムの内部状態を示す情報です。このメッ

セージは,エラー通知の出力先に出力されますが,エラー発生のタイミングによって一部の出力先にだけ

出力されます。

(S)

処理を終了します。

(O)

システム管理者に連絡します。システム管理者は,メモリ見積もりを見直してください。

KNAX0004-I

ジョブ識別子=

Advanced Shellのジョブ識別子

, JP1NBQSQueueName=

環境変数値

, ジョブ番号=

ケジューラのジョブ番号

起動したバッチジョブの JP1/AJS のジョブ情報と JP1/Advanced Shell のジョブ識別子を表示します。

Advanced Shellのジョブ識別子

JP1/Advanced Shell がバッチジョブに付与したジョブ識別子

環境変数値

バッチジョブの JP1NBQSQueueName 環境変数の値

スケジューラのジョブ番号

バッチジョブの JP1/Advanced Shell が与えた JP1 ジョブ番号

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1198

KNAX0030-E 【Windows 限定】

An error occurred while starting adshexec. function="

関数名

",error code=

エラーコー

,reason="

エラー詳細

"

ジョブコントローラの開始処理中にエラーが発生しました。

関数名

エラーコード

および

エラー詳細

を示

します。

(S)

処理を終了します。

(O)

システム管理者に連絡します。システム管理者は,

関数名

エラーコード

および

エラー詳細

からエラー

の原因を取り除いて,バッチジョブを再実行します。

KNAX0031-E 【Windows 限定】

An error occurred while completing adshexec process. function="

関数名

",error code=

エラー

コード

,reason="

エラー詳細

"

ジョブコントローラの終了処理中にエラーが発生しました。

関数名

エラーコード

および

エラー詳細

を示

します。

(S)

処理を終了します。

(O)

システム管理者に連絡します。システム管理者は,

関数名

エラーコード

および

エラー詳細

からエラー

の原因を取り除いて,バッチジョブを再実行します。

KNAX0091-I

ジョブ名

ジョブが開始しました。

ジョブ名

で示すバッチジョブを開始しました。

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1199

KNAX0092-I

ジョブ名

.

ジョブステップ名

ステップが開始しました。

ジョブ名

で示すバッチジョブに定義された,

ジョブステップ名

で示すジョブステップを開始しました。

(S)

処理を続行します。

KNAX0098-I

ジョブ名

ジョブが終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU時間 s

ジョブ名

で示すバッチジョブが終了しました。

終了コード

バッチジョブの実行結果を示す終了コード。

終了コードの詳細は,adshexec コマンドの終了コードに関する説明を参照してください。

なお,このメッセージの出力後に adshexec コマンドの後処理でエラーが発生した場合,このメッセー

ジで示す終了コードと adshexec コマンドの終了コードとが異なる場合があります。adshexec コマン

ドの最終的な終了コードは,KNAX7999-I に出力されます。

実行時間

バッチジョブの開始から終了までの実時間の合計(秒単位)。OS の API を使って取得した参考値です。

CPU時間

バッチジョブの開始から終了までの CPU 時間の合計(秒単位)。OS の API を使って取得した参考値

です。

(S)

処理を続行します。

KNAX0101-E

ジョブ名

ジョブを実行中にエラーが発生しました。

ジョブ名

で示すバッチジョブを実行中にエラーが発生しました。

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1200

(O)

一緒に出力されるほかのメッセージを参照してエラーの原因を取り除き,バッチジョブを再実行します。

KNAX0220-E

環境変数("

環境変数名

")が指定されていません。

環境変数名

で示す環境変数が指定されていません。

環境変数名

が「JP1_HOSTNAME」の場合,論理ホスト運用で論理ホスト名が明示指定されていないと

き,JP1/AJS 以外から起動されているおそれがあります。

(S)

処理を終了します。

(O)

システム管理者に連絡して環境変数の値を見直してください。

KNAX0235-E

環境変数("

環境変数名

")の値が不当です。

環境変数名

で示す環境変数の値が不当です。

環境変数名

環境変数名

(S)

処理を終了します。

(O)

環境変数の値を見直してください。問題が解決しない場合は,システム管理者に連絡してください。

KNAX0236-E

環境変数("

環境変数名

")の値が長すぎます。

または

The value specified for the environment variable "

環境変数名

" is too long.

環境変数名

で示す環境変数の値が長過ぎます。

12. メッセージ

JP1/Advanced Shell

1201

(S)

処理を終了します。

(O)

環境変数の値を見直してください。問題が解決しない場合は,システム管理者に連絡してください。

KNAX0237-E

環境変数("

環境変数名

")の値が空文字です。

または

The value specified for the environment variable "

環境変数名

" is an empty string.

環境変数名

で示す環境変数の値が空文字です。

(S)

処理を終了します。

(O)

システム管理者に連絡して環境変数の値を見直してください。

KNAX0238-E

環境変数("

環境変数名

")の値に使用できない文字が含まれています。

または

The value specified for the environment variable "

環境変数名

" contains an invalid character.

環境変数名

で示す環境変数の値に使用できない文字が含まれています。

(S)

処理を終了します。

(O)

環境変数の値を見直してください。問題が解決しない場合は,システム管理者に連絡してください。

KNAX0239-E

環境変数("

環境変数名

")の値が範囲外です。

または

12. メッセージ

JP1/Advanced Shell

1202

The value specified for the environment variable "

環境変数名

" is out of range.

環境変数名

で示す環境変数の値が範囲外です。

(S)

処理を終了します。

(O)

システム管理者に連絡して環境変数の値を見直してください。

KNAX0240-I

環境変数名

was applied. value=

環境変数値

または

The setting specified for the environment variable

環境変数名

was applied. value=

環境変数値

環境変数名

で示す環境変数の設定が適用されました。

環境変数値

適用された環境変数の値

(S)

処理を続行します。

KNAX0299-E

内部エラーが発生しました。details=

保守情報

メモリ確保で内部矛盾が発生しました。

このメッセージは,エラー通知の出力先に出力されますが,エラー発生のタイミングによって一部の出力

先にだけ出力されます。

(S)

処理を終了します。

(O)

システム管理者に連絡します。

12. メッセージ

JP1/Advanced Shell

1203

KNAX0300-I

使用方法:

コマンド名 コマンド引数

コマンド名

および

コマンド引数

で示すコマンドの指定が誤っています。

(S)

処理を終了します。

(O)

コマンドを正しく指定して実行します。

KNAX0301-E

オプション("

オプション名

")の値が指定されていません。

オプション名

の指定値が誤っています。

(S)

処理を中断します。

(O)

オプションを正しく指定します。

KNAX0302-E

オプション("

オプション名

")は無効なオプションです。

不正な

オプション名

を指定しています。

(S)

処理を中断します。

(O)

オプション名を正しく指定します。

KNAX0303-E

ジョブ定義スクリプトファイル名が指定されていません。

ジョブ定義スクリプトファイル名が指定されていません。

12. メッセージ

JP1/Advanced Shell

1204

(S)

処理を中断します。

(O)

ジョブ定義スクリプトファイル名を指定して再入力します。

KNAX0305-E

コマンドの引数("

引数

")が不正です。

引数

で示すコマンドの引数が不正です。

(S)

処理を中断します。

(O)

引数

を正しく指定して再入力します。

KNAX0306-E

オプション("

オプション名

")の値が誤っています。

オプション名

で示すオプションの値が誤っています。

(S)

処理を中断します。

(O)

オプションを正しく指定して再入力します。

KNAX0307-E

必要なオプションが指定されていません。

必要なオプションが指定されていません。

(S)

処理を終了します。

(O)

必要なオプションを指定して再入力します。

12. メッセージ

JP1/Advanced Shell

1205

KNAX0308-E

オプション("

オプション名1

")とオプション("

オプション名2

")は同時に指定できません。

オプション名1

で示すオプションと

オプション名2

で示すオプションは,同時に指定することはできません。

(S)

処理を中断します。

(O)

オプションを正しく指定して再入力します。

KNAX0309-I

プログラム名

のバージョンは

バージョン文字列

です。

プログラム名

で示すコマンドのバージョンを

バージョン文字列

に示します。

(S)

処理を終了します。

KNAX0310-E

オペランドが多すぎます。

指定したオペランドが多過ぎます。

(S)

処理を中断します。

(O)

オペランドを正しく指定します。

KNAX0311-E

コマンド名

コマンド処理に必要なオプション,パラメーターが不足しています。

コマンド名

で示すコマンド処理に必要なオプション,パラメーターが不足しています。

12. メッセージ

JP1/Advanced Shell

1206

(S)

処理を終了します。

(O)

必要なオプション,パラメーターを指定して再入力します。

KNAX0336-E

オプション("

オプション名

")の指定値の長さが正しくありません。

オプション名の指定値の長さが正しくありません。次の原因が考えられます。

• オプション名の指定値の長さが長過ぎます。

• オプション名の指定値の長さが 0 です。

(S)

処理を中断します。

(O)

オプションを正しく指定して再入力します。

KNAX0401-E

環境ファイルのオープンに失敗しました。reason="

エラー詳細

"

エラー詳細

で示す原因によって,環境ファイルのオープンに失敗しました。

(S)

処理を終了します。

(O)

エラー詳細を基に環境ファイルが読み込めるように,権限などの問題がないかどうかを確認します。問

題が解決しない場合は,システム管理者に連絡します。

KNAX0402-E

環境ファイルの読み込みに失敗しました。reason="

エラー詳細

"

エラー詳細

で示す原因によって,環境ファイルの読み込みに失敗しました。

12. メッセージ

JP1/Advanced Shell

1207

(S)

処理を終了します。

(O)

エラー詳細を基に環境ファイルが読み込めるように,権限などの問題がないかどうかを確認します。問

題が解決しない場合は,システム管理者に連絡します。

KNAX0403-E

環境ファイルのファイル名が長過ぎます。

環境ファイルのファイル名が長過ぎます。

(S)

処理を終了します。

(O)

環境ファイル名の指定に問題がないかどうかを確認します。

KNAX0406-E

ホスト名の取得時にエラーが発生しました。reason="

エラー詳細

"

エラー詳細

で示す原因によって,ホスト名の取得時にエラーが発生しました。UNIX の場合,ホスト名が

255 文字より多いと,このメッセージが出力されることがあります。

(S)

処理を終了します。

(O)

システム管理者に連絡して,ネットワーク上のホスト名を確認します。

KNAX0407-E

"

ファイル名

" は通常のファイルではありません。

ファイル名

で示すファイルは通常のファイルではありません。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1208

(O)

ファイルを確認します。

KNAX0410-E

環境ファイル("

ファイル名

")の解析でエラーが発生しました。エラーの内容はこのメッセージの前

に出力されているメッセージを参照してください。

ファイル名

で示す環境ファイルの解析でエラーが発生しました。エラーの内容はこのメッセージの前に出

力されているメッセージを参照してください。

(S)

処理を終了します。

(O)

環境ファイルの誤りを修正してください。

KNAX0411-E

環境ファイルの行が長すぎます。line=

行番号

行番号

で示す,環境ファイルの行が長すぎます。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0431-E

環境ファイルに不当なパラメーター名が見つかりました。line=

行番号

環境ファイルの

行番号

で示す行に不当なパラメーター名が見つかりました。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

12. メッセージ

JP1/Advanced Shell

1209

KNAX0432-E

環境ファイルのパラメーター("

パラメーター名

")に不当な値が見つかりました。line=

行番号

環境ファイルの

行番号

で示すパラメーターに不当な値が見つかりました。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0433-E

環境ファイルのパラメーター("

パラメーター名

")に値が設定されていません。line=

行番号

環境ファイルの

行番号

で示すパラメーターに値が設定されていません。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0434-E

環境ファイルのパラメーター("

パラメーター名

")が重複して定義されています。line=

行番号

環境ファイルの

行番号

で示すパラメーターが重複して定義されています。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0435-E

環境ファイルのパラメーター("

パラメーター名

")を定義できる上限を超えています。line=

行番号

12. メッセージ

JP1/Advanced Shell

1210

環境ファイルの

行番号

で示すパラメーターが定義できる上限を超えています。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0436-E

環境ファイルのパラメーター("

パラメーター名

")の指定値が長すぎます。line=

行番号

環境ファイルの

行番号

で示すパラメーターの指定値が長過ぎます。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0437-E

環境ファイルのパラメーター("

パラメーター名

")の指定値が範囲外です。line=

行番号

環境ファイルの

行番号

で示すパラメーターの指定値が範囲外です。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0438-E

環境ファイルのパラメーター("

パラメーター名

")の指定値に不当な文字が含まれています。line=

番号

環境ファイルの

行番号

で示すパラメーターの指定値に不当な文字が含まれています。

12. メッセージ

JP1/Advanced Shell

1211

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0439-E

環境ファイルのパラメーター("

パラメーター名

")のファイルパスが絶対パスで指定されていません。 line=

行番号

環境ファイルの

行番号

パラメーター名

で示すファイルパスが絶対パスで指定されていません。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0441-E

環境ファイルのパラメーター("

パラメーター名

")で指定したディレクトリは存在しません。line=

番号

環境ファイルの

行番号

で示すパラメーターで指定したディレクトリはありません。

UNIX の場合,シグナルの受信が原因でこのメッセージが出力されることがあります。

(S)

処理を終了します。

(O)

環境ファイルを見直すか,または動作環境をチェックしてください。

KNAX0442-E

環境ファイルのパラメーター("

パラメーター名

")で指定した値はディレクトリではありません。line=

行番号

環境ファイルの

行番号

で示すパラメーターで指定した値はディレクトリではありません。

12. メッセージ

JP1/Advanced Shell

1212

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0444-E

環境ファイルのパラメーター("

パラメーター名

")で指定したオペランドは多すぎます。line=

行番号

環境ファイルの

行番号

で示すパラメーターで指定したオペランドは多過ぎます。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0445-E

環境ファイルのパラメーター("

パラメーター名

")で仮定されるディレクトリ("

デフォルトディレク

トリ名

")が存在しません。

デフォルトのディレクトリがありません。

UNIX の場合,シグナルの受信が原因でこのメッセージが出力されることがあります。

(S)

処理を終了します。

(O)

動作環境を見直してください。

KNAX0446-E

環境ファイルのパラメーター("

パラメーター名

")で仮定したディレクトリ("

デフォルトディレクト

リ名

")がディレクトリではありません。

デフォルトのディレクトリ名がディレクトリではありません。

12. メッセージ

JP1/Advanced Shell

1213

(S)

処理を終了します。

(O)

動作環境を見直してください。

KNAX0449-E

必須のディレクトリ("

ディレクトリ名

")がありません。

必須の

ディレクトリ名

がありません。

UNIX の場合,シグナルの受信が原因でこのメッセージが出力されることがあります。

(S)

処理を終了します。

(O)

環境ファイルを見直すか,または動作環境を見直してください。

KNAX0450-E

必須のディレクトリ("

ディレクトリ名

")はディレクトリではありません。

必須の

ディレクトリ名

はディレクトリではありません。

(S)

処理を終了します。

(O)

環境ファイルを見直すか,または動作環境を見直してください。

KNAX0451-E 【Windows 限定】

環境ファイルのパラメーター("

パラメーター名

")で仮定するディレクトリ名の取得に失敗しました。

デフォルトのディレクトリ名を求める処理でエラーが発生しました。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1214

(O)

動作環境を見直してください。

KNAX0456-E 【Windows 限定】

パラメーター("

パラメーター名

")で指定した値が重複して定義されています。line=

行番号

パラメーター名

で指定した値が重複して定義されています。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0458-E

パラメーターの組み合わせが正しくありません。line=

行番号

パラメーターの組み合わせが正しくありません。次の原因が考えられます。

• phost_start パラメーターと phost_end パラメーターの組み合わせが正しくない。

• lhost_start パラメーターと lhost_end パラメーターの組み合わせが正しくない。

• パラメーターの指定順を誤っている。

• 開始のパラメーターの指定があるが,終了のパラメーターの指定がない。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0459-E

パラメーター("

パラメーター名

")でオペランドの指定順序に誤りがあるか,または同じオペランド

を複数回指定しています。line=

行番号

オペランドの指定順序に誤りがあるか,または同じオペランドを複数回指定しています。

12. メッセージ

JP1/Advanced Shell

1215

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0471-E

パラメーター(

パラメーター名

)の指定値が,システム環境ファイルの指定値と異なります。 filename="

ファイル名

"

ファイル名

の環境ファイルで指定された

パラメーター名

のパラメーターの指定値が,システム環境ファイ

ルの指定値と異なります。

システム環境ファイルでデフォルト値を指定している場合,ジョブ環境ファイルで異なる値を指定すると

エラーになります。システム環境ファイルで指定したシステム実行ログおよびトレースの設定は変更でき

ません。

ジョブ環境ファイルで明示指定していない場合はエラーになりません。

(S)

処理を終了します。

(O)

環境ファイルを見直してください。

KNAX0472-E

環境ファイルの解析処理で,予期しないエラーが発生しました。("

関数名

", "

エラー詳細

",

保守情報

)

環境ファイルの解析処理で,予期しないエラーが発生しました。

関数名

内部の関数名

エラー詳細

障害内容を示す文字列

保守情報

保守コード

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1216

(O)

障害を取り除いて再実行してください。障害が取り除けない場合は,システム管理者に連絡してくださ

い。

KNAX0473-W

冗長なパラメーター("

パラメーター名

")が

環境ファイル種別

に指定されています。

環境ファイル種別

で示すファイルに,冗長なパラメーターが指定されています。

生じる問題点は各パラメーターの説明を参照してください。

該当のパラメーターは

環境ファイル種別

には指定しないことを推奨します。

環境ファイル種別

ジョブ環境ファイル

(S)

処理を実行します。

(O)

生じる問題が許容できない場合は,該当するパラメーターの指定を削除してください。

KNAX0474-E

指定された値("

パラメーター値

")は,現在のジョブ起動方法ではパラメーター("

パラメーター名

")

に指定できません。 filename="

ファイル名

"

ファイル名 で示す環境ファイルに,現在のジョブ起動方法では指定できない値を指定しています。

パラメーター値

指定できないパラメーター値

パラメーター名

エラーとなったパラメーター名

ファイル名

エラーとなったパラメーターを指定した環境ファイル

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1217

(O)

環境ファイルに設定したパラメーターの内容を見直してください。

KNAX0700-E

スプールルートディレクトリの下にバッチジョブ用のディレクトリを作成できません。reason=

エラー

詳細

スプールルートディレクトリの下にバッチジョブ用のディレクトリを作成できません。

(S)

処理を終了します。

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。システム管理者は環境ファイルのスプールルートディレクトリの指定,またはスプー

ルディレクトリ自体に異常がないか見直してください。

KNAX0701-E

ファイル("

ファイル名

")のオープンに失敗しました。reason=

エラー詳細

スプールジョブディレクトリ内の

ファイル名

で示されるファイルのオープンに失敗しました。または,出

力用コンソールのオープンに失敗しました。

出力用コンソールの場合,

ファイル名

は CONOUT$となります。

(S)

処理を終了します。

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。システム管理者はスプールジョブディレクトリ,またはスプールジョブディレクトリ

内のファイルに異常がないか見直してください。

KNAX0702-E

スプールジョブディレクトリ内のジョブ実行ログファイルの書き込みに失敗しました。reason=

エラー

詳細

12. メッセージ

JP1/Advanced Shell

1218

スプールジョブディレクトリ内のジョブ実行ログファイルの書き込みに失敗しました。

(S)

処理を終了します。

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。システム管理者はスプールジョブディレクトリ,またはスプールジョブディレクトリ

内のファイルに異常がないか見直してください。

KNAX0703-E

スプールジョブディレクトリ内にファイル("

ファイル名

")が存在しません。

スプールジョブディレクトリ内に

ファイル名

で示されるファイルがありません。

(S)

処理を終了します。

(O)

ファイル名を見直してください。

KNAX0704-E

日付の取得に失敗しました。

日付の取得に失敗しました。

(S)

処理を終了します。

(O)

システム管理者に連絡します。

KNAX0706-E

ファイル("

ファイルパス

")の作成に失敗しました。reason=

エラー詳細

ファイルパス

の作成に失敗しました。

12. メッセージ

JP1/Advanced Shell

1219

(S)

処理を終了します。

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。システム管理者はスプールジョブディレクトリ,またはスプールジョブディレクトリ

内のファイルに異常がないか見直してください。

KNAX0708-E

割り当てられる JOBLOG ファイル数の上限を超えました。

割り当てられる JOBLOG ファイル数の上限を超えました。次の原因が考えられます。

• スプールディレクトリ下にスプールジョブが大量に残っていて,ジョブ識別子の空きが少ない。

• ジョブ内で子孫ジョブを大量に起動している。

(S)

処理を終了します。

(O)

不要なスプールジョブを削除してジョブを再実行してください。または,不当に大量の子孫ジョブを起

動していないか,ジョブ定義スクリプトを見直してください。

KNAX0719-I

STEP ステップ番号=

ステップ番号

ステップ名=

ジョブステップ名

出力先=

出力先

このメッセージのあとに,ジョブステップの

出力先

を出力します。

(S)

処理を続行します。

KNAX0720-E

ジョブ ID ファイルのオープンに失敗しました。reason=

エラー詳細

ジョブ ID ファイルのオープンに失敗しました。

12. メッセージ

JP1/Advanced Shell

1220

(S)

処理を終了します。

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。システム管理者は環境ファイルのスプールディレクトリの指定,スプールディレクト

リ自体,またはスプールディレクトリ内のファイルに異常がないか見直してください。

KNAX0721-E

ジョブ ID ファイルの入出力に失敗しました。reason=

エラー詳細

ジョブ ID ファイルの入出力に失敗しました。

(S)

処理を終了します。

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。システム管理者は環境ファイルのスプールディレクトリの指定,スプールディレクト

リ自体,またはスプールディレクトリ内のファイルに異常がないか見直してください。

KNAX0722-E

ジョブ固有のジョブ識別子を付与できません。

ジョブ固有のジョブ識別子を付与できません。スプールジョブディレクトリがこれ以上作成できない場合,

このメッセージが出力されることがあります。

(S)

処理を終了します。

(O)

システム管理者に連絡します。システム管理者は前後に出力されたメッセージから原因を取り除いて再

実行してください。または,不要なスプールジョブディレクトリを削除して,再実行してください。

KNAX0723-E

ジョブ ID ファイルの排他に失敗しました。reason=

エラー詳細

12. メッセージ

JP1/Advanced Shell

1221

ジョブ ID ファイルを排他しようとして,失敗しました。

SPOOL_DIR パラメーターに NFS 上のディレクトリを指定すると,このメッセージを出力してエラーと

なることがあります。SPOOL_DIR パラメーターには,NFS 上のディレクトリを指定しないでください。

(S)

処理を終了します。

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。システム管理者は環境ファイルのスプールディレクトリの指定,スプールディレクト

リ自体,またはスプールディレクトリ内のファイルに異常がないか見直してください。

KNAX0724-I

ジョブ識別子を割り当てました。Jobid=

ジョブ識別子

ジョブ識別子

を割り当てました。

ルートジョブの環境ファイルの SPOOLJOB_CHILDJOB パラメーターにオペランドとして MERGE を指

定して起動された子孫ジョブの場合は出力されません。

(S)

処理を続行します。

KNAX0725-E

API でエラーが発生しました。("

API名称

", "

原因

", "

保守情報

")

API でエラーが発生しました。

(S)

処理を終了します。

(O)

原因

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連絡して

ください。

12. メッセージ

JP1/Advanced Shell

1222

KNAX0726-I

子孫ジョブのジョブ識別子を割り当てました。Jobid=

ジョブ識別子

子孫ジョブのジョブ識別子を割り当てました。

(S)

処理を続行します。

KNAX0727-E

子孫ジョブ起動順序管理ファイルの排他に失敗しました。reason=

エラー詳細

子孫ジョブ起動順序管理ファイルを排他しようとしましたが,失敗しました。

(S)

処理を終了します。

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。

システム管理者は,スプールジョブディレクトリ,またはスプールジョブディレクトリ内のファイルに

異常がないかどうかを見直してください。

KNAX0728-E

子孫ジョブ起動順序管理ファイルの形式不正を検出しました。

子孫ジョブ起動順序管理ファイルの形式不正を検出しました。

(S)

処理を終了します。

(O)

子孫ジョブ起動順序管理ファイルを不当に更新していないか見直してください。問題が解決しない場合

は,システム管理者に連絡してください。

システム管理者は,スプールジョブディレクトリ,またはスプールジョブディレクトリ内のファイルに

異常がないかどうかを見直してください。

12. メッセージ

JP1/Advanced Shell

1223

KNAX0800-E

スプールジョブ管理ファイルの作成に失敗しました。reason=

エラー詳細

スプールジョブ管理ファイルを作成しようとして,失敗しました。

(S)

処理を終了します。

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。システム管理者はスプールジョブディレクトリ,またはスプールジョブディレクトリ

内のファイルに異常がないか見直してください。

KNAX0801-E

スプールジョブ管理ファイルの排他に失敗しました。reason=

エラー詳細

スプールジョブ管理ファイルを排他しようとして,失敗しました。

SPOOL_DIR パラメーターに NFS 上のディレクトリを指定すると,このメッセージを出力してエラーと

なることがあります。SPOOL_DIR パラメーターには,NFS 上のディレクトリを指定しないでください。

(S)

処理を終了します。

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。システム管理者はスプールジョブディレクトリ,またはスプールジョブディレクトリ

内のファイルに異常がないか見直してください。

KNAX0802-E

スプールジョブ管理ファイルのオープンに失敗しました。reason=

エラー詳細

スプールジョブ管理ファイルをオープンしようとして,失敗しました。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1224

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。システム管理者はスプールジョブディレクトリ,またはスプールジョブディレクトリ

内のファイルに異常がないか見直してください。

KNAX0803-E

スプールジョブ管理ファイルで入出力エラーが発生しました。reason=

エラー詳細

スプールジョブ管理ファイルで入出力エラーが発生しました。

このメッセージは,エラーの通知先に出力しますが,エラー発生のタイミングによって,一部の出力先に

だけ出力されることがあります。

(S)

処理を終了します。

(O)

エラー詳細

に示される原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連

絡してください。システム管理者はスプールジョブディレクトリ,またはスプールジョブディレクトリ

内のファイルに異常がないか見直してください。

KNAX0804-E

スプールジョブ管理ファイルの STARTTIME に使用する現在時刻の取得に失敗しました。

スプールジョブ管理ファイルの STARTTIME に使用する現在時刻の取得に失敗しました。

(S)

処理を続行します。

(O)

システム管理者に連絡します。

KNAX0805-E

スプールジョブ管理ファイルの ENDTIME に使用する現在時刻の取得に失敗しました。

スプールジョブ管理ファイルの ENDTIME に使用する現在時刻の取得に失敗しました。

12. メッセージ

JP1/Advanced Shell

1225

(S)

処理を続行します。

(O)

システム管理者に連絡します。

KNAX1600-I

ジョブ名

バッチジョブのファイル割り当てを開始しました。

ジョブ名

で示すバッチジョブのファイルが割り当てられました。

(S)

処理を続行します。

KNAX1601-I

ジョブ名

.

ジョブステップ名

ジョブステップのファイル割り当てを開始しました。

ジョブ名

ジョブステップ名

で示すジョブステップのファイルが割り当てられました。

(S)

処理を続行します。

KNAX1604-I

後処理指定値によってファイル(

ファイルパス

)を削除しました。

後処理指定値によって

ファイルパス

に示すファイルを削除しました。

(S)

処理を続行します。

KNAX1605-I

後処理指定値によってファイル(

ファイルパス

)を削除しようとしましたが,エラーが発生しました。 reason="

エラー詳細

"

12. メッセージ

JP1/Advanced Shell

1226

後処理指定値によって

ファイルパス

を削除しようとしましたが,

エラー詳細

に示すエラーが発生しました。

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列。

(S)

処理を続行します。

KNAX1632-E

環境変数(

環境変数名

)の値が長すぎます。

環境変数名

で示す名称の環境変数を設定しようとして,値の長さが JP1/Advanced Shell で定められた上

限値を超えました。

(S)

処理を終了します。

(O)

環境ファイルで指定した環境変数値を修正して,バッチジョブを再実行します。

KNAX1871-E

コマンド(

コマンド名

)で指定されたファイルパスを絶対パスに変換して正規化する処理中にエラー

が発生しました。("

関数名

", "

原因

", "

保守情報

")

コマンド名

で示すコマンドで,指定されたファイルパスを絶対パスに変換して正規化する処理中にエラー

が発生しました。

関数名

が_fullpath の場合,コマンドで指定したパス名が長過ぎる場合に発生することがあります(このと

原因

は Invalid argument となることがあります)。

原因

表示される内容とその意味を次に示します。

原因

パス名に不当なマルチバイト文

字が含まれています。

パス構成要素が多過ぎます。

意味

【UNIX 限定】パス名に不当なマルチバイト文字が存在します。コマンドに指定したファイ

ルパスの指定を見直してください。

【UNIX 限定】パス名の構成要素が 4,096 を超えました。コマンドに指定したファイルパス

を見直してください。

12. メッセージ

JP1/Advanced Shell

1227

原因

File name too long errnoから求めたエラー理由

意味

【UNIX 限定】絶対パスへ変換したあとのファイルパス名長が上限を超えました。ファイル

パスの指定を見直してください。

• メモリ不足が発生しました。

• その他 OS の API 実行時にエラーが発生しました(getcwd,_fullpath でエラー)。

•【Windows 限定】

関数名

が「_fullpath」,

原因

が「Invalid argument」の場合は,絶対

パスへ変換したあとのファイルパス名長が上限を超えたことが考えられます。この場合

は,コマンドに指定したファイルパスの指定を見直してください。

保守情報

内部情報

(S)

処理を終了します。

(O)

関数名

原因

を基にエラー要因を取り除いて,コマンドを再実行してください。エラー要因を取り除け

ない場合はシステム管理者に連絡してください。

KNAX1872-E

コマンド(

コマンド名

)で指定されたファイルパスのチェックでエラーが発生しました。("

ファイル

パス

", "

原因

", "

保守情報

")

コマンド名

で示すコマンドの処理中に,指定した

ファイルパス

のチェックでエラーが発生しました。コマ

ンドに指定したファイルパスが使用できるか見直してください。

原因

システムが通知するエラー理由が表示されます。

保守情報

内部情報

(S)

処理を終了します。

(O)

エラー要因を取り除いて,コマンドを再実行してください。

エラー要因を取り除けない場合はシステム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1228

KNAX1873-E

コマンド(

コマンド名

)で指定されたファイルパスは,ディレクトリです。("

ファイルパス

", "

保守情

")

コマンド名

で示すコマンドで指定した

ファイルパス

はディレクトリです。

ファイルパスには通常のファイルを指定してください。

保守情報

内部情報

(S)

処理を終了します。

(O)

エラー要因を取り除いて,コマンドを再実行してください。

KNAX1875-E

コマンド(

コマンド名

)の処理中に予期しないエラーが発生しました。("

原因

", "

保守情報

")

コマンド名

で示すコマンドの処理中に予期しないエラーが発生しました。

原因

表示される内容とその意味を次に示します。

原因 意味

パス名を格納する領域が不足しました。 【UNIX 限定】パス名を格納する領域が不足しました。

_time64 関数でエラーが発生しました。 【Windows 限定】時刻を求める処理でエラーが発生しました。 clock_gettime 関数でエラーが発生しま

した。

【UNIX 限定】時刻を求める処理でエラーが発生しました。

【UNIX 限定】待ち処理でエラーが発生しました。 nanosleep 関数でエラーが発生しまし

た。

Invalid argument 引数が不正です。

保守情報

内部情報

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1229

KNAX1877-E

コマンド(

コマンド名

)が使用する環境変数,または環境変数の値が定義されていません。("

環境変

数名

", "

保守情報

")

環境変数名

に示す環境変数が存在しません。または,設定値の文字列長が 0 バイト以下です。

保守情報

内部情報

(S)

処理を終了します。

(O)

該当する環境変数を変更していないかジョブ定義スクリプトを確認してください。または,コマンドを

JP1/Advanced Shell 以外で起動していないか確認してください。

原因が不明の場合はシステム管理者に連絡してください。

KNAX1878-E

コマンド(

コマンド名

)が使用する割り当て管理ファイルの入出力でエラーが発生しました。("

ファ

イルパス

", "

原因

", "

保守情報

")

割り当て管理ファイルの入出力でエラーが発生しました。

ファイルパス

割り当て管理ファイルのファイルパス名が表示されます。

原因

表示される内容とその意味を次に示します。

原因

通常ファイルではありません。

ファイルが置き換わりました。 api名

error :

エラー詳細

意味

通常ファイルではありません。

オープン処理中にファイルが置き換わりました。 api名

で示す API の処理で,

エラー詳細

に示すエラーが発生しました。

エラー詳細

は API でセットされるエラー情報です。

保守情報

内部情報

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1230

(O)

エラー要因を取り除いて再実行してください。

原因が不明の場合はシステム管理者に連絡してください。

KNAX1879-E

コマンド(

コマンド名

)が登録できるファイル数の上限を超えました。("

保守情報

")

登録できるファイル数の上限である 64 個を超えました。

保守情報

内部情報

(S)

処理を終了します。

(O)

登録するファイルの数が上限数を超えないよう,ジョブ定義スクリプトを見直してください。

KNAX1880-E

コマンド(

コマンド名

)は現在の環境設定パラメーターの設定では使用できません。parameter="

境設定パラメーター

"

メッセージに表示されたコマンドは,現在の環境設定パラメーターの設定では使用できません。

コマンド名

コマンド名

環境設定パラメーター

要因となった環境設定パラメーターとその値

(S)

処理を終了します。

(O)

実行したコマンドは使用しないでください。このコマンドを使用したい場合は,環境設定パラメーター

の指定を見直してください。

12. メッセージ

JP1/Advanced Shell

1231

KNAX1890-I

ファイル割り当て処理指定("

処理指定値

")に従って解放しました。path=

ファイルパス

ファイルパス

に示すファイルを

処理指定値

に従って解放しました。

処理指定値

正常時・異常時のファイルの後処理の指定内容として,次のどちらかが表示されます。

・del:削除する

・keep:削除しない

(S)

処理を続行します。

KNAX1891-E

ファイルの後処理実行中に,割り当て管理ファイルの入出力でエラーが発生しました。("

ファイルパ

", "

原因

", "

保守情報

")

ファイルの後処理実行中に,割り当て管理ファイルの入出力でエラーが発生しました。

ファイルパス

割り当て管理ファイルのファイルパス名が表示されます。

原因

表示される内容とその意味を次に示します。

原因

通常ファイルではありません。

ファイルが置き換わりました。 api名

error :

エラー詳細

意味

通常ファイルではありません。

オープン処理中にファイルが置き換わりました。 api名

で示す API の処理で,

エラー詳細

に示すエラーが発生しました。

エラー詳細

は API でセットされるエラー情報です。

保守情報

内部情報

(S)

ジョブは終了します。

(O)

システム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1232

KNAX1892-E

予期しないエラーが発生しました。("

原因

", "

保守情報

")

予期しないエラーが発生しました。

原因

表示される内容とその意味を次に示します。

原因 意味

_time64 関数でエラーが発生しました。 【Windows 限定】時刻を求める処理でエラーが発生しました。 clock_gettime 関数でエラーが発生しま

した。

【UNIX 限定】時刻を求める処理でエラーが発生しました。 nanosleep 関数でエラーが発生しまし

た。

待ち処理でエラーが発生しました。

保守情報

内部情報

(S)

ジョブは終了します。

(O)

システム管理者に連絡してください。

KNAX1893-W

割り当て管理ファイル中に無効なエントリが存在したため,後処理をスキップしました。("

ファイル

パス

", "

保守情報

")

割り当て管理ファイル中に無効なエントリが存在したため, adshfile コマンドの後処理をスキップしまし

た。該当するジョブの adshfile コマンドで指定したファイルの後処理が実行されていないおそれがありま

す。

ファイルパス

割り当て管理ファイルのファイルパス名が表示されます。

保守情報

内部情報

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1233

(O) adshfile コマンドで削除を指定したファイルが残っている場合,必要に応じて手作業で削除してくださ

い。

KNAX1910-E

C-Time の計算結果が不当な結果となりました。

C-Time の計算結果が不当な結果となりました。

(S)

ジョブ実行ログへ出力する時刻を 0 とし,バッチジョブは続行します。

(O)

システム管理者に連絡します。

KNAX1911-E

E-Time の計算結果が不当な結果となりました。

E-Time の計算結果が不当な結果となりました。

(S)

ジョブ実行ログへ出力する時刻を 0 とし,バッチジョブは続行します。

(O)

システム管理者に連絡します。

KNAX2201-E

テキストが長いためすべてのテキストを出力できません。message number=

メッセージ番号

メッセージ番号

(KNAX に続く番号)で示すメッセージは,テキストが長いためすべてのテキストを出力

できません。

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1234

(O)

バッチジョブの動作に問題がないかどうかを確認します。必要な場合,ジョブ定義スクリプトを修正し

ます。

KNAX2202-E

ジョブ実行ログへの出力に失敗しました。message ID=

メッセージID

メッセージID

で示すメッセージは,ジョブ実行ログへの出力を失敗しました。

(S)

処理を続行します。

(O)

システム管理者に連絡します。スプールジョブディレクトリのアクセス権やディスクの状態などに異常

がないかどうかを見直してください。

KNAX2204-E

標準出力への出力に失敗しました。message ID=

メッセージID

メッセージID

で示すメッセージは,標準出力への出力に失敗しました。

(S)

処理を続行します。

(O)

システム管理者に連絡します。標準出力の出力先のアクセス権やディスクの状態などに異常がないかど

うかを見直してください。

KNAX2205-E

標準エラー出力への出力に失敗しました。message ID=

メッセージID

メッセージID

で示すメッセージは,標準エラー出力への出力に失敗しました。

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1235

(O)

システム管理者に連絡します。標準エラー出力の出力先のアクセス権やディスクの状態などに異常がな

いかどうかを見直してください。

KNAX2206-E

システム実行ログへの出力に失敗しました。message ID=

メッセージID

メッセージID

で示すメッセージは,システム実行ログへの出力に失敗しました。

(S)

処理を続行します。

(O)

システム管理者に連絡します。環境ファイルのシステム実行ログに対する指定,またはシステム実行ロ

グディレクトリのアクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2207-E

トレースへの出力に失敗しました。message ID=

メッセージID

メッセージID

で示すメッセージは,トレースへの出力に失敗しました。

(S)

処理を続行します。

(O)

システム管理者に連絡します。環境ファイルのトレースに対する指定,またはトレースディレクトリの

アクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2208-E

システム実行ログの初期化に失敗しました。code=

保守情報

, reason=

エラー原因

システム実行ログの初期化に失敗しました。

LOG_DIR パラメーターに NFS 上のディレクトリを指定すると,このメッセージを出力してエラーとなる

ことがあります。LOG_DIR パラメーターには,NFS 上のディレクトリを指定しないでください。

12. メッセージ

JP1/Advanced Shell

1236

(S)

処理を終了します。

(O)

システム管理者に連絡します。環境ファイルのシステム実行ログに対する指定,またはシステム実行ロ

グディレクトリのアクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2209-E

トレースの初期化に失敗しました。code=

保守情報

トレースの初期化に失敗しました。

TRACE_DIR パラメーターに NFS 上のディレクトリを指定すると,このメッセージを出力してエラーと

なることがあります。TRACE_DIR パラメーターには,NFS 上のディレクトリを指定しないでください。

(S)

処理を終了します。

(O)

システム管理者に連絡します。環境ファイルのトレースに対する指定,またはトレースディレクトリの

アクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2211-E

トレースの設定に誤りがあります。

トレースの設定に誤りがあります。

(S)

処理を終了します。

(O)

システム管理者に連絡します。環境ファイルのトレースに対する指定を見直してください。

KNAX2213-E

トレースの出力先の指定に誤りがあります。

トレースの出力先の指定に誤りがあります。

12. メッセージ

JP1/Advanced Shell

1237

(S)

処理を終了します。

(O)

システム管理者に連絡します。環境ファイルのトレースに対する指定,またはトレースディレクトリの

アクセス権やディスクの状態などに異常がないかどうかを見直してください。

KNAX2214-E

現在時刻の取得に失敗しました。

現在時刻の取得に失敗しました。

(S)

処理を終了します。

(O)

システム管理者に連絡します。

KNAX2400-E

初期化されていないためメッセージを出力できません。output=

出力先

, message ID=

メッセージID

, dest=

保守情報1

, setDest=

保守情報2

メッセージID

に示すメッセージを出力しましたが,初期化されていないため出力できません。

(S)

処理を続行します。

(O)

システム管理者に連絡します。

KNAX2499-E

未定義メッセージを出力しようとしました。message number="

メッセージ番号

"

メッセージ番号

で示すメッセージはマニュアルにありません。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1238

(O)

システム管理者に連絡します。

KNAX2500-E

コマンド名

コマンドの引数の数が不当です。 [filename="

ファイル名

" line=

行番号

]

コマンド名 で示すコマンドの引数の数が不当です。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルを修正してください。

KNAX2501-E

データの解析でエラーが発生しました。 [filename="

ファイル名

" line=

行番号

]

データの解析でエラーが発生しました。次の原因が考えられます。

CSVデータの場合

ダブルクォーテーションが閉じていません。

JSONデータの場合

• 入力データの形式が JSON の形式と一致していません。

• ダブルクォーテーションが閉じていません。

• ダブルクォーテーションで囲む必要のある値がダブルクォーテーションで囲まれていません。

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルまたはデータの内容を見直し,修正してください。

12. メッセージ

JP1/Advanced Shell

1239

KNAX3000-I

ユーザー応答機能管理デーモンが起動しました。

ユーザー応答機能管理デーモンが起動しました。

(S)

処理を続行します。

KNAX3001-I

ユーザー応答機能管理デーモンが停止しました。

ユーザー応答機能管理デーモンが停止しました。

(S)

処理を終了します。

KNAX3002-E

ユーザー応答機能管理デーモンの起動に失敗しました。[

詳細メッセージ

]

ユーザー応答機能管理デーモンの起動に失敗しました。

このメッセージは,エラー通知として出力できる出力先に出力されますが,エラー発生のタイミングによっ

ては,一部の出力先にだけ出力されることがあります。syslog への出力時には,[

詳細メッセージ

]にユー

ザー応答機能管理デーモンに関連するメッセージ(メッセージ番号 3000〜3999)のメッセージテキスト

が付与されることがあります。

(S)

処理を終了します。

(O)

エラーの原因を取り除き,ユーザー応答機能管理デーモンを再実行してください。

KNAX3003-E

ユーザー応答機能管理デーモンがエラー終了しました。[

詳細メッセージ

]

12. メッセージ

JP1/Advanced Shell

1240

ユーザー応答機能管理デーモンがエラー終了しました。または,終了処理中にエラーが発生しました。 syslog への出力時には,[

詳細メッセージ

]にユーザー応答機能管理デーモンに関連するメッセージ(メッ

セージ番号 3000〜3999)のメッセージテキストが付与されることがあります。

(S)

処理を終了します。

(O)

エラーの原因を取り除き,ユーザー応答機能管理デーモンを再実行してください。

KNAX3006-I

ユーザー応答機能管理デーモンが起動を開始しました。(pid=

PID

, uid=

UID

, gid=

GID

, username=

ユー

ザー名

)

ユーザー応答機能管理デーモンが起動を開始しました。

(S)

処理を終了します。

KNAX3008-W

ユーザー応答機能管理デーモンはプロセス ID=

PID

で動作していました。

前回,ユーザー応答機能管理デーモンがエラー終了したときのプロセス ID(

PID

)を表示します。

(S)

処理を続行します。

KNAX3009-E

ユーザー応答機能管理デーモンはすでに起動しています。

ユーザー応答機能管理デーモンはすでに起動しています。

このメッセージは,エラー通知として出力できる出力先に出力されますが,エラー発生のタイミングによっ

て,一部の出力先にだけ出力されることがあります。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1241

(O)

必要に応じて起動中のユーザー応答機能管理デーモンを終了し,再起動します。

KNAX3020-E

ユーザー応答機能管理デーモンでファイル操作エラーが発生しました。(

機能名

error

対象名

-

エラー

詳細

)

ユーザー応答機能管理デーモンでファイル操作エラーが発生しました。

機能名

対象名

,および

エラー詳細

は,エラー情報を示します。

このメッセージは,エラー通知として出力できる出力先に出力されますが,エラー発生のタイミングによっ

て,一部の出力先にだけ出力されることがあります。

(S)

処理を終了します。

(O)

エラー情報を調査してエラーの原因を取り除き,ユーザー応答機能管理デーモンを再実行します。

KNAX3023-E

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。(

機能名

error

対象名

-

エラー詳細

)

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。

機能名

対象名

,および

エラー詳細

は,エラー情報を示します。

このメッセージは,エラー通知として出力できる出力先に出力されますが,エラー発生のタイミングによっ

ては,一部の出力先にだけ出力されることがあります。

(S)

処理を終了します。

(O)

エラー情報を調査してエラーの原因を取り除き,ユーザー応答機能管理デーモンを再実行します。

12. メッセージ

JP1/Advanced Shell

1242

KNAX3024-E

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。(

機能名

error

対象名

)

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。

機能名

,および

対象名

は,エラー情報を示します。

(S)

処理を終了します。

(O)

エラー情報を調査してエラーの原因を取り除き,ユーザー応答機能管理デーモンを再実行します。

KNAX3025-E

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。(

機能名

error -

エラー詳細

)

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。

機能名

,および

エラー詳細

は,エラー情報を示します。

(S)

処理を終了します。

(O)

エラー情報を調査してエラーの原因を取り除き,ユーザー応答機能管理デーモンを再実行します。

KNAX3026-E

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。(

機能名

error)

ユーザー応答機能管理デーモンでシグナルエラーが発生しました。

機能名

は,エラー情報を示します。

(S)

処理を終了します。

(O)

エラー情報を調査してエラーの原因を取り除き,ユーザー応答機能管理デーモンを再実行します。

12. メッセージ

JP1/Advanced Shell

1243

KNAX3027-E

ユーザー応答機能管理デーモンでプロセスエラーが発生しました。(

機能名

error

対象名

-

エラー詳細

)

ユーザー応答機能管理デーモンでプロセスエラーが発生しました。

機能名

対象名

,および

エラー詳細

は,エラー情報を示します。

(S)

処理を終了します。

(O)

エラー情報を調査してエラーの原因を取り除き,ユーザー応答機能管理デーモンを再実行します。

機能名

はシステムの関数名を示します。システム関数のエラーメッセージからエラーの原因を調査して

ください。

KNAX3029-E

ユーザー応答機能管理デーモンでシステム関数エラーが発生しました。(

機能名

error -

エラー詳細

)

ユーザー応答機能管理デーモンでシステム関数エラーが発生しました。

機能名

,および

エラー詳細

は,エラー情報を示します。

このメッセージは,エラー通知として出力できる出力先に出力されますが,エラー発生のタイミングによっ

ては,一部の出力先にだけ出力されることがあります。

(S)

処理を終了します。

(O)

エラー情報を調査してエラーの原因を取り除き,ユーザー応答機能管理デーモンを再実行します。

KNAX3261-I

ユーザー応答機能管理デーモンが終了要求のシグナル(

シグナル名

)を受信しました。

ユーザー応答機能管理デーモンが

シグナル名

で示す終了要求のシグナルを受信しました。

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1244

KNAX3400-I

環境ファイルのチェックが正常に終了しました。

環境ファイルのチェックが正常に終了しました。

(S)

処理を続行します。

KNAX3402-E

環境ファイルのチェックでエラーが発生しました。

環境ファイルのチェックでエラーが発生しました。

エラーの内容はこのメッセージの前に出力されているメッセージを参照してください。

(S)

処理を終了します。

(O)

エラーの原因を取り除きます。

KNAX3508-I

ユーザー応答機能管理デーモンが adshread コマンドによる応答要求メッセージをキャンセルしまし

た。(

ジョブ識別子

,

行番号

,

ホスト名

)

ユーザー応答機能管理デーモンが adshread コマンドによる応答要求メッセージをキャンセルしました。

ジョブ識別子

JP1/Advanced Shell がバッチジョブに付与したジョブ識別子

行番号 adshread コマンドを発行したジョブ定義スクリプトの行番号

ホスト名

ユーザー応答機能管理デーモンが稼働しているホストの名称

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1245

KNAX3522-E

ユーザー応答機能管理デーモンで共有メモリエラーが発生しました。(

機能名

error -

エラー詳細

)

ユーザー応答機能管理デーモンで共有メモリエラーが発生しました。

機能名

,および

エラー詳細

は,エラー情報を示します。

(S)

処理を終了します。

(O)

エラー情報を調査してエラーの原因を取り除き,ユーザー応答機能管理デーモンを再実行してください。

機能名

はシステムの関数名を示します。システム関数のエラーメッセージからエラーの原因を調査して

ください。

KNAX3542-W

ユーザー応答機能管理デーモンはすでに作成されている共有メモリまたはセマフォ(

対象名

)を初期

化して使用します。

ユーザー応答機能管理デーモンに-f オプションが指定されたため,すでに作成されている共有メモリまた

はセマフォを初期化して使用します。

対象名

は,Shared memory object または Named semaphore です。

(S)

すでに作成されている共有メモリまたはセマフォを初期化して処理を続行します。

KNAX3700-I

The adshmd will now start.

ユーザー応答機能管理デーモンを起動します。

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1246

KNAX3701-I

The adshmd will now stop.

ユーザー応答機能管理デーモンを終了します。

(S)

処理を続行します。

KNAX3703-E

The adshmd is not running.

ユーザー応答機能管理デーモンが動作していません。

(S)

処理を終了します。

(O)

ユーザー応答機能管理デーモンが起動されているかどうかを確認してください。

KNAX3709-E

The adshmd could not start because another one is already running.

ユーザー応答機能管理デーモンはすでに動作しています。

(S)

処理を終了します。

(O)

必要に応じて起動中のユーザー応答機能管理デーモンを終了し,再起動してください。

KNAX3710-I

The adshmd is running.

ユーザー応答機能管理デーモンは動作しています。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1247

KNAX3711-I

The adshmd is not running.

ユーザー応答機能管理デーモンは動作していません。

(S)

処理を終了します。

KNAX3799-I

Usage

コマンド名

[-h LogicalHostName] {start [reuse]

| stop

| status

| conftest [EnvironFile]

| help} adshmdctl コマンドの使用方法を表示します。

(S)

処理を終了します。

KNAX3998-E

An error occurred during adshmd signal handler processing.

ユーザー応答機能管理デーモンでシグナルハンドラがエラー終了しました。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX3999-E

The adshmd ended abnormally because of an unexpected exception.

ユーザー応答機能管理デーモンがエラー終了しました。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1248

(O)

システム管理者に連絡してください。

KNAX4414-E

対象リストファイルに記述したスプールディレクトリのパス名の長さが正しくありません。 filename="

ファイル名

" line=

行番号

指定したスプールディレクトリのパス名の長さが正しくありません。

ファイル名

対象リストファイル名

行番号

エラーが発生した対象リストファイルの行番号

(S)

後続行の指定の処理を継続します。

(O)

対象リストファイルに指定したスプールディレクトリ名に誤りがないかどうかを見直して再実行します。

KNAX4415-E

対象リストファイルの記述形式が正しくありません。 filename="

ファイル名

" line=

行番号

対象リストファイルの記述形式が正しくありません。または,コマンドの引数に日数の指定がないときに

対象リストファイルに日数の指定がありません。

ファイル名

対象リストファイル名

行番号

エラーが発生した対象リストファイルの行番号

(S)

後続行の指定の処理を継続します。

(O)

対象リストファイルの指定が正しいかどうかを見直します。または,コマンドの引数に日数を指定しま

す。

12. メッセージ

JP1/Advanced Shell

1249

KNAX4416-E

対象リストファイルの 1 行の上限を超えています。 filename="

ファイル名

" line=

行番号

対象リストファイルの 1 行の上限を超えています。

ファイル名

対象リストファイル名

行番号

エラーが発生した対象リストファイルの行番号

(S)

処理を中断します。

(O)

対象リストファイルの指定が正しいかどうかを見直します。

KNAX4417-E

対象リストファイルの実体がオープン前とオープン後で異なります。 filename="

ファイル名

"

オープン前とオープン後でファイルの実体が異なります。

ファイル名

ファイル名

(S)

該当するファイルの処理は中断します。

(O)

ファイルに異常がないかどうかを確認します。

KNAX4418-E

対象リストファイルは通常のファイルではありません。 filename="

ファイル名

"

ファイルは通常のファイルでありません。

ファイル名

ファイル名

12. メッセージ

JP1/Advanced Shell

1250

(S)

該当するファイルの処理は中断します。

(O)

ファイルに異常がないかどうかを確認します。

KNAX4419-E

ファイルの入出力処理で障害が発生しました。path="

パス名

" error="

エラー詳細

"

ファイルの入出力処理で障害が発生しました。

パス名

パス名

このメッセージが出力される理由の一つとして,スプールのディレクトリの下に,ユーザーが独自に作成

したファイルやディレクトリなど,JP1/Advanced Shell が認識できないファイルが存在する可能性があ

ります。

(S)

該当するパスに対する処理を中断します。

(O)

該当するパスに異常がないかどうかを確認します。

KNAX4420-E

予期しない障害が発生しました。errinfo="

エラー詳細

,

内部情報

"

予期しない障害が発生しました(ログファイルまたはトレースファイルのオープン処理に失敗,時刻処理

で障害発生)。

(S)

スプールジョブ処理時はそのスプールジョブの処理を中断します。そのほかの場合はコマンドを終了し

ます。

(O)

動作環境に問題ないかどうかを確認します。

12. メッセージ

JP1/Advanced Shell

1251

KNAX4422-E

コマンドに必須のオペランド(

対象リストファイル名 | レポートファイル名 | ログファイル名

)が指

定されていません。

コマンドに必須のオペランドが指定されていません。

対象リストファイル名

対象リストファイル

レポートファイル名

レポートファイル

ログファイル名

ログファイル

(S)

コマンドを終了します。

(O)

必須のオペランドを指定してコマンドを再実行します。

KNAX4423-E

コマンドに指定した日数の形式が正しくありません。

コマンドに指定した日数の形式が正しくありません。

(S)

コマンドを終了します。

(O)

正しく指定してコマンドを再実行します。

KNAX4424-E

バッチジョブの実行開始日付が求まらないため,スプールジョブは削除されていません。path="

プールジョブディレクトリ名

"

バッチジョブの実行開始日付が求まらないため,スプールジョブは削除されていません。スプールジョブ

を管理するファイルが破壊されている場合があります。

12. メッセージ

JP1/Advanced Shell

1252

スプールジョブディレクトリ名

異常があったスプールジョブディレクトリ名

(S)

該当するスプールジョブは削除しないで,処理を続行します。

(O)

必要な場合,手作業で該当するスプールジョブを削除します。

KNAX4425-E

別のプログラムで使用中のため処理できませんでした。path="

スプールディレクトリ名

"

スプールジョブディレクトリ名

で示すスプールディレクトリは,別のプログラムで使用中のため処理でき

ませんでした。

(S)

該当するスプールジョブを処理しないで,処理を続行します。

(O)

時間を置いて,該当するスプールディレクトリが別のプログラムで処理中でないことを確認し,再実行

してください。

KNAX4427-W

不当なスプールジョブディレクトリが存在しましたが,そのディレクトリの処理をスキップしました。

不当なスプールジョブディレクトリが存在しましたが,そのディレクトリは処理をスキップしました。

実行が完了したジョブのスプールジョブディレクトリ名が,次の形式になっていません。

ジョブ識別子

-

ジョブ名

ジョブ識別子

-

このメッセージは,スプールディレクトリ下に次の条件に該当する不当な名称のディレクトリまたはファ

イルが存在した場合に出力されます。

• 名称の長さが 5 バイト以下である。

• 名称の 7 バイト目が「-」でない。

• 名称のジョブ名部分が 32 バイト以上である。

12. メッセージ

JP1/Advanced Shell

1253

ただし,JP1/Advanced Shell が管理するファイル(UNIX では.jobid,Windows では adsh.jobid)は

該当しません。また,ジョブ識別子だけ(名称の長さが 6 バイト)の場合は実行中のジョブのため,該当

しません。

(S)

処理を継続します。

(O)

不当なディレクトリまたはファイルは手作業で削除してください。

KNAX4428-I

スプールジョブを削除しました。path="

パス名

"

スプールジョブを削除しました。

パス名

スプールジョブディレクトリ名

(S)

処理を継続します。

KNAX4429-E

コマンド実行中にエラーが発生しました。

コマンド実行中にエラーが発生しました。

(S)

処理を継続します。

(O)

ログファイル,レポートファイルまたは標準エラー出力に出力されたメッセージを見て,エラー内容を

確認します。必要に応じて障害を取り除いてコマンドを再実行します。

KNAX5300-I

Usage:

コマンド名

[-jbspglogicalhost LogicalHostName]

アダプタコマンドの引数が誤っています。

12. メッセージ

JP1/Advanced Shell

1254

(S)

処理を終了します。

KNAX5301-E

No value is specified for the option "

オプション名

".

アダプタコマンドのオプションの指定値が誤っています。

オプション名

アダプタコマンドのオプション名

(S)

処理を終了します。

KNAX5305-E

The specified argument "

引数

" is invalid.

アダプタコマンドに不正な

引数

を指定しました。

引数

アダプタコマンドのオプション名

(S)

処理を終了します。

KNAX5308-E

An API error occurred. (maintenance information=

保守情報

, details=

エラー詳細

)

アダプタコマンドで API エラーが発生しました。

保守情報

および

エラー詳細

はエラー情報を示します。

(S)

処理を終了します。

(O)

保守情報

が sem_open の場合は,次のどちらかの環境不正が考えられます。

12. メッセージ

JP1/Advanced Shell

1255

• ユーザー応答機能管理デーモン・サービスが起動されていない。

ユーザー応答機能管理デーモン・サービスを起動してください。

起動できない要因が判明している場合は,その要因を取り除いて再起動してください。

起動できない要因が不明な場合は,システム管理者に連絡してください。

• ユーザー応答機能管理サービスが登録されていない(Windows の場合)。

サービスの登録手順に従ってユーザー応答機能管理サービスを登録し起動してください。

サービスが登録できないか,登録はできたが起動ができない場合は,要因が判明しているときはそ

の要因を取り除き,登録または起動してください。

登録できない,または起動できない要因が不明な場合,システム管理者に連絡してください。

保守情報

が sem_open 以外の場合は,システム管理者に連絡してください。

KNAX5309-E

An internal error occurred.

内部エラーが発生しました。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX5323-E

A signal error occurred. (function=

機能名

, target=

対象名

, details=

エラー詳細

)

アダプタコマンドでシグナルエラーが発生しました。

機能名

対象名

,および

エラー詳細

はエラー情報を示します。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1256

KNAX5340-E

You do not have permission to execute the command

コマンド名

.

アダプタコマンドに対する実行権限がありません。

このコマンドは,Administrators 権限のユーザーで実行する必要があります。

(S)

処理を終了します。

(O)

アダプタコマンドは,JP1/Base のプラグインサービスから起動されるプログラムです。プラグイン

サービスとして起動されてこのメッセージが出力された場合は,JP1/Base の設定を見直してください。

KNAX5350-E

The request header is invalid.

アダプタコマンドに渡されるリクエストヘッダが不正です。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX5360-E

The request data is invalid.

アダプタコマンドに渡されるリクエストデータが不正です。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1257

KNAX5361-E

Failed to get the identifier.

アダプタコマンドに渡されるリクエストデータ中のインジケータの取得に失敗しました。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX5362-E

The response contains one or more non-ASCII characters.

JP1/IM - View の[応答入力]画面から応答入力した内容に ASCII 文字以外のデータが含まれています。

(S)

処理を終了します。

(O)

応答入力の内容に ASCII 文字列を指定して再度応答してください。

KNAX5371-E

The userreply function is busy.

JP1/Advanced Shell の処理がビジーです。

(S)

処理を終了します。

(O)

時間を置いて再度応答要求メッセージに応答してください。

KNAX5372-E

The message is not found.

応答要求メッセージが存在しません。次の要因が考えられます。

12. メッセージ

JP1/Advanced Shell

1258

• ユーザー応答機能管理デーモン・サービスが起動していません。

• JP1/Base の論理ホストに関する設定に誤りがあります。

なお,adshchmsg コマンドで応答待ちメッセージに代理応答した場合,タイミングによってはこのメッ

セージが出力されることがあります。この場合,対処は不要です。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX5380-I

The following data was received:

受信データ

ユーザー応答機能で,JP1 からメッセージを受信しました。

(S)

処理を続行します。

KNAX5381-I

The following information was sent:

送信データ

ユーザー応答機能で,JP1 にメッセージを送信しました。

(S)

処理を続行します。

KNAX5396-I adshuserreply.adapter completed because signal is detected.

アダプタコマンドが終了シグナルを受信して終了しました。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1259

KNAX5397-I

Signal handler processing completed.

アダプタコマンドがシグナルを受信しました。

(S)

処理を終了します。

(O) core が出力されています。システム管理者に連絡してください。

KNAX5398-E

An error occurred during adshuserreply.adapter signal handler processing.

アダプタコマンドがシグナルを受信しましたが,シグナルハンドラの処理でエラーが発生しました。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX5399-E

The adshuserreply.adapter ended abnormally because of an unexpected exception.

アダプタコマンドがエラー終了しました。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX5407-E

応答内容(-r オプションに指定した値)に ASCII 文字以外を指定しています。

12. メッセージ

JP1/Advanced Shell

1260

adshchmsg コマンドの-r オプション(応答内容)に ASCII 文字以外を指定しています。

(S)

処理を終了します。

(O) adshchmsg コマンドの-r オプションに ASCII 文字列を指定して,再度応答してください。

KNAX5409-E

指定された応答要求メッセージは存在しません。 adshchmsg コマンドで,-n オプションに指定した応答要求メッセージ番号に対する応答入力,または,

応答要求メッセージのキャンセルを行おうとしましたが,指定された応答要求メッセージは存在しません。

(S)

処理を終了します。

(O)

次の点を確認してください。

• -n オプションに指定した応答要求メッセージ番号に誤りがないか。

• -n オプションに指定した応答要求メッセージ番号が adshlsmsg コマンドで表示されているか。

なお,指定した番号に誤りがなく,adshlsmsg コマンドを実行しても表示されない場合は,すでに応

答入力が行われている可能性があります。

KNAX5410-E

API エラーが発生しました。(

保守情報

error -

エラー詳細

) adshchmsg コマンドまたは adshlsmsg コマンドで,API エラーが発生しました。

保守情報

および

エラー詳細

はエラー情報を示します。

(S)

処理を終了します。

(O)

保守情報

が sem_open の場合は,次のどちらかの環境不正が考えられます。

• ユーザー応答機能管理デーモン・サービスが起動されていない。

ユーザー応答機能管理デーモン・サービスを起動してください。

12. メッセージ

JP1/Advanced Shell

1261

起動できない要因が判明している場合は,その要因を取り除いて再起動してください。

起動できない要因が不明な場合は,システム管理者に連絡してください。

• ユーザー応答機能管理サービスが登録されていない(Windows の場合)。

サービスの登録手順に従ってユーザー応答機能管理サービスを登録し起動してください。

サービスが登録できないか,登録はできたが起動ができない場合は,要因が判明しているときはそ

の要因を取り除き,登録または起動してください。

登録できない,または起動できない要因が不明な場合,システム管理者に連絡してください。

保守情報

が sem_open 以外の場合は,システム管理者に連絡してください。

KNAX5423-E

シグナルエラーが発生しました。(

機能名

error

対象名

-

エラー詳細

) adshchmsg コマンドまたは adshlsmsg コマンドで,シグナルエラーが発生しました。

機能名

対象名

,および

エラー詳細

はエラー情報を示します。

(S)

処理を終了します。

(O)

エラー情報を調査して原因を取り除き,再度実行してください。

KNAX5424-E

シグナルエラーが発生しました。(

機能名

error

対象名

) adshchmsg コマンドまたは adshlsmsg コマンドで,シグナルエラーが発生しました。

機能名

および

対象名

はエラー情報を示します。

(S)

処理を終了します。

(O)

エラー情報を調査して原因を取り除き,再度実行してください。

12. メッセージ

JP1/Advanced Shell

1262

KNAX5425-E

シグナルエラーが発生しました。(

機能名

error -

エラー詳細

) adshchmsg コマンドまたは adshlsmsg コマンドで,シグナルエラーが発生しました。

機能名

および

エラー詳細

はエラー情報を示します。

(S)

処理を終了します。

(O)

エラー情報を調査して原因を取り除き,再度実行してください。

KNAX5426-E

シグナルエラーが発生しました。(

機能名

error) adshchmsg コマンドまたは adshlsmsg コマンドで,シグナルエラーが発生しました。

機能名

はエラー情報を示します。

(S)

処理を終了します。

(O)

エラー情報を調査して原因を取り除き,再度実行してください。

KNAX5429-E

内部エラーが発生しました。(

保守情報

) adshchmsg コマンドまたは adshlsmsg コマンドで,内部エラーが発生しました。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1263

KNAX5440-E

Administrators 権限がないためコマンド(

コマンド名

)を実行できません。

コマンド名

で示すコマンドに対する実行権限がありません。

このコマンドは,Administrators 権限のユーザーで実行する必要があります。

(S)

処理を終了します。

(O)

Administrators 権限のユーザーで実行してください。

KNAX5498-E

An error occurred during

コマンド名

signal handler processing.

adshchmsg コマンドまたは adshlsmsg コマンドのシグナルハンドラの処理で,エラーが発生しました。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX5499-E

The

コマンド名

ended abnormally because of an unexpected exception.

adshchmsg コマンドまたは adshlsmsg コマンドがエラー終了しました。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1264

KNAX6000-E

指定した組み込みコマンド("

コマンド名

")はサポートされていません。 [filename="

ファイル名

" line=

行番号

]

JP1/Advanced Shell ではサポートしない組み込みコマンドを指定しました。

コマンド名

JP1/Advanced Shell ではサポートしない組み込みコマンド名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

エラーとなった個所を見直し,ジョブ定義スクリプトを修正します。

KNAX6001-E

指定したシェルオプション("

シェルオプション名

")はサポートされていません。 [filename="

ファイ

ル名

" line=

行番号

]

JP1/Advanced Shell ではサポートしないシェルオプションを指定しました。

シェルオプション名

JP1/Advanced Shell ではサポートしないシェルオプション名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

エラーとなった個所を見直し,ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1265

KNAX6002-E

指定したシェル変数名("

シェル変数名

")は使用できません。 [filename="

ファイル名

" line=

行番号

]

JP1/Advanced Shell では使用できないシェル変数名を指定しました。

シェル変数名

JP1/Advanced Shell では使用できないシェル変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

エラーとなったシェル変数名を別のシェル変数名に修正します。

KNAX6003-E

変数名("

変数名

")に不当な文字が指定されています。 [filename="

ファイル名

" line=

行番号

]

変数名に不当な文字が指定されています。

変数名

不当と判断した変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所がシェル拡張コマンド,正規組み込みコマンド,および typeset コマンドの場合,

処理を継続します。それ以外の場合,処理を終了します。

(O)

エラーとなった変数名を別の変数名に修正します。

12. メッセージ

JP1/Advanced Shell

1266

KNAX6004-E

不当な数値("

不当な値または数値以外の値

")です。 [filename="

ファイル名

" line=

行番号

]

次のどれかの要因が考えられます。

• 整数型の変数に文字を代入しようとしました。

• 数値を指定しなければならない引数に文字を指定しました。

• 数値として不当な値を指定しました。

不当な値または数値以外の値

不当と判断した値または数値以外の値

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所がシェル拡張コマンド,正規組み込みコマンド,および typeset コマンドの場合,

処理を継続します。それ以外の場合,処理を終了します。

(O)

エラーとなった個所が代入式の場合,代入する変数の属性,または代入する値を見直し,ジョブ定義ス

クリプトを修正します。コマンドの場合,引数に指定した内容を見直し,ジョブ定義スクリプトを修正

します。

KNAX6005-E

コマンドに指定した引数が多すぎます。 [filename="

ファイル名

" line=

行番号

]

コマンドに指定した引数が多過ぎます。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が正規組み込みコマンドの場合,処理を継続します。それ以外の場合,処理を終了

します。

12. メッセージ

JP1/Advanced Shell

1267

(O)

エラーとなった個所のコマンドの引数を見直し,ジョブ定義スクリプトを修正します。

KNAX6006-E

置換の指定が誤っています。 [filename="

ファイル名

" line=

行番号

]

置換の指定が誤っています。または,cd コマンドの引数に,"カレントディレクトリパス名"に含まれない

文字列を指定しています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が cd コマンドの場合,処理を継続します。それ以外の場合,処理を終了します。

(O)

エラーとなった個所の変数置換,コマンド置換または引数の指定を見直し,ジョブ定義スクリプトを修

正します。

KNAX6007-E

配列("

配列名

")の要素番号が範囲外です。 [filename="

ファイル名

" line=

行番号

]

配列の要素番号が範囲外です。

配列名

指定された配列名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所がシェル拡張コマンドの場合,処理を継続します。それ以外の場合,処理を終了し

ます。

12. メッセージ

JP1/Advanced Shell

1268

(O)

配列の要素番号を 0 から 65535 までの範囲で指定するようにジョブ定義スクリプトを修正してくださ

い。

環境設定パラメーター VAR_SHELL_FUNCINFO に TYPE_A または TYPE_B を指定している場合

は,関数のネストが配列の要素数の上限を超えているため,環境設定パラメーター

VAR_SHELL_FUNCINFO に NONE を指定するか,ジョブ定義スクリプトを修正してください。

KNAX6008-E

読み込み専用属性の変数("

変数名

")に値を代入しようとしました。 [filename="

ファイル名

" line=

行番号

]

読み込み専用属性の変数に値を代入しようとしました。

変数名

指定された変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が次のどれかのコマンドの場合,各コマンドの終了コードを設定し処理を継続しま

す。

• シェル拡張コマンド

• 正規組み込みコマンド

• typeset コマンド

配列として定義した変数を typeset コマンドで読み込み専用属性に設定した状態で,同一変数に要

素番号を指定しないで値を代入するよう指定した場合,このエラーが発生し代入処理は実行されま

せん。ただし,代入式は終了コード 0 を設定し処理を継続します。

それ以外の場合,処理を終了します。

(O)

エラーとなった個所の変数の属性または変数名を見直し,ジョブ定義スクリプトを修正してください。

KNAX6009-E

"

オプション

" は無効なオプションです。 [filename="

ファイル名

" line=

行番号

]

12. メッセージ

JP1/Advanced Shell

1269

コマンドに不当なオプションを指定しました。

オプション

コマンドに指定されたオプション

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所がシェル拡張コマンド,正規組み込みコマンド,および typeset コマンドの場合,

処理を継続します。それ以外の場合,処理を終了します。

(O)

コマンドに指定しているオプションの内容を見直し,ジョブ定義スクリプトを修正します。

KNAX6010-E

"

シェルオプション

" は無効なオプションです。 [filename="

ファイル名

" line=

行番号

] set コマンドで不当なシェルオプションを指定しました。

シェルオプション

指定されたシェルオプション

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O) set コマンドに指定しているオプションの内容を見直し,ジョブ定義スクリプトを修正します。

KNAX6011-E

不当なシグナル("

シグナル番号または名称

")を指定しました。 [filename="

ファイル名

" line=

行番

]

12. メッセージ

JP1/Advanced Shell

1270

不当な

シグナル番号または名称

を指定しました。

シグナル番号または名称

指定されたシグナル番号または名称

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が正規組み込みコマンドの場合,処理を継続します。それ以外の場合,処理を終了

します。

(O)

コマンドに指定しているシグナル番号またはシグナル名称を見直し,ジョブ定義スクリプトを修正しま

す。

KNAX6012-E

不当なマスク("

マスク

")を指定しました。 [filename="

ファイル名

" line=

行番号

]

不当なマスクを指定しました。

マスク

指定されたマスク

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

コマンドに指定しているマスクの内容を見直し,ジョブ定義スクリプトを修正します。

KNAX6013-E

上限値の変更に失敗しました。details="

エラー詳細

" [filename="

ファイル名

" line=

行番号

]

12. メッセージ

JP1/Advanced Shell

1271

エラー詳細

で示すエラーが発生したため,上限値の変更に失敗しました。

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6014-E

値が設定されていない変数("

変数名

")を指定しました。 [filename="

ファイル名

" line=

行番号

] nounset シェルオプションを有効にした状態で,値が設定されていない変数を指定しました。

変数名

指定された変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O) nounset シェルオプションの設定が必要であるかどうかを見直します。必要な場合,変数を使用すると

きに値を代入するようジョブ定義スクリプトを修正します。

KNAX6015-E

引数が必要な組み込みコマンドに対して,引数を指定しないで実行しました。 [filename="

ファイル

" line=

行番号

]

12. メッセージ

JP1/Advanced Shell

1272

引数が必要な組み込みコマンドに対して,引数を指定しないで実行しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が正規組み込みコマンドの場合,処理を継続します。それ以外の場合,処理を終了

します。

(O)

エラーとなった個所のコマンドの指定内容を見直し,ジョブ定義スクリプトを修正します。

KNAX6016-E

オプション("

オプション

")の値を指定しないでコマンドを実行しました。 [filename="

ファイル名

" line=

行番号

]

オプションの値を指定しないでコマンドを実行しました。

オプション

指定されたオプション

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所がシェル拡張コマンド,正規組み込みコマンドの場合,処理を継続します。それ以

外の場合,処理を終了します。

(O)

エラーとなった個所のコマンドの指定内容を見直し,ジョブ定義スクリプトを修正します。

KNAX6017-E

項目("

項目名

")の指定が誤っています。 [filename="

ファイル名

" line=

行番号

]

制御文の指定が誤っています。

12. メッセージ

JP1/Advanced Shell

1273

項目名

構文不正となった項目名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が正規組み込みコマンドの場合,処理を継続します。それ以外の場合,処理を終了

します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6018-E

制御文中の項目("

項目名

")の対応が誤っています。 [filename="

ファイル名

" line=

行番号

]

制御文で必要な項目名の対応が誤っています。

項目名

構文不正となった項目名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6019-E

構文の解析中に不当な EOF を検出しました。 [filename="

ファイル名

" line=

行番号

]

制御文の指定が誤っています。

12. メッセージ

JP1/Advanced Shell

1274

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6020-E

不当なディレクトリパス("

ディレクトリパス

")が指定されました。 [filename="

ファイル名

" line=

行番号

]

不当なディレクトリパスが指定されました。

ディレクトリパス

指定されたディレクトリパス

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

ディレクトリを移動しないで処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6021-E

ヒアドキュメントでリダイレクトの指定が誤っています。 [filename="

ファイル名

" line=

行番号

]

ヒアドキュメントでリダイレクトの指定が誤っています。

ファイル名

ジョブ定義スクリプトファイル名

12. メッセージ

JP1/Advanced Shell

1275

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6022-E

リダイレクトの指定が多過ぎます。 [filename="

ファイル名

" line=

行番号

]

リダイレクトの指定が多過ぎます。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6023-W

ループ外で {break

| continue} コマンドを実行しました。 [filename="

ファイル名

" line=

行番号

]

ループ外で break コマンドまたは continue コマンドを実行しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1276

KNAX6024-E

関数の定義で不当な関数名("

関数名

")を指定しました。 [filename="

ファイル名

" line=

行番号

]

関数の定義で不当な関数名を指定しました。

関数名

指定された関数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6025-E

"

ファイル名,コマンド名または関数名

" が見つかりません。 [filename="

ファイル名

" line=

行番号

]

特定できない

ファイル名,コマンド名または関数名

を指定しました。

ファイル名,コマンド名または関数名

指定されたファイル名,コマンド名または関数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が.(ドット)コマンドの場合,処理を終了します。それ以外の場合,処理を継続

します。

(O)

指定したファイル名,コマンド名および関数名が正しいかどうかを見直し,ジョブ定義スクリプトを修

正します。

12. メッセージ

JP1/Advanced Shell

1277

KNAX6026-E

指定されたコマンド("

コマンド名

")が実行できません。reason="

エラー詳細

" [filename="

ファイル

" line=

行番号

]

エラー詳細

で示すエラーが発生したため,指定されたコマンドが実行できません。

コマンド名

指定されたコマンド名

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

指定されたコマンドを実行しないで処理を継続します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6027-W

{break

| continue} コマンドの引数に指定した値がループのネスト数(

ループのネスト数

)を超えてい

ます。 [filename="

ファイル名

" line=

行番号

] break,continue コマンドの引数に指定した値がループのネスト数よりも多いです。

ループのネスト数

ループの処理を抜けたとき(break コマンド)またはループの処理を中断して先頭に戻ったとき

(continue コマンド)のループのネスト数

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

ループのネスト数分だけ break コマンドまたは continue コマンドを実行し,処理を継続します。

12. メッセージ

JP1/Advanced Shell

1278

(O) break コマンドまたは continue コマンドの引数を見直し,ジョブ定義スクリプトを修正します。

KNAX6028-E builtin コマンドに組み込みコマンド以外のコマンド("

コマンド名

")を指定しました。

[filename="

ファイル名

" line=

行番号

] builtin コマンドに組み込みコマンド以外のコマンドを指定しました。

コマンド名

指定されたコマンド名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O) builtin コマンドに指定したコマンドの引数を見直し,ジョブ定義スクリプトを修正します。

KNAX6029-E

バックグラウンドプロセスがすでに実行されています。 [filename="

ファイル名

" line=

行番号

]

バックグラウンドプロセスがすでに実行されています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1279

KNAX6030-E

ディレクトリを移動できません。

ディレクトリパス名

-

エラー詳細

. [filename="

ファイル名

" line=

番号

]

ディレクトリを移動できません。

ディレクトリパス名

指定されたディレクトリパス名

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

ディレクトリを移動しないで処理を継続します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6031-E

シェル変数 HOME が設定されていないため,ディレクトリを移動できません。 [filename="

ファイル

" line=

行番号

]

シェル変数 HOME が設定されていないため,ディレクトリを移動できません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

ディレクトリを移動しないで処理を継続します。

(O)

シェル変数 HOME にホームディレクトリを指定し,ジョブ定義スクリプトを再実行します。

12. メッセージ

JP1/Advanced Shell

1280

KNAX6032-E

シェル変数 OLDPWD が設定されていないため,ディレクトリを移動できません。 [filename="

ファ

イル名

" line=

行番号

]

シェル変数 OLDPWD が設定されていないため,ディレクトリを移動できません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

ディレクトリを移動しないで処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6033-E

カレントディレクトリを特定できないため,ディレクトリを移動できません。 [filename="

ファイル

" line=

行番号

]

カレントディレクトリを特定できないため,ディレクトリを移動できません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

ディレクトリを移動しないで処理を継続します。

(O)

ジョブ定義スクリプトを再実行します。

KNAX6034-E

バックグラウンドプロセスが存在しない状態で実行しました。 [filename="

ファイル名

" line=

行番号

]

バックグラウンドプロセスがない状態で実行しました。

12. メッセージ

JP1/Advanced Shell

1281

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6035-E

不当なファイル識別子("

ファイル識別子

")を指定しています。reason="

エラー詳

" [filename="

ファイル名

" line=

行番号

]

不当なファイル識別子を指定しています。

ファイル識別子

指定されたファイル識別子

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6036-E

不当なプロセス ID("

プロセスID

")を指定しています。 [filename="

ファイル名

" line=

行番号

]

プロセス ID に不当な値を指定しています。

12. メッセージ

JP1/Advanced Shell

1282

プロセスID

指定されたプロセス ID

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

正規組み込みコマンドの場合,処理を継続します。特殊組み込みコマンドの場合,処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6037-E

オプションを指定しないで getopts コマンドを実行しています。 [filename="

ファイル名

" line=

行番号

]

オプションを指定しないで getopts コマンドを実行しています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6038-E name を指定しないで getopts コマンドを実行しています。 [filename="

ファイル名

" line=

行番号

] name を指定しないで getopts コマンドを実行しています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

12. メッセージ

JP1/Advanced Shell

1283

(S)

処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6039-E shift コマンドの引数にコマンドライン引数の数よりも大きい値を指定しています。 [filename="

ファ

イル名

" line=

行番号

]

コマンドラインの引数の数よりも指定された引数の方が大きい状態で shift コマンドを実行しています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O) shift コマンドに指定した引数,またはコマンドライン引数の数を見直し,必要な場合,ジョブ定義ス

クリプトを修正します。

KNAX6040-E

]の対応が誤っています。 [filename="

ファイル名

" line=

行番号

]

"]"の対応が誤っています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が正規組み込みコマンドの場合,処理を継続します。それ以外の場合,処理を終了

します。

12. メッセージ

JP1/Advanced Shell

1284

(O)

ジョブ定義スクリプトを修正します。

KNAX6041-E

指定された test コマンドまたは条件式に誤りがあります。 [filename="

ファイル名

" line=

行番号

]

指定された test コマンドまたは条件式に誤りがあります。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S) test コマンドの場合,処理を継続します。条件式の場合,処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6042-E

読み込み専用属性の変数を算術式に指定しています。 [filename="

ファイル名

" line=

行番号

]

読み込み専用属性の変数を算術式に指定しています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

算術式は処理しないで処理を継続します。

(O)

算術式で使用している変数の属性を見直し,ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1285

KNAX6043-W

別プロセスで実行するコマンドが指定されていません。 [filename="

ファイル名

" line=

行番号

]

別プロセスで実行するコマンドが指定されていません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6044-E

シェル変数 FPATH に指定されたディレクトリに関数("

関数名

")の定義ファイルが見つかりません。

[filename="

ファイル名

" line=

行番号

]

FPATH シェル変数にディレクトリが指定されていません。または,FPATH シェル変数に指定されたディ

レクトリに関数定義ファイルが見つかりません。

関数名

関数名

ファイル名

スクリプトファイル名

行番号

エラーが発生したスクリプトファイルの行番号

(S)

処理を継続します。

(O)

関数定義ファイルを格納したディレクトリが FPATH シェル変数に指定されているか確認してください。

指定されている場合は,実行しようとした関数名が正しいか,FPATH シェル変数に指定されたディレ

クトリ内に実行しようとした関数の関数定義ファイルが存在するかを確認してください。

12. メッセージ

JP1/Advanced Shell

1286

KNAX6045-E

関数("

関数名

")の定義ファイルをオープンできません。 [filename="

ファイル名

" line=

行番号

]

関数定義ファイルをオープンできません。

関数名

関数名

ファイル名

スクリプトファイル名

行番号

エラーが発生したスクリプトファイルの行番号

(S)

処理を継続します。

(O)

FPATH シェル変数に指定されたディレクトリと,実行しようとした関数の関数定義ファイルの権限を

確認してください。

KNAX6046-E

関数("

関数名

")が関数定義ファイル("

関数定義ファイル名

")内に定義されていません。 [filename="

ファイル名

" line=

行番号

]

関数が関数定義ファイル内に定義されていません。

関数名

関数名

関数定義ファイル名

実行しようとした関数を定義する関数定義ファイル名

ファイル名

スクリプトファイル名

行番号

エラーが発生したスクリプトファイルの行番号

(S)

処理を継続します。

(O)

実行しようとした関数名と,関数定義ファイルに定義されている関数名が正しいか確認してください。

12. メッセージ

JP1/Advanced Shell

1287

KNAX6047-E

上限値に不当な値("

上限値

")を指定しています。 [filename="

ファイル名

" line=

行番号

]

上限値に不当な値を指定しています。

上限値

指定されたオプション

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

上限値を変更しないで処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6048-E ulimit コマンドでハードリミットを変更する際にエラーが発生しました。 [filename="

ファイル名

" line=

行番号

] ulimit コマンドでリソースのハードリミットを変更する際に,エラーが発生しました。このメッセージは

次のどちらかの場合に出力されます。

• ハードリミットを変更する権限があり,かつシステムで設定できない値を指定した。

• ハードリミットを変更する権限がなく,かつ設定されているハードリミットを超える値を指定した。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

上限値を変更しないで処理を継続します。ただし,変更するリソースによっては,システムで設定でき

ない値を指定すると,実行環境や OS によって異なる値が設定される場合があります。

(O)

原因に応じて次のように対処したのち,ジョブ定義スクリプトを再実行します。

12. メッセージ

JP1/Advanced Shell

1288

• ハードリミットを変更する権限があり,かつシステムで設定できない値を指定した場合 ulimit コマンドの引数をシステムで設定できる値に変更してください。

• ハードリミットを変更する権限がなく,かつ設定されているハードリミットを超える値を指定した

場合

実行ユーザーに管理者権限を割り当て,ulimit コマンドの引数をシステムで設定できる値に変更し

てください。ハードリミットを減少させる場合は,管理者権限は必要ありません。

KNAX6049-E ulimit コマンドに指定された資源は変更できません。 [filename="

ファイル名

" line=

行番号

] ulimit コマンドに指定された資源は変更できません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

上限値を変更しないで処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6050-E

未作成,または値が設定されていない変数("

変数名

")を変数置換に指定しています。

[filename="

ファイル名

" line=

行番号

]

未作成,または値が設定されていない変数を変数置換に指定しています。

変数名

指定された変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

12. メッセージ

JP1/Advanced Shell

1289

(S)

処理を終了します。

(O)

変数置換に指定した変数名を見直し,必要な場合,ジョブ定義スクリプトを修正します。

KNAX6051-E

コマンド置換で指定されたリダイレクト指定内容("

リダイレクト指定内容

")が誤っています。

[filename="

ファイル名

" line=

行番号

]

コマンド置換で指定された

リダイレクト指定内容

が誤っています。

リダイレクト指定内容

指定されたリダイレクト指定内容

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6052-E

コマンド置換で指定された入力ファイル("

入力ファイル名

")をオープンできません。

[filename="

ファイル名

" line=

行番号

]

コマンド置換で指定された入力ファイルをオープンできません。

入力ファイル名

指定された入力ファイル名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

12. メッセージ

JP1/Advanced Shell

1290

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6053-E

パイプの生成に失敗しました。 [filename="

ファイル名

" line=

行番号

]

パイプの生成に失敗しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

メッセージに出力されたジョブ定義スクリプトファイル名の

行番号

の内容を見直し,記述に誤りがない

かどうかを確認します。また,ジョブ定義スクリプト内でオープンしているファイルの数が多過ぎてい

ないか見直します。記述に誤りがある場合は修正し,ジョブ定義スクリプトを再実行します。

再実行後も問題が解決されない場合は,システム管理者に連絡してください。

KNAX6054-E

プロセスの生成に失敗しました。[details=

保守情報

][filename="

ファイル名

" line=

行番号

]

プロセスの生成に失敗しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1291

(O)

メッセージに出力されたジョブ定義スクリプトファイル名の

行番号

の内容を見直し,記述に誤りがない

かどうかを確認します。記述に誤りがある場合は修正し,ジョブ定義スクリプトを再実行します。

再実行後も問題が解決されない場合は,次の要因が考えられます。

• 実行可能ファイルのパスが見つかりません。

• 実行可能ファイルが通常ファイルではありません。

• 実行可能ファイルの構成要素に検索許可がありません。

• 実行可能ファイルのパス名が長過ぎます。

• 実行可能ファイルの引数が多過ぎます。または引数の指定が無効です。

• 指定したファイルが実行可能ではありません。

• 実行可能ファイルのパス名の変換中に見つかったシンボリックリンクが多過ぎます。

• 実行中のプロセスの合計が,システムの上限値を超えています。

• 新しいプロセスを作成するためのスワッピング領域や物理メモリが十分にありません。

• オープンするファイル数が多過ぎます。

上記要因を解決した上で,ジョブ定義スクリプトを再実行します。

再実行後も問題が解決されない場合は,システム管理者に連絡してください。

KNAX6055-E

シグナルの送信に失敗しました。pid=

プロセスID

signalNo=

シグナル番号

-

エラー詳細

. [filename="

ファイル名

" line=

行番号

]

エラー詳細

で示すエラーが発生したため,指定された

プロセスID

のシグナルの送信に失敗しました。

プロセスID

指定されたプロセス ID

シグナル番号

送信に失敗したシグナル番号

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

12. メッセージ

JP1/Advanced Shell

1292

(S)

処理を継続します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6056-W

指定されたプロセス ID("

プロセスID

")は不当な値のため,無視しました。 [filename="

ファイル名

" line=

行番号

]

指定されたプロセス ID は不当な値のため,無視しました。

プロセスID

指定されたプロセス ID

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

ジョブ定義スクリプトファイルを修正します。

KNAX6057-E

メモリ不足が発生しました。 [filename="

ファイル名

" line=

行番号

]

メモリ不足が発生しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1293

(O)

システム管理者に連絡します。システム管理者は,メモリ見積もりを見直してください。

KNAX6058-E

シェル変数("

シェル変数名

")の再帰変換可能回数を超えました。 [filename="

ファイル名

" line=

番号

]

次に示すシェル変数の再帰変換可能回数を超えたため,処理を中止しました。

• シェル変数参照時の offset

に指定した変数の再帰変換可能回数:1,024

• シェル変数参照時の length

に指定した変数の再帰変換可能回数:1,025

シェル変数名

循環参照または再帰的な参照となった変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

指定した変数は,循環参照指定または再帰的な参照指定となっているので,変数の指定値を見直してく

ださい。

KNAX6059-E

ジョブ定義スクリプト内でオープンしているファイル数が多過ぎます。 [filename="

ファイル名

" line=

行番号

]

ジョブ定義スクリプト内でオープンしているファイル数が多過ぎます。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

12. メッセージ

JP1/Advanced Shell

1294

(S)

処理を終了します。

(O)

メッセージに出力されたジョブ定義スクリプトファイル名の行番号の内容を見直し,記述に誤りがない

かどうかを確認します。また,ジョブ定義スクリプト内でオープンしているファイルの数が多過ぎてい

ないか見直します。記述に誤りがある場合は修正し,ジョブ定義スクリプトを再実行します。

再実行後も問題が解決されない場合は,システム管理者に連絡してください。

KNAX6061-E

ヒアドキュメントの生成に失敗しました。 [filename="

ファイル名

" line=

行番号

]

ヒアドキュメントの生成に失敗しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6062-E

一時ファイルを{作成

|

オープン

|削除

}できません。

一時ファイル名

-

エラー詳細

. [filename="

ファイ

ル名

" line=

行番号

]

エラー詳細

で示すエラーが発生したため,一時ファイルを作成,オープン,または削除できません。

一時ファイル名

処理しようとした一時ファイル名

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

12. メッセージ

JP1/Advanced Shell

1295

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。ただし,ヒアドキュメントの処理でエラーが発生した場合は,処理を継続します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6063-E

ファイルへの書き込みが失敗しました。

書き込み先ファイル名

-

エラー詳細

. [filename="

ファイル

" line=

行番号

]

エラー詳細

で示すエラーが発生したため,ファイルへの書き込みが失敗しました。

書き込み先ファイル名

書き込みを実行しようとしたファイル名

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6064-E

算術式("

変数名または算術式

")で一時的に使用する変数の作成に失敗しました。 [filename="

ファイ

ル名

" line=

行番号

]

算術式で一時的に使用する変数の作成に失敗しました。

変数名

エラーが発生した算術式に含まれる変数名

12. メッセージ

JP1/Advanced Shell

1296

算術式

エラーが発生した算術式

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった算術演算をしないで処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6065-E

不当な変数を算術式("

算術式

")に使用しました。 [filename="

ファイル名

" line=

行番号

]

不当な変数を算術式に使用しました。

算術式

エラーが発生した算術式

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった算術演算をしないで処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6066-E

算術式の書式が誤っています。 [filename="

ファイル名

" line=

行番号

]

算術式の書式が誤っています。

ファイル名

ジョブ定義スクリプトファイル名

12. メッセージ

JP1/Advanced Shell

1297

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった算術演算をしないで処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6067-E

ゼロ除算を実施しました。 [filename="

ファイル名

" line=

行番号

]

ゼロ除算を実施しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった算術演算をしないで処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6068-E

算術演算子("**")の指数に負の値が指定されました。 [filename="

ファイル名

" line=

行番号

]

算術演算子「**」の指数に負の値が指定されました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった算術演算をしないで処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1298

KNAX6070-E

実行完了待ちが必要なジョブがありません。 [filename="

ファイル名

" line=

行番号

]

実行完了待ちが必要なジョブがありません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6071-E

カレントディレクトリを特定できません。reason="エラー詳細" [filename="

ファイル名

" line=

行番号

]

エラー詳細

で示すエラーが発生したため,カレントディレクトリを特定できません。

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

ディレクトリを移動しないで処理を継続します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6072-E

必要なオプションが指定されていません。 [filename="

ファイル名

" line=

行番号

]

12. メッセージ

JP1/Advanced Shell

1299

必要なオプションが指定されていません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所がシェル拡張コマンド,正規組み込みコマンドの場合,処理を継続します。それ以

外の場合,処理を終了します。

(O)

エラーとなった個所のコマンドのオプションを見直し,ジョブ定義スクリプトを修正してください。

KNAX6075-E

リダイレクト(

リダイレクト文字

)実行時にファイル識別子の複写が失敗しました。reason="

エラー

詳細

" [filename="

ファイル名

" line=

行番号

]

エラー詳細

で示すエラーが発生したため,dup によってファイル識別子を複写できません。

リダイレクト文字

指定されたリダイレクト文字

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6076-E getopts コマンドの実行中に引数の内容が変更されました。 [filename="

ファイル名

" line=

行番号

]

12. メッセージ

JP1/Advanced Shell

1300

getopts コマンドの実行中に引数の内容が変更されました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を継続します。

(O)

エラーが発生したジョブ定義スクリプトファイルの行番号の内容を見直し,記述に誤りがないことを確

認します。記述が誤っていた場合はジョブ定義スクリプトを修正し,再実行します。

KNAX6077-E

オプションの指定が誤っています。 [filename="

ファイル名

" line=

行番号

]

オプションの指定が誤っています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が正規組み込みコマンドの場合,処理を継続します。それ以外の場合,処理を終了

します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6078-E

クォーテーションの対応が誤っています。 [filename="

ファイル名

" line=

行番号

]

クォーテーションの対応が誤っています。

ファイル名

ジョブ定義スクリプトファイル名

12. メッセージ

JP1/Advanced Shell

1301

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6079-E

ヒアドキュメントで指定したラベル("

ラベル

")が見つかりません。 [filename="

ファイル名

" line=

行番号

]

ヒアドキュメントで指定したラベルが見つかりません。

ラベル

ヒアドキュメントに指定したラベル

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6080-E

ファイル識別子の複写に失敗しました。

対象ファイル名

-

エラー詳細

. [filename="

ファイル名

" line=

行番号

]

エラー詳細

で示すエラーが発生したため,ファイル識別子の複写に失敗しました。

対象ファイル名

ファイル識別子の複写に失敗したファイル名

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

12. メッセージ

JP1/Advanced Shell

1302

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が正規組み込みコマンドの場合,処理を継続します。それ以外の場合,処理を終了

します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6081-E

ファイルのオープンに失敗しました。

対象ファイル名

-

エラー詳細

. [filename="

ファイル名

" line=

行番号

]

エラー詳細

で示すエラーが発生したため,ファイルのオープンに失敗しました。

対象ファイル名

ファイルのオープンに失敗したファイル名

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が正規組み込みコマンドの場合,処理を継続します。それ以外の場合,処理を終了

します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6082-E

ファイルの作成に失敗しました。

対象ファイル名

-

エラー詳細

. [filename="

ファイル名

" line=

行番号

]

エラー詳細

で示すエラーが発生したため,ファイルの作成に失敗しました。

12. メッセージ

JP1/Advanced Shell

1303

対象ファイル名

ファイルの作成に失敗したファイル名

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所がシェル拡張コマンド,正規組み込みコマンドの場合,処理を継続します。それ以

外の場合,処理を終了します。

(O)

エラー詳細を基に原因を取り除きます。必要な場合,ジョブ定義スクリプトを修正します。

KNAX6085-E

指定されたシグナル("

シグナル番号または名称

")には,トラップを設定できません。

[filename="

ファイル名

" line=

行番号

]

指定されたシグナルには,トラップを設定できません。

シグナル番号または名称

指定されたシグナル番号またはシグナル名称

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O) trap コマンドに指定したシグナル番号またはシグナル名称を見直し,修正します。

12. メッセージ

JP1/Advanced Shell

1304

KNAX6097-E

指定されたシェル拡張変数("

変数名

")の属性は変更できません。[ filename="

ファイル名"

line=

番号

]

シェル拡張変数の変更できない属性を変更しようとしました。次の要因が考えられます。

• シェル拡張変数の読み込み専用属性を解除しようとした。

• シェル拡張変数をローカル変数に変更しようとした。

変数名

属性を変更しようとしたシェル拡張変数名

ファイル名

スクリプトファイル名

行番号

エラーが発生したスクリプトファイルの行番号

(S)

処理を終了します。

(O)

次のどちらかの方法で対処してください。

• エラーとなった個所の変数名,または変更しようとした属性を見直し,ジョブ定義スクリプトを修

正してください。

• 環境設定パラメーター VAR_SHELL_FUNCINFO の指定を NONE に変更して再実行してください。

ジョブ定義スクリプトを再実行しても問題が解決しない場合は,システム管理者に連絡してください。

KNAX6098-E

エラーが発生しました。reason=

ソース上の行番号

,

障害解析情報

[filename="

ファイル名

" line=

番号

]

エラーが発生しました。

ソース上の行番号

エラーが発生したソース上の行番号

障害解析情報

障害解析情報

ファイル名

ジョブ定義スクリプトファイル名

12. メッセージ

JP1/Advanced Shell

1305

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

エラーとなった個所が正規組み込みコマンドの場合,処理を継続します。それ以外の場合,処理を終了

します。

(O)

メッセージに出力されたジョブ定義スクリプトファイル名の行番号の内容を見直し,記述に誤りがない

かどうかを確認します。記述に誤りがある場合は修正し,ジョブ定義スクリプトを再実行します。再実

行後も問題が解決されない場合は,システム管理者に連絡します。

KNAX6099-E

内部エラーが発生しました。reason=

ソース上の行番号

,

障害解析情報

[filename="

ファイル名

" line=

行番号

]

内部エラーが発生しました。

ソース上の行番号

エラーが発生したソース上の行番号

障害解析情報

障害解析情報

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

システム管理者に連絡します。

KNAX6100-E

コマンド("

コマンド名

")の実行に失敗しました。rc=

終了コード

[filename="

ファイル名

" line=

番号

]

12. メッセージ

JP1/Advanced Shell

1306

コマンドの実行に失敗しました。このメッセージが出力された場合,KNAX7999-I で出力された終了コー

ドは無効となり,このメッセージで出力された

終了コード

がジョブの終了コードになります。

コマンド名

実行に失敗したコマンド名

終了コード

ジョブの終了コード

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を終了します。

(O)

このメッセージの直前に出力される KNAX6098-E に従って,エラーとなった要因を解決してからジョ

ブ定義スクリプトを再実行してください。再実行しても問題が解決されない場合は,システム管理者に

連絡してください。

KNAX6110-I

コマンド(

コマンド名

, 行番号=

行数

)が正常終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

コマンドが正常終了しました。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

12. メッセージ

JP1/Advanced Shell

1307

(S)

処理を続行します。

KNAX6111-I

コマンド(

コマンド名

, 行番号=

行数

)が終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

コマンドが終了しました。このメッセージは,終了コードによって成功・失敗を区別しないコマンドが終

了した場合に出力されます。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6112-I

コマンド(

コマンド名

, 行番号=

行数

)が正常終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

コマンドが正常終了しました。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

12. メッセージ

JP1/Advanced Shell

1308

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6113-I

コマンド(

コマンド名

, 行番号=

行数

)が終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

コマンドが終了しました。このメッセージは,終了コードによって成功・失敗を区別しないコマンドが終

了した場合に出力されます。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6114-I

コマンド(

コマンド名

, 行番号=

行数

)が正常終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

コマンドが正常終了しました。

12. メッセージ

JP1/Advanced Shell

1309

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6115-I

コマンド(

コマンド名

, 行番号=

行数

)が終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

コマンドが終了しました。このメッセージは,終了コードによって成功・失敗を区別しないコマンドが終

了した場合に出力されます。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1310

KNAX6116-I

コマンド(

コマンド名

, 行番号=

行数

)が正常終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

コマンドが正常終了しました。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6117-I

コマンド(

コマンド名

, 行番号=

行数

)が終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

コマンドが終了しました。このメッセージは,終了コードによって成功・失敗を区別しないコマンドが終

了した場合に出力されます。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

行数

コマンドが記述されているスクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

12. メッセージ

JP1/Advanced Shell

1311

(S)

処理を続行します。

KNAX6118-I

関数(

関数名

, 行番号=

行数

)が正常終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU

時間 s

関数が正常終了しました。

関数名

実行した関数名。

行数

関数が記述されているスクリプトの行数

終了コード

関数の終了コード

実行時間

関数の実行時間(OS の API で取得された参考値)

CPU時間

関数の CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6119-I

関数(

関数名

, 行番号=

行数

)が終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU時

間 s

関数が終了しました。このメッセージは,終了コードによって成功・失敗を区別しない関数が終了した場

合に出力されます。

関数名

実行した関数名。

行数

関数が記述されているスクリプトの行数

12. メッセージ

JP1/Advanced Shell

1312

終了コード

関数の終了コード

実行時間

関数の実行時間(OS の API で取得された参考値)

CPU時間

関数の CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6120-I

コマンド(

コマンド名

,

機能名

)が正常終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

機能名

で示す機能で実行されたコマンドが正常終了しました。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6121-I

コマンド(

コマンド名

,

機能名

)が終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU

時間 s

12. メッセージ

JP1/Advanced Shell

1313

機能名

で示す機能で実行されたコマンドが終了しました。このメッセージは,終了コードによって成功・

失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6122-I

コマンド(

コマンド名

,

機能名

)が正常終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

機能名

で示す機能で実行されたコマンドが正常終了しました。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

12. メッセージ

JP1/Advanced Shell

1314

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6123-I

コマンド(

コマンド名

,

機能名

)が終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU

時間 s

機能名

で示す機能で実行されたコマンドが終了しました。このメッセージは,終了コードによって成功・

失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6124-I

コマンド(

コマンド名

,

機能名

)が正常終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

機能名

で示す機能で実行されたコマンドが正常終了しました。

12. メッセージ

JP1/Advanced Shell

1315

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6125-I

コマンド(

コマンド名

,

機能名

)が終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU

時間 s

機能名

で示す機能で実行されたコマンドが終了しました。このメッセージは,終了コードによって成功・

失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

12. メッセージ

JP1/Advanced Shell

1316

(S)

処理を続行します。

KNAX6126-I

コマンド(

コマンド名

,

機能名

)が正常終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

機能名

で示す機能で実行されたコマンドが正常終了しました。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

機能名

コマンドを実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6127-I

コマンド(

コマンド名

,

機能名

)が終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU

時間 s

機能名

で示す機能で実行されたコマンドが終了しました。このメッセージは,終了コードによって成功・

失敗を区別しないコマンドが終了した場合に出力されます。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

12. メッセージ

JP1/Advanced Shell

1317

機能名

コマンドを実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間(OS の API で取得された参考値)

CPU時間

コマンドの CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6128-I

関数(

関数名

,

機能名

)が正常終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU時間 s

機能名

で示す機能で実行された関数が正常終了しました。

関数名

実行した関数名。

機能名

関数を実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

終了コード

関数の終了コード

実行時間

関数の実行時間(OS の API で取得された参考値)

CPU時間

関数の CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1318

KNAX6129-I

関数(

関数名

,

機能名

)が終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU時間 s

機能名

で示す機能で実行された関数が終了しました。このメッセージは,終了コードによって成功・失敗

を区別しない関数が終了した場合に出力されます。

関数名

実行した関数名。

機能名

関数を実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

終了コード

関数の終了コード

実行時間

関数の実行時間(OS の API で取得された参考値)

CPU時間

関数の CPU 時間(OS の API で取得された参考値)

(S)

処理を続行します。

KNAX6130-E

イベントファイル("

イベントファイルのパス名

")へのジョブ定義スクリプト稼働実績情報の出力で

入出力エラーが発生しました。

イベントファイルへのジョブ定義スクリプト稼働実績情報の出力で入出力エラーが発生しました。

イベントファイルのパス名

入出力エラーが発生したイベントファイルのパス名

(S)

処理を続行します。

(O)

前後のメッセージを参照して,入出力エラーの原因を調査し,解決してください。

12. メッセージ

JP1/Advanced Shell

1319

KNAX6134-E

コマンドに指定した変数("

変数名

")の型が不正です。 [filename="

ファイル名

" line=

行番号

]

変数名の型属性はこのコマンドでは使用できない型属性です。

変数名

変数名

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

コマンドを終了します。

(O)

エラーとなった変数名を見直して,ジョブ定義スクリプトを修正します。

KNAX6135-E

コマンドの引数が不足しています。 [filename="

ファイル名

" line=

行番号

]

引数の数が不足しています。 adshvarconv では変数名または変換前エンコーディング,変換後エンコーディングの指定がありません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

コマンドを終了します。

(O)

エラーとなった変数名を見直して,ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1320

KNAX6136-E

オプションの組み合わせが正しくない。 [filename="

ファイル名

" line=

行番号

]

コマンドのオプションの組み合わせが正しくありません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

コマンドを終了します。

(O)

コマンドのオプション指定を見直して,ジョブ定義スクリプトを修正します。

KNAX6137-E

値の長さが範囲外です。 [filename="

ファイル名

" line=

行番号

]]

コマンドに指定した値の長さが範囲外です。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

コマンドを終了します。

(O)

コマンドの引数指定を見直して,ジョブ定義スクリプトを修正します。

KNAX6138-E

変数を複数指定することはできません。 [filename="

ファイル名

" line=

行番号

]

変数を複数指定することはできません(配列で複数の要素を指定する場合を含みます)。

ファイル名

ジョブ定義スクリプトファイル名

12. メッセージ

JP1/Advanced Shell

1321

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

コマンドを終了します。

(O)

コマンドの引数指定を見直して,ジョブ定義スクリプトを修正します。

KNAX6139-E【Windows 限定】

エンコーディングが無効です。 [filename="

ファイル名

" line=

行番号

]

指定されたエンコーディングは無効です。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

コマンドを終了します。

(O)

コマンドの引数指定を見直して,ジョブ定義スクリプトを修正します。

KNAX6140-E【Windows 限定】

変換できない文字が存在します。 [filename="

ファイル名

" line=

行番号

]

コード変換時に,変換できない文字が存在します。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

コマンドを終了します。

(O)

変換前のデータを見直して,ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1322

KNAX6150-E

エラー通知対象

にエラーが通知されました。rc=

終了コード

line=

行番号

ジョブまたはジョブステップにエラーが通知されました。adshjoberr コマンドによってエラーが通知され

た場合にこのメッセージが出力されます。

エラー通知対象

エラーを通知した対象として,次のどちらかが出力されます。

• ジョブにエラーを通知した場合:ジョブ

• ジョブステップにエラーを通知した場合:ジョブステップ

終了コード

ジョブまたはジョブステップに通知した終了コード

行番号

エラーを通知したジョブ定義スクリプトの行数

(S)

このメッセージが通知された場合,次のように動作します。

• ジョブステップ内でエラーを通知した場合,ジョブステップの onError 属性の指定に関わらず,

ジョブステップ正常ブロックの後続処理は実行しないでジョブステップがエラー終了するか,ジョ

ブステップエラーブロックを実行します。

• ジョブステップ外でエラーを通知した場合,ジョブがエラー終了するか,run 属性が abnormal ま

たは always の後続のジョブステップを実行します。

KNAX6151-E

エラー通知対象

にエラーが通知されました。rc=

終了コード, 機能名

ジョブまたはジョブステップにエラーが通知されました。adshjoberr コマンドによってエラーが通知され

た場合にこのメッセージが出力されます。

エラー通知対象

エラーを通知した対象として,次のどちらかが出力されます。

• ジョブにエラーを通知した場合:ジョブ

• ジョブステップにエラーを通知した場合:ジョブステップ

終了コード

ジョブまたはジョブステップに通知した終了コード

12. メッセージ

JP1/Advanced Shell

1323

機能名

コマンドを実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

(S)

このメッセージが通知された場合,次のように動作します。

• ジョブステップ内でエラーを通知した場合,ジョブステップの onError 属性の指定に関わらず,

ジョブステップ正常ブロックの後続処理は実行しないでジョブステップがエラー終了するか,ジョ

ブステップエラーブロックを実行します。

• ジョブステップ外でエラーを通知した場合,ジョブがエラー終了するか,run 属性が abnormal ま

たは always の後続のジョブステップを実行します。

KNAX6152-E adshjoberr: コマンドラインの指定に誤りがあります。details="

詳細

"

コマンドラインの指定に誤りがあります。メッセージに表示される

詳細

の表示内容と,その意味を次に示

します。

詳細

の表示内容

終了コードが指定されていません。

終了コードの指定値が範囲外です。

終了コードに数字以外を指定しています。

引数の指定が多過ぎます。

(S)

処理を続行します。

(O)

コマンドを正しく指定して再実行してください。

意味

終了コードが指定されていません。

終了コードの指定値が範囲外です。

終了コードに数字以外を指定しています。

引数の指定が多過ぎます。

KNAX6153-E adshjoberr コマンドの指定位置が不正です。 adshjoberr コマンドの指定位置が不正です。次の原因が考えられます。

12. メッセージ

JP1/Advanced Shell

1324

• .env ファイルなどに指定されて実行されている可能性があります。

• ジョブステップエラーブロック内に指定されて実行されている可能性があります。

(S)

• .env ファイルなどに指定されて実行されている場合:処理を終了します。

• ジョブステップエラーブロック内に指定されて実行されている場合:処理を続行します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6160-I

関数(

関数名

, 行番号=

行数

)の実行を中断しました。

次の要因により関数の実行を中断しました。

• 関数内で exit コマンドを実行して,関数およびジョブ定義スクリプトが終了した

• 関数内で exec コマンドを実行して,関数およびジョブ定義スクリプトが終了した

• Windows で,関数実行中に trap コマンドのアクション内で return コマンドが実行されて関数が終了

した

関数名

実行した関数名。

行数

関数が記述されているジョブ定義スクリプトの行数。

(S)

処理を中断します。

(O)

エラーが原因で関数の実行が中断された場合は,障害を取り除いて再実行します。

KNAX6161-I

関数(

関数名

,

機能名

)の実行を中断しました。

機能名

で示す機能で実行された関数が,次の要因により実行を中断しました。

• 関数内で exit コマンドを実行して,関数およびジョブ定義スクリプトが終了した

• 関数内で exec コマンドを実行して,関数およびジョブ定義スクリプトが終了した

12. メッセージ

JP1/Advanced Shell

1325

• Windows で,関数実行中に trap コマンドのアクション内で return コマンドが実行されて関数が終了

した

関数名

実行した関数名。

機能名

関数を実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

(S)

処理を中断します。

(O)

エラーが原因で関数の実行が中断された場合は,障害を取り除いて再実行します。

KNAX6180-E adshjava: コマンドラインの指定に誤りがあります。details="

詳細

"

コマンドラインの指定に誤りがあります。メッセージに表示される

詳細

の表示内容と,その意味を次に示

します。

詳細

の表示内容

バッチサーバ名が指定されていません。

バッチサーバ名が長すぎます。

スケジュールグループ名が指定されていません。

スケジュールグループ名が長すぎます。

オプション名

オプションが既に指定されています。

-grp オプションと-srv オプションは同時に指定することはでき

ません。

-java オプションの指定がありません。

-java オプションの値が指定されていません。

意味

バッチサーバ名の指定がない。

バッチサーバ名が長過ぎる。

グループ名の指定がない。

グループ名が長過ぎる。

オプション名

のオプションが複数回指定された。

バッチサーバ名とグループ名は同時には指定できない。

-java オプションの指定がない。

-java オプションの後ろに何も指定がない。

(S)

処理を終了します。

(O)

コマンドを正しく指定して再実行してください。

12. メッセージ

JP1/Advanced Shell

1326

KNAX6181-E adshjava: コマンド処理中に継続できないエラーが発生しました。details="

詳細

"

コマンド処理中に継続できないエラーが発生しました。メッセージに表示される

詳細

の表示内容と,その

意味を次に示します。

詳細

の表示内容

実行環境が正しくありません。(

内部情報

)

_time64 error(

内部情報

) clock_gettime error :

エラー情報

(

内部情報

)

OpenMutex error :

エラー情報

(

内部情報

)

WaitForSingleObject error :

エラー情報

(

内部情報

)

CreateProcess error :

エラー情報

(

内部情報

)

WaitForMultipleObjects error :

エラー情報

(

内部情報

)

GetExitCodeProcess error :

エラー情報

(

内部情報

) execvp error :

エラー情報

(

内部情報

) fork error :

エラー情報

(

内部情報

) waitpid error :

エラー情報

(

内部情報

)

SetConsoleCtrlHandler error :

エラー情報

(

内部情報

) setpgid error :

エラー情報

(

内部情報

) nanosleep error :

エラー情報

(

内部情報

)

SetEvent error :

エラー情報

(

内部情報

)

CreateEvent error :

エラー情報

(

内部情報

)

意味 adshexec で実行していないなど,実行環境が正しくない。

時刻を求める処理でエラーが発生した。

排他処理でエラーが発生した。

事象発生を待つ処理でエラーが発生した。 cjexecjob コマンド,または cjkilljob コマンドを実行する

プロセスの生成時にエラーが発生した。cjexecjob コマン

ド,または cjkilljob コマンドのパスの設定に誤りがある場

合や,コマンドを実行する権限がないユーザーで実行して

いる場合に,このエラーが発生することがある。

事象発生を待つ処理でエラーが発生した。

終了コードの取得処理でエラーが発生した。 cjexecjob コマンドの起動時にエラーが発生した。 cjexecjob コマンドが見つからない場合,またはコマンド

を実行する権限がないユーザーで実行している場合に,こ

のエラーが発生することがある。

プロセスの生成時にエラーが発生した。

プロセスの終了を待つ処理でエラーが発生した。

ハンドラの設定処理に失敗した。

プロセスグループの変更に失敗した。

処理の遅延処理で失敗した。

シグナルの通知処理に失敗した。

シグナル通知のためのイベントオブジェクトの生成に失敗

した。

(S)

処理を終了します。

(O)

障害を取り除いて再実行してください。

障害を特定できない場合,または障害を取り除けない場合は,システム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1327

KNAX6182-E adshjava: A forced end process failed. "

詳細

" (

エラー番号または終了状態情報

)

強制終了処理中に継続できないエラーが発生しました。メッセージに表示される

詳細

の表示内容とその意

味,および

エラー番号または終了状態情報

の表示内容を次に示します。

詳細

の表示内容 execvp error fork error waitpid error

The process of the cjkilljob command was terminated abnormally

意味 cjkilljob コマンドの起動に失敗した。cjkilljob コマ

ンドが見つからない場合,またはコマンドを実行す

る権限がないユーザーで実行している場合に,この

エラーが発生することがある。 cjkilljob コマンドの起動に失敗した。 cjkilljob コマンドの終了待ち処理に失敗した。 cjkilljob コマンドのプロセスがシグナルなどでエ

ラー終了した。

エラー番号または終了状態情報

の表

示内容

エラー番号

エラー番号

エラー番号

終了状態情報

エラー番号

16 進文字列表示のエラー番号を表示します。エラー番号については UNIX の errno 定義ファイル

(errno.h)を参照してください。

終了状態情報

プロセス終了時に通知された終了状態情報を 16 進文字列で表示します。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。また,cjkilljob コマンドを実行して Java のバッチアプリケー

ションを停止させてください。

KNAX6183-E adshjava: コマンド(

コマンド名

)が,シグナルなどでエラー終了しました。details="

終了状態情

" (

内部情報

)

コマンド名

で示すコマンドが,シグナルなどでエラー終了しました。

終了状態情報

プロセス終了時に通知された終了状態情報

12. メッセージ

JP1/Advanced Shell

1328

(S)

処理を終了します。

(O)

システム管理者に連絡してください。Java のバッチアプリケーションを停止させる必要がある場合は, cjkilljob コマンドを実行して Java のバッチアプリケーションを停止させてください。

KNAX6189-I adshjava: uCosminexus Application Server が使用する Java のバッチアプリケーションのジョブ

ID を割り当てました。job ID="

ジョブID

" uCosminexus Application Server が使用する Java のバッチアプリケーションのジョブ ID を割り当てま

した。

(S)

処理を続行します。

KNAX6190-E

コマンド名

コマンドの引数の数が不当です。 [filename="

ファイル名

" line=

行番号

]

コマンド名

で示すコマンドの引数の数が不当です。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルを修正してください。

KNAX6191-E

コマンド名

コマンドの引数に不当な文字が含まれています。 [filename="

ファイル名

" line=

行番号

]

12. メッセージ

JP1/Advanced Shell

1329

コマンド名

で示すコマンドの引数に不当な文字が含まれています。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルを修正してください。

KNAX6192-E

コマンド名

コマンドの引数の長さが不当です。 [filename="

ファイル名

" line=

行番号

]

コマンド名

で示すコマンドの引数の長さが不当です。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルを修正してください。

KNAX6193-E

割り当てられる一時ファイルパス名の数の上限を超えました。 [filename="

ファイル名

" line=

行番号

割り当てられる一時ファイルパス名の数の上限を超えました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

12. メッセージ

JP1/Advanced Shell

1330

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルを修正してください。

KNAX6194-E

一時ファイルパス名の長さが OS の許容する最大長を超えました。 [filename="

ファイル名

" line=

番号

]

一時ファイルパス名の長さが OS の許容する最大長を超えました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルを修正してください。

KNAX6200-I

使用方法:

コマンド名 コマンド引数

コマンド引数の文法を

コマンド名

とともに出力します。

(S)

処理を終了します。

KNAX6201-E

オプション("

オプション名

")の値が指定されていません。

オプション名

のオプションの値が指定されていません。

12. メッセージ

JP1/Advanced Shell

1331

(S)

処理を終了します。

(O)

表示されたオプションに対して,値を指定します。

KNAX6202-E

無効なオプション名("

オプション名

")が指定されています。

不明な

オプション名

が指定されています。

(S)

処理を終了します。

(O)

正しいオプションを指定します。

KNAX6203-E

オプションの値("

オプション値

")が不正です。

オプションの値が不正です。

オプション値

は,指定したオプションの値です。

(S)

処理を終了します。

(O)

オプションに対して正しい値を指定します。

KNAX6204-E

同時に指定できないオプション名("

オプション名

")を指定しています。

同時に指定できない

オプション名

を指定しています。

(S)

処理を終了します。

(O)

正しいオプションの組み合わせを指定します。

12. メッセージ

JP1/Advanced Shell

1332

KNAX6206-E

コマンドの引数に asc ファイルが指定されていません。

コマンドの引数に asc ファイルが指定されていません。

(S)

処理を終了します。

(O)

コマンドの引数に asc ファイルを指定します。

KNAX6207-E

コマンドに余分な引数があります。

コマンドに余分な引数があります。

(S)

処理を終了します。

(O)

コマンドの引数を正しく指定します。

KNAX6208-E

コマンドの引数が不足しています。

コマンドの引数が不足しています。

(S)

処理を終了します。

(O)

コマンドの引数を正しく指定します。

KNAX6209-W

範囲指定の行番号がジョブ定義スクリプトの行番号の範囲外です。

12. メッセージ

JP1/Advanced Shell

1333

範囲指定の行番号がジョブ定義スクリプトの行番号の範囲外です。

(S)

範囲指定の行番号を次のように解釈して,処理を続行します。

• 開始行の行番号がジョブ定義スクリプトの行番号の範囲外である場合,誤りのある範囲指定を無視

します。

• 開始行の行番号がジョブ定義スクリプトの行番号の範囲内で,終了行の行番号がジョブ定義スクリ

プトの行番号の範囲外である場合,誤りのある終了行の行番号をジョブ定義スクリプトの最大行番

号とします。

上記で,誤りのある範囲指定を無視した結果,有効な範囲指定がない場合,先頭部分の見出しの情報だ

けを出力します。ジョブ定義スクリプトとカバレージ情報は出力しません。

(O)

正しい行番号を指定します。

KNAX6210-E asc ファイル("

ファイル名

")のオープンでエラーが発生しました。reason="

エラー詳細

"

ファイル名

で示す asc ファイルのオープンでエラーが発生しました。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

(O) asc ファイルのオープンがエラーとなった理由を調査し,問題を解決してから再度コマンドを実行しま

す。

Windows の場合,adshexec コマンドの asc ファイルに,パス名の最後にディレクトリ区切り文字の

\

」があるディレクトリを指定すると,エラー詳細に"No such file or directory"が表示されます。こ

のときは,ディレクトリではなく,ファイル名を指定してください。

KNAX6211-E asc ファイル("

ファイル名

")をロックできません。reason="

エラー詳細

"

ファイル名

で示す asc ファイルをロックできません。

12. メッセージ

JP1/Advanced Shell

1334

エラー詳細

は,ファイルをロックできないエラーの内容を示します。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

(O) asc ファイルをロックできない原因を調査し,問題を解決してから再度コマンドを実行します。asc

ファイルをロックできない原因の多くは,ほかのプログラムが asc ファイルを使用しているためです。

KNAX6212-E asc ファイル("

ファイル名

")の読み込みでエラーが発生しました。reason="

エラー詳細

"

ファイル名

で示す asc ファイルの読み込みでエラーが発生しました。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

(O) asc ファイルの読み込みができない原因を調査し,問題を解決してから再度コマンドを実行します。

KNAX6213-E asc ファイル("

ファイル名

")の形式不正を検出しました。details=

保守情報

ファイル名

で示す asc ファイルの形式不正を検出しました。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

(O)

ファイル名

に示す asc ファイルを削除し,新規にカバレージ情報を採取します。asc ファイルを不当に

更新していないかを確認します。確認事項に問題がなく,同じ現象が発生する場合は,

ファイル名

に示

す asc ファイルを保存し,製品の提供元に問い合わせてください。

12. メッセージ

JP1/Advanced Shell

1335

KNAX6214-E asc ファイル("

ファイル名

")の更新でエラーが発生しました。reason="

エラー詳細

"

ファイル名

で示す asc ファイルの更新でエラーが発生しました。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

(O) asc ファイルの読み込みができない原因を調査し,問題を解決してから再度コマンドを実行します。

KNAX6215-E asc ファイル("

ファイル名

")のロックを解除しようとしたときにエラーが発生しました。 reason="

エラー詳細

"

ファイル名

で示す asc ファイルのロックを解除しようとしたときにエラーが発生しました。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

(O) asc ファイルのロックを解除しようとしたときにエラーが発生した原因を調査し,問題を解決します。

KNAX6219-E

ジョブ定義スクリプトファイル("

ジョブ定義スクリプト名

")の内容が,asc ファイル(" ascファイル

")にカバレージ情報を採取したときの内容と異なります。

次に示すジョブ定義スクリプトが異なるため, ascファイル名

で示す asc ファイルにカバレージ情報を継続

蓄積できません。

ジョブ定義スクリプト名

で示すジョブ定義スクリプト

• ascファイル名

で示す asc ファイルのカバレージ情報を採取したときのジョブ定義スクリプト

12. メッセージ

JP1/Advanced Shell

1336

(S)

処理を終了します。

(O)

次のどちらかの対処を実施してください。

• ascファイル名

で示す asc ファイルにカバレージ情報を継続蓄積する場合 asc ファイル名で示す asc ファイルにカバレージ情報を採取したときのジョブ定義スクリプトファ

イルを使用します。

• ascファイル名

で示す asc ファイルにカバレージ情報を継続蓄積しない場合 ascファイル名

で示す asc ファイルのカバレージ情報が不要な場合は,adshexec コマンドに-f オプ

ションを指定します。すでに採取しているカバレージ情報を破棄し,新規にカバレージ情報を格納

します(初回蓄積)。 ascファイル名

で示す asc ファイルのカバレージ情報が必要な場合は,adshexec コマンドの-o オ

プションで,出力先の asc ファイルを指定します。指定する asc ファイルが出力先にないことが必

要です。

KNAX6220-I

カバレージ情報のマージ処理を開始します。出力先ファイル="

ファイル名

"

カバレージ情報のマージ処理を開始します。

ファイル名

は,マージ結果を格納する asc ファイルのファイル名です。

(S)

処理を続行します。

KNAX6221-I

ベース asc ファイル="

ファイル名1

", マージ asc ファイル="

ファイル名2

"

ファイル名1

は,ベース asc ファイルです。

ファイル名2

は,マージ asc ファイルです。

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1337

KNAX6222-I

カバレージ情報のマージ処理が終了しました。出力先ファイル=" ascファイル名

"

カバレージ情報のマージ処理が終了しました。 ascファイル名

は,マージ結果を格納した asc ファイルのファイル名です。

(S)

処理を続行します。

KNAX6223-E asc ファイル("

ファイル名1

")と asc ファイル("

ファイル名2

")では,カバレージ情報を採取したと

きのジョブ定義スクリプトの内容が異なります。

ファイル名1

ファイル名2

の asc ファイルでは,カバレージ情報を採取した場合のジョブ定義スクリプト

の内容が異なります。

ファイル名1

は,ベース asc ファイルです。

ファイル名2

は,マージ asc ファイルです。

(S)

処理を終了します。

(O)

同一のジョブ定義スクリプトファイルで採取した asc ファイルを,adshcvmerg コマンドのベース asc

ファイル,マージ asc ファイルに指定します。

KNAX6225-E

処理で内部矛盾を検出しました。details=

保守情報

処理で内部矛盾を検出しました。

(S)

処理を終了します。

(O)

保守情報

とともに,製品の提供元に問い合わせます。

12. メッセージ

JP1/Advanced Shell

1338

KNAX6226-E

スクリプト制御文の,すべてを合わせたネストが深過ぎます。

スクリプト制御文の,すべてを合わせたネストが深過ぎます。

(S)

処理を終了します。

(O)

カバレージ情報を採取する必要がある場合,スクリプト制御文のすべてを合わせたネストが深くならな

いように,ジョブ定義スクリプトを変更します。

KNAX6227-E asc ファイルのバージョン番号("

バージョン

")が,コマンドがサポートしているバージョン番号と異

なります。 asc ファイルのバージョン番号が,コマンドがサポートしているバージョン番号と異なります。

バージョン

は,バージョン番号を示します。

(S)

処理を終了します。

(O)

コマンドがサポートしているバージョンの asc ファイルを指定します。

KNAX6228-E

日時の取得でエラーが発生しました。reason="

エラー詳細

"

日時の取得でエラーが発生しました。

(S)

処理を終了します。

(O)

日時の取得が失敗した原因を調査し,対策します。日時の取得には time 関数を使用しています。

12. メッセージ

JP1/Advanced Shell

1339

KNAX6229-E asc ファイル("

ファイル名

")の情報取得でエラーが発生しました。reason="

エラー詳細

"

ファイル名

で示すファイルの情報取得でエラーが発生しました。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

(O)

ファイルの情報取得でエラーが発生した原因を調査し,問題を解決します。ファイルに対してアクセス

権限がない場合が多いです。

KNAX6231-E

マージ asc ファイルがベース asc ファイルと同一のファイルです。

マージ asc ファイルがベース asc ファイルと同一のファイルです。

(S)

処理を終了します。

(O)

マージ asc ファイルとベース asc ファイルは,カバレージ情報のマージが必要な異なるファイルを指

定します。

KNAX6232-E

コマンドを実行しているユーザーのユーザー名を取得できません。

コマンド実行しているユーザーのユーザー名を取得できません。

(S)

処理を終了します。

(O)

コマンドを実行しているユーザーのユーザー名が取得できない原因を調査し,問題を解決します。UNIX

の場合,/etc/passwd にコマンドを実行しているユーザーのユーザー名が登録されていない可能性が

あります。

12. メッセージ

JP1/Advanced Shell

1340

KNAX6233-E asc ファイル("

ファイル名

")がすでにあります。

ファイル名

で示すファイルがすでにあります。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

(O)

ファイル名

で示すファイルがすでにあるため,処理を実行できません。ファイル名を変更するか,また

はファイルを削除します。

KNAX6236-E

指定された asc ファイル("

ファイル名

")は通常のファイルではありません。

ファイル名

で示すファイルは通常のファイルではありません。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

(O)

ファイル名

で示すファイルの種別を確認します。

KNAX6237-E

ファイル種別

のパス名がジョブ定義スクリプトファイルのパス名と重複しました。 asc ファイル(コマンドが作成する asc ファイルを含みます)のパス名がジョブ定義スクリプトファイル

のパス名と重複しました。

ファイル種別

ジョブ定義スクリプトファイルのパス名と重複した asc ファイル

•「asc ファイル」:省略,または指定された asc ファイルのパス名が重複しました。

12. メッセージ

JP1/Advanced Shell

1341

•「一時 asc ファイル」:一時 asc ファイルのパス名が重複しました。

•「バックアップ asc ファイル」:バックアップ asc ファイルのパス名が重複しました。

(S)

処理を終了します。

(O) asc ファイルのパス名を明示的に指定して,ジョブ定義スクリプトファイルのパス名とは異なるパス名

にします。asc ファイルのパス名を明示的に指定している場合,明示的に指定している asc ファイルの

パス名を変更して,ジョブ定義スクリプトファイルのパス名と異なるパス名にします。

KNAX6238-E asc ファイル("

ファイル名

")の名称変更処理でエラーが発生しました。reason="

エラー詳細

"

ファイル名

で示す asc ファイルの名称変更処理でエラーが発生しました。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

(O) asc ファイルの名称変更処理でエラーが発生した原因を調査し,問題を解決します。コマンドの実行中

にファイル名に示すファイルを書き込み保護の設定や,アクセス権限の変更を行った可能性があります。

KNAX6239-E asc ファイル("

ファイル名

")の削除処理でエラーが発生しました。reason="

エラー詳細

"

ファイル名

で示す asc ファイルの削除処理でエラーが発生しました。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1342

(O) asc ファイルの削除処理でエラーが発生した原因を調査し,問題を解決します。コマンドの実行中に書

き込み保護となっているか,またはアクセス権限のないファイル名に示すファイルが作成された可能性

があります。

KNAX6240-E asc ファイル("

ファイル名

")の位置づけ処理でエラーが発生しました。reason="

エラー詳細

"

ファイル名

で示す asc ファイルの位置づけ処理でエラーが発生しました。

ファイル名

には,コマンドで指定した asc ファイルだけでなく,コマンドが一時的に作成する asc ファイ

ルのファイル名も出力します。

(S)

処理を終了します。

(O) asc ファイルの位置づけ処理でエラーが発生した原因を調査し,問題を解決します。

KNAX6241-E

出力 asc ファイルと入力 asc ファイルに同じファイルが指定されました。 adshcvmerg コマンドで,出力 asc ファイルと入力 asc ファイル(ベース asc ファイルまたはマージ asc

ファイル)に同じファイルを指定しています。

(S)

処理を終了します。

(O)

出力 asc ファイルは,入力 asc ファイルと異なるファイルを指定します。

KNAX6242-I asc ファイル("

ファイル名

")のカバレージ情報が更新されました。 adshexec コマンドで,asc ファイルのカバレージ情報が更新されました。

ファイル名

は,更新した asc

ファイルのパス名です。

12. メッセージ

JP1/Advanced Shell

1343

(S)

処理を続行します。

KNAX6243-I asc ファイル("

ファイル名

")をバックアップ asc ファイルから回復しました。 adshexec コマンドで,asc ファイルをバックアップ asc ファイルから回復しました。

ファイル名

は,回

復した asc ファイルのパス名です。

(S)

処理を続行します。

KNAX6244-E asc ファイル("

ファイル名

")のファイルサイズの変更に失敗しました。reason="

エラー詳細

"

ファイル名

で示す asc ファイルの初期化処理でエラーが発生しました。

Windows の場合,_chsize 関数で発生したエラーです。

UNIX の場合,ftruncate 関数で発生したエラーです。

(S)

処理を終了します。

(O) asc ファイルの初期化処理でエラーが発生した原因を調査し,問題を解決します。

KNAX6290-E

カバレージ情報表示プログラムの設定が不当です。詳細コード=

保守情報

表示プログラムを起動するプログラムの設定が誤っています。

(S)

処理を終了します。

(O)

保守情報とともに,製品の提供元に問い合わせてください。

12. メッセージ

JP1/Advanced Shell

1344

KNAX6291-E

カバレージ情報表示プログラムの起動に失敗しました。エラー詳細=

エラー詳細

カバレージ情報表示プログラムの起動に失敗しました。

エラー詳細

は,起動できない理由を示しています。

(S)

処理を終了します。

(O)

起動ができない原因を調査し,問題を解決します。

KNAX6292-E

ファイル("

ファイル名

")は通常のファイルではありません。

ファイル名

で示すファイルは通常のファイルではありません。

(S)

処理を終了します。

(O)

ファイル名

で示すファイルの種別を確認します。

KNAX6293-E

ファイル("

ファイル名

")の情報取得に失敗しました。reason="

エラー詳細

"

ファイル名

で示すファイルの情報取得でエラーが発生しました。

(S)

処理を終了します。

(O)

ファイルの情報取得でエラーが発生した原因を調査し,問題を解決します。主な原因として,ファイル

に対してアクセス権限がないことが考えられます。

12. メッセージ

JP1/Advanced Shell

1345

KNAX6294-E

カバレージ情報表示プログラムで使用するファイル("

ファイル名

")のオープンに失敗しました。 reason="

エラー詳細

"

カバレージ情報表示プログラムで使用するファイルのオープンでエラーが発生しました。

(S)

処理を終了します。

(O)

カバレージ情報表示プログラムで使用するファイルのオープンがエラーとなった理由を調査し,問題を

解決してからカバレージ情報の表示を実行します。

KNAX6295-E

カバレージ情報表示プログラムの起動に失敗しました。(reason=

エラー詳細

)

エラー詳細

に示す原因によって,カバレージ表示プログラムの実行が失敗しました。

(S)

処理を終了します。

(O)

エラー詳細の原因を取り除いて再実行します。問題が解決しない場合は,システム管理者に連絡します。

KNAX6296-E

カバレージ情報表示プログラムで使用するファイル("

ファイル名

")の更新に失敗しました。reason="

エラー詳細

"

ファイル名

で示すカバレージ情報表示プログラムで使用するファイルの更新でエラーが発生しました。

(S)

処理を終了します。

(O)

カバレージ情報表示プログラムで使用するファイルの書き込みができない原因を調査し,問題を解決し

てから再度コマンドを実行します。

12. メッセージ

JP1/Advanced Shell

1346

KNAX6297-E

一時ディレクトリ情報の取得に失敗しました。reason="

エラー詳細

"

一時ディレクトリ情報取得でエラーが発生しました。

(S)

処理を終了します。

(O)

一時ディレクトリ情報取得でエラーが発生した原因を調査し,問題を解決します。

KNAX6298-E

カバレージ情報の表示でエラーが発生。 応答コード=

エラー詳細

カバレージ情報の表示でエラーが発生しました。応答コードとして表示される内容については,adshcvshow

コマンドの終了コードの説明を参照してください。

(S)

処理を終了します。

(O)

カバレージ情報の表示で発生したエラーの原因を調査し,問題を解決してください。エラー発生時の

メッセージがカバレージ情報蓄積ファイルに保存されている場合があります。

なお,ジョブ定義スクリプトを実行していない場合は,応答コードに 6 が設定されます。カバレージ情

報はジョブ定義スクリプトを実行したあとに表示してください。

KNAX6301-E

カバレージ採取の一括有効化機能を使用しているときに-t オプションを指定して adshexec コマンド

を実行しました。

カバレージ採取の一括有効化機能を有効にしている場合,-t オプションを指定して adshexec コマンドを

実行しました。

(S)

実行を中断します。

(O)

-t オプションの指定を削除してバッチジョブを再実行します。

12. メッセージ

JP1/Advanced Shell

1347

KNAX6302-E

カバレージ採取の一括有効化機能使用時に,使用する asc ファイル名の長さが上限を超えました。

カバレージ採取の一括有効化機能を有効にしている場合,使用する asc ファイル名の長さが上限を超えま

した。 asc ファイル名は環境ファイルで指定した asc ファイル名の規則で生成する場合に,生成したファイル名

の長さが上限値を超えています。

(S)

実行を中断します。

(O)

環境ファイルの指定と実行するジョブ定義スクリプト名を見直してください。

KNAX6303-E

ファイル識別子の複写に失敗しました。 filename="

ファイル名

" error="

エラー詳細

"

ファイル名

のファイル識別子の複写に失敗しました。

ファイル名

ジョブ定義スクリプトのファイル名

エラー詳細

エラーの詳細

(S)

実行を中断します。

(O)

エラーの要因を取り除いてバッチジョブを再実行します。

KNAX6304-E

初期化処理に失敗しました。

JP1/Advanced Shell の初期化処理に失敗しました。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1348

(O)

ジョブ定義スクリプトファイルが正しいかどうかを確認します。

KNAX6305-E

ジョブ定義スクリプトファイル("

ファイル名

")の存在を確認できません。error="

エラー詳細

"

ジョブ定義スクリプトファイルの存在を確認できません。

ファイル名

ジョブ定義スクリプトのファイル名

エラー詳細

エラーの詳細

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルが正しいかどうかを確認します。

KNAX6306-E

ジョブ定義スクリプトファイル("

ファイル名

")の読み込みに失敗しました。func=

関数名

error="

ラー詳細

"

ジョブ定義スクリプトファイルの読み込みに失敗しました。

ファイル名

ジョブ定義スクリプトのファイル名

関数名

エラーが発生した関数名

エラー詳細

エラーの詳細

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルが正しいかどうかを確認します。

12. メッセージ

JP1/Advanced Shell

1349

KNAX6307-W

表示処理で使用するジョブ定義スクリプトファイル("

ファイル名

")の 1 行に指定できる上限を超え

ています。line=

行番号

表示処理で使用するジョブ定義スクリプトの 1 行に指定できる上限を超えています。超えた部分は切り捨

てて表示します。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(S)

超えた部分は切り捨てて表示し,処理を続行します。

(O)

ジョブ定義スクリプトファイルを修正します。

KNAX6308-E

ジョブ定義スクリプトファイル("

ファイル名

")は空のファイルです。

ジョブ定義スクリプトファイルには何もありません。

ファイル名

ジョブ定義スクリプトのファイル名

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルを修正します。

KNAX6309-E

スプールのジョブ定義スクリプトファイルの出力に失敗しました。reason="

エラー詳細

"

スプールのジョブ定義スクリプトファイルの出力に失敗しました。

12. メッセージ

JP1/Advanced Shell

1350

エラー詳細

エラーの詳細

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルを修正します。

KNAX6310-E

スクリプト拡張コマンドのオプション名または位置オペランド名("

項目名

")が正しくありません。 filename="

ファイル名

" line=

行番号

スクリプト拡張コマンドに指定した

項目名

は正しくありません。

項目名

スクリプト拡張コマンドのオプション名または位置オペランド名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6311-E

スクリプト拡張コマンドに項目("

項目名

")が指定されていません。 filename="

ファイル名

" line=

番号

スクリプト拡張コマンドに

項目名

が指定されていません。

項目名

スクリプト拡張コマンドのオプション名または位置オペランド名

12. メッセージ

JP1/Advanced Shell

1351

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6312-E

スクリプト拡張コマンドのオプション名に指定した値("

オプション名

")が不正です。 filename="

ファ

イル名

" line=

行番号

スクリプト拡張コマンドの

オプション名

に指定した値が不正です。

オプション名

スクリプト拡張コマンドのオプション名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6313-E

スクリプト拡張コマンドのオプション("

オプション名

")を複数指定しています。 filename="

ファイ

ル名

" line=

行番号

12. メッセージ

JP1/Advanced Shell

1352

スクリプト拡張コマンドのオプション名を複数指定しています。

オプション名

スクリプト拡張コマンドのオプション名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6314-E

スクリプト拡張コマンドの "

文字列

" が完結していません。 filename="

ファイル名

" line=

行番号

スクリプト拡張コマンドの

文字列

で示す記述は完結していません。ダブルクォーテーションまたはシング

ルクォーテーションの指定が閉じていないか,

\

の直後にエスケープする文字がない可能性があります。

文字列

スクリプト拡張コマンドの記述

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1353

KNAX6315-E

スクリプト拡張コマンド("

コマンド名

")の指定が不正です。 filename="

ファイル名

" line=

行番号

次のどれかの要因が考えられます。

• スクリプト拡張コマンドの指定位置が不正です。

• スクリプト拡張コマンドはほかのコマンドとの組み合わせが不正です。

• スクリプト拡張コマンドが先頭に記述されていません。

コマンド名

スクリプト拡張コマンド名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

構文解析時ではなく実行時にエラーが検出された場合は,行番号が 0 となることがあります。実行時に

エラーが検出される例としては,コマンド置換の書式としてスクリプト拡張コマンドを使用した場合な

どがあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6316-E

スクリプト拡張コマンドの長さが上限値を超えました。 filename="

ファイル名

" line=

行番号

スクリプト拡張コマンドの長さが上限値を超えました。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1354

(O)

ジョブ定義スクリプトを修正します。

KNAX6317-E

継続行の指定が不正です。 filename="

ファイル名

" line=

行番号

継続行の指定が不正です。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6318-E

不当なスクリプト拡張コマンド名("

コマンド名

")が指定されました。 filename="

ファイル名

" line=

行番号

不当なスクリプト拡張コマンド名が指定されました。

コマンド名

スクリプト拡張コマンド名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1355

KNAX6319-E

指定した "

項目名

" の数が上限を超えました。 filename="

ファイル名

" line=

行番号

項目名

を指定できる上限値を超えました。

項目名

スクリプト拡張コマンド,オプション名または引数

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6320-E

ジョブ定義スクリプトファイル("

ファイル名

")でエラーが発生しました。function=

関数名

error="

エラー詳細

"

ジョブ定義スクリプトファイルでエラーが発生しました。

ファイル名

ジョブ定義スクリプトのファイル名

関数名

エラーが発生した関数名

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1356

KNAX6321-E

"-run {abnormal

| always}" は現在の位置には指定できません。 filename="

ファイル名

" line=

行番号

ここでは指定できないオプションを指定しています。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6323-E export パラメーターの指定が不正です。または,環境変数を設定できません。line=

行番号 export パラメーターの指定が不正です。または,環境変数を設定できません。

行番号

環境ファイルの行番号

エラーの要因として次のどれかが考えられます。

• 環境変数名,環境変数値の長さが上限を超えています。

PATH 環境変数にパスを追加している場合,子孫ジョブでは二重にパスが追加されるため,上限を超

えていないか注意が必要です。

• 環境変数名が不正です。

•「

\

」「"」「'」の組み合わせが正しくありません。

(S)

処理を終了します。

(O)

環境ファイルを修正します。

12. メッセージ

JP1/Advanced Shell

1357

KNAX6324-E

"

変換前ファイル名

" を絶対パスに変換できません。error="

エラー詳細

" filename="

ファイル名

"line=

行番号

変換前ファイル名

を絶対パスに変換できません。

変換前ファイル名

変換前のファイル名

エラー詳細

エラーの詳細

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6325-E

ブロック内または関数定義内のジョブステップが終了しないまま,ブロックまたは関数定義が終了し

ました。 filename="

ファイル名

" line=

行番号

ブロック内または関数定義内のジョブステップが終了しないまま,ブロックまたは関数定義が終了しました。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1358

KNAX6326-E

ジョブステップの開始定義がありません。 filename="

ファイル名

" line=

行番号

ジョブステップの開始定義がありません。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6327-E

ジョブステップの定義が階層になっています。 filename="

ファイル名

" line=

行番号

ジョブステップの定義が階層になっています。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6328-E

"

コマンド名

" の定義が階層になっています。 filename="

ファイル名

" line=

行番号

コマンド名

の定義が階層になっています。

12. メッセージ

JP1/Advanced Shell

1359

コマンド名

スクリプト拡張コマンドのコマンド名

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6329-E

スクリプト拡張コマンドが途中から変更されている可能性があります。 filename="

ファイル名

" line=

行番号

スクリプト拡張コマンドが途中から変更されている可能性があります。

ファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトが途中で変更されないことを確認して再実行します。

KNAX6330-E

ジョブ定義スクリプトを再帰的に呼び出しています。 filename="

ファイル名

" line=

行番号

ジョブ定義スクリプトを再帰的に呼び出しています。

ファイル名

ジョブ定義スクリプトのファイル名

12. メッセージ

JP1/Advanced Shell

1360

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6332-E

ジョブ定義スクリプトが終了しましたが,閉じていないジョブステップがあります。

ジョブ定義スクリプトが終了しましたが,閉じていないジョブステップがあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6333-E

"

ファイル名

" の存在が確認できません。error="

エラー詳細

" filename="

ジョブ定義スクリプトファ

イル名

" line=

行番号

ファイル名

の存在が確認できません。

エラー詳細

エラーの詳細

ジョブ定義スクリプトファイル名

ジョブ定義スクリプトのファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

12. メッセージ

JP1/Advanced Shell

1361

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6380-I

ルートジョブのスプールジョブディレクトリにジョブ名を付加します。spool job directory="

スプー

ルジョブディレクトリ

"

ルートジョブの

スプールジョブディレクトリ

にジョブ名を付加します。

スプールジョブディレクトリ

変更後のスプールジョブディレクトリの名称

(S)

処理を続行します。

KNAX6381-E

スプールジョブディレクトリの名称の変更処理が失敗しました。error="

エラー詳細

" jobid="

ジョブ

識別子

" jobname="

ジョブ名

"

スプールジョブディレクトリの名称の変更処理が失敗しました。スプールジョブディレクトリはジョブ識

別子のままです。次の原因が考えられます。

• 変更後の名称のスプールジョブディレクトリがすでに存在しています。

• Windows では,子孫プロセスを生成する外部コマンドを実行するジョブを強制終了した場合,孫以下

のプロセスが同時に 256 個以上存在すると,エラー詳細が Permission denied でこのメッセージが出

力されることがあります。

エラー詳細

エラーの詳細

ジョブ識別子

ジョブ識別子

ジョブ名

ジョブ名

12. メッセージ

JP1/Advanced Shell

1362

(S)

処理を続行します。

(O)

スプールジョブディレクトリを参照する場合は,同時に出力される KNAX6382-I で示すスプールジョ

ブディレクトリを参照してください。

スプールジョブディレクトリを削除する場合は,adshhk コマンドではなく手動で削除してください。

KNAX6382-I

名称変更処理が失敗したため,変更前のスプールジョブディレクトリに保管しました。 spool job directory="

スプールジョブディレクトリ

"

スプールジョブディレクトリ

の名称変更処理が失敗したため,スプールジョブディレクトリに保管しました。

スプールジョブディレクトリ

変更前のスプールジョブディレクトリの名称

(S)

処理を続行します。

KNAX6383-E 【UNIX 限定】

スプールジョブのディレクトリまたはファイルのパーミッション変更処理に失敗しました。("

パス名

",

"

機能名

", "

エラー詳細

")

パス名

で示すスプールジョブのディレクトリまたはファイルのパーミッション変更処理に失敗しました。

機能名

OS の API 名

エラー詳細 errno で示されるエラーの詳細

(S)

機能名

が chmod の場合は処理を継続します。それ以外は処理を終了します。

(O)

原因を調査して対策します。また,このスプールジョブのディレクトリまたはファイルのパーミッショ

ンは,chmod コマンドを実行して変更します。

12. メッセージ

JP1/Advanced Shell

1363

KNAX6385-E

このスクリプト拡張コマンドは,現在の環境設定パラメーターの設定では使用できません。command name="

コマンド名

" parameter="

環境設定パラメーター

" filename="

ファイル名

" line=

行番号

メッセージに表示された拡張スクリプトコマンドは,現在の環境設定パラメーターの設定では使用できま

せん。

コマンド名

エラーとなった拡張スクリプトコマンドの名称

環境設定パラメーター

要因となった環境設定パラメーター名と値

ファイル名

ジョブ定義スクリプトファイル名

行番号

ジョブ定義スクリプトの行番号

継続行にエラーがある場合,その継続行の行番号ではなく,スクリプト拡張コマンドの先頭行を示すこ

とがあります。

(S)

処理を終了します。

(O)

実行したコマンドは使用しないでください。このコマンドを使用したい場合は環境設定パラメーターの

指定を見直してください。

KNAX6340-E adshcmdrc: コマンドラインの指定に誤りがあります。details="

詳細

"

コマンドラインの指定に誤りがあります。メッセージに表示される

詳細

の表示内容と,その意味を次に示

します。

詳細

の表示内容

コマンド名が指定されていません。

コマンド名が長過ぎます。

コマンド名に空文字列が指定されています。

コマンド名に不当な指定がされています。

意味

コマンド名が指定されていません。

コマンド名が長過ぎます。

コマンド名に空文字列が指定されています。

コマンド名に不当な指定がされています。コマンドのパスが指定

されている可能性があります。

12. メッセージ

JP1/Advanced Shell

1364

詳細

の表示内容

しきい値が指定されていません。

しきい値の指定値が範囲外です。

しきい値に数字以外を指定しています。

引数の指定が多過ぎます。

(S)

処理を継続します。

(O)

コマンドを正しく指定して再実行してください。

意味

しきい値が指定されていません。

しきい値の指定値が範囲外です。

しきい値に数字以外を指定しています。

引数の指定が多過ぎます。

KNAX6341-E

指定したコマンド("

コマンド名

")の数が上限を超えました。line=

行番号

コマンド名

で示すコマンドを指定できる上限値を超えました。

コマンド名

コマンド名

行番号

ジョブ定義スクリプトの行番号

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルを修正してください。

KNAX6342-E

指定したコマンド("

コマンド名

")の数が上限を超えました。(

機能名

コマンド名

コマンド名

機能名

コマンドを実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

12. メッセージ

JP1/Advanced Shell

1365

• trap コマンドのアクションの場合:trap コマンドのアクション

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6399-E

予期しない障害が発生しました。

関数

,

行番号

予期しない障害が発生しました。

関数

関数名

行番号

行番号

(S)

処理を終了します。

(O)

システム管理者に連絡します。

KNAX6400-E

ファイル環境変数定義名("

ファイル環境変数定義名

")のファイルの割り当てに失敗しました。

ファイル環境変数定義名

で示すファイルの割り当てに失敗しました。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルを見直してください。

12. メッセージ

JP1/Advanced Shell

1366

KNAX6401-E

ファイル環境変数定義名("

ファイル環境変数定義名

")で指定したファイル(

ファイルパス

)が存在

しません。

ファイル環境変数定義名

で指定した

ファイルパス

のファイルがありません。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルを見直してください。

KNAX6403-E

"

一時ファイル識別名

" と同じ識別名のファイルがすでに定義されています。

一時ファイル識別名

と同じ識別名のファイルがすでに定義されています。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルを見直してください。

KNAX6404-E

環境変数("

ファイル環境変数定義名

")の作成に失敗しました。

ファイル環境変数定義名

で示す環境変数の作成に失敗しました。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルを見直してください。

KNAX6405-E

ファイル環境変数定義名("

ファイル環境変数定義名

")で示すファイルが存在しません。

12. メッセージ

JP1/Advanced Shell

1367

ファイル環境変数定義名

で示すファイルがありません。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルを見直してください。

KNAX6406-E

ファイル環境変数定義名("

ファイル環境変数定義名

")で示すファイルでエラーが発生しました。 reason="

エラー詳細

"

ファイル環境変数定義名

で示すファイルを stat 関数で確認しようとした際,

エラー詳細

で示すエラーが発

生しました。

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルを見直してください。

KNAX6407-E

ファイル環境変数定義名("

ファイル環境変数定義名

")で示すディレクトリはすでに存在します。

ファイル環境変数定義名

で示すディレクトリはすでにあります。

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルを見直してください。

12. メッセージ

JP1/Advanced Shell

1368

KNAX6408-E

ファイル環境変数定義名("

ファイル環境変数定義名

")で示すファイルが作成できません。reason="

エラー詳細

"

ファイル環境変数定義名

で示すファイルを作成しようとした場合,

エラー詳細

で示すエラーが発生しました。

エラー詳細

エラーの詳細。errno で表されるエラー情報文字列

(S)

処理を終了します。

(O)

ジョブ定義スクリプトファイルを見直してください。

KNAX6409-I

ファイル環境変数定義名(

ファイル環境変数定義名

)へ処理指定("

処理指定値

")に従ってファイル

を割り当てました。path=

ファイルパス

[(

ファイル存在有無表示

)]

ファイル環境変数定義名

で示すファイル定義で,

処理指定値

に従って

ファイルパス

で示すファイルを割り

当てました。

処理指定値

コマンドに応じて次の内容が表示されます。

#-adsh_file コマンドまたは #-adsh_file_temp コマンドの場合

-chk の指定値

#-adsh_spoolfile コマンドの場合 spoolfile

ファイル存在有無表示

通常ファイルの場合だけ出力されます。ファイルが存在する場合は「ファイルは存在します」を,ファ

イルが存在しない場合は「ファイルは存在しません」を出力します。

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1369

KNAX6410-I

ファイル環境変数定義名(

ファイル環境変数定義名

)で割り当てたファイルを処理指定("

処理指定

")に従って解放しました。path=

ファイルパス

ファイル環境変数定義名

で示すファイル定義で,

処理指定値

に従って

ファイルパス

で示すファイルを解放

しました。

処理指定値

コマンドに応じて次の内容が表示されます。

#-adsh_file コマンドまたは #-adsh_file_temp コマンドの場合

正常時・異常時のファイルの後処理の指定内容として,次のどちらかが表示されます。

・del:削除する

・keep:削除しない

#-adsh_spoolfile コマンドの場合 spoolfile

(S)

処理を続行します。

KNAX6411-E

シェル変数("

ファイル環境変数定義名

")の設定に失敗しました。details=

保守情報

ファイル環境変数定義名

で示すシェル変数の設定に失敗しました。

(S)

処理を終了します。

(O)

ファイル環境変数定義名

で示すシェル変数が読み込み専用に設定されている可能性があるため,ジョブ

定義スクリプトファイルを見直してください。見直して問題のない場合は,システム管理者に連絡して

ください。

KNAX6412-E

シェル変数の取得に失敗しました。details=

保守情報

シェル変数の取得に失敗しました。

12. メッセージ

JP1/Advanced Shell

1370

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX6413-E

シェル変数("

ファイル環境変数定義名

")を元の値に回復できないか,または元の値の定義がなかっ

た場合に現在の定義を削除できません。details=

保守情報

ファイル環境変数定義名

で示すシェル変数を元の値に回復できないか,または元の値の定義がなかった場

合に現在の定義を削除できません。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX6414-E

ファイルパスの正規化処理でエラーが発生しました。name=

API名称

reason="

原因

" details=

保守情

報 filename="

スクリプトファイル名

" line=

行番号

スクリプト拡張コマンド #adsh_file コマンドで指定したファイルパスの正規化処理でエラーが発生しまし

た。

API名称

エラーが発生した API 名称

原因

エラー内容。出力される内容と意味を次の表に示します。

項番

1

2

3

出力内容 errno で表されるエラー情報文字列

意味

UNIX または Windows のマニュアルを参照してください。

パス名に不当なマルチバイト文字が含まれています。 パス名に不当なマルチバイト文字が含まれています。

パス構成要素が多過ぎます。 パス構成要素が多過ぎます(構成要素が 4,096 個を超えま

した)。

12. メッセージ

JP1/Advanced Shell

1371

スクリプトファイル名

スクリプトファイルのファイル名

行番号

スクリプトの行番号

(S)

処理を終了します。

(O)

原因

を参照してエラーの原因を取り除きます。問題が解決しない場合はシステム管理者に連絡してくだ

さい。

KNAX6507-I

ジョブ名

.

ジョブステップ名

run 属性で指定した条件が成立したため,ジョブステップをスキップしま

した。

#-adsh_step で始まるジョブステップ定義コマンドの run 属性で指定した条件が成立したため,

ジョブ名

で示すバッチジョブに定義された,

ジョブステップ名

で示すジョブステップをスキップしました。

(S)

処理を続行します。

KNAX6508-I

ジョブ名

.

ジョブステップ名

先行のジョブステップまたはコマンドがエラー終了したため,ジョブス

テップをスキップしました。

先行のジョブステップまたはコマンドがエラー終了したため,

ジョブ名

で示すバッチジョブに定義された,

ジョブステップ名

で示すジョブステップをスキップしました。

(S)

処理を続行します。

KNAX6509-I

ジョブ名

.

ジョブステップ名

ジョブ定義スクリプトの制御内容により,ジョブステップは実行されませ

んでした。

12. メッセージ

JP1/Advanced Shell

1372

ジョブ名

で示すバッチジョブに定義された

ジョブステップ名

で示すジョブステップは,if 制御文などによ

るジョブ定義スクリプトの制御で実行されていません。

(S)

処理を続行します。

KNAX6510-W

シェル変数(

シェル変数名

)を設定しようとしましたが,読み取り専用属性のため設定できません。 filename="

ファイル名

" line=

行番号

ジョブコントローラが

ファイル名

で示すファイル中の

行番号

で示すコマンドの実行中に

シェル変数名

で示

すシェル変数を設定しようとしましたが,読み取り専用属性のため設定できません。

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルを見直し,シェル変数名で示すシェル変数の使用方法に誤りがあれば修

正します。

KNAX6511-I

ジョブステップ内で有効なシェル変数 PATH は,ジョブステップの外で定義されたシェル変数 PATH

から値を引き継ぎます。stepname=

ジョブステップ名

ジョブステップ名

のジョブステップに指定されたジョブステップ内で有効なシェル変数 PATH は,ジョブ

ステップの外で定義されたシェル変数 PATH から値を引き継ぎます。

(S)

処理を続行します。

KNAX6512-I

ジョブコントローラはカスタムジョブから起動されました。

ジョブコントローラが JP1/Advanced Shell のカスタムジョブから JP1/AJS によって起動されました。

12. メッセージ

JP1/Advanced Shell

1373

(S)

処理を続行します。

KNAX6521-E

コマンド(

コマンド名

, 行番号=

行数

)がエラー終了しました。rc=

終了コード

E-Time=

実行時間 s

C-Time=

CPU時間 s

コマンドがエラーで終了しました。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

行数

コマンドが記述されているジョブ定義スクリプトの行数

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間。OS の API を使って取得した参考値です。

CPU時間

コマンドの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。エラーとなったコマンドがジョブステップ内のコマンドの場合,次のように動作し

ます。

• ジョブステップの onError 属性が stop の場合,ジョブステップ正常ブロックの後続処理は実行し

ないでジョブステップエラーブロックを実行します。

• ジョブステップの onError 属性が cont の場合,ジョブステップ正常ブロックの後続処理を実行し

ます。

ただし,コマンドの実行結果によってジョブを中断する必要がある場合は,上記の動作とならないで

KNAX6584-I を出力して処理を終了します。

(O)

コマンドの実行結果を確認し,エラーとなった原因を取り除きます。

12. メッセージ

JP1/Advanced Shell

1374

KNAX6522-E

コマンド(

コマンド名

, 行番号=

行数

)がシグナル受信によってエラー終了しました。rc=

終了コード signalNo=

シグナル番号

E-Time=

実行時間 s C-Time=

CPU時間 s

コマンドがシグナルによってエラー終了しました。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

行数

コマンドが記述されているジョブ定義スクリプトの行数

終了コード

コマンドの終了コード

シグナル番号

コマンドが受信したシグナル番号

実行時間

コマンドの実行時間。OS の API を使って取得した参考値です。

CPU時間

コマンドの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。エラー終了したコマンドがジョブステップ内のコマンドである場合,次のとおり動

作します。

• ジョブステップの onError 属性が stop の場合,ジョブステップ正常ブロックの後続処理は実行し

ないでジョブステップエラーブロックを実行します。

• ジョブステップの onError 属性が cont の場合,ジョブステップ正常ブロックの後続処理を実行し

ます。

(O)

コマンドの実行結果を確認し,エラーとなった原因を取り除きます。

KNAX6530-E

オプションの有無およびオプションの値の組み合わせに誤りがあります。 filename="

ファイル名

" line=

行番号

オプションの有無およびオプションの値の組み合わせに誤りがあります。

ファイル名

ジョブ定義スクリプトファイル名

12. メッセージ

JP1/Advanced Shell

1375

行番号

ジョブ定義スクリプトの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6531-E

"

項目名

" の指定が

スコープ

で指定できる上限値を超えました。 filename="

ファイル名

" line=

行番号

項目名が指定できる上限値を超えました。

項目名

スクリプト拡張コマンド名

スコープ

ジョブまたはステップ

ファイル名

ジョブ定義スクリプトファイルのファイル名

行番号

ジョブ定義スクリプトの行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6540-I

別プロセスで実行したコマンド群が正常終了しました。line=

行番号 rc=

終了コード

E-Time=

実行時

間 s C-Time=

CPU時間 s

コマンドのグループ化などによって別プロセスで実行したジョブ定義スクリプトが正常終了しました。

行番号

別プロセスで実行したジョブ定義スクリプトが記述されているジョブ定義スクリプトの行番号

12. メッセージ

JP1/Advanced Shell

1376

終了コード

実行したジョブ定義スクリプトの終了コード

実行時間

実行したジョブ定義スクリプトの実行時間。OS の API を使って取得した参考値です。

CPU時間

実行したジョブ定義スクリプトの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。

KNAX6541-E

別プロセスで実行したコマンド群がエラー終了しました。line=

行番号 rc=

終了コード

E-Time=

実行

時間 s C-Time=

CPU時間 s

コマンドのグループ化などによって別プロセスで実行したジョブ定義スクリプトがエラー終了しました。

行番号

別プロセスで実行したジョブ定義スクリプトが記述されているジョブ定義スクリプトの行番号

終了コード

別プロセスで実行したジョブ定義スクリプトの終了コード

実行時間

別プロセスで実行したジョブ定義スクリプトの実行時間。OS の API を使って取得した参考値です。

CPU時間

別プロセスで実行したジョブ定義スクリプトの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。別プロセスで実行してエラー終了したジョブ定義スクリプトがジョブステップ内の

ジョブ定義スクリプトである場合,次のように動作します。

• ジョブステップの onError 属性が stop の場合,ジョブステップ正常ブロックの後続処理は実行し

ないでジョブステップエラーブロックを実行します。

• ジョブステップの onError 属性が cont の場合,ジョブステップ正常ブロックの後続処理を実行し

ます。

(O)

別プロセスで実行してエラー終了したジョブ定義スクリプトの実行結果を確認し,エラーとなった原因

を取り除きます。

12. メッセージ

JP1/Advanced Shell

1377

KNAX6542-E

別プロセスで実行したコマンド群がシグナル受信によってエラー終了しました。line=

行番号 rc=

了コード

signalNo=

シグナル番号

E-Time=

実行時間 s C-Time=

CPU時間 s

コマンドのグループ化などによって別プロセスで実行したジョブ定義スクリプトがシグナルによってエラー

終了した。

行番号

別プロセスで実行したジョブ定義スクリプトが記述されているジョブ定義スクリプトの行番号

終了コード

別プロセスで実行したジョブ定義スクリプトの終了コード

シグナル番号

別プロセスで実行したジョブ定義スクリプトが受信したシグナル番号

実行時間

別プロセスで実行したジョブ定義スクリプトの実行時間。OS の API を使って取得した参考値です。

CPU時間

別プロセスで実行したジョブ定義スクリプトの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。別プロセスで実行してエラー終了したジョブ定義スクリプトがジョブステップ内の

ジョブ定義スクリプトである場合,次のように動作します。

• ジョブステップの onError 属性が stop の場合,ジョブステップ正常ブロックの後続処理は実行し

ないでジョブステップエラーブロックを実行します。

• ジョブステップの onError 属性が cont の場合,ジョブステップ正常ブロックの後続処理を実行し

ます。

(O)

別プロセスで実行してエラー終了したジョブ定義スクリプトの実行結果を確認し,異常となった原因を

取り除きます。

KNAX6551-E

コマンド(

コマンド名

,

機能名

)がエラー終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

機能名

で示す機能で実行されたコマンドがエラー終了しました。

12. メッセージ

JP1/Advanced Shell

1378

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

機能名

コマンドを実行した機能名。次のどちらかが出力されます。

コマンド置換:コマンド置換機能 trap コマンドのアクション:trap コマンドのアクション

終了コード

コマンドの終了コード

実行時間

コマンドの実行時間。OS の API を使って取得した参考値です。

CPU時間

コマンドの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。エラーとなったコマンドがジョブステップ内のコマンドの場合,次のとおり動作し

ます。

• ジョブステップの onError 属性が stop の場合,ジョブステップ正常ブロックの後続処理は実行し

ないでジョブステップエラーブロックを実行します。

• ジョブステップの onError 属性が cont の場合,ジョブステップ正常ブロックの後続処理を実行し

ます。

ただし,コマンドの実行結果によってバッチジョブを中断する必要がある場合は,上記の動作とならな

いで KNAX6584-I を出力して処理を終了します。

(O)

コマンドの実行結果を確認し,エラーとなった原因を取り除きます。

KNAX6552-E

コマンド(

コマンド名

,

機能名

)がシグナル受信によってエラー終了しました。rc=

終了コード signalNo=

シグナル番号

E-Time=

実行時間 s C-Time=

CPU時間 s

機能名

で示す機能で実行されたコマンドがシグナルによってエラー終了しました。

コマンド名

実行したコマンド名。OS が定める最大パス長を超える場合,最大パス長で打ち切られます。

機能名

コマンドを実行した機能名。次のどちらかが出力されます。

コマンド置換:コマンド置換機能

12. メッセージ

JP1/Advanced Shell

1379

trap コマンドのアクション:trap コマンドのアクション

終了コード

コマンドの終了コード

シグナル番号

コマンドが受信したシグナル番号

実行時間

コマンドの実行時間。OS の API を使って取得した参考値です。

CPU時間

コマンドの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。エラー終了したコマンドがジョブステップ内のコマンドの場合,次のとおり動作し

ます。

• ジョブステップの onError 属性が stop の場合,ジョブステップ正常ブロックの後続処理は実行し

ないでジョブステップエラーブロックを実行します。

• ジョブステップの onError 属性が cont の場合,ジョブステップ正常ブロックの後続処理を実行し

ます。

(O)

コマンドの実行結果を確認し,エラーとなった原因を取り除きます。

KNAX6560-I

機能名

から別プロセスで実行したコマンド群が正常終了しました。rc=

終了コード

E-Time=

実行時

間 s C-Time=

CPU時間 s

機能名

で示す機能で,コマンドのグループ化などによって別プロセスで実行したジョブ定義スクリプトが

正常終了しました。

機能名

コマンドを実行した機能名。次のどちらかが出力されます。

コマンド置換:コマンド置換機能 trap コマンドのアクション:trap コマンドのアクション

終了コード

実行したジョブ定義スクリプトの終了コード

実行時間

実行したジョブ定義スクリプトの実行時間。OS の API を使って取得した参考値です。

12. メッセージ

JP1/Advanced Shell

1380

CPU時間

実行したジョブ定義スクリプトの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。

KNAX6561-E

機能名

から別プロセスで実行したコマンド群がエラー終了しました。rc=

終了コード

E-Time=

実行

時間 s C-Time=

CPU時間 s

機能名

で示す機能で,コマンドのグループ化などによって別プロセスで実行したジョブ定義スクリプトが

エラー終了しました。

機能名

コマンドを実行した機能名。次のどちらかが出力されます。

コマンド置換:コマンド置換機能 trap コマンドのアクション:trap コマンドのアクション

終了コード

別プロセスで実行したジョブ定義スクリプトの終了コード

実行時間

別プロセスで実行したジョブ定義スクリプトの実行時間。OS の API を使って取得した参考値です。

CPU時間

別プロセスで実行したジョブ定義スクリプトの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。別プロセスで実行してエラー終了したジョブ定義スクリプトがジョブステップ内の

ジョブ定義スクリプトの場合,次のとおり動作します。

• ジョブステップの onError 属性が stop のとき,ジョブステップ正常ブロックの後続処理は実行し

ないでジョブステップエラーブロックを実行します。

• ジョブステップの onError 属性が cont のとき,ジョブステップ正常ブロックの後続処理を実行し

ます。

(O)

別プロセスで実行してエラー終了したジョブ定義スクリプトの実行結果を確認し,エラーとなった原因

を取り除きます。

12. メッセージ

JP1/Advanced Shell

1381

KNAX6562-E

機能名

から別プロセスで実行したコマンド群がシグナル受信によってエラー終了しました。rc=

終了

コード

signalNo=

シグナル番号

E-Time=

実行時間 s C-Time=

CPU時間 s

機能名

で示す機能で,コマンドのグループ化などで別プロセスで実行したジョブ定義スクリプトがシグナ

ルの受信によってエラー終了しました。

機能名

コマンドを実行した機能名。次のどちらかが出力されます。

コマンド置換:コマンド置換機能 trap コマンドのアクション:trap コマンドのアクション

終了コード

別プロセスで実行したジョブ定義スクリプトの終了コード

シグナル番号

別プロセスで実行したジョブ定義スクリプトが受信したシグナル番号

実行時間

別プロセスで実行したジョブ定義スクリプトの実行時間。OS の API を使って取得した参考値です。

CPU時間

別プロセスで実行したジョブ定義スクリプトの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。別プロセスで実行してエラー終了したジョブ定義スクリプトがジョブステップ内の

ジョブ定義スクリプトの場合,次のとおり動作します。

• ジョブステップの onError 属性が stop のとき,ジョブステップ正常ブロックの後続処理は実行し

ないでジョブステップエラーブロックを実行します。

• ジョブステップの onError 属性が cont のとき,ジョブステップ正常ブロックの後続処理を実行し

ます。

(O)

別プロセスで実行してエラー終了したジョブ定義スクリプトの実行結果を確認し,異常となった原因を

取り除きます。

KNAX6571-I

子孫ジョブ名

子孫ジョブを開始しました。parent jobname=

親プロセスのジョブ名

, parent jobid=

親プロセスのジョブ識別子

親プロセスのジョブ名

親プロセスのジョブ識別子

で示すジョブから起動した,

子孫ジョブ名

で示す子孫

ジョブを開始しました。

12. メッセージ

JP1/Advanced Shell

1382

(S)

処理を続行します。

KNAX6572-I

子孫ジョブ(

子孫ジョブ名

)はジョブ環境ファイル("

ジョブ環境ファイル名

")を使用します。

子孫ジョブ名

で示す子孫ジョブは,

ジョブ環境ファイル名

で示すジョブ環境ファイルを使用します。

(S)

処理を続行します。

KNAX6578-I

子孫ジョブ名

子孫ジョブが終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU時間 s

子孫ジョブ名

で示す子孫ジョブが終了しました。

終了コード

子孫ジョブの実行結果を示す終了コード。

終了コードの詳細は,adshexec コマンドの終了コードに関する説明を参照してください。

なお,このメッセージの出力後に adshexec コマンドの後処理でエラーが発生した場合,このメッセー

ジで示す終了コードと adshexec コマンドの終了コードとが異なるときがあります。adshexec コマン

ドの最終的な終了コードは,親のジョブの JOBLOG に出力されます。

実行時間

子孫ジョブの開始から終了までの実時間の合計(秒単位)。OS の API を使って取得した参考値です。

CPU時間

子孫ジョブの開始から終了までの CPU 時間の合計(秒単位)。OS の API を使って取得した参考値です。

(S)

処理を続行します。

KNAX6580-E

関数(

関数名

, 行番号=

行数

)がエラー終了しました。rc=

終了コード

E-Time=

実行時間 s C-

Time=

CPU時間 s

関数がエラーで終了しました。

12. メッセージ

JP1/Advanced Shell

1383

関数名

実行した関数名。

行数

関数が記述されているジョブ定義スクリプトの行数

終了コード

関数の終了コード

実行時間

関数の実行時間。OS の API を使って取得した参考値です。

CPU時間

関数の CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。エラーとなった関数がジョブステップ内の関数の場合,次のように動作します。

• ジョブステップの onError 属性が stop の場合,ジョブステップ正常ブロックの後続処理は実行し

ないでジョブステップエラーブロックを実行します。

• ジョブステップの onError 属性が cont の場合,ジョブステップ正常ブロックの後続処理を実行し

ます。

(O)

関数の実行結果を確認し,エラーとなった原因を取り除きます。

KNAX6581-E

関数(

関数名

,

機能名

)がエラー終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU時

間 s

機能名

で示す機能で実行された関数がエラー終了しました。

関数名

実行した関数名。

機能名

関数を実行した機能名。次のどちらかが出力されます。

• コマンド置換:コマンド置換機能

• trap コマンドのアクション:trap コマンドのアクション

終了コード

関数の終了コード

12. メッセージ

JP1/Advanced Shell

1384

実行時間

関数の実行時間。OS の API を使って取得した参考値です。

CPU時間

関数の CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。エラーとなった関数がジョブステップ内の関数の場合,次のように動作します。

• ジョブステップの onError 属性が stop の場合,ジョブステップ正常ブロックの後続処理は実行し

ないでジョブステップエラーブロックを実行します。

• ジョブステップの onError 属性が cont の場合,ジョブステップ正常ブロックの後続処理を実行し

ます。

(O)

関数の実行結果を確認し,エラーとなった原因を取り除きます。

KNAX6582-E

関数(

関数名

, 行番号=

行数

)の実行を中断しました。

次の要因により関数の実行を中断しました。

• 関数実行中にジョブコントローラがシグナルを受信してエラー終了した

• 関数実行中にジョブコントローラが TerminateProcess などによるプロセス即時終了によりエラー終

了した

• 関数実行中にジョブコントローラが制御信号を受信してエラー終了した

• 特殊組み込みコマンドのエラー,および JP1/Advanced Shell で処理を続行できないと判断されるエ

ラーが関数内で発生した(ただし,typeset コマンドのエラー,関数内または外部スクリプト内で実行

した return コマンドのエラーを除く)

• 関数実行中に CUI デバッガの kill コマンドによりジョブ定義スクリプトを終了した

• 関数実行中に CUI デバッガの quit コマンドによりデバッガを終了した

• 関数実行中に GUI デバッガによりデバッグを中止した

関数名

実行した関数名。

行数

関数が記述されているジョブ定義スクリプトの行数。

(S)

処理を中断します。

12. メッセージ

JP1/Advanced Shell

1385

(O)

エラーが原因で関数の実行が中断された場合は,障害を取り除いて再実行します。

KNAX6583-E

関数(

関数名

,

機能名

)の実行を中断しました。

機能名

で示す機能で実行された関数が,次の要因により実行を中断しました。

• 関数実行中にジョブコントローラがシグナルを受信してエラー終了した

• 関数実行中にジョブコントローラが TerminateProcess などによるプロセス即時終了によりエラー終

了した

• 関数実行中にジョブコントローラが制御信号を受信してエラー終了した

• 特殊組み込みコマンドのエラー,および JP1/Advanced Shell で処理を続行できないと判断されるエ

ラーが関数内で発生した(ただし,typeset コマンドのエラー,関数内または外部スクリプト内で実行

した return コマンドのエラーを除く)

• 関数実行中に CUI デバッガの kill コマンドによりジョブ定義スクリプトを終了した

• 関数実行中に CUI デバッガの quit コマンドによりデバッガを終了した

• 関数実行中に GUI デバッガによりデバッグを中止した

関数名

実行した関数名。

機能名

関数を実行した機能名として,次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

(S)

処理を中断します。

(O)

エラーが原因で関数の実行が中断された場合は,障害を取り除いて再実行します。

KNAX6584-I

ジョブ定義スクリプトの実行を停止するコマンドが実行されたため,バッチジョブの実行を中断しま

した。

12. メッセージ

JP1/Advanced Shell

1386

ジョブ定義スクリプトの実行を停止するコマンドが実行されたため,バッチジョブの実行を中断しました。

後続ジョブステップ・後続のジョブ定義スクリプトは実行しません。run 属性が abnormal や always の

ジョブステップについても実行しません。

また,この場合,実行したコマンドに対しては,#-adsh_rc_ignore コマンドの指定,および#adsh_step_start コマンドの successRC 属性の指定は有効になりません。

このメッセージは,次のどれかの場合に出力されます。

• exit コマンドを実行して,ジョブ定義スクリプトが即時終了した場合

• 関数外かつ外部スクリプトでない位置での return コマンドを実行して,ジョブ定義スクリプトが即時

終了した場合

• exec コマンドの引数に実行可能なコマンドを指定して実行し,スクリプトが終了した場合

• 特殊組み込みコマンドのエラー,および JP1/Advanced Shell で処理を続行できないと判断されるエ

ラーが発生した場合(ただし,typeset コマンドのエラー,関数内または外部スクリプト内で実行した return コマンドのエラーを除く)

(S)

バッチジョブの実行は中断します。

(O)

エラーが原因でバッチジョブの実行が中断された場合は,障害を取り除いてバッチジョブを再実行しま

す。

KNAX6585-I

ジョブステップの終了コードが#-adsh_job_stop コマンドで指定した条件を満たしているため,バッ

チジョブの実行を中断しました。

ジョブステップの終了コードが#-adsh_job_stop コマンドで指定した条件を満たしているため,バッチ

ジョブの実行を中断しました。

(S)

処理を終了します。

(O)

問題が発生している場合,ジョブステップの実行結果を参照して原因を取り除き,バッチジョブを再実

行します。

12. メッセージ

JP1/Advanced Shell

1387

KNAX6586-E

ジョブ定義スクリプトの実行を継続できないエラーが発生したため,バッチジョブの実行を中断しま

した。

ジョブ定義スクリプトの実行を継続できないエラーが発生したため,バッチジョブの実行を中断しました。

後続ジョブステップ・後続のジョブ定義スクリプトは実行しません。run 属性が abnormal や always の

ジョブステップについても実行しません。

(S)

ジョブの実行を中断します。

(O)

エラーの原因を取り除いてジョブを再実行します。

KNAX6587-E

起動された子孫ジョブの数が上限値を超えました。

起動された子孫ジョブの数が上限値を超えました。

(S)

処理を終了します。

(O)

1 つのルートジョブの中で起動する子孫ジョブ(子孫ジョブから起動する子孫ジョブを含む)の数が

9,999,999 個以下になるように,ジョブ定義スクリプトファイルを見直してください。

KNAX6588-E

API error occurred. name=

API名称

, reason=

エラー詳細

API名称

で示す API の呼び出しで,

エラー詳細

に示すエラーが発生しました。

(S)

処理を終了します。

(O)

原因および一緒に出力されるほかのメッセージを参照してエラーの原因を取り除きます。問題が解決し

ない場合,システム管理者に連絡します。

12. メッセージ

JP1/Advanced Shell

1388

KNAX6589-W

エラーが発生しましたが,ジョブを続行します。name=

API名称

, reason=

原因

, details=

保守情報

API名称

で示す API の呼び出しで,

原因

に示すエラーが発生しましたが,ジョブを続行します。次の原因

が考えられます。

API名称

が CreateFile の場合,標準入力,標準出力,および標準エラー出力が使用できない環境で adshexec コマンドが実行された可能性があります。

API名称

が isatty の場合,標準入力が使用できない環境で adshexec コマンドが実行された可能性があ

ります。

(S)

処理を続行します。

(O)

ジョブの動作に問題が発生していない場合,対処は不要です。問題が発生している場合,エラーの原因

を取り除き,バッチジョブを再実行します。問題が解決しない場合は,システム管理者に連絡します。

KNAX6590-E

機能名

でエラーが発生しました。details=

保守情報

機能名

で示す機能が失敗しました。

機能名

エラーが発生した関数の機能名。次のどれかが出力されます。

シェル変数の取得に関する機能の場合:get variable

シェル変数の設定に関する機能の場合:set variable

シェル変数の設定削除に関する機能の場合:unset variable

外部スクリプトの関する機能の場合:run external script

ジョブ定義スクリプトの終了コード関する機能の場合:set rc

ファイルオープンに関する機能の場合:open file

(S)

エラーが発生した機能に応じて,処理を続行,または終了します。

(O)

システム管理者に連絡します。

12. メッセージ

JP1/Advanced Shell

1389

KNAX6591-E

終了要求シグナルを受信したため,ジョブコントローラが強制終了しました。signalNo=

シグナル

番号

ジョブ実行中に

シグナル番号

で示す終了要求シグナルを受信したため,ジョブコントローラが強制終了し

ました。

(S)

ジョブコントローラは起動中の子孫プロセスを強制終了し,ファイルの削除などの必要な後処理を実行

してから終了します。

(O)

ジョブが強制終了されていることを確認します。

KNAX6592-E

制御信号を受信したため,ジョブコントローラが強制終了しました。ctrlType=

制御種別

ジョブ実行中に

制御種別

で示す制御信号を受信したため,ジョブコントローラが強制終了しました。

制御

種別

には,次のどれかの文字列が出力されます。

• CTRL + C 信号を受け取った場合:CTRL + C

• CTRL + BREAK 信号を受け取った場合:CTRL + BREAK

• ユーザーがコンソールを閉じた場合(CTRL + C の受信時):CLOSE EVENT

(S)

ジョブコントローラは起動中の子孫プロセスを強制終了し,ファイルの削除などの必要な後処理を実行

してから終了します。

(O)

ジョブが強制終了されていることを確認します。

KNAX6593-E

ジョブコントローラが強制終了の要求を受け取りました。

ジョブコントローラが強制終了の要求を受け取りました。

12. メッセージ

JP1/Advanced Shell

1390

(S)

ジョブコントローラは起動中の子孫プロセスを強制終了し,ファイルの削除などの必要な後処理を実行

してから終了します。

(O)

バッチジョブが強制終了されていることを確認します。

KNAX6594-E

TerminateProcess などのプロセス終了の操作によって,ジョブコントローラが強制終了しました。

TerminateProcess などのプロセス終了の操作によって,ジョブコントローラが強制終了しました。

(S)

ジョブコントローラは起動中の子孫プロセスを強制終了し,ファイルの削除などの必要な後処理を実行

してから終了します。

(O)

バッチジョブが強制終了されていることを確認します。

KNAX6595-E

エラーが発生しました。reason=

原因

,details=

保守情報

次のどちらかの要因で,

原因

に示すエラーが発生しました。

• スクリプト拡張コマンドの指定位置が不正です。

• 内部エラーが発生しました。

(S)

処理を終了します。

(O)

スクリプト拡張コマンドの指定位置を確認し,ジョブ定義スクリプトを修正します。スクリプト拡張コ

マンドの指定位置に問題がない場合,システム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1391

KNAX6596-E

ジョブ名

.

ジョブステップ名

ジョブステップがエラー終了しました。rc=

終了コード

E-Time=

実行時

間 s C-Time=

CPU時間 s

ジョブステップがエラーで終了しました。

ジョブ名

ジョブ名

ジョブステップ名

ジョブステップ名

終了コード

ジョブステップの終了コード

実行時間

ジョブステップの実行時間。OS の API を使って取得した参考値です。

CPU時間

ジョブステップの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行し,後続ジョブステップの中で run 属性が abnormal または always のジョブステップだ

けを実行します。ただし,次の場合はシェルを終了します。

• ジョブ定義スクリプトの実行を停止するコマンドが実行されたため,KNAX6584-I を出力した場合

• 上記以外でジョブ定義スクリプトの実行を停止するエラーが発生した場合

(O)

ジョブステップ内の各コマンドの実行結果を確認し,エラーとなった原因を取り除きます。

KNAX6597-I

ジョブ名

.

ジョブステップ名

ジョブステップが正常終了しました。rc=

終了コード

E-Time=

実行時間 s C-Time=

CPU時間 s

ジョブステップが正常に終了しました。

ジョブ名

ジョブ名

ジョブステップ名

ジョブステップ名

12. メッセージ

JP1/Advanced Shell

1392

終了コード

ジョブステップの終了コード

実行時間

ジョブステップの実行時間。OS の API を使って取得した参考値です。

CPU時間

ジョブステップの CPU 時間。OS の API を使って取得した参考値です。

(S)

処理を続行します。

KNAX6598-E

API エラーが発生しました。name=

API名称

, reason=

原因

, details=

保守情報

API名称

で示す API 呼び出しで,

原因

に示すエラーが発生しました。

(S)

処理を終了します。

(O)

原因および一緒に出力されるほかのメッセージを参照してエラーの原因を取り除きます。問題が解決し

ない場合,システム管理者に連絡してください。

KNAX6599-E

内部エラーが発生しました。reason=

原因

, details=

保守情報

原因

に示す内部エラーが発生しました。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1393

KNAX6600-E

エラーが発生しました。

関数名

([ 引数 ,…]) rc=

リターンコード

, error number=

エラー番号

, internal info=(

保守情報

)

関数名

で示す関数でエラーが発生しました。

関数名

エラーが発生した関数(プラットフォームが提供している関数)

引数

関数の引数。出力されない場合もあります。

リターンコード

関数の戻り値

エラー番号

エラー内容を示すグローバル変数 errno の値。10 進数です。

(S)

処理を続行するかどうかは状況に依存します。このメッセージに続いて出力されるメッセージを参照し

てください。

(O)

メッセージ内容を基に原因を調査し,解決してください。

KNAX6601-E

処理中に内部矛盾を検出しました。details=

保守情報

処理中に内部矛盾を検出しました。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX6602-E

標準出力への出力時に入出力エラーが発生しました。

標準出力 stdout への出力時に入出力エラーが発生しました。

12. メッセージ

JP1/Advanced Shell

1394

(S)

処理を終了します。

(O)

このメッセージの前後に出力されたメッセージの内容を基に,標準出力の入出力エラーの原因を調査

し,問題を解決してください。

KNAX6603-E

現在の日付を取得できませんでした。

現在の日付を取得できませんでした。

(S)

処理を終了します。

(O)

このメッセージの前後に出力されたメッセージの内容を基に,エラーの原因を調査し,問題を解決して

ください。

KNAX6604-E 【Windows 限定】

エラーが発生しました。

関数名

( 引数 ) rc=

リターンコード

, last error code=

システムエラーコード

, internal info=(

保守情報

)

関数名

で示す関数でエラーが発生しました。

関数名

エラーが発生した関数名(プラットフォームが提供している関数)

引数

関数の引数で障害調査用の情報

必ず出力されるとは限りません。また,すべての引数が出力されるとは限りません。

リターンコード

関数の戻り値

システムエラーコード

エラー内容を示す LastError()の戻り値

(S)

処理はこのメッセージの前後に出力されたメッセージに依存します。

12. メッセージ

JP1/Advanced Shell

1395

(O)

このメッセージの前後に出力されたメッセージの内容を基に,エラーの原因を調査し,問題を解決して

ください。

KNAX6605-E

日時を内部表現に変換するときにエラーが発生しました。time=

日時

日時を内部表現に変換するときにエラーが発生しました。

日時

内部表現に変換できなかった日時

(S)

処理を終了します。

(O)

コマンドが解釈した結果の日時が,次に示す範囲に収まる日時を指定します。

この日時の範囲は UTC で示した日時です。

1970 年 1 月 1 日 00:00:00〜2038 年 1 月 19 日 03:14:07

ただし,プラットフォームによっては,この範囲であってもエラーになることがあります。

KNAX6610-E

無効なオプション名("

オプション名

")が指定されています。

不明なオプションが指定されています。

オプション名

不明なオプション名

(S)

処理を終了します。

(O)

正しいオプションを指定してください。

12. メッセージ

JP1/Advanced Shell

1396

KNAX6611-E

オプション("

オプション名

")の値が指定されていません。

オプション名

で示すオプションの値が指定されていません。

(S)

処理を終了します。

(O)

出力されたオプションに対して,値を指定してください。

KNAX6612-E

オプションの値("

オプション値

")が正しくありません。

オプションの値が正しくありません。

オプション値

指定されたオプションの値

(S)

処理を終了します。

(O)

オプションに対して正しい値を指定してください。

KNAX6613-I

ジョブの実行開始日時の下限:

YYYY

-

MM

-

DD hh

: mm

: ss

+ hhmm

 または

ジョブの実行開始日時の下限: 指定されていません。

YYYY

-

MM

-

DD hh

: mm

: ss

+ hhmm

」に,コマンドが解釈した「ジョブの実行開始日時の下限」を示します。

「+ hhmm

」はローカルタイム - UTC の時差の時分による表現です。

「指定されていません。」は,-s オプションが指定されていないことを示します。

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1397

KNAX6614-I

ジョブの実行開始日時の上限:

YYYY

-

MM

-

DD hh

: mm

: ss

+ hhmm

 または

ジョブの実行開始日時の上限: 指定されていません。

YYYY

-

MM

-

DD hh

: mm

: ss

+ hhmm

」に,コマンドが解釈した「ジョブの実行開始日時の上限」を示します。

「+ hhmm

」はローカルタイム - UTC の時差の時分による表現です。

「指定されていません。」は,-e オプションが指定されていないことを示します。

(S)

処理を続行します。

KNAX6615-E

ジョブの実行開始日時の下限と上限が逆転しています。

ジョブの実行開始日時の下限と上限が逆転しています。

(S)

処理を終了します。

(O)

ジョブの実行開始日時の上限(adshevtout コマンドの-e オプションで指定)が,ジョブの実行開始日

時の下限(adshevtout コマンドの-s オプションで指定)よりあとになるよう指定してください。

KNAX6616-E

コマンドに余分な引数があります。

コマンドに余分な引数があります

(S)

処理を終了します。

(O)

コマンドの引数を正しく指定してください。

12. メッセージ

JP1/Advanced Shell

1398

KNAX6632-E

スプールディレクトリが見つかりません。directory name="

スプールディレクトリ名

"

スプールディレクトリが見つかりません。

スプールディレクトリ名

参照しようとしたディレクトリ

(S)

処理を終了します。

(O)

環境ファイルで指定したスプールディレクトリが正しいか確認してください。

KNAX6633-E

スプールディレクトリを参照できません。directory name="

スプールディレクトリ名

"

スプールディレクトリを参照できません。

スプールディレクトリ名

参照しようとしたディレクトリ

(S)

処理を終了します。

(O)

コマンドを実行するユーザーにスプールディレクトリを参照する権限があるか,確認してください。

KNAX6634-E

初期化処理でエラーが発生しました。 adshevtout コマンドの初期化処理でエラーが発生しました。

(S)

処理を終了します。

(O)

このメッセージより先に出力されたメッセージを参照して問題を解決してください。

12. メッセージ

JP1/Advanced Shell

1399

KNAX6635-E

スプールを参照するための排他制御でエラーが発生しました。directory name="

スプールディレクト

リ名

"

スプールを参照するための排他制御でエラーが発生しました。

スプールディレクトリ名

参照しようとしたディレクトリ

(S)

処理を終了します。

(O)

次の内容を確認してください。

• 環境ファイルで指定したスプールディレクトリが正しいか。

• スプールディレクトリを参照または更新できるアクセス権限があるか。

• ロックファイルを作成,参照,または更新できるか。

KNAX6636-E

ほかのコマンドがスプールにアクセスしているため,スプールを参照できませんでした。directory name="

スプールディレクトリ名

"

ほかのコマンドがスプールにアクセスしているため,スプールを参照できませんでした。

スプールディレクトリ名

参照しようとしたディレクトリ

(S)

処理を終了します。

(O) adshhk コマンドを実行していない状態で,コマンドを再実行してください。

KNAX6640-I

イベントファイル("

イベントファイルのパス名

")への参照権限がないため,イベントファイルの参

照をスキップしました。

12. メッセージ

JP1/Advanced Shell

1400

コマンドを実行したユーザーにはイベントファイルへの参照権限がないため,イベントファイルの参照を

スキップしました。

イベントファイルのパス名

スキップしたイベントファイルのパス名

(S)

処理を続行します。

KNAX6644-E

イベントファイル("

イベントファイルのパス名

")の読み込み時に入出力エラーが発生しました。

イベントファイルの読み込み時に入出力エラーが発生しました。

イベントファイルのパス名

入出力エラーが発生したイベントファイルのパス名

(S)

入出力エラーが発生したイベントファイルの処理を中止し,別のイベントファイルの処理を続行します。

(O)

このメッセージの前後に出力されたメッセージの内容を基に,イベントファイルの入出力エラーの原因

を調査し,問題を解決してください。

KNAX6645-W

イベントファイル("

イベントファイルのパス名

")は,このコマンドでサポートしていないバージョ

ン(

バージョン番号

)のイベントファイルです。

イベントファイルは,このコマンドでサポートしていないバージョンのイベントファイルです。

イベントファイルのパス名

イベントファイルのパス名

バージョン番号

イベントファイルのバージョン番号

(S)

出力したイベントファイルを参照しないで,別のイベントファイルの処理を続行します。

12. メッセージ

JP1/Advanced Shell

1401

(O)

イベントファイルを作成した JP1/Advanced Shell のバージョンに対応するコマンドを実行してくだ

さい。

KNAX6646-E

イベントファイル("

イベントファイルのパス名

")が壊れています。

イベントファイルが壊れています。

イベントファイルのパス名

壊れていると判断したイベントファイルのパス名

(S)

壊れていると判断したイベントファイルの処理を中止し,別のイベントファイルの処理を続行します。

(O)

イベントファイルを不当に更新していないか確認してください。原因が確認できない場合は,システム

管理者に連絡してください。

KNAX6701-W

ジョブオブジェクトを使用できません。

ジョブオブジェクトを使用できません。バッチジョブを強制終了したとき,子プロセスが作成したプロセ

スについては TerminateProcess 関数によるプロセス終了を行いません。

(S)

処理を継続します。

KNAX6710-I

組み込みコマンド "

コマンド名

"[ に指定されているオプション "

オプション名

"] は現在のプラットフォー

ムではサポートしていません。組み込みコマンドの終了コードは "

終了コード

" です。[ filename="

ファ

イル名

" line=

行番号

]

現在のプラットフォームではサポートされていない組み込みコマンド(または組み込みコマンドのオプショ

ン)を指定して実行しようとしました。または,環境設定パラメーター TRAP_ACTION_SIGTERM に

DISABLE を指定した環境で trap コマンドを実行しようとしました。

12. メッセージ

JP1/Advanced Shell

1402

コマンド名

組み込みコマンド名

オプション名

組み込みコマンドに指定されたオプション名

終了コード

組み込みコマンドの終了コード

ファイル名

ジョブ定義スクリプトファイル名

行番号

組み込みコマンドを実行しようとした行の行番号

(S)

終了コード

に示す値を組み込みコマンドの終了コードとして処理を継続します。

KNAX6711-E

組み込みコマンド "

コマンド名

"[ に指定されているオプション "

オプション名

"] は現在のプラットフォー

ムではサポートしていません。[ filename="

ファイル名

" line=

行番号

]

現在のプラットフォームではサポートされていない組み込みコマンド(または組み込みコマンドのオプショ

ン)を指定して実行しようとしました。

コマンド名

組み込みコマンド名

オプション名

組み込みコマンドに指定されたオプション名

ファイル名

ジョブ定義スクリプトファイル名

行番号

組み込みコマンドを実行しようとした行の行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

12. メッセージ

JP1/Advanced Shell

1403

KNAX6712-E

現在のプラットフォームでは,名前がすべて大文字でない変数("

シェル変数名

")はエクスポートで

きません。[ filename="

ファイル名

" line=

行番号

]

現在のプラットフォームでは,名前がすべて大文字でない変数はエクスポートできません。

シェル変数名

エクスポートしようとしたシェル変数の名前

ファイル名

ジョブ定義スクリプトファイル名

行番号 export コマンドを実行しようとした行の行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6713-E

必須のディレクトリ("

ディレクトリ名

")が存在しません。

現在のプラットフォームで,JP1/Advanced Shell に必須のディレクトリが存在しません。

ディレクトリ名

存在しないディレクトリのディレクトリ名

(S)

処理を終了します。

(O)

セットアップの手順を見直してください。

KNAX6714-E

現在のプラットフォームでは,バックグラウンド実行できません。[ filename="

ファイル名

" line=

番号

]

現在のプラットフォームでは,バックグラウンドでジョブ定義スクリプトを実行できません。

12. メッセージ

JP1/Advanced Shell

1404

ファイル名

ジョブ定義スクリプトファイル名

行番号

バックグラウンドで実行しようとした行の行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6715-E

現在のプラットフォームでは,サブシェルの実行はできません。[ filename="

ファイル名

" line=

行番

]

現在のプラットフォームでは,サブシェルでジョブ定義スクリプトを実行できません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

サブシェルで実行しようとした行の行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを修正します。

KNAX6718-I

The trap action was not set because an unsupported termination method was specified in the trap command.[filename="

ファイル名

" line=

行番号

] trap コマンドに未サポートの強制終了方法を指定したため,アクションが設定されません。

ファイル名

ジョブ定義スクリプトファイル名

行番号

組み込みコマンドを実行しようとした行の行番号

12. メッセージ

JP1/Advanced Shell

1405

(S)

処理を継続します。

KNAX6750-E

ファイルまたはディレクトリ("

パス名

")が存在しません。

パス名

で示すファイルまたはディレクトリがありません。

(S)

処理を継続します。

(O)

パス名

に指定したファイルまたはディレクトリが正しいか見直してください。

KNAX6751-E

ACL 情報の取得に失敗しました。path="

パス名

", reason=

原因

, details=

保守情報

パス名

で示すファイルまたはディレクトリの ACL の情報の取得に失敗しました。

(S)

処理を継続します。

(O) adshscripttool コマンドの実行ユーザーが,パス名に指定したファイルまたはディレクトリの所有者で

あるか確認してください。所有者でない場合,所有者で実行してください。

KNAX6752-E

モードの書式に誤りがあります。 adshscripttool コマンドの-fmode オプションに指定したモードの書式に誤りがあります。

(S)

処理を継続します。

(O)

モードの指定を見直してください。

12. メッセージ

JP1/Advanced Shell

1406

KNAX6753-E adshscripttool: コマンドラインの指定に誤りがあります。details=" 詳細 "

コマンドラインの指定に誤りがあります。メッセージに表示される詳細の表示内容と,その意味を次に示

します。

詳細の表示内容

必要なオプションが指定されていません。

パス名が指定されていません。

モードが指定されていません。

-s オプションの値が指定されていません。

-s オプションを先頭に指定することはできません。

-s オプションの値が間違っています。

パス名を複数指定することはできません。

モードを複数指定することはできません。

パス名に空文字列が指定されました。

モードに空文字列が指定されました。

-s オプションの値に空文字列が指定されました。

(S)

処理を継続します。

(O)

コマンドを正しく指定して再実行してください。

意味

必要なオプションが指定されていません。

パス名が指定されていません。

モードが指定されていません。

-s オプションの値が指定されていません。

-s オプションを先頭に指定することはできません。

-s オプションの値が間違っています。

パス名を複数指定することはできません。

モードを複数指定することはできません。

パス名に空文字列が指定されました。

モードに空文字列が指定されました。

-s オプションの値に空文字列が指定されました。

KNAX6800-I

パスの変換規則に合致しました。[ filename="

ファイル名

" line=

行番号

] rule_str="

パス名1

":"

パス名

2

"

パス名1

から

パス名2

に置換する変換規則に合致しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

パスの変換規則に合致した行の行番号

12. メッセージ

JP1/Advanced Shell

1407

(S)

処理を継続します。

KNAX6801-I

パスを扱うシェル変数による変換規則に合致しました。[ filename="

ファイル名

" line=

行番号

] rule_var="

シェル変数名

"

パスを扱うシェル変数による変換規則に合致しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

パスの変換規則に合致した行の行番号

シェル変数名

パス名を扱うシェル変数の名前

(S)

処理を継続します。

KNAX6803-I

PATH_CONV_ACCESS パラメーターの変換規則に合致しました。[ filename="

ファイル名

" line=

行番号

] rule_str="

パス名1

":"

パス名2

"

パス名1

から

パス名2

に置換する変換規則に合致しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

PATH_CONV_ACCESS パラメーターの変換規則に合致した行の行番号

(S)

処理を継続します。

12. メッセージ

JP1/Advanced Shell

1408

KNAX6804-I

COMMAND_CONV_ARG パラメーターの変換規則に合致しました。[ filename="

ファイル名

" line=

行番号

] rule_str="

引数1

":"

引数2

"

引数1

から

引数2

に置換する変換規則に合致しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

COMMAND_CONV_ARG パラメーターの変換規則に合致した行の行番号

(S)

処理を継続します。

KNAX6805-I

機能名

の中で PATH_CONV_ACCESS パラメーターの変換規則に合致しました。rule_str="

パス名

1

":"

パス名2

"

機能名

で示す機能を実行している時に,

パス名1

から

パス名2

に置換する変換規則に合致しました。

機能名

変換規則に合致した機能名。次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

• trap コマンドのアクションの場合:trap コマンドのアクション

(S)

処理を継続します。

KNAX6806-I

機能名

の中で COMMAND_CONV_ARG パラメーターの変換規則に合致しました。rule_str="

引数

1

":"

引数2

"

機能名

で示す機能を実行している時に,

引数1

から

引数2

に置換する変換規則に合致しました。

機能名

変換規則に合致した機能名。次のどちらかが出力されます。

• コマンド置換機能の場合:コマンド置換

12. メッセージ

JP1/Advanced Shell

1409

• trap コマンドのアクションの場合:trap コマンドのアクション

(S)

処理を継続します。

KNAX6810-E

PATH_CONV_ENABLE パラメーターで指定したディレクトリ区切り文字が不正です。

PATH_CONV_ENABLE パラメーターで指定したディレクトリ区切り文字が不正です。

(S)

処理を終了します。

(O)

環境ファイルを修正します。

KNAX6811-E

PATH_CONV_ENABLE パラメーターで指定したパス区切り文字が不正です。

PATH_CONV_ENABLE パラメーターで指定したパス区切り文字が不正です。

(S)

処理を終了します。

(O)

環境ファイルを修正します。

KNAX6812-E

PATH_CONV パラメーターで指定したパス名("

パス名

")が不正です。

PATH_CONV パラメーターで指定したパスが不正です。

パス名

PATH_CONV パラメーターで指定したパス名

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1410

(O)

環境ファイルを修正します。

KNAX6813-E

ジョブ定義スクリプトの 1 行の上限を超えました。[ filename="

ファイル名

" line=

行番号

]

ジョブ定義スクリプトの 1 行の上限を超えました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

上限を超えた行の行番号

(S)

処理を終了します。

(O)

ジョブ定義スクリプトを見直します。

KNAX6814-E

"

引数

" は不正な引数です。

COMMAND_CONV_ARG パラメーター,または PATH_CONV_ACCESS パラメーターで指定した引

数が不正です。

引数

COMMAND_CONV_ARG パラメーター,または PATH_CONV_ACCESS パラメーターで指定した

引数

(S)

処理を終了します。

(O)

環境ファイルを修正します。

12. メッセージ

JP1/Advanced Shell

1411

KNAX6815-E

引数が指定されていません。

COMMAND_CONV_ARG パラメーター,または PATH_CONV_ACCESS パラメーターの引数が指定

されていません。

(S)

処理を終了します。

(O)

環境ファイルを修正します。

KNAX6830-I

CHILDJOB_PGM パラメーターによる子孫ジョブ実行の読み替え規則に合致しました。cmdline="

マンドライン

"

CHILDJOB_PGM パラメーターによる子孫ジョブ実行の読み替え規則に合致しました。または, adshscripttool -exec コマンドを実行して子孫ジョブを実行しました。

コマンドライン

読み替えるコマンドのコマンドライン

(S)

処理を継続します。

KNAX6831-I

CHILDJOB_SHEBANG パラメーターによる子孫ジョブ実行の読み替え規則に合致しました。script="

スクリプト名

" shebang="

シェバン

"

CHILDJOB_SHEBANG パラメーターによる子孫ジョブ実行の読み替え規則に合致しました。

スクリプト名

子孫ジョブとして実行するスクリプトファイルのファイル名

シェバン

子孫ジョブとして実行するスクリプトファイルの 1 行目に記述した,#!で始まる行

(S)

処理を継続します。

12. メッセージ

JP1/Advanced Shell

1412

KNAX6832-I

CHILDJOB_EXT パラメーターによる子孫ジョブ実行の読み替え規則に合致しました。script="

スク

リプト名

"

CHILDJOB_EXT パラメーターによる子孫ジョブ実行の読み替え規則に合致しました。

スクリプト名

子孫ジョブとして実行するスクリプトファイルのファイル名

(S)

処理を継続します。

KNAX6996-I

API エラーが発生しました。name=

API名称

, reason=

原因

API名称

で示す API 呼び出しで,

原因

で示すエラーが発生しました。

(S)

処理を終了します。

(O)

原因を参照してエラーの原因を取り除きます。問題が解決しない場合,システム管理者に連絡してくだ

さい。

KNAX6997-E

API エラーが発生しました。name=

API名称

reason=

原因

API名称

で示す API 呼び出しで,

原因

で示すエラーが発生しました。

API名称

が「AssignProcessToJobObject」であり,

原因

が「Access is denied.」の場合は,ジョブ定義

スクリプト中から子孫ジョブではなくルートジョブとしてジョブコントローラを呼び出している,または

ジョブオブジェクトを使用する JP1/Advanced Shell 以外のプログラムからジョブコントローラを呼び出

している可能性があります。

(S)

処理を終了します。ただし,API 名称が「AssignProcessToJobObject」の場合は,処理を継続します。

12. メッセージ

JP1/Advanced Shell

1413

(O)

• ジョブ定義スクリプト中から子孫ジョブではなくルートジョブとしてジョブコントローラを呼び出

している場合

子孫ジョブとしてジョブコントローラを呼び出してください。

• ジョブオブジェクトを使用する JP1/Advanced Shell 以外のプログラムからジョブコントローラを

呼び出している場合

ジョブコントローラはジョブの強制終了時に,孫以下のプロセスを強制終了しないで終了します。

ジョブコントローラを呼び出しているプログラムの仕様も確認し,強制終了時の動作に問題がなけ

ればエラーに対する対処は不要です。問題があるときは,システム管理者に連絡してください。

• 上記以外の場合

原因を参照してエラーの原因を取り除きます。問題が解決しないときは,システム管理者に連絡し

てください。

KNAX6998-E

メモリ不足が発生しました。[ filename="

ファイル名

" line=

行番号

]

メモリ不足が発生しました。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生した行の行番号

(S)

処理を終了します。

(O)

システム管理者に連絡します。システム管理者は,メモリ見積もりを見直してください。

KNAX6999-E

内部エラーが発生しました。reason="

原因

" details="

保守情報

"

内部エラーが発生しました。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1414

(O)

システム管理者に連絡します。

KNAX7000-E

入力文字列が長すぎます。

入力文字列が長過ぎます。

(S)

処理を続行します。

(O)

入力文字列長を見直して再度入力します。

KNAX7001-E

指定したコマンド("

コマンド名

")は存在しません。

コマンド名

で示すデバッガのコマンドがありません。

(S)

処理を続行します。

(O)

正しいコマンド名を再度入力します。

KNAX7002-E

引数の指定が多すぎます。

引数の指定が多過ぎます。

(S)

処理を続行します。

(O)

正しい引数を指定してコマンドを再実行します。

12. メッセージ

JP1/Advanced Shell

1415

KNAX7003-E

デバッガコマンド("

コマンド名

")は引数を取りません。

コマンド名

で示すデバッガコマンドは引数を取りません。

(S)

処理を続行します。

(O)

正しい引数を指定してコマンドを再実行します。

KNAX7004-E

デバッガコマンド("

コマンド名

")に必要な引数(

引数詳細

)が指定されていません。

コマンド名

で示すデバッガのコマンドは

引数詳細

で示す引数を取ります。

(S)

処理を続行します。

(O)

正しい引数を指定してコマンドを再実行します。

KNAX7006-W

ジョブ定義スクリプトを最初から再実行しますか?(y または n)

ジョブ定義スクリプトを最初から再実行するかどうかを確認します。

(S)

処理を続行します。

(O)

再実行する場合,y を入力します。再実行しない場合,n を入力します。

KNAX7007-I

ジョブ定義スクリプトの実行を開始します。:

ジョブ定義スクリプトのパス名 引数

12. メッセージ

JP1/Advanced Shell

1416

ジョブ定義スクリプトの実行を開始します。

(S)

処理を続行します。

KNAX7008-I

ジョブ定義スクリプトを再実行しませんでした。

ジョブ定義スクリプトを再実行しませんでした。

(S)

処理を続行します。

KNAX7009-I

デバッグ中のジョブ定義スクリプトを終了しますか?(y または n)

デバッグ中のジョブ定義スクリプトを終了するかどうかを確認します。

(S)

処理を続行します。

(O)

終了する場合,y を入力します。終了しない場合,n を入力します。

KNAX7010-E

ジョブ定義スクリプトが実行されていません。

ジョブ定義スクリプトが実行していません。

(S)

処理を続行します。

(O)

ジョブ定義スクリプトを実行中にコマンドを再実行します。

12. メッセージ

JP1/Advanced Shell

1417

KNAX7011-I

デバッガコマンド("

コマンド名

")は実行されませんでした。

コマンド名

で示すデバッガのコマンドは実行されませんでした。

(S)

処理を続行します。

KNAX7012-W

ジョブ定義スクリプト実行中にデバッガを終了しますか?(y または n)

ジョブ定義スクリプト実行中にデバッガを終了するかどうかを確認します。

(S)

処理を続行します。

(O)

終了する場合,y を入力します。終了しない場合,n を入力します。

KNAX7013-E

ジョブ定義スクリプトファイル("

ファイル名

")は解析されていません。

ファイル名

で示すジョブ定義スクリプトファイルは解析されていません。

(S)

処理を続行します。

(O)

正しいファイル名を指定してコマンドを再実行します。または,ジョブ定義スクリプトファイル内の外

部スクリプト呼び出しに#-adsh_script コマンドを使用します。

KNAX7014-E

ブレークポイントとウォッチポイントの番号が上限を超えました。

ブレークポイントとウォッチポイントの番号が上限を超えました。

12. メッセージ

JP1/Advanced Shell

1418

(S)

処理を続行します。

(O)

デバッガを再起動してからコマンドを再実行します。

KNAX7015-W

指定した行番号("

行番号

")にブレークポイントを設定できません。次に設定できる行にブレークポ

イントを設定します。

行番号

に示す行にはブレークポイントを設定できません。次に設定できる行にブレークポイントを設定し

ます。

(S)

処理を続行します。

KNAX7016-E

指定した行番号("

行番号

")にブレークポイントを設定できません。次に設定できる行もありません。

行番号

に示す行にはブレークポイントを設定できません。次に設定できる行がありません。

(S)

処理を続行します。

(O)

正しい行番号を指定してコマンドを再実行します。

KNAX7017-E

ファイル("

ファイル名

")が存在しません。

ファイル名

で示すファイルはありません。

(S)

処理を続行します。

(O)

正しいファイル名を指定してコマンドを再実行します。

12. メッセージ

JP1/Advanced Shell

1419

KNAX7018-I

ブレークポイント "

ブレークポイント番号

": ファイル名="

ファイル名

" 行番号=

行番号

ブレークポイントの情報を表示します。

ファイル名

はベース名で表示します。

(S)

処理を続行します。

KNAX7019-E

行番号("

行番号

")は存在しません。

行番号

で示す行はありません。

(S)

処理を続行します。

(O)

正しい行番号を指定してコマンドを再実行します。または,行を移動してからコマンドを再実行します。

KNAX7020-E

関数名("

関数名

")が定義されていません。

関数名

で示す関数は定義されていません。

(S)

処理を続行します。

(O)

正しい関数名を指定してコマンドを再実行します。

KNAX7021-E

ジョブステップ名("

ジョブステップ名

")が定義されていません。

ジョブステップ名

で示すジョブステップは定義されていません。

12. メッセージ

JP1/Advanced Shell

1420

(S)

処理を続行します。

(O)

正しいジョブステップ名を指定してコマンドを再実行します。

KNAX7022-E

変数名("

変数名

")が不正です。

変数名

で示す変数名が不正です。

(S)

処理を続行します。

(O)

正しい変数名を指定してコマンドを再実行します。

KNAX7023-I

ウォッチポイント "

ウォッチポイント番号

": 変数名 "

変数名

"

ウォッチポイントの情報を表示します。

(S)

処理を続行します。

KNAX7024-E

ブレークポイント・ウォッチポイント番号の範囲("

番号範囲

")が不正です。

番号範囲

で示すブレークポイント・ウォッチポイント番号の範囲が不正です。

(S)

処理を続行します。

(O)

正しい番号範囲を指定してコマンドを再実行します。

12. メッセージ

JP1/Advanced Shell

1421

KNAX7025-I

すべてのブレークポイントとウォッチポイントを削除しますか?(y または n)

すべてのブレークポイントとウォッチポイントを削除するかどうかを確認します。

(S)

処理を続行します。

(O)

削除する場合,y を入力します。削除しない場合,n を入力します。

KNAX7026-E

ブレークポイントとウォッチポイントがどちらも設定されていないため,削除できません。

ブレークポイントとウォッチポイントがどちらも設定されていないため,ブレークポイントとウォッチポ

イントを削除できません。

(S)

処理を続行します。

(O)

必要な場合,ブレークポイントまたはウォッチポイントを設定した状態でコマンドを再実行します。

KNAX7027-E

"

番号

" 番のブレークポイントまたはウォッチポイントがありません。

番号

で示すブレークポイントまたはウォッチポイントが設定されていません。

(S)

処理を続行します。

(O)

正しい番号を指定してコマンドを再実行します。

KNAX7028-E

"

番号範囲

" 番にブレークポイントとウォッチポイントがありません。

12. メッセージ

JP1/Advanced Shell

1422

番号範囲

で示す範囲にブレークポイントとウォッチポイントがありません。

(S)

処理を続行します。

(O)

正しい番号範囲を指定してコマンドを再実行します。

KNAX7029-E

コマンドの引数("

引数

")が不正です。

引数

で示すコマンドの引数が不正です。

(S)

処理を続行します。

(O)

引数の指定方法を見直してコマンドを再実行します。

KNAX7032-I

ジョブ定義スクリプトファイル("

ジョブ定義スクリプト名

")の中で実行を停止しました。

ジョブ定義スクリプト名

に示すジョブ定義スクリプトの中で実行を停止しました。

(S)

処理を続行します。

KNAX7033-I

外部スクリプトファイル("

ジョブ定義スクリプト名

")の中で実行を停止しました。

ジョブ定義スクリプト名

に示す外部スクリプトの中で実行を停止しました。

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1423

KNAX7034-I

ジョブ定義スクリプトの実行を継続します。

ジョブ定義スクリプトを継続して実行します。

(S)

処理を続行します。

KNAX7035-E

デバッガコマンド("

コマンド名

")は最も外側では実行できません。

コマンド名

で示すデバッガコマンドは最も外側では実行できません。

(S)

処理を続行します。

(O)

関数内で停止している状態でコマンドを再実行します。

KNAX7036-I

現在の関数の終わりまで実行します。

現在の関数の終わりまで実行します。

(S)

処理を続行します。

KNAX7037-I

現在の関数を終了しますか?(y または n)

現在の関数を終了するかどうかを確認します。

(S)

処理を続行します。

(O)

終了する場合,y を入力します。終了しない場合,n を入力します。

12. メッセージ

JP1/Advanced Shell

1424

KNAX7038-I

シグナル("

シグナル名

")をジョブ定義スクリプトに送信します。

シグナル名

で示すシグナルをジョブ定義スクリプトに送信します。

(S)

処理を続行します。

KNAX7039-E

シグナル番号("

シグナル番号

")はありません。

シグナル番号

で示すシグナルはありません。

(S)

処理を続行します。

(O)

正しいシグナル番号を指定してコマンドを再実行します。

KNAX7040-E

シグナル名("

シグナル名

")はありません。

シグナル名

で示すシグナルはありません。

(S)

処理を続行します。

(O)

正しいシグナル名を指定してコマンドを再実行します。

KNAX7043-I

シグナル("

シグナル名

")(Stop=Yes)を受信したため,ジョブ定義スクリプトが停止しました。

受信時にジョブ定義スクリプトを停止する

シグナル名

で示すシグナルを受信したため,ジョブ定義スクリ

プトが停止しました。

12. メッセージ

JP1/Advanced Shell

1425

(S)

処理を続行します。

KNAX7044-E

デバッガコマンド("

コマンド名

")はサブコマンドを必要とします。

コマンド名

で示すデバッガのコマンドはサブコマンドを必要とします。

(S)

処理を続行します。

(O)

サブコマンドを指定してコマンドを再実行します。

KNAX7045-E

デバッガコマンド("

コマンド名

")のサブコマンド名("

サブコマンド名

")が不正です。

コマンド名

で示すデバッガのコマンドの

サブコマンド名

が不正です。

(S)

処理を続行します。

(O)

正しいサブコマンド名を指定してコマンドを再実行します。

KNAX7046-E

変数("

変数名

")が定義されていません。

変数名

で示す変数が定義されていません。

(S)

処理を続行します。

(O)

正しい変数名を指定してコマンドを再実行します。

12. メッセージ

JP1/Advanced Shell

1426

KNAX7047-I

ブレークポイントとウォッチポイントがどちらも設定されていません。

ブレークポイントとウォッチポイントがどちらも設定されていません。

(S)

処理を続行します。

(O)

必要な場合,ブレークポイントまたはウォッチポイントを設定した状態でコマンドを再実行します。

KNAX7048-I

ディレクトリパス(

ディレクトリパス名

)に作業ディレクトリを移動しました。

ディレクトリパス名

で示すディレクトリパスに作業ディレクトリを移動しました。

(S)

処理を続行します。

KNAX7049-E

作業ディレクトリを移動できません。(reason=

エラー詳細

)

エラー詳細

で示す原因によって,作業ディレクトリを移動できません。

(S)

処理を続行します。

(O)

エラー詳細の原因を取り除いてコマンドを再実行します。

KNAX7050-E

デバッガコマンド("

コマンド名

")の引数に "&" を指定できません。

コマンド名

で示すデバッガのコマンドの引数に&を指定できません。

12. メッセージ

JP1/Advanced Shell

1427

(S)

処理を続行します。

(O)

バックグラウンド実行以外の目的で&を使用する場合,

\

&と指定してください。

KNAX7052-E

変数の型と代入する値の型とが異なっています。

変数の型と代入する値の型とが異なっています。

(S)

処理を続行します。

(O)

変数の型と代入する値の型を見直してコマンドを再実行します。

KNAX7053-I

使用方法:

コマンド名 引数

コマンド名

で示すデバッガコマンドの使用方法を表示します。

(S)

処理を続行します。

KNAX7054-E

変数("

変数名

")は読み込み専用です。

変数名

で示す変数は読み込み専用です。

(S)

処理を続行します。

(O)

変数の属性を見直してからコマンドを再実行します。

12. メッセージ

JP1/Advanced Shell

1428

KNAX7055-E

"

行番号

" 行にはブレークポイントがすでに設定されています。

行番号

に示す行にはブレークポイントがすでに設定されています。

(S)

処理を続行します。

(O)

必要があれば,ブレークポイントを削除したあと,コマンドを再実行します。または,異なる行番号を

指定してコマンドを再実行します。

KNAX7056-I

変数("

変数名

")の値が

数値

に変更されました。

変数名

に示す変数の値が

数値

に変更されました。

数値 set コマンドの代入式の右辺に記述した数値,または右辺に記述した変数の値(数値)を示します。

(S)

処理を続行します。

KNAX7057-I

変数("

変数名

")の値が "

文字列

" に変更されました。

変数名

に示す変数の値が

文字列

に変更されました。

文字列 set コマンドの代入式の右辺に記述した文字列,または右辺に記述した変数の値(文字列)を示します。

(S)

処理を続行します。

KNAX7058-I

Debugger received signal "

シグナル名

".

12. メッセージ

JP1/Advanced Shell

1429

デバッガが

シグナル名

に示すシグナルを受信しました。

(S)

処理を続行します。

KNAX7062-E

変数("

変数名

")が値を持っていません。

変数名

に示す変数が値を持っていません。

(S)

処理を続行します。

(O)

値を持つ変数名を指定してコマンドを再実行します。

KNAX7063-I

ジョブ定義スクリプト実行中にコマンド("

コマンド名

")の要求を受け付けました。

ジョブ定義スクリプト実行中に

コマンド名

に示すコマンドの要求を受け付けました。

(S)

バッチジョブをキャンセルします。

(O)

必要があれば,再実行します。

KNAX7064-I

エディタからのキャンセル要求を受け付けました。

エディタからのキャンセル要求を受け付けました。

(S)

バッチジョブをキャンセルします。

(O)

必要があれば,再実行します。

12. メッセージ

JP1/Advanced Shell

1430

KNAX7065-I

ジョブステップが定義されていません。

ジョブステップが定義されていません。

(S)

処理を続行します。

(O)

必要があれば,ジョブ定義スクリプトにジョブステップを定義したあと,コマンドを再実行します。

KNAX7066-I

関数が定義されていません。

関数が定義されていません。

(S)

処理を続行します。

(O)

必要があれば,ジョブ定義スクリプトに関数を定義したあと,コマンドを再実行します。または,関数

の定義が有効になってからコマンドを再実行します。

KNAX7067-I

変数が定義されていません。

変数が定義されていません。

(S)

処理を続行します。

(O)

必要があれば,ジョブ定義スクリプトに変数を定義したあと,コマンドを再実行します。または,変数

の定義が有効になってからコマンドを再実行します。

12. メッセージ

JP1/Advanced Shell

1431

KNAX7068-I

関数の終わりまでコマンドをスキップします。

関数の終わりまでコマンドをスキップします。

(S)

処理を続行します。

KNAX7070-E

変数("

変数名

")にはウォッチポイントがすでに設定されているため,新たなウォッチポイントは設

定されません。

変数名

に示す変数にはウォッチポイントがすでに設定されているため,新たなウォッチポイントは設定さ

れません。

(S)

処理を続行します。

(O)

必要があれば,ウォッチポイントを削除したあと,コマンドを再実行します。または,異なる変数名を

指定してコマンドを再実行します。

KNAX7071-E

デバッガが

エラー要因

で実行を停止しているため,ブレークポイントを設定できません。

エラー要因

に示す要因でデバッガがジョブ定義スクリプトの実行を停止しているため,ブレークポイント

を設定できません。

エラー要因

次のどちらかが出力されます。

• trap コマンドのアクション:trap のアクションを実行中に停止している

• EOF:EOF で停止している

(S)

処理を続行します。

(O)

エラー要因を解決した上でコマンドを再実行します。または,適切な引数を指定してコマンドを再実行

します。

12. メッセージ

JP1/Advanced Shell

1432

KNAX7072-E

デバッガが

エラー要因

で実行を停止しているため,ソースファイル行の内容を表示できません。

エラー要因

に示す要因でデバッガがジョブ定義スクリプトの実行を停止しているため,ソースファイル行

の内容を表示できません。

エラー要因

次のどちらかが出力されます。

• trap コマンドのアクション:trap のアクションを実行中に停止している

• EOF:EOF で停止している

(S)

処理を続行します。

(O)

エラー要因を解決した上でコマンドを再実行します。または,適切な引数を指定してコマンドを再実行

します。

KNAX7073-I

エディタからトラップアクションの実行要求を受け付けました。parameter value="

パラメーター値

"

エディタからトラップアクションの実行要求を受け付けました。

パラメーター値

環境設定パラメーター TRAP_ACTION_SIGTERM に指定した値です。

環境設定パラメーター TRAP_ACTION_SIGTERM に DISABLE を指定している場合,または trap コマ

ンドによるアクションの定義がない場合,このメッセージが出力されても trap コマンドのアクションは実

行されません。

(S)

処理を続行します。

KNAX7090-W

表示行数が超えたため表示できないエラー情報があります。

上限を超えて表示できないエラー情報が 1 つ以上あります。

12. メッセージ

JP1/Advanced Shell

1433

(S)

処理を続行します。

(O)

値を持つ変数名を指定してコマンドを再実行します。

KNAX7091-W

変数管理領域のサイズが上限を超えたため,表示できない変数情報があります。

上限を超えて表示できないエラー情報が 1 つ以上あります。

(S)

処理を続行します。

KNAX7099-E

デバッガがエラー終了しました。

デバッガがエラー終了しました。

(S)

処理を終了します。

(O)

このメッセージとともに出力されるほかのメッセージを参照して原因を取り除き,再実行してくださ

い。問題が解決しない場合は,システム管理者に連絡してください。

KNAX7101-E

デバッガの子プロセスの生成が失敗しました。(reason=

エラー詳細

)

エラー詳細

に示す原因で,デバッガの子プロセスの生成が失敗しました。

(S)

処理を終了します。

(O)

エラー詳細

の原因を取り除いて再実行してください。問題が解決しない場合は,システム管理者に連絡

してください。

12. メッセージ

JP1/Advanced Shell

1434

KNAX7102-I

デバッガが子プロセスを生成しました。(pid=

プロセスID

)

デバッガの子プロセスを生成しました。

(S)

処理を続行します。

KNAX7103-I

デバッガの子プロセスが終了しました。(pid=

プロセスID

)

デバッガの子プロセスが終了しました。

(S)

処理を続行します。

KNAX7104-E

デバッガでジョブ定義スクリプトを実行したときに,ログファイルのオープン処理に失敗しました。

デバッガでジョブ定義スクリプトを実行したときに,ログファイルのオープン処理に失敗しました。

(S)

処理を終了します。

(O)

エラーの原因を取り除いて再実行してください。問題が解決しない場合は,システム管理者に連絡して

ください。

KNAX7105-E

デバッガの作業ディレクトリへの移動に失敗しました。(reason=

エラー詳細

)

エラー詳細

に示す原因で,デバッガの作業ディレクトリへの移動に失敗しました。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1435

(O)

エラー詳細の原因を取り除いて再実行します。

KNAX7106-E

ジョブ定義スクリプトの作業ディレクトリへの移動に失敗しました。(reason=

エラー詳細

)

エラー詳細

に示す原因で,ジョブ定義スクリプトの作業ディレクトリへの移動に失敗しました。

(S)

処理を終了します。

(O)

エラー詳細の原因を取り除いて再実行します。

KNAX7107-I

デバッガコマンドの入力中にシグナルを受信しました。

デバッガのコマンド入力中にシグナルを受信しました。

(S)

処理を終了するシグナルのときは終了し,処理を継続するシグナルのときは継続します。

(O)

必要があれば,再実行します。

KNAX7108-E

デバッガコマンドの入力に失敗しました。

デバッガのコマンドの入力に失敗しました。

(S)

処理を終了します。

(O)

一緒に出力されるほかのメッセージを参照してエラーの原因を取り除いて再実行します。

12. メッセージ

JP1/Advanced Shell

1436

KNAX7109-I

デバッガコマンドで EOF が入力されました。

デバッガのコマンドで EOF が入力されました。

(S)

処理を終了します。

KNAX7110-E

DBG ファイル("

ファイルパス

")のオープン処理に失敗しました。(reason=

エラー詳細

)

エラー詳細

に示す原因で,ファイルパスに示すファイルのオープン処理に失敗しました。

(S)

処理を終了します。

(O)

エラー詳細の原因を取り除いて再実行します。

KNAX7111-I

DBG ファイル("

ファイルパス

")の解析を開始します。

ファイルパス

で示すファイルの解析を開始します。

(S)

処理を継続します。

KNAX7112-E

DBG ファイル("

ファイルパス

")のフォーマットが不正です。details=

保守情報

ファイルパス

で示すファイルのフォーマットが不正でした。

保守情報

は不正があった内部データの位置や

不正の要因を示す情報です。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1437

(O)

再実行します。必要があれば,システム管理者に連絡します。

KNAX7113-E

API("

API名

")でエラーが発生しました。(reason=

エラー詳細

)

エラー詳細

に示す原因で,

API名

の処理に失敗しました。

(S)

処理を終了します。

(O)

エラー詳細

の原因を取り除いて再実行してください。問題が解決しない場合は,システム管理者に連絡

してください。

KNAX7114-E

デバッガの子プロセスのウェイト処理に失敗しました。(reason=

エラー詳細

)

エラー詳細

に示す原因で,デバッガの子プロセスのウェイト処理に失敗しました。

(S)

処理を終了します。

(O)

エラー詳細

の原因を取り除いて再実行してください。問題が解決しない場合は,システム管理者に連絡

してください。

KNAX7115-E exec コマンドのプロセスの実行が失敗しました。(reason=

エラー詳細

)

エラー詳細

に示す原因によって,exec コマンドプロセスの実行が失敗しました。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1438

(O)

エラー詳細

の原因を取り除いて再実行してください。問題が解決しない場合は,システム管理者に連絡

してください。

KNAX7116-E

ディスクの空き容量が不足しています。

ディスクの空き容量が不足しています。

(S)

処理を終了します。

(O)

ディスクの空き容量を増やし,再実行します。

KNAX7117-I

DBG ファイル("

ファイルパス

")の解析が終了しました。

ファイルパス

に示す DBG ファイルの解析が終了しました。

(S)

処理を続行します。

KNAX7118-E

コンソールの作成に失敗しました。

コンソールの作成に失敗しました。

(S)

処理を終了します。

(O)

再実行します。再実行しても発生する場合,システム管理者に連絡します。

12. メッセージ

JP1/Advanced Shell

1439

KNAX7119-E

ファイル識別子の複製に失敗しました。

ファイルディスクリプタの複製に失敗しました。

(S)

処理を終了します。

(O)

再実行します。再実行しても発生する場合,システム管理者に連絡します。

KNAX7120-W

親プロセスは SIGCHLD を受信しましたが,子プロセスは終了していません。

親プロセスは SIGCHLD を受信しましたが,子プロセスの状態は変化しません。

(S)

処理を続行します。

KNAX7121-E exec コマンドのプロセス生成に失敗しました。(reason=

エラー詳細

)

エラー詳細

に示す原因によって,exec コマンドのプロセス生成に失敗しました。

(S)

処理を終了します。

(O)

エラー詳細

の原因を取り除いて再実行してください。問題が解決しない場合は,システム管理者に連絡

してください。

KNAX7122-E exec コマンドのプロセスのウェイト処理に失敗しました。(reason=

エラー詳細

)

エラー詳細

に示す原因によって,exec コマンドのプロセスのウェイト処理に失敗しました。

12. メッセージ

JP1/Advanced Shell

1440

(S)

処理を終了します。

(O)

エラー詳細

の原因を取り除いて再実行してください。問題が解決しない場合は,システム管理者に連絡

してください。

KNAX7123-E

変数("

変数名

")の値の取得に失敗しました。details=

保守情報

変数名

に示す変数の値の取得に失敗しました。すべての変数を取得しようとした場合,

変数名

に<All variables>と示します。

システムのメモリが不足している場合,このメッセージが出力されることがあります。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX7124-E

変数("

変数名

")の値の設定に失敗しました。details=

保守情報

変数名

に示す変数の値の設定に失敗しました。

(S)

処理を終了します。

(O)

システム管理者に連絡します。

KNAX7125-E

関数("

関数名

")の情報の取得に失敗しました。details=

保守情報

関数名

に示す関数の情報の取得に失敗しました。すべての関数を取得しようとした場合,関数名に<All functions>と表示します。

12. メッセージ

JP1/Advanced Shell

1441

(S)

処理を終了します。

(O)

システム管理者に連絡します。

KNAX7126-I

エラー注入モードを {"on"

|

"off"} に設定しました。

エラー注入モードを設定しました。

• on

エラー注入モードを有効にしました。

• off

エラー注入モードを無効にしました。

(S)

処理を終了します。

KNAX7127-E

エラー注入モードの再設定に失敗しました。

エラー注入モードを一度有効にしてジョブ定義スクリプトを再開しているため,エラー注入モードの再設

定に失敗しました。

(S)

処理を続行します。

(O)

ジョブ定義スクリプトを最後まで実行するか,または再実行する必要があります。

KNAX7128-E

デバッガの DBG ファイルを削除できません。 (filename=

ファイルパス

, reason=

エラー詳細

)

エラー詳細

に示す原因によって,デバッガの DBG ファイルを削除できません。

12. メッセージ

JP1/Advanced Shell

1442

ファイルパス

DBG ファイルのファイルパス

エラー詳細

エラー詳細

(S)

処理を続行します。

(O)

不要なファイルを rm コマンドなどで削除してください。

KNAX7129-E

エラー注入モードを有効にできません。

CMDRC_CMDGRP_CHECK パラメーターに FUNCTION を指定した場合,関数内で停止中にエラー注

入モードを有効にできません。

(S)

処理を続行します。

(O)

必要な場合,関数外で停止してからエラー注入モードを有効にしてください。

KNAX7200-I

アプリケーション実行エージェントプログラムを起動します。(user name=

ユーザー名

, domain name=

ドメイン名

)

アプリケーション実行エージェントプログラムを起動します。

ユーザー名 adshappagent コマンドを起動したユーザー名

ドメイン名 adshappagent コマンドを起動したドメイン名

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1443

KNAX7201-I

アプリケーション実行エージェントプログラムが終了しました。(user name=

ユーザー名

, domain name=

ドメイン名

アプリケーション実行エージェントプログラムが終了しました。

ユーザー名 adshappagent コマンドを起動したユーザー名

ドメイン名 adshappagent コマンドを起動したドメイン名

(S)

処理を続行します。

KNAX7203-W

レジストリ(“

レジストリ値

”)の指定値(“

指定値

”)が不正です。デフォルト値を仮定して処理を行います。

レジストリに指定した値が不正です。

レジストリ値

エラーの発生したレジストリ値

指定値

レジストリの指定値

(S)

デフォルト値を仮定して処理を続行します。

(O)

レジストリの指定値を見直します。

KNAX7204-E

コマンド名

コマンドを実行中にエラーが発生しました。(API=

関数名

, error code=

エラーコード

)

コマンド名

で示すコマンドを実行中にエラーが発生しました。

「グローバルオブジェクトの作成」権限が有効でない場合にこのメッセージが出力される場合があります。

コマンド名

エラーの発生したコマンド名

12. メッセージ

JP1/Advanced Shell

1444

関数名

エラーの発生した OS の関数名

エラーコード

エラー情報

(S)

処理を中断します。

(O)

関数名とエラーコードからエラー要因を取り除いて,コマンドを再実行してください。

「グローバルオブジェクトの作成」権限が有効でない場合は,「グローバルオブジェクトの作成」権限を

有効にして再度実行してください。

セキュリティ上の問題などから「グローバルオブジェクトの作成」権限を有効にできない場合は,「グ

ローバルオブジェクトの作成」権限を有効にできるユーザーでアプリケーション実行エージェント機能

を使用してください。

エラー要因を取り除けない場合はシステム管理者に連絡してください。

KNAX7205-E

アプリケーション実行エージェントプログラムが既に起動されています。

アプリケーション実行エージェントプログラムが既に起動されています。

(S)

処理を中断します。

KNAX7210-E

実行アプリケーションの起動に失敗しました。viewname=

表示名

, error code=

エラーコード

)

実行アプリケーション実行要求処理実行に失敗しました。

表示名

実行が完了した実行アプリケーションの表示名

表示名の指定がなかった場合は,実行アプリケーション名を出力します。

エラー詳細

エラー詳細

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1445

(O)

エラーコードからエラー要因を取り除いて,コマンドを再実行してください。

存在しない実行アプリケーションを指定した場合,および実行アプリケーションを実行するのに必要な

権限が不足している場合に発生する可能性があります。実行アプリケーションの格納フォルダなども含

めて確認してください。

エラー要因を取り除けない場合はシステム管理者に連絡してください。

KNAX7211-I

アプリケーション実行エージェントプログラムのプロセスを開始します。

アプリケーション実行エージェントプログラムの処理を開始します。

(S)

処理を続行します。

KNAX7212-I

アプリケーション実行エージェントプログラムのプロセスを終了します。Detail=

保守情報

)

アプリケーション実行エージェントプログラムのプロセスを終了します。

保守情報

プロセスの識別情報

(S)

処理を続行します。

KNAX7213-I

実行アプリケーションの実行が完了しました。viewname=

表示名

, code=

終了コード

)

実行アプリケーションの実行が完了しました。

表示名

実行が完了した実行アプリケーションの表示名

表示名の指定がなかった場合は,実行アプリケーション名を出力します。

12. メッセージ

JP1/Advanced Shell

1446

終了コード

実行が完了した実行アプリケーションの終了コード

(S)

処理を続行します。

KNAX7215-E

スタートアップ登録に失敗しました。(API=

関数名

, error code=

エラーコード

, user name=

ユーザー

, domain name=

ドメイン名

)

スタートアップ登録に失敗しました。

関数名

エラーの発生した OS の関数名

エラーコード

エラー情報

ユーザー名 adshappagent コマンドを起動したユーザー名

ドメイン名 adshappagent コマンドを起動したドメイン名

(S)

処理を中断します。

(O)

関数名とエラーコードからエラー要因を取り除いて,コマンドを再実行してください。エラー要因を取

り除けない場合はシステム管理者に連絡してください。

KNAX7216-E

スタートアップ解除に失敗しました。(API=

関数名

, error code=

エラーコード

, user name=

ユーザー

, domain name=

ドメイン名

)

スタートアップ解除に失敗しました。

関数名

エラーの発生した OS の関数名

12. メッセージ

JP1/Advanced Shell

1447

エラーコード

エラー情報

ユーザー名 adshappagent コマンドを起動したユーザー名

ドメイン名 adshappagent コマンドを起動したドメイン名

(S)

処理を中断します。

(O)

関数名とエラーコードからエラー要因を取り除いて,コマンドを再実行してください。エラー要因を取

り除けない場合はシステム管理者に連絡してください。

KNAX7217-E

終了処理に失敗しました。(API=

関数名

, error code=

エラーコード

, user name=

ユーザー名

, domain name=

ドメイン名

)

アプリケーション実行エージェントプログラムの終了処理に失敗しました。

関数名

エラーの発生した OS の関数名

エラーコード

エラー情報

ユーザー名 adshappagent コマンドを起動したユーザー名

ドメイン名 adshappagent コマンドを起動したドメイン名

(S)

処理を続行します。

(O)

関数名とエラーコードからエラー要因を取り除いて,コマンドを再実行してください。エラー要因を取

り除けない場合はシステム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1448

KNAX7221-E

スタートアップ登録に失敗しました。

スタートアップ登録に失敗しました。

(S)

処理を中断します。

(O)

アプリケーション実行エージェント機能ログに出力されているメッセージよりエラー要因を取り除い

て,再実行してください。

KNAX7222-E

スタートアップ解除に失敗しました。

スタートアップ解除に失敗しました。

(S)

処理を中断します。

(O)

アプリケーション実行エージェント機能ログに出力されているメッセージよりエラー要因を取り除い

て,再実行してください。

KNAX7223-E

終了処理に失敗しました。

アプリケーション実行エージェントプログラムの終了処理に失敗しました。

(S)

処理を続行します。

(O)

アプリケーション実行エージェント機能ログに出力されているメッセージよりエラー要因を取り除い

て,再実行してください。

12. メッセージ

JP1/Advanced Shell

1449

KNAX7225-E

コマンド名

コマンドを実行中にエラーが発生しました。

コマンド名

で示すコマンドを実行中にエラーが発生しました。

(S)

処理を中断します。

(O)

アプリケーション実行エージェント機能ログに出力されているメッセージよりエラー要因を取り除い

て,再実行してください。

KNAX7250-I

GUI アプリケーション実行コマンドを開始します。(user name=

ユーザー名

, domain name=

ドメイ

ン名

)

GUI アプリケーション実行コマンドを開始します。

ユーザー名 adshappexec コマンドを起動したユーザー名

ドメイン名 adshappexec コマンドを起動したドメイン名

(S)

処理を続行します。

KNAX7251-I

GUI アプリケーション実行コマンドが終了しました。(user name=

ユーザー名

, domain name=

ドメ

イン名

)

GUI アプリケーション実行コマンドが終了しました。

ユーザー名 adshappexec コマンドを起動したユーザー名

ドメイン名 adshappexec コマンドを起動したドメイン名

12. メッセージ

JP1/Advanced Shell

1450

(S)

処理を続行します。

KNAX7254-E

実行ユーザー名の取得に失敗しました。(API=reason=

関数名

, error code=

エラーコード

)

実行ユーザー名の取得に失敗しました。

関数名

エラーの発生した OS の関数名

エラーコード

エラー情報

(S)

処理を中断します。

(O)

関数名とエラーコードからエラー要因を取り除いて,コマンドを再実行してください。エラー要因を取

り除けない場合はシステム管理者に連絡してください。

KNAX7255-I

アプリケーション実行エージェントプログラムが起動されていませんでした。再度アプリケーション

実行エージェントプログラムの起動確認を行います。

アプリケーション実行エージェントプログラムが起動されていませんでした。再度アプリケーション実行

エージェントプログラムの起動確認を行います。

(S)

処理を続行します。

KNAX7256-E

アプリケーション実行エージェントプログラムが起動されていませんでした。

アプリケーション実行エージェントプログラムが起動されていませんでした。

12. メッセージ

JP1/Advanced Shell

1451

(S)

処理を中断します。

(O)

アプリケーション実行エージェントプログラムを起動した後に,コマンドを再実行してください。

KNAX7257-E adshappexec コマンドをキャンセルしました。

ジョブコントローラが強制終了を受け付けたため,adshappexec コマンドをキャンセルしました。

(S)

処理を終了します。

KNAX7258-E

アプリケーション実行エージェントプログラムが終了しました。

アプリケーション実行エージェントプログラムが終了しました。

(S)

処理を中断します。

(O)

アプリケーション実行エージェントプログラムを起動した後に,コマンドを再実行してください。

KNAX7259-W

GUI アプリケーション実行コマンドは,実行アプリケーションの終了待ちを行いません。viewname=

表示名

GUI アプリケーション実行コマンドは,実行アプリケーションのプロセス起動に関する仕様によって,実

行アプリケーションの終了を待たないで終了します。

表示名

実行が完了した実行アプリケーションの表示名。表示名の指定がなかった場合は,実行アプリケーショ

ン名を出力します。

12. メッセージ

JP1/Advanced Shell

1452

(S)

処理を中断します。

(O)

実行アプリケーションのプロセス起動に関する仕様を確認してください。

Excel ファイルを実行アプリケーションとして実行する前から,すでに Excel 自体が動作していたとき

に本メッセージが出力されることがあります。この場合,Excel が起動していない状態で運用するか,w オプションを使用しない運用としてください。

KNAX7260-W

JP1/AJS のジョブの実行 ID 取得に失敗しました。

JP1/AJS のジョブの実行 ID 取得に失敗しました。

(S)

「-----」を設定し処理を続行します。

KNAX7261-I

アプリケーション実行エージェントプログラムは,実行アプリケーションの終了待ちを行います。

Detail=

保守情報

アプリケーション実行エージェントプログラムは,実行アプリケーションの終了待ちを行います。

保守情報

プロセスの識別情報

(S)

処理を続行します。

KNAX7262-I

アプリケーション実行エージェントプログラムは,実行アプリケーションの終了待ちを行いません。

Detail=

保守情報

アプリケーション実行エージェントプログラムは,実行アプリケーションの終了待ちを行いません。

12. メッセージ

JP1/Advanced Shell

1453

保守情報

プロセスの識別情報

(S)

処理を続行します。

KNAX7263-E

アプリケーション実行エージェントプログラムの終了に失敗しました。(API=

関数名

, error code=

ラーコード

)

アプリケーション実行エージェントプログラムの終了に失敗しました。

関数名

エラーの発生した OS の関数名

エラーコード

エラー情報

(S)

処理を続行します。

(O)

関数名とエラーコードからエラー要因を取り除いて,コマンドを再実行してください。エラー要因を取

り除けない場合はシステム管理者に連絡してください。

KNAX7264-I

実行アプリケーションが終了しました。viewname=

表示名

, code=

終了コード

, pid=

プロセスID

)

実行アプリケーションが終了しました。

表示名

実行が完了した実行アプリケーションの表示名

表示名の指定がなかった場合は,実行アプリケーション名を出力します。

終了コード

実行が完了した実行アプリケーションの終了コード

プロセスID

アプリケーション実行エージェントプログラムのプロセス ID

12. メッセージ

JP1/Advanced Shell

1454

(S)

処理を続行します。

KNAX7268-I

実行アプリケーションを起動しました。viewname=

表示名

, pid=

プロセスID

)

実行アプリケーションを起動しました。

表示名

実行が完了した実行アプリケーションの表示名

表示名の指定がなかった場合は,実行アプリケーション名を出力します。

プロセスID

アプリケーション実行エージェントプログラムのプロセス ID

(S)

処理を続行します。

KNAX7269-E

アプリケーション実行エージェント機能用共有メモリの内容出力に失敗しました。(API=

関数名

, error code=

エラーコード

)

アプリケーション実行エージェント機能用共有メモリの内容出力に失敗しました。

関数名

エラーの発生した OS の関数名

エラーコード

エラー情報

(S)

処理を続行します。

(O)

関数名とエラーコードからエラー要因を取り除いて,コマンドを再実行してください。エラー要因を取

り除けない場合はシステム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1455

KNAX7270-E

アプリケーション実行エージェントプログラムは起動されていませんでした。

アプリケーション実行エージェントプログラムは起動されていませんでした。

(S)

処理を中断します。

KNAX7271-I

使用方法:

コマンド名 コマンド引数

コマンド名

および

コマンド引数

で示すコマンドの指定が誤っています。

出力する usage の内容の例

KNAX7271-I 使用方法: adshappexec [-m] [-d work-folder] [-v view-name] {-w application-pathname | -n application-path-name} [-- application-parameter...]

(S)

処理を中断します。

(O)

コマンドを正しく指定して実行してください。

KNAX7400-E

応答要求メッセージの出力数が上限を超えました。 adshread コマンドで応答要求メッセージの出力数が上限を超えました。

(S)

処理を繰り返します。

(O)

USERREPLY_WAIT_MAXCOUNT パラメーターの設定を見直してください。

12. メッセージ

JP1/Advanced Shell

1456

KNAX7402-E

応答要求メッセージの処理中に,共有メモリの操作でエラーが発生しました。(errinfo=

エラー情報

, function=

保守情報

) adshread コマンドで応答要求メッセージの処理中に,共有メモリの操作でエラーが発生しました。

エラー情報

エラーが発生した API が出力する状態コード

保守情報

エラーが発生した API 名

(S)

処理を続行します。

(O)

エラー情報

を確認して対処してください。

エラー情報

については,「 12.4.4 ユーザー応答機能で表示

されるエラー情報の意味および対処方法 」を参照してください。

KNAX7403-E

引数の数が不当です。 filename="

ファイル名

" line=

行番号 adshecho コマンドまたは adshread コマンドの引数の数が不当です。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルを修正してください。

KNAX7404-E adshread コマンドに指定した変数("

変数名

")の型が不正です。 filename="

ファイル名

" line=

番号 adshread コマンドに指定した変数が数値型です。

12. メッセージ

JP1/Advanced Shell

1457

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルを修正してください。

KNAX7405-E adshecho コマンドに指定した事象通知メッセージ,または adshread コマンドに指定した応答要求

メッセージが長すぎます。 filename="

ファイル名

" line=

行番号 adshecho コマンドに指定した事象通知メッセージ,または adshread コマンドに指定した応答要求メッ

セージが長過ぎます。

ファイル名

ジョブ定義スクリプトファイル名

行番号

エラーが発生したジョブ定義スクリプトファイルの行番号

(S)

処理を続行します。

(O)

ジョブ定義スクリプトファイルを修正してください。

KNAX7408-E

内部エラーが発生しました。(details=

保守情報

) adshecho コマンドまたは adshread コマンド処理で内部エラーが発生しました。

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1458

KNAX7420-E

標準入力から応答入力した内容に ASCII 文字以外が指定されました。再度入力してください。

標準入力から応答入力した内容に ASCII 文字以外が指定されました。

(S)

処理を続行します。

(O)

応答入力の内容に ASCII 文字を指定して再度応答してください。

KNAX7450-I 【Windows 限定】

応答要求メッセージをキャンセルしました。(

ジョブ識別子

,

行番号

,

ホスト名

)

ジョブコントローラが強制終了を受け付けたため,adshread コマンドによる応答要求メッセージをキャ

ンセルしました。

ジョブ識別子

JP1/Advanced Shell がバッチジョブに付与したジョブ識別子

行番号 adshread コマンドを発行したジョブ定義スクリプトの行番号

ホスト名

サービスまたはデーモンが稼働しているホストの名称

(S)

処理を終了します。

KNAX7450-I 【UNIX 限定】 adshexec が応答要求をキャンセルしました。(

ジョブ識別子

,

行番号

,

ホスト名

)

ジョブコントローラが強制終了を受け付けたため,adshread コマンドによる応答要求メッセージをキャ

ンセルしました。

ジョブ識別子

JP1/Advanced Shell がバッチジョブに付与したジョブ識別子

12. メッセージ

JP1/Advanced Shell

1459

行番号 adshread コマンドを発行したジョブ定義スクリプトの行番号

ホスト名

サービスまたはデーモンが稼働しているホストの名称

(S)

処理を終了します。

KNAX7451-I

応答要求メッセージをキャンセルしました。(

ジョブ識別子

,

行番号

,

ホスト名

)

ジョブコントローラが終了要求を受け付けたため,adshread コマンドによる応答要求メッセージをキャ

ンセルしました。

ジョブ識別子

JP1/Advanced Shell がバッチジョブに付与したジョブ識別子

行番号 adshread コマンドを発行したジョブ定義スクリプトの行番号

ホスト名

サービスまたはデーモンが稼働しているホストの名称

(S)

処理を終了します。

KNAX7460-E

JP1 イベントの発行に失敗しました。(errinfo=

エラー情報

, function=

保守情報

JP1 イベントの発行に失敗しました。

エラー情報

エラーが発生した API が出力する状態コード

保守情報

エラーが発生した API 名

(S)

処理を続行します。

12. メッセージ

JP1/Advanced Shell

1460

(O)

エラー情報

を確認して対処してください。

エラー情報

については,「 12.4.4 ユーザー応答機能で表示

されるエラー情報の意味および対処方法 」を参照してください。

KNAX7461-E

JP1 イベントの発行に失敗しました。(errinfo=

エラー情報

, function=open_sender, host=

ホスト名

)

JP1 イベントの発行に失敗しました。

エラー情報

エラーが発生した API が出力する状態コード

ホスト名

JP1/Advanced Shell が稼働するバッチ業務サーバのホスト名

(S)

処理を続行します。

(O)

エラー情報

を確認して対処してください。

エラー情報

については,「 12.4.4 ユーザー応答機能で表示

されるエラー情報の意味および対処方法 」を参照してください。

KNAX7462-E

JP1 イベントの発行に失敗しました。(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 内通し番号

12. メッセージ

JP1/Advanced Shell

1461

(S)

処理を続行します。

(O)

エラー情報

を確認して対処してください。

エラー情報

については,「 12.4.4 ユーザー応答機能で表示

されるエラー情報の意味および対処方法 」を参照してください。

ただし,このメッセージが表示された場合でも,JP1/IM - View にイベントが到達している可能性が

あります。到達したイベントが応答待ちイベントの場合は,手動で応答待ちイベントの滞留を解除して

ください。

KNAX7464-E

JP1 イベントの転送に失敗しました。(function=check_arrival, dest=

転送先ホスト名

, seqno=

発行

元イベントDB内通し番号

)

自ホストの JP1/Base から JP1/IM - Manager が稼働しているホストの JP1/Base に対して JP1 イベント

の転送に失敗しました。

転送先ホスト名

システム環境ファイルの HOSTNAME_JP1IM_MANAGER パラメーターで指定したホスト名

発行元イベントDB内通し番号

JP1/Base の発行元イベント DB 内通し番号

(S)

処理を続行します。

(O)

次の点を確認してください。

• JP1/IM - Manager が稼働しているホストに JP1/Base がインストールされているか。

• JP1/IM - Manager が稼働しているホストで JP1/Base のイベントサーバが起動しているか。

• 自ホストと JP1/IM - Manager が稼働しているホストの間で,JP1/Base のコネクションが確立さ

れているか。

ただし,このメッセージが表示された場合でも,JP1/IM - View にイベントが到達している可能性が

あります。到達したイベントが応答待ちイベントの場合は,手動で応答待ちイベントの滞留を解除して

ください。

12. メッセージ

JP1/Advanced Shell

1462

KNAX7465-W

HOSTNAME_JP1IM_MANAGER で指定されたホストに JP1 イベントを転送中です。

(function=check_arrival, dest=

転送先ホスト名

, seqno=

発行元イベントDB内通し番号

)

JP1/Base が,HOSTNAME_JP1IM_MANAGER で指定されたホストに JP1 イベントを転送中です。

転送先ホスト名

システム環境ファイルの HOSTNAME_JP1IM_MANAGER パラメーターで指定したホスト名

発行元イベントDB内通し番号

JP1/Base の発行元イベント DB 内通し番号

(S)

処理を続行します。

KNAX7470-I

JP1 イベント発行のための流量制御をします。(wait=

待ち時間

)

JP1 イベント発行のための流量制御をします。

待ち時間

流量制御のために JP1 イベントの発行を遅らせた時間(ミリ秒)

(S)

処理を続行します。

KNAX7500-I adshmd が起動しました。

ユーザー応答機能管理デーモンが起動しました。

(S)

処理を続行します。

KNAX7501-I adshmd が終了しました。

12. メッセージ

JP1/Advanced Shell

1463

ユーザー応答機能管理デーモンが終了しました。

(S)

処理を続行します。

KNAX7502-E adshmd が起動できません。

ユーザー応答機能管理デーモンの起動に失敗しました。

(S)

処理を終了します。

(O)

原因を取り除いて,再起動してください。

KNAX7503-E adshmd でエラーが発生しました。

ユーザー応答機能管理デーモンでエラーが発生しました。

(S)

処理を終了します。

(O)

原因を取り除いて,再起動してください。

KNAX7508-I

プログラム名

が応答要求をキャンセルしました。 (

ジョブ識別子

,

行番号

,

ホスト名

) adshread コマンドによる応答要求メッセージをキャンセルしました。

プログラム名

応答要求メッセージをキャンセルしたサービス名またはデーモン名

ジョブ識別子

JP1/Advanced Shell がバッチジョブに付与したジョブ識別子

12. メッセージ

JP1/Advanced Shell

1464

行番号 adshread コマンドを発行したジョブ定義スクリプトの行番号

ホスト名

サービスまたはデーモンが稼働しているホストの名称

(S)

処理を続行します。

KNAX7509-I adshchmsg が応答要求をキャンセルしました。 (

ジョブ識別子

,

行番号

,

ホスト名

) adshchmsg コマンドの-n オプションで指定した応答要求メッセージ番号の応答要求メッセージをキャン

セルしました。

ジョブ識別子

JP1/Advanced Shell がバッチジョブに付与したジョブ識別子

行番号 adshread コマンドを発行したジョブ定義スクリプトの行番号

ホスト名

サービスまたはデーモンが稼働しているホストの名称

(S)

処理を続行します。

KNAX7550-I

サービスの登録に成功しました。

AdshmSvcD サービスまたは AdshmSvcE サービスの登録に成功しました。

(S)

処理を続行します。

KNAX7551-E

サービスの登録が失敗しました。(API=

保守情報

, error code=

エラーコード

)

12. メッセージ

JP1/Advanced Shell

1465

AdshmSvcD サービスまたは AdshmSvcE サービスの登録に失敗しました。

(S)

処理を中止します。

(O)

すでに AdshmSvcD サービスまたは AdshmSvcE サービスが登録されていることが原因である場合

は,このメッセージは無視してかまいません。 adshmsvcd コマンドまたは adshmsvce コマンドを実行してこのメッセージが出力された場合は,不

当なオプションが指定されたおそれがあるため,オプションの指定内容を見直してください。

それ以外の場合は,システム管理者に連絡してください。

KNAX7552-E

{AdshmSvcE

|

AdshmSvcD} サービスの初期化に失敗しました。(API=

保守情報

, error code=

ラーコード

)

AdshmSvcD サービスまたは AdshmSvcE サービスの初期化処理で,エラーが発生しました。

(S)

処理を中止します。

(O)

保守情報が jhs_env_conf_readConfig の場合,システム環境ファイルの内容が不正な場合があるた

め,内容を見直してください。

保守情報が jhs_env_conf_readConfig 以外の場合およびシステム環境ファイルの内容が正しい場合

は,システム管理者に連絡してください。

KNAX7553-E

API "

API名

" でエラーが発生しました。(error code=

エラーコード

)

AdshmSvcD サービスまたは AdshmSvcE サービスの処理中に,Mutex の生成またはオープンに失敗し

ました。

(S)

処理を中止します。

(O)

AdshmSvcD サービスまたは AdshmSvcE サービスを起動するアカウントに対し,サーバの管理者権

限を持つユーザーが指定されていないと,このエラーが発生する場合があります。

12. メッセージ

JP1/Advanced Shell

1466

指定誤りの場合は修正して再実行してください。誤りでない場合はシステム管理者に連絡してください。

KNAX7556-E

サービスの登録で指定された論理ホスト名が長過ぎます。

サービスの登録で指定された論理ホスト名が長過ぎます。

(S)

サービスの登録処理を中止します。

(O)

適切な論理ホスト名を指定してコマンドを再度実行してください。

KNAX7560-I

サービスの設定処理が成功しました。

AdshmSvcD サービスまたは AdshmSvcE サービスの設定処理に成功しました。

(S)

処理を続行します。

KNAX7561-E

サービスの設定処理が失敗しました。(API=

保守情報

, error code=

エラーコード

)

AdshmSvcD サービスまたは AdshmSvcE サービスの設定処理が失敗しました。ユーザー応答機能の設定

が誤っている場合,このメッセージが出力されることがあります。

(S)

処理を中止します。

(O)

システム管理者に連絡してください。システム管理者はユーザー応答機能の設定を見直してください。

12. メッセージ

JP1/Advanced Shell

1467

KNAX7600-E

カスタムジョブ定義プログラムの起動方法が不正です。

JP1/AJS - View が起動したカスタムジョブ定義プログラムの起動情報が不正です。

(S)

処理を終了します。

(O)

次に示すどちらかの対策をします。

• カスタムジョブ定義情報が不正な場合があるため,カスタムジョブを再定義します。

• JP1/AJS - View のバージョンが,前提バージョンであることを確認します。

KNAX7601-E

起動情報の形式が不正です。

JP1/AJS - View が起動したカスタムジョブ定義プログラムの起動情報が不正です。

(S)

処理を終了します。

(O)

次に示すどちらかの対策をします。

• カスタムジョブ定義情報が不正な場合があるため,カスタムジョブを再定義します。

• JP1/AJS - View のバージョンが,前提バージョンであることを確認します。

KNAX7602-E

Advanced Shell のカスタムジョブ登録を正しく行ってください。

JP1/AJS - View のカスタムジョブ登録で設定した内容が不正です。

(S)

処理を終了します。

(O)

次に示すどちらかの対策をします。

• カスタムジョブ登録情報を確認します。

12. メッセージ

JP1/Advanced Shell

1468

• JP1/Advanced Shell - Custom Job を再インストールして,定義プログラムを新しくします。

KNAX7603-E

Advanced Shell の定義プログラムの内容が不正です。

JP1/AJS - View のカスタムジョブ登録で設定した定義プログラムの内容が不正です。

(S)

処理を終了します。

(O)

次に示すどちらかの対策をします。

• JP1/AJS - View のカスタムジョブ登録で設定した定義プログラムの内容を確認します。

• JP1/Advanced Shell - Custom Job を再インストールして,定義プログラムを新しくします。

KNAX7604-E

定義項目名

に不正な文字が入力されています。

ジョブ定義画面の

定義項目名

で示すフィールドに不正な文字が入力されました。

(S)

処理を中断し,入力画面に戻ります。

(O)

定義項目名

で示すフィールドに入力されている不正な文字を削除します。

KNAX7605-E

定義項目名

を入力してください。

ジョブ定義画面の

定義項目名

で示す,入力が必須のフィールドの指定が省略されました。

(S)

処理を中断し,入力画面に戻ります。

(O)

定義項目名

で示すフィールドに値を入力してください。

12. メッセージ

JP1/Advanced Shell

1469

KNAX7606-E

登録済みの定義情報が不正です。

登録済みの定義情報が不正です。

(S)

処理を中断します。ジョブの定義は変更されていません。

(O)

次に示すどれかの対策をします。

• JP1/AJS - View のジョブネットエディタ上で作成したジョブを作り直し,再実行します。

• ajsdefine コマンドおよび JP1/AJS - Definition Assistant でジョブを定義した場合は,指定できる

文字の種別や文字列の長さを見直してジョブを作り直し,再実行します。

• JP1/AJS - View のバージョンが,前提バージョンであることを確認します。

KNAX7607-E

Advanced Shell の定義情報を登録できません。(error code =

エラーコード

)

JP1/AJS にジョブの定義を登録できません。

(S)

処理を中断します。ジョブの定義は変更されていません。

(O)

次に示すどちらかの対策をします。

• JP1/AJS - View のジョブネットエディタ上で作成したジョブを作り直し,再実行します。

• JP1/AJS - View のバージョンが,前提バージョンであることを確認します。

KNAX7608-E

Advanced Shell の定義情報を登録できません。(error code =

エラーコード

) / (reason =

エラー詳

)

JP1/AJS にジョブ定義を登録できません。

(S)

処理を中断します。ジョブの定義は変更されていません。

12. メッセージ

JP1/Advanced Shell

1470

(O)

次に示すどちらかの対策をします。

• JP1/AJS - View のジョブネットエディタ上で作成したジョブを作り直し,再実行します。

• JP1/AJS - View のバージョンが,前提バージョンであることを確認します。

KNAX7609-E

前回登録した Advanced Shell の定義情報を取得できません。(error code =

エラーコード

)

前回登録した JP1/Advanced Shell の定義情報を取得できません。

(S)

処理を中断します。ジョブ定義は変更されていません。

(O)

次に示すどちらかの対策をします。

• JP1/AJS - View のジョブネットエディタ上で作成したジョブを作り直し,再実行します。

• JP1/AJS - View のバージョンが,前提バージョンであることを確認します。

KNAX7610-E

入力情報の破棄に失敗しました。(reason =

エラー詳細

)

入力した情報の破棄が失敗しました。

(S)

処理を中断します。ジョブの定義は破棄されていません。

(O)

次に示すどちらかの対策をします。

• JP1/AJS - View のジョブネットエディタ上で作成したジョブを作り直し,再実行します。

• JP1/AJS - View のバージョンが,前提バージョンであることを確認します。

KNAX7611-E

論理エラーが発生しました。(

関数ID

)

12. メッセージ

JP1/Advanced Shell

1471

JP1/Advanced Shell の定義で,内部的な論理エラーが発生しました。

(S)

処理を中断します。

(O)

システム管理者に連絡します。

KNAX7750-E

論理エラーが発生しました。(

関数ID

) / (reason =

エラー詳細

)

メッセージ出力処理で,内部的な論理エラーが発生しました。

(S)

処理を中断します。

(O)

システム管理者に連絡します。

KNAX7770-E

ヘルプファイルの起動に失敗しました。(error code =

エラーコード

)

ヘルプファイルの起動に失敗しました。

(S)

元の画面に戻ります。

(O)

エラーコード

に示される ShellExecute 関数の終了コードを調べ,適切に処置します。

KNAX7771-E

ヘルプファイルが見つかりません。 (file name =

ファイル名

)

ヘルプファイルが見つかりません。

(S)

元の画面に戻ります。

12. メッセージ

JP1/Advanced Shell

1472

(O)

JP1/Advanced Shell - Custom Job の修復インストールを試みます。

KNAX7772-E

ヘルプファイルの起動に失敗しました。(reason =

エラー詳細

)

ヘルプファイルの起動に失敗しました。

(S)

元の画面に戻ります。

(O)

JP1/Advanced Shell - Custom Job の修復インストールを試みます。

KNAX7773-E

ヘルプファイルの起動に失敗しました。

ヘルプファイルの起動に失敗しました。

(S)

元の画面に戻ります。

(O)

JP1/Advanced Shell - Custom Job の修復インストールを試みます。

KNAX7800-I adshcollect:RAS completed collection of

ファイル名

 

採取したファイル名

 

採取したファイル名

 

採取したファイル名

をまとめて tar ファイル(

ファイル名

)を作成しました。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1473

(O)

作成されたファイルをシステム管理者に渡してください。

KNAX7801-I adshcollect:RAS completed collection of

ファイル名

 

採取したファイル名

 

採取したファイル名

 

採取したファイル名

の内容をまとめて

ファイル名

のファイルを作成しました。

(S)

処理を終了します。

(O)

作成されたファイルをユーザーの圧縮ツールを使用して圧縮し,システム管理者に渡してください。

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

オプションの設定が誤っています。

(S)

処理を終了します。

(O)

オプションを正しく設定し,再実行します。

KNAX7803-E adshcollect:RAS error:

出力先ディレクトリ

(Permission denied).

12. メッセージ

JP1/Advanced Shell

1474

出力先ディレクトリ

にアクセス権限がありません。

(S)

処理を終了します。

(O)

出力先ディレクトリ

にアクセス権を付与するか,別のディレクトリを指定して再実行します。

KNAX7804-E adshcollect:RAS error:

出力先ディレクトリ

(not found or not a directory).

出力先ディレクトリ

がないかまたはディレクトリではありません。

(S)

処理を終了します。

(O)

正しい出力先を指定して再実行します。

KNAX7805-E adshcollect:RAS error:

定義ファイル名

(not found or not a file).

定義ファイル名

がないかまたはファイルではありません。

(S)

処理を終了します。

(O)

正しい定義ファイルを指定して再実行します。

KNAX7806-E adshcollect:RAS error:

定義ファイル名

(Permission denied).

定義ファイル名

にアクセス権限がありません。

(S)

処理を終了します。

12. メッセージ

JP1/Advanced Shell

1475

(O)

定義ファイルへのアクセス権限を設定して再実行します。

KNAX7807-E adshcollect:RAS error:

環境ファイル名

(not found or not a file).

環境ファイル名

がないか,またはファイルではありません。

(S)

処理を終了します。

(O)

正しい環境ファイルを指定して再実行します。

KNAX7808-E adshcollect:RAS error:

環境ファイル名

(Permission denied).

環境ファイル名

にアクセス権限がありません。

(S)

処理を終了します。

(O)

環境ファイルへのアクセス権限を設定して再実行します。

KNAX7809-E adshcollect:RAS error:

定義ファイル名

("

キーワード

" Syntax Error).

定義ファイル

中に不正なキーワードが指定されました。

(S)

処理を終了します。

(O)

定義ファイルを正しく設定して再実行します。

12. メッセージ

JP1/Advanced Shell

1476

KNAX7810-E adshcollect:RAS error:

指定値

(not found or not a file).

定義ファイルのキーワードの

指定値

がないか,またはファイルではありません。

(S)

処理を終了します。

(O)

定義ファイルを正しく設定して再実行します。

KNAX7811-W adshcollect:RAS error:

指定値

(Permission denied).

定義ファイルのキーワードの

指定値

にアクセス権限がありません。

(S)

処理を継続します。

(O)

指定値にアクセス権を付与するか,または別の値を指定して再実行します。

KNAX7812-E adshcollect:RAS error:

指定値

(not found or not a directory).

定義ファイルの

指定値

が存在しないか,またはディレクトリではありません。

(S)

処理を終了します。

(O)

定義ファイルを正しく設定して再実行します。

KNAX7813-E adshcollect:RAS error:

指定値

(not found or not a directory).

12. メッセージ

JP1/Advanced Shell

1477

環境ファイルの必須キーワードの

指定値

がないか,またはディレクトリではありません。

(S)

処理を終了します。

(O)

環境ファイルを正しく設定して再実行します。

KNAX7814-E adshcollect:RAS error:

指定値

(Permission denied).

環境ファイルのキーワードの

指定値

にアクセス権限がありません。

(S)

処理を終了します。

(O)

指定値にアクセス権を付与するか,または別の値を指定して再実行します。

KNAX7880-E

Failed to "

OSのAPI名

". (reason=

エラー詳細

)

エラー詳細

に示す原因で,OS の API の処理に失敗しました。

(S)

OSのAPI名

が"dladdr"以外の場合,処理を終了します。"dladdr"の場合は処理を続行します。

(O)

OSのAPI名

が"dladdr"以外の場合,システム管理者に連絡します。エラー詳細の原因を取り除いて再実

行します。

KNAX7892-I adshexec received abnormal signal.

ジョブコントローラに対するプログラム異常通知シグナルを受け取りました。

12. メッセージ

JP1/Advanced Shell

1478

(S)

処理を続行します。

KNAX7893-I adshexec received signal "

シグナル名

".

ジョブコントローラに対する

シグナル名

に示すシグナルを受け取りました。このメッセージは,JP1/

Advanced Shell が実行の制御に必要なシグナルを受信した場合に出力されます。

(S)

処理を続行します。

KNAX7894-E adshexec is ended because of terminate request of second times.

ジョブコントローラに対する 2 回目の SIGTERM のシグナルを受け取りました。

(S)

ジョブコントローラは,即時に終了します。一時ファイルの削除やファイルの後始末などの後処理を行

いません。

(O)

必要に応じてバッチジョブで作成された資源の後処理をしてください。

KNAX7895-E adshexec ended abnormally.

ジョブコントローラがエラー終了しました。

(S)

ジョブコントローラは,即時に終了します。一時ファイルの削除やファイルの後始末などの後処理を行

いません。

(O)

必要に応じてバッチジョブで作成された資源の後処理をしてください。

12. メッセージ

JP1/Advanced Shell

1479

KNAX7896-I adshexec received terminate request.

ジョブコントローラに対する終了要求を受け取りました。

(S)

後処理をして,終了します。デバッグ実行で停止中の場合,ジョブ定義スクリプトを再実行してから後

処理をして,終了します。

KNAX7897-E

Fatal error occurred in

保守情報

.

adshexec コマンドの重大なエラーが発生しました。

(S)

処理を終了します。

(O)

システム管理者に連絡します。

KNAX7900-I

マニュアルは組み込まれていません。

マニュアルのインストールメディアから HTML ファイルと画像ファイルをコピーしてください。

マニュアルのインストールメディアからインストール先ディレクトリへマニュアルをコピーしていません。

(S)

[閉じる]ボタンを押すまで Web ブラウザを開いた状態となります。

(O)

[閉じる]ボタンを押して Web ブラウザを閉じ,マニュアルに記載された手順に従ってマニュアルの

インストールメディアからインストール先ディレクトリへマニュアルをコピーしてください。

KNAX7901-I

ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ちます。

12. メッセージ

JP1/Advanced Shell

1480

ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスを wait します。

このメッセージは,ルートジョブの環境ファイルの SPOOLJOB_CHILDJOB パラメーターに MERGE を

指定して起動された子孫ジョブの場合は出力されません。

(S)

処理を続行します。

KNAX7902-I

ジョブコントローラは,"

入力モード

"で動作します。

ジョブコントローラは,

入力モード

で示すモードで動作します。

入力モード

ジョブコントローラの入力モードとして次のどちらかが出力されます。入力モードについての詳細は,

「 (2) ジョブの入力モード

」を参照してください。

出力内容

端末入力モード

非端末入力モード

(S)

処理を続行します。

意味

端末入力モード。標準入力が端末に関連づけられています。

非端末入力モード。標準入力が端末に関連づけられていません。

KNAX7999-I

ルートジョブのジョブコントローラがバッチジョブを終了しました。rc=

終了コード

ルートジョブのジョブコントローラが

終了コード

で示す終了コードでバッチジョブを終了しました。

(S)

処理を続行します。

KNAX9000-E

The validity period for a product expired. program=

コマンド名

ライセンスの有効期限が過ぎました。

12. メッセージ

JP1/Advanced Shell

1481

コマンド名

エラーが発生したコマンド名

(S)

処理を終了します。

(O)

引き続き使用する場合は,製品版をインストールしてください。

KNAX9001-E

Failed to authenticate the product. (

コマンド名

,

内部情報

)

ライセンスの認証処理に失敗しました。

コマンド名

エラーが発生したコマンド名

内部情報

エラーの内容を示す内部情報

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

KNAX9002-E

An error occurred. detail=

コマンド名

, adshhlicauth error, rc=

終了コード

ライセンスの認証処理で予期しないエラーが発生しました。

コマンド名

エラーが発生したコマンド名

終了コード

エラーの内容を示す内部情報

(S)

処理を終了します。

(O)

システム管理者に連絡してください。

12. メッセージ

JP1/Advanced Shell

1482

12.4 エラーの詳細

メッセージテキストに表示される

エラー詳細

の内容について,Windows の場合,UNIX の場合,JP1/

Advanced Shell 固有の場合に分けて説明します。

12.4.1 エラーの詳細(Windows の場合)

JP1/Advanced Shell が出力するメッセージは,C ランタイムの関数および Win32(R) API のエラー情報

を含む場合があります。

JP1/Advanced Shell の環境で発生しやすい,代表的な C ランタイム関数のエラー情報に対する原因と対

策(Windows の場合)を次の表に示します。表にないエラーおよび Win32 API のエラー情報について

は,使用している Windows のマニュアルを参照してください。

表 12-5 C ランタイム関数のエラー情報に対する原因と対策(Windows の場合)

ニモニック エラーの詳細 原因

ENOENT No such file or directory 次の原因が考えられます。

• ファイル,またはディレクトリが見

つかりません。

• シンボリックリンクのネストが深過

ぎます。

EIO Input/Output error 入出力エラーが発生しました。

ENXIO

E2BIG

No such device or address

Arg list too long

EAGAIN Resource temporarily unavailable

ENOMEM Not enough space

ファイルに対するアクセス権がありませ

ん。

処理プログラムの引数または環境変数用

の領域が不足しています。

プロセスの数が多過ぎるか,または一時

的なメモリ不足が発生しています。

次の原因が考えられます。

• スワップ領域または仮想メモリの不

足のため,プロセスを新しく生成で

きません。

対策

次の対策を実施します。

• ファイルの存在を確認してください。

• シンボリックリンクのネスト数が OS

の上限を超えないように変更してく

ださい。

Windows またはハードウェアの情報に

従ってください。

デバイスがあるか,またはデバイスを有

効にしているかを確認してください。デ

バイスを有効にしていない場合は,有効

にしてください。それ以外の原因の場合

は,使用している Windows のマニュア

ルを参照してください。

処理プログラムの引数を確認します。 export パラメーターなどによる環境変数

の設定やファイル管理機能のスクリプト

拡張コマンドの使用方法を見直し,不要

な環境変数の設定を削除します。

再実行してもエラーが発生する場合は,

不要なプロセスを停止させてください。

次の対策を実施します。

• スワップ領域または仮想メモリが足

りない場合は,拡張してください。

拡張できない場合は,不要なプロセ

スを停止させてください。

12. メッセージ

JP1/Advanced Shell

1483

ニモニック エラーの詳細

ENOMEM Not enough space

EACCES

EFAULT

EEXIST

EINVAL

Permission denied

Bad address

File exists

Invalid argument

原因

• プロセスの数が多過ぎるか,または

一部のプロセスが大量のメモリを消

費しています。

対策

• 一部のプロセスが大量のメモリを消

費している場合は,該当するプロセ

スをいったん停止できないかどうか

を検討してください。

次の原因が考えられます。

• アクセス権限が不正です。

• JP1/Advanced Shell のコマンドの

引数として,ファイルを指定する場

所にディレクトリを指定しました。

• コマンドとして実行しようとしたファ

イルの拡張子が exe,bat,cmd,ま

たは com ではありません。

• ファイルへのシンボリックリンクの

リンク先がディレクトリ,またはディ

レクトリへのシンボリックリンクの

リンク先が通常ファイルのシンボリッ

クリンクにアクセスしました。

アクセスできない領域に書き込みをしよ

うとしました。書き込みをしようとした

ディスクが切り離された場合があります。

系切り替えに伴うディスクの切り替え中

の場合は,問題ないので無視してくださ

い。

誤ってディスクを切り離してしまった場

合は,該当するファイルをバックアップ

から回復するか,または初期化してから

使用してください。

上記以外の場合は,システム管理者に連

絡してください。

作成しようとしたファイルはすでにあり

ます。

次の対策を実施します。

• ファイルに対するアクセス権限が正

しいかどうかを確認してください。

• JP1/Advanced Shell のコマンドの

引数を見直し,ファイルを指定する

場所にディレクトリを指定していな

いかどうかを確認してください。

• CHILDJOB_SHEBANG パラメー

ターを指定している場合,パラメー

ターの指定値,および,実行しよう

としたファイルの先頭の「#!

実行プ

ログラムパス

」を確認してください。

• CHILDJOB_EXT パラメーターを指

定している場合は,パラメーターの

指定値,および,実行しようとした

ファイルの拡張子を確認してくださ

い。

• シンボリックリンクの参照先が正し

いか確認してください。

次の原因が考えられます。

• メモリ管理情報の不正を検知しまし

た。

• シンボリックリンクのネストが深す

ぎます。

• シンボリックリンク作成権限を持た

ないユーザでシンボリックリンクの

作成,コピー,または移動を行おう

としました。

ファイル名を変更して再実行します。既

存のファイルが不要の場合,削除してか

ら再実行してください。

次の対策を実施します。

• システム管理者に連絡してください。

• シンボリックリンクのネスト数が OS

の上限を超えないように変更してく

ださい。

• シンボリックリンク作成権限を持つ

ユーザで実行してください。

• シンボリックリンクを使用する場合

は,NTFS を使用してください。

12. メッセージ

JP1/Advanced Shell

1484

ニモニック エラーの詳細

EINVAL

ENFILE

EMFILE

EFBIG

ENOSPC

Invalid argument

Too many open system

Too many open

File too large files files

in

原因 対策

• NTFS 以外のファイルシステム上に

シンボリックリンクの作成,コピー,

または移動を行おうとしました。

次の対策を実施します。

• システム管理者に連絡してください。

• シンボリックリンクのネスト数が OS

の上限を超えないように変更してく

ださい。

• シンボリックリンク作成権限を持つ

ユーザで実行してください。

• シンボリックリンクを使用する場合

は,NTFS を使用してください。

ファイルのオープン数がシステムの上限

を超えました。

システム全体で使用中のファイルの数を

確認し,不要なファイルを閉じてくださ

い。

システム管理者に連絡してください。 該当するプロセスでオープンしている

ファイル数が多過ぎます。

ファイルの大きさがシステム制限値を超

えました。

No space left on device ファイルシステムに十分な空き領域があ

りません。

使用するファイルサイズを見直してくだ

さい。

空き領域を確保してください。

12.4.2 エラーの詳細(UNIX の場合)

JP1/Advanced Shell の環境で発生しやすいエラーの詳細に対する原因と対策を次の表に示します。表に

ないエラーについては,使用している UNIX のマニュアルを参照してください。

JP1/Advanced Shell の環境で発生しやすいエラーの内容だけを記載しています。記載されていないエラー

の詳細については,メッセージで表示されたエラー番号(errno)に該当するニモニックを使用している

UNIX の errno 定義ファイル(errno.h)を調べてください。

表 12-6 エラーの詳細に対する原因と対策(UNIX の場合)

ニモニック エラーの詳細 原因

ENOENT No such file or directory 次のどちらかの原因が考えられます。

• ファイル,またはディレクトリが見

つかりません。

• シンボリックリンクのネストが深す

ぎます。

EIO I/O error 入出力エラーが発生しました。

ENXIO No such device or address

ファイルに対するアクセス権がありませ

ん。

対策

次の対策を実施します。

• ファイルの存在を確認してください。

• シンボリックリンクのネスト数が OS

の上限を超えないように変更してく

ださい。

UNIX またはハードウェアの情報に従っ

てください。

デバイスがあるか,またはデバイスを有

効にしているかを確認してください。デ

バイスを有効にしていない場合は,有効

12. メッセージ

JP1/Advanced Shell

1485

ニモニック エラーの詳細

ENXIO

E2BIG

EAGAIN Resource temporarily unavailable

ENOMEM Not enough space

EACCES

EFAULT

EEXIST

EINVAL

ENFILE

EMFILE

No such device or address

Arg list too long

Permission denied

Bad address

File exists

Invalid argument

File table overflow

Too many open files

原因

ファイルに対するアクセス権がありませ

ん。

処理プログラムの引数または環境変数用

の領域が不足しています。

対策

にしてください。それ以外の原因の場合

は,使用している UNIX のマニュアルを

参照してください。

処理プログラムの引数を確認します。 export パラメーターなどによる環境変数

の設定やファイル管理機能のスクリプト

拡張コマンドの使用方法を見直し,不要

な環境変数の設定を削除します。

再実行してもエラーが発生する場合は,

不要なプロセスを停止させてください。

プロセスの数が多過ぎるか,または一時

的なメモリ不足が発生しています。

次の原因が考えられます。

• スワップ領域または仮想メモリの不

足のため,プロセスを新しく生成で

きません。

• プロセスの数が多過ぎるか,または

一部のプロセスが大量のメモリを消

費しています。

アクセス権限が不正です。

次の対策を実施します。

• スワップ領域または仮想メモリが足

りない場合は,拡張してください。

拡張できない場合は,不要なプロセ

スを停止させてください。

• 一部のプロセスが大量のメモリを消

費している場合は,該当するプロセ

スをいったん停止できないかどうか

を検討してください。

ファイルに対するアクセス権限が正しい

かどうかを確認してください。

アクセスできない領域に書き込みをしよ

うとしました。書き込みをしようとした

ディスクが切り離された場合があります。

系切り替えに伴うディスクの切り替え中

の場合は,問題ないので無視してくださ

い。

誤ってディスクを切り離してしまった場

合は,該当するファイルをバックアップ

から回復するか,または初期化してから

使用してください。

上記以外の場合は,システム管理者に連

絡してください。

作成しようとしたファイルはすでにあり

ます。

ファイル名を変更して再実行します。既

存のファイルが不要の場合,削除してか

ら再実行してください。

メモリ管理情報の不正を検知しました。 システム管理者に連絡してください。

ファイルのオープン数がシステムの上限

を超えました。

UNIX のカーネルパラメーターの,シス

テムでオープンできるファイル最大数

( maxuproc×nofiles )の指定値を大き

くしてください。

該当するプロセスでオープンしている

ファイル数が多過ぎます。

UNIX のカーネルパラメーターの,プロ

セスでオープンできるファイル数の最大

値( nofiles )を大きくしてください。

12. メッセージ

JP1/Advanced Shell

1486

ニモニック エラーの詳細

EFBIG

ENOSPC

ENAMET

OOLONG

File too large

原因

ファイルの大きさがシステム制限値を超

えました。

No space left on device ファイルシステムに十分な空き領域があ

りません。

File name too long ファイル名の長さが長過ぎます。

対策

使用するファイルサイズを見直してくだ

さい。

空き領域を確保してください。

ファイル名の長さを見直してください。

12.4.3 エラーの詳細(JP1/Advanced Shell 固有の場合)

JP1/Advanced Shell が固有に出力するエラーの詳細に対する原因と対策を次の表に示します。

表 12-7 エラーの詳細に対する原因と対策(JP1/Advanced Shell 固有の場合)

メッセージ ID

KNAX4419-E

KNAX4420-E

KNAX6035-E

KNAX6305-E

エラーの詳細

1 行のサイズが上限を

超えています。

共通アプリケーション

フォルダが見つかりま

せん。

原因

1 行のサイズが上限を超えています。 行のサイズを見直し,上限以内で記

述します。

共通アプリケーションフォルダが見

つかりません。

共有ドキュメントフォ

ルダが見つかりません。

共有ドキュメントフォルダが見つか

りません。

対処

実行環境に問題がないか確認します。

実行環境に問題がないか確認します。

ファイル識別子の指定

が正しくありません。

使用可能なファイル識

別子ではありません。

指定されたファイル識別子が 1 桁の

数字でありません。

オープンしていないファイルや,ほ

かのプロセスによって操作が禁止さ

れているファイルに対するファイル

識別子を指定しました。

ファイル識別子の指定を見直します。

ファイル識別子をオープンしている

かを確認します。オープンしている

場合は,ほかのプロセスによるロッ

クなどで操作が禁止されていないか

を確認します。

ファイル識別子の指定を見直します。 書き込みでオープンさ

れたファイル識別子で

はありません。

読み込みでオープンさ

れたファイル識別子で

はありません。

バックグラウンドプロ

セスが存在しません。

通常ファイルではあり

ません。

書き込みでオープンされていない

ファイル識別子への書き込みを指定

しました。

読み込みでオープンされていない

ファイル識別子に読み込みを指定し

ました。

バックグラウンドプロセスへのファ

イル識別子を指定しましたが,バッ

クグラウンドプロセスが存在しませ

んでした。

指定のファイルは通常ファイルでは

ありません。

ファイル識別子の指定を見直します。

バックグラウンドプロセスを起動し

ているか,またはすでに終了してい

ないかを見直します。

ファイルの指定を見直します。

12. メッセージ

JP1/Advanced Shell

1487

メッセージ ID

KNAX6333-E

KNAX6588-E

エラーの詳細

通常ファイルではあり

ません。

Error in signal handler

原因

指定のファイルは通常ファイルでは

ありません。

シグナルハンドラの処理でエラーが

発生しました。

対処

ファイルの指定を見直します。

実行環境に異常がないか見直します。

12.4.4 ユーザー応答機能で表示されるエラー情報の意味および対処方法

ユーザー応答機能の使用時に,次のメッセージに出力されるエラー情報の意味と,その際の対処を説明し

ます。なお,ユーザー応答機能の情報を adshcollect コマンドで採取する場合は,管理者権限で実行する

必要があります。

• KNAX7402-E

• KNAX7460-E

• KNAX7461-E

• KNAX7462-E

(1) KNAX7402-E メッセージの詳細情報に表示されるエラー情報の意味お

よび対処方法

表 12-8 KNAX7402-E メッセージの詳細情報に表示されるエラー情報の意味および対処方法

意味 対処 エラー

番号

1

2

未実装の API が呼び出

されました。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

共有メモリの参照に失

敗しました。

ユーザー応答機能管理

デーモン・サービスが

起動していないおそれ

があります。

【運用者】

ジョブ環境ファイルの設定が正しいか確認してください。SPOOL_DIR パラメーターは

ジョブ環境ファイルには指定できません。

また,マシンの管理者権限を持つユーザーに連絡し,次の点を確認してください。

• ユーザー応答機能管理デーモン・サービスが起動しているか

• 環境ファイルの設定が正しいか

【マシンの管理者権限を持つユーザー】

次の点を確認してください。

• ユーザー応答機能管理デーモン・サービスが起動しているか

• 環境ファイルの設定が正しいか

SPOOL_DIR パラメーターはシステム環境ファイルだけに指定し,ジョブ環境ファ

イルには指定できません。

• システム環境ファイルの変更後にユーザー応答機能管理デーモン・サービスを再起動

しているか

12. メッセージ

JP1/Advanced Shell

1488

11

12

13

14

エラー

番号

2

3

4

5

6

7

8

9

10

意味 対処

共有メモリの参照に失

敗しました。

ユーザー応答機能管理

デーモン・サービスが

起動していないおそれ

があります。

空きメモリ領域が不足

しています。

不正な引数が渡されま

した。

データの不整合を検出

しました。

サポートしていない文

字エンコーディングが

指定されました。

アンダーフローが発生

しました。

オーバーフローが発生

しました。

API の呼び出し順序が

間違っています。

オブジェクトなどの内

部状態に不整合が発生

しました。

リソースへのアクセス

が拒否されました。

指定されたファイルが

存在しません。

ファイルをオープンで

きません。

ファイルに対するメモ

リマッピングを作成で

きません。

問題が解決しない場合は,システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者はメモリを見積もり直す必要があります。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,書き込み権限があることを確認してください。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,書き込み権限があることを確認してください。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,書き込み権限があることを確認してください。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,書き込み権限があることを確認してください。

12. メッセージ

JP1/Advanced Shell

1489

21

22

23

エラー

番号

15

16

17

18

19

20

24

25

400

404

意味 対処

ファイルからの読み込

み処理でエラーが発生

しました。

ファイルへの書き込み

処理でエラーが発生し

ました。

ファイルのシーク処理

でエラーが発生しまし

た。

ファイルへのフラッ

シュ処理でエラーが発

生しました。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,読み込み権限があることを確認してください。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,書き込み権限があることを確認してください。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,書き込み権限があることを確認してください。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,書き込み権限があることを確認してください。

ファイルのリネーム処

理でエラーが発生しま

した。

ファイルのコピー処理

でエラーが発生しまし

た。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,書き込み権限があることを確認してください。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,書き込み権限があることを確認してください。

ファイルの削除処理で

エラーが発生しました。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,書き込み権限があることを確認してください。

ディレクトリの作成に

失敗しました。

プロセス間のロックに

失敗しました。

ユーザープログラムに

よって無効にされた機

能を利用しようとしま

した。

環境ファイルのログディレクトリで指定したディレクトリおよびその配下のログファイ

ルに,書き込み権限があることを確認してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

ユーザープログラムに

よって禁止されている

ため,上書きできませ

ん。

パラメーターが不正で

す。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。 adshchmsg コマンド

によって応答要求メッ

セージが削除されたか,

または共有メモリを参

照できません。

運用者はマシンの管理者権限を持つユーザーに連絡して,次の点を確認してください。

• adshchmsg コマンドの-d オプションで応答要求メッセージを削除したか

• ユーザー応答機能管理デーモン・サービスが起動しているか

12. メッセージ

JP1/Advanced Shell

1490

エラー

番号

404

意味 対処

409

503 adshchmsg コマンド

によって応答要求メッ

セージが削除されたか,

または共有メモリを参

照できません。

マシンの管理者権限を持つユーザーは,ユーザー応答機能管理デーモン・サービスが起

動していることを確認してください。問題が解決しない場合は,システム管理者に連絡

してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

同一 PID から応答要求

メッセージが出力され

ました。

応答待ちイベントの出

力数が上限を超えまし

た。

マルチスレッドで同時に応答要求メッセージが出力されたことが考えられます。

アプリケーションを見直してください。

USERREPLY_WAIT_MAXCOUNT パラメーターの値を見直してください。

(2) KNAX7460-E,KNAX7461-E,KNAX7462-E メッセージの詳細情報に

表示されるエラー情報の意味および対処方法

表 12-9 KNAX7460-E,KNAX7461-E,KNAX7462-E メッセージの詳細情報に表示されるエ

ラー情報の意味および対処方法

意味 対処 エラー

番号

10 パラメーターが不正で

す。

11

30

32

33

40

関数発行の順序が不正

です。

指定属性は登録済みで

す。

登録できる拡張属性数

を超えています。

登録できる拡張属性の

合計サイズを超えてい

ます。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

自ホストの JP1/Base のイベントサービスの起動を確認してください。

43

イベントサービスに接

続できません。

入出力エラーです。 システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

12. メッセージ

JP1/Advanced Shell

1491

エラー

番号

50

51

52

60

70

意味 対処

JP1/Base のライブラ

リが見つかりません。

メモリが不足していま

す。

ファイルオープン数が

限界です。

JP1/Base をインストールして,ジョブを再実行してください。

システム管理者に連絡してください。

システム管理者はメモリを見積もり直す必要があります。

システム管理者に連絡してください。

システム管理者はオープンできる fd 数を見積もり直す必要があります。

JP1 イベントが初期化

処理されていません。

システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

システムエラーです。 システム管理者に連絡してください。

システム管理者は,「

11. トラブルシューティング 」に従って資料を採取し,トラブル

の回避および対処を実施してください。

12. メッセージ

JP1/Advanced Shell

1492

付録

JP1/Advanced Shell

1493

付録 A カバレージ情報を取得する対象

カバレージ情報には C0 情報および C1 情報があります。カバレージ情報を取得する対象について説明し

ます。

なお,次の項目については,カバレージ情報を取得しません。

• 条件式

• 算術演算

• 変数

付録 A.1 カバレージ情報を取得するコマンド

次のコマンドを使用した場合,カバレージ情報を取得するかどうかについて説明します。

• シェル標準コマンド

• シェル拡張コマンド

• スクリプト拡張コマンド

• その他のコマンド

(1) シェル標準コマンド

(a) 特殊組み込みコマンド

表 A-1 カバレージ情報を取得する特殊組み込みコマンド

項目 C0

.(ドット)コマンド

:(コロン)コマンド break コマンド continue コマンド eval コマンド exec コマンド exit コマンド export コマンド readonly コマンド return コマンド

C1

×

×

×

×

×

×

×

×

×

×

付録 A カバレージ情報を取得する対象

JP1/Advanced Shell

1494

項目 set コマンド shift コマンド trap コマンド typeset コマンド unset コマンド

(凡例)

○:カバレージ情報を取得して表示します。

×:カバレージ情報を取得しません。

C0

(b) 正規組み込みコマンド

表 A-2 カバレージ情報を取得する正規組み込みコマンド

項目 C0 alias コマンド builtin コマンド cd コマンド command コマンド echo コマンド false コマンド getopts コマンド kill コマンド let コマンド print コマンド pwd コマンド read コマンド test コマンド times コマンド true コマンド ulimit コマンド umask コマンド unalias コマンド wait コマンド

付録 A カバレージ情報を取得する対象

JP1/Advanced Shell

C1

×

×

×

×

×

C1

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

1495

項目 whence コマンド

(凡例)

○:カバレージ情報を取得して表示します。

×:カバレージ情報を取得しません。

C0

(2) シェル拡張コマンド

表 A-3 カバレージ情報を取得するシェル拡張コマンド

項目 C0 adshecho コマンド adshread コマンド adshscripttool コマンド adshcmdrc コマンド adshjoberr コマンド adshvarconv コマンド adshmktemp コマンド adshparsecsv コマンド adshparsejson コマンド adshappexec コマンド

(凡例)

○:カバレージ情報を取得して表示します。

×:カバレージ情報を取得しません。

(3) スクリプト拡張コマンド

表 A-4 カバレージ情報を取得するスクリプト拡張コマンド

C0 項目

#-adsh_file コマンド

#-adsh_file_temp コマンド

#-adsh_job コマンド

#-adsh_job_stop コマンド

#-adsh_path_var コマンド

#-adsh_rc_ignore コマンド

付録 A カバレージ情報を取得する対象

JP1/Advanced Shell

C1

×

C1

×

×

×

×

×

×

×

×

×

×

C1

×

×

×

×

×

×

1496

項目

#-adsh_script コマンド

#-adsh_spoolfile コマンド

#-adsh_step_start コマンド

#-adsh_step_error コマンド

#-adsh_step_end コマンド

C0

C1

×

×

※1

※2

×

(凡例)

○:カバレージ情報を取得して表示します。

×:カバレージ情報を取得しません。

注※1

C1 に表示する情報の詳細については,「 (e) #-adsh_step_start コマンドの場合 」を参照してください。

注※2

C1 に表示する情報の詳細については,「 (f) #-adsh_step_error コマンドの場合 」を参照してください。

(4) その他のコマンド

JP1/Advanced Shell 以外のコマンド(OS のコマンド,ユーザーが作成したコマンドなど)を使用した

場合に,カバレージ情報を取得するかどうかを次の表に示します。

表 A-5 カバレージ情報を取得するその他のコマンド

項目

その他のコマンド

C0

C1

×

(凡例)

○:カバレージ情報を取得して表示します。

×:カバレージ情報を取得しません。

付録 A.2 カバレージ情報を取得する制御文

制御文を使用した場合に,カバレージ情報を取得するかどうかを次の表に示します。

表 A-6 カバレージ情報を取得する制御文

項目 if if の条件 then

C0

×

×

C1

×

×

付録 A カバレージ情報を取得する対象

JP1/Advanced Shell

1497

fi for

変数 in

項目 elif elif の条件 else

ワードリスト do done while while の条件 until until の条件 case

*

)

;;

パターン) esac

C0

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

×

C1

(凡例)

○:カバレージ情報を取得して表示します。

△:次の場合にカバレージ情報を取得して表示します。

  fi :else 節を指定していない場合

 esac:

*

パターンを指定していない場合。

*

パターンとは,case 文でどのパターンにも一致しなかっ

た場合のパターンです。

×:カバレージ情報を取得しません。

×

×

×

×

×

×

×

×

×

×

付録 A.3 カバレージ情報を取得する関数

関数を呼び出す場合に,カバレージ情報を取得するかどうかを次の表に示します。関数を定義する場合は,

カバレージ情報を取得しません。

付録 A カバレージ情報を取得する対象

JP1/Advanced Shell

1498

表 A-7 カバレージ情報を取得する関数の呼び出し

項目

関数名の呼び出し function の実行

関数名の実行

( )の部分の実行

{で始まる処理の実行

コマンドおよび制御文の実行

}で終わる処理の実行

C0 C1

×

×

×

×

×

(凡例)

○:カバレージ情報を取得して表示します。

△:実行する制御文に C1 情報がある場合は,カバレージ情報を取得して表示します。

×:カバレージ情報を取得しません。

×

×

×

×

×

×

付録 A.4 カバレージ情報を取得するメタキャラクタ

メタキャラクタの中では,コマンドセパレータの場合だけカバレージ情報を取得します。カバレージ情報

を取得するコマンドセパレータを次の表に示します。

表 A-8 カバレージ情報を取得するコマンドセパレータ

項目 cmd_1;cmd_2 cmd_1&&cmd_2 cmd_1

|| cmd_2

C0

C1

×

×

×

(凡例)

○:カバレージ情報を取得して表示します。

×:カバレージ情報を取得しません。

なお,メタキャラクタを使用した次の機能では,カバレージ情報を取得しません。

• コメント

• 行継続

• 変数置換

• コマンド置換

付録 A カバレージ情報を取得する対象

JP1/Advanced Shell

1499

• ファイル名置換

• リダイレクト

• ヒアドキュメント

• コマンドのグループ化

• その他のメタキャラクタ

付録 A.5 カバレージ情報を取得するシェル変数の動作

次の表で示すように,シェル変数に値を代入する場合,カバレージ情報を取得します。

表 A-9 カバレージ情報を取得するシェル変数の動作

項目

シェル変数=値

C0

C1

(凡例)

○:カバレージ情報を取得して表示します。

×:カバレージ情報を取得しません。

×

付録 A カバレージ情報を取得する対象

JP1/Advanced Shell

1500

付録 B JP1/AJS 以外のジョブスケジューラから起動する場合【UNIX 限定】

実行環境で JP1/AJS 以外のジョブスケジューラを使用して JP1/Advanced Shell のバッチジョブを起動す

る方法について説明します。

なお,JP1/AJS 以外のジョブスケジューラでのバッチジョブ業務の自動化の詳細についてはジョブスケ

ジューラのマニュアルを参照してください。

JP1/Advanced Shell は JP1/AJS からバッチジョブを起動すると,adshexec コマンドのプロセス,およ

び子孫プロセスは,異なるプロセスグループで実行します。これは JP1/Advanced Shell の多くの機能が

JP1/AJS と連携しているためです。

図 B-1 JP1/AJS から起動した時のプロセスグループ

一方,JP1/AJS 以外のジョブスケジューラから起動した場合は,adshexec コマンドのプロセス,および

子孫プロセスは,同じプロセスグループで実行します。

図 B-2 JP1/AJS 以外のジョブスケジューラから起動した時のプロセスグループ

これによって,JP1/AJS 以外のジョブスケジューラから起動した場合も強制終了でジョブを即時終了でき

ます。ただし,JP1/AJS と連携が必要な JP1/Advanced Shell の一部の機能については使用できません。

詳細は「

付録 B.3 JP1/AJS 以外のジョブスケジューラから起動する際の注意事項 」を参照してください。

付録 B JP1/AJS 以外のジョブスケジューラから起動する場合【UNIX 限定】

JP1/Advanced Shell

1501

付録 B.1 JP1/AJS 以外のジョブスケジューラから起動するための準備

JP1/AJS 以外のジョブスケジューラを使用して JP1/Advanced Shell のバッチジョブを起動する場合,次

のことを実施してください。

1. 使用するジョブスケジューラが JP1/AJS 以外であることを定義するため,環境ファイルに環境設定パ

ラメーター SCHEDULER_SELECT を「OTHER」で定義してください。

#-adsh_conf SCHEDULER_SELECT OTHER

2. 環境変数 AJS_BJEX_STOP は,JP1/AJS と JP1/Advanced Shell が連携するために使用する環境変数

です。そのため,環境変数 AJS_BJEX_STOP を定義している場合は定義を無効にしてください。

付録 B.2 SCHEDULER_SELECT パラメーター(使用するジョブスケジュー

ラを選択する)

形式

#-adsh_conf SCHEDULER_SELECT {AJS | OTHER}

機能

使用するジョブスケジューラを選択します。

ジョブコントローラは,JP1/AJS 以外のジョブスケジューラからもジョブを実行できます。ただし,JP1/

Advanced Shell が提供する一部の機能を使用できません。使用できない機能,および注意事項について

は,「 付録 B.3 JP1/AJS 以外のジョブスケジューラから起動する際の注意事項

」を参照してください。

JP1/AJS 以外のジョブスケジューラを使用してジョブを実行する場合は,オペランドに OTHER を指定し

てください。JP1/AJS をジョブスケジューラとして使用する場合,またはジョブスケジューラを使用しな

い場合はオペランドに AJS を指定してください。

なお,このパラメーターの指定を省略すると,ジョブコントローラは AJS が指定されたと解釈して動作し

ます。

オペランド

AJS

次のどれかの場合は,AJS を指定してください。

• ジョブスケジューラとして JP1/AJS を使用する。

• ジョブスケジューラを使用しない。

付録 B JP1/AJS 以外のジョブスケジューラから起動する場合【UNIX 限定】

JP1/Advanced Shell

1502

OTHER

JP1/AJS 以外のジョブスケジューラを使用する場合は,OTHER を指定してください。

注意事項

• オペランドに OTHER を指定しても,環境変数 AJS_BJEX_STOP の値が TERM の場合,JP1/AJS を

使用すると判断します。オペランドに OTHER を指定する場合は,環境変数 AJS_BJEX_STOP の定義

を無効にしてください。

• ルートジョブと子孫ジョブで同じオペランドを指定してください。

• システム環境ファイルとジョブ環境ファイルの両方にこのパラメーターが定義されていた場合,ジョブ

環境ファイルでの定義が有効になります。

• このパラメーターを同一の環境ファイルで同一のホストに対して複数定義した場合,パラメーターエ

ラーとなります。

付録 B.3 JP1/AJS 以外のジョブスケジューラから起動する際の注意事項

JP1/AJS 以外のジョブスケジューラを使用して JP1/Advanced Shell のバッチジョブを起動する場合,次

の点に注意してください。

なお,JP1/AJS 以外のジョブスケジューラからジョブを強制終了すると,SIGKILL シグナルが送信される

と想定しています。強制終了時に送信されるシグナルについてはジョブスケジューラのマニュアルを参照

してください。

• 環境設定パラメーター TRAP_ACTION_SIGTERM を定義しても,強制終了時のユーザー固有の後処

理は実行できません。

• JP1/Advanced Shell はジョブ実行のために一時ファイルを作成する場合があります。一時ファイルを

格納するディレクトリパスは環境設定パラメーター TEMP_FILE_DIR に指定します。通常,一時ファ

イルは削除されますが,実行中のジョブを強制終了すると削除されず残ることがあります。このような

場合は手動で削除してください。

• 実行中のジョブを強制終了すると, #-adsh_file コマンド, #-adsh_file_temp コマンド, #adsh_spoolfile コマンド, adshfile コマンドで作成したファイルが残る場合があります。このような場

合は手動で削除してください。

• adshread コマンドが応答要求メッセージの応答待ちの状態で,JP1/AJS 以外のジョブスケジューラか

ら強制終了した場合,共有メモリ上に応答要求メッセージの情報が残り,JP1/IM - View に応答待ち

イベントが滞留したままになることがあります。その場合,adshchmsg コマンドの-d オプションで応

答要求メッセージの応答待ち状態をキャンセルするか,ユーザー応答機能管理デーモン・サービスを再

起動してください。

• adshjava コマンドで Java バッチアプリケーションを実行した状態で,JP1/AJS 以外のジョブスケ

ジューラから強制終了した場合,Java バッチアプリケーションは強制終了されないで実行し続ける場

合があります。

付録 B JP1/AJS 以外のジョブスケジューラから起動する場合【UNIX 限定】

JP1/Advanced Shell

1503

• 次の表に示す稼働実績情報の項目は採取されません。また,adshevtout コマンドに次の表に示すオプ

ションを指定しても稼働実績情報を出力できません。

表 B-1 採取されない稼働実績情報の項目と対応する adshevtout コマンドのオプション

項目名

Jp1ajsService

Jp1ajsJobName

Jp1ajsExecId

Jp1ajsJobId

Jp1ajsRootJobnet

-n

-r

-g

-k

対応する adshevtout のオプション

-c

内容

JP1/AJS のスケジューラーサービス名

JP1/AJS のジョブ名

JP1/AJS のジョブの実行 ID

JP1/AJS のジョブ番号

JP1/AJS のルートジョブネット名

付録 B JP1/AJS 以外のジョブスケジューラから起動する場合【UNIX 限定】

JP1/Advanced Shell

1504

付録 C 各バージョンの変更内容

各バージョンの変更内容をマニュアルの版ごとに説明します。

付録 C.1 11-00 での変更内容

• tar コマンドを追加した。

• cp コマンドおよび mv コマンドにロングオプションの指定を追加した。

• date コマンドに書式指定コード%を追加した。

• パス変換機能に関する説明を追加した。

• JP1/AJS 以外のジョブスケジューラを使用して JP1/Advanced Shell のバッチジョブを起動する方法

を追加した。

• 別プロセス化を伴う構文の説明を追加した。

• 二次元配列について説明を追加した。

• 外部コマンドの起動方法の定義を追加した。

• export パラメーターの環境変数値で指定できる値の上限を変更した。

• Windows シンボリックリンクの説明を追加した。

• UNIX ジョブのコマンド文でジョブ定義できるようにした。

• シェルスクリプト開発部品を提供した。

• JP1/AJS からの GUI プログラム実行機能について説明した。

• ジョブステップのエラー判定について説明した。

• インタフェースを変更した。

• シェルスクリプト入力支援を追加した。

• メッセージの出力先を追加した。

• メッセージ本文を変更した。

KNAX7073-I

• メッセージを追加した。

KNAX2500-E,KNAX2501-E,KNAX6118-I,KNAX6119-I,KNAX6128-I,KNAX6129-I,

KNAX6134-E,KNAX6135-E,KNAX6136-E,KNAX6137-E,KNAX6138-E,KNAX6139-E,

KNAX6140-E,KNAX6150-E,KNAX6151-E,KNAX6152-E,KNAX6153-E,KNAX6190-E,

KNAX6191-E,KNAX6192-E,KNAX6193-E,KNAX6194-E,KNAX6340-E,KNAX6341-E,

KNAX6342-E,KNAX6580-E,KNAX6581-E,KNAX6595-E,KNAX6996-I KNAX7200-I,

KNAX7201-I,KNAX7203-W,KNAX7204-E,KNAX7205-E,KNAX7210-E,KNAX7211-I,

KNAX7212-I,KNAX7213-I,KNAX7215-E,KNAX7216-E,KNAX7217-E,KNAX7221-E,

KNAX7222-E,KNAX7223-E,KNAX7225-E,KNAX7250-I,KNAX7251-I,KNAX7254-E,

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1505

KNAX7255-I,KNAX7256-E,KNAX7258-E,KNAX7259-W,KNAX7260-W,KNAX7261-I,

KNAX7262-I,KNAX7263-E,KNAX7264-I,KNAX7268-I,KNAX7269-E,KNAX7270-E,

KNAX7271-I

• メッセージの説明を追加した。

KNAX6004-E,KNAX6016-E,KNAX6054-E,KNAX6072-E

付録 C.2 10-51 での変更内容

• ジョブ強制終了時にユーザー固有の後処理を実行できるようにした。

• 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 パラメーターのデフォルト定義に合致するジョブ定義スクリプトを子孫ジョ

ブとして実行できるようにした。これに関連して次の機能を追加した。

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1506

• 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,KNAX6718-I,KNAX7073-I,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,

KNAX6710-I,KNAX6997-E,KNAX7450-I,KNAX7451-I,KNAX7901-I,KNAX7902-I

• メッセージテキストを変更した。

KNAX9000-E,KNAX9001-E

• 用語解説に「トラップアクション」の説明を追加した。

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1507

付録 C.3 10-50 での変更内容

• 適用 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

• スプールジョブディレクトリへの標準出力と標準エラー出力への出力を抑止できるようにした(簡潔出

力モード)。

これに伴って次の環境設定パラメーターを追加した。

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1508

• 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

• メッセージを追加した。

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1509

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

付録 C.4 10-00-01 での変更内容

• 適用 OS として Windows Server 2012 および Windows 8 を追加した。

• クラスタシステムでの運用に関する記述を追加した。

付録 C.5 10-00 での変更内容

• 適用 OS の追加に伴い,HP-UX 環境,Solaris 環境の説明を追加した。

• 適用 OS の変更に伴い,AIX 環境の説明を変更した。

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1510

• 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 は対

象外)。これに伴って次のパラメーターおよびコマンドを追加した。

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1511

• 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,

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1512

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 編 概要編

第 2 編 構築編

第 3 編 運用編

第 4 編 リファレンス編

第 5 編 トラブルシューティング編

編に含まれる章

1 章

2 章

3 章〜6 章

7 章〜9 章

10 章〜11 章

また,マニュアルの章タイトルを次のように変更した。

旧版(3020-3-S35-30)の章タイトル

4. エディタの操作

5. ジョブ定義スクリプトの文法

7. 環境ファイルで設定するパラメーターとコマンド

新版(3021-3-133)の章タイトル

4. ジョブ定義スクリプトの作成(エディタを使用する場合)

【Windows 限定】

5. ジョブ定義スクリプトの作成(シェルで記述する場合)

7. 環境ファイルで設定するパラメーター

付録 C.6 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 パラメーターを追加した。

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1513

• 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

付録 C.7 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 環境変数の説明

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1514

• 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 コマンド

• 標準エラー出力に出力するジョブ実行ログの出力形式の説明を追加,変更した。

• メッセージを追加した。

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1515

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)

4. ジョブ定義スクリプトの作成

変更後の章番号(3020-3-S35-20)

4. エディタの操作

5. ジョブ定義スクリプトの文法

付録 C.8 9-50-01 での変更内容

• カバレージ情報を採取する機能の説明を追加,変更した。

• 共通アプリケーションフォルダにログフォルダを追加した。

• ハードリンク,シンボリックリンクおよびジャンクションについての注意事項を追加した。

• メタキャラクタについての注釈および注意事項を追加した。

• 次の説明を追加した。

• 環境ファイルで TRACE_FILE_CNT と TRACE_FILE_SIZE を変更した場合

• トレースファイルの面数およびファイルサイズを小さくする場合

• SCRIPT の説明に,出力される内容を追加した。

•「デバッグの停止」を「スクリプトの停止」に変更した。

• 予約語の説明を変更した。

• 入力行の上限および入力文字数の上限について追加した。

• 関数の名称がほかの関数と重複していた場合について追加した。

• 入力行の上限についての説明を追加した。

• test コマンドではワイルドカードを使用できないことを追記した。

• fd の指定についての注釈を変更した。

• ジョブステップ終了コードについての説明を追加した。

• スクリプト拡張コマンドの終了コードおよび終了コードの説明を変更した。

• コマンド実行結果の出力に関する注意事項を変更した。

• E-Time についての注意事項を追加した。

• ブレークポイントとウォッチポイントの上限についての注意事項を変更した。

• ファイルのパス名の記述を追加した。

付録 C 各バージョンの変更内容

JP1/Advanced Shell

1516

• コマンドの説明を変更した。

.(ドット)コマンド,:(コロン)コマンド,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 各バージョンの変更内容

JP1/Advanced Shell

1517

付録 D このマニュアルの参考情報

このマニュアルを読むに当たっての参考情報を示します。

付録 D.1 関連マニュアル

関連マニュアルを次に示します。必要に応じてお読みください。

JP1/Advanced Shell 関連

• JP1 Version 11 ジョブ管理 基本ガイド(スクリプト言語編)(3021-3-B31)

JP1/AJS 関連

• JP1 Version 11 ジョブ管理 基本ガイド(ジョブスケジューラー編)(3021-3-B11)

• JP1 Version 11 JP1/Automatic Job Management System 3 設計ガイド(システム構築編)

(3021-3-B13)

• JP1 Version 11 JP1/Automatic Job Management System 3 構築ガイド(3021-3-B15)

• JP1 Version 11 JP1/Automatic Job Management System 3 トラブルシューティング(3021-3-

B17)

• JP1 Version 11 JP1/Automatic Job Management System 3 操作ガイド(3021-3-B18)

• JP1 Version 11 JP1/Automatic Job Management System 3 コマンドリファレンス(3021-3-

B19)

• JP1 Version 11 JP1/Automatic Job Management System 3 - Definition Assistant(3021-3-

B25)

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 8 JP1/NETM/DM SubManager(UNIX(R)用)(3020-3-L42)

• JP1 Version 6 JP1/NETM/DM Manager(3000-3-841)

JP1/Base 関連

• JP1 Version 11 JP1/Base 運用ガイド(3021-3-A01)

JP1/IM 関連

• JP1 Version 11 JP1/Integrated Management - Manager 構築ガイド(3021-3-A08)

• JP1 Version 11 JP1/Integrated Management - Manager 運用ガイド(3021-3-A09) uCosminexus Application Server 関連

• Cosminexus V9 アプリケーションサーバ 機能解説 拡張編(3020-3-Y08)

付録 D このマニュアルの参考情報

JP1/Advanced Shell

1518

• Cosminexus V9 アプリケーションサーバ リファレンス コマンド編(3020-3-Y15)

付録 D.2 このマニュアルでの表記

このマニュアルでは,製品名を次のように表記しています。

このマニュアルでの表記

JP1/Advanced Shell

JP1/AJS

JP1/AJS - Agent

JP1/AJS -

Definition

Assistant

JP1/AJS -

Manager

JP1/AJS - View

JP1/IM

JP1/AJS3

JP1/AJS3 - Agent

JP1/AJS3 - Definition Assistant

JP1/AJS3 - Manager

正式名称

JP1/Advanced Shell

JP1/Advanced Shell - Developer

JP1/Automatic Job Management System 3 - Agent

JP1/Automatic Job Management System 3 - Manager

JP1/Automatic Job Management System 3 - View

JP1/Automatic Job Management System 3 - Agent

JP1/Automatic Job Management System 3 - Definition

Assistant

JP1/Automatic Job Management System 3 - Manager

UNIX

JP1/AJS3 - View

JP1/IM - Manager

JP1/IM - View

Linux CentOS 6

CentOS 7

Oracle Linux 6

Oracle Linux 7

RHEL 6

RHEL 7

SUSE Linux 12

AIX

HP-UX

Solaris

JP1/Automatic Job Management System 3 - View

JP1/Integrated Management - Manager

JP1/Integrated Management - View

CentOS 6

CentOS 7

Oracle Linux

®

Operating System 6 (x64)

Oracle Linux

®

Operating System 7

Red Hat Enterprise Linux

®

Server 6(64-bit x86_64)

Red Hat Enterprise Linux

®

Server 7(64-bit x86_64)

SUSE Linux

®

Enterprise Server 12

AIX V6.1

AIX V7.1

HP-UX 11i V3(IPF)

Solaris 10(SPARC)

Solaris 11(SPARC)

付録 D このマニュアルの参考情報

JP1/Advanced Shell

1519

付録 D.3 ディレクトリの表記について

Windows と UNIX で共用する部分では,ディレクトリという用語を使用しています。Windows 限定の

記載がある場合には,フォルダを使用します。

上記に伴って,ディレクトリの区切りには,「/」を使用します。Windows 特有で使用する場合は,フォ

ルダの区切りには,「

\

」を使用します。

付録 D.4 KB(キロバイト)などの単位表記について

1KB(キロバイト),1MB(メガバイト),1GB(ギガバイト),1TB(テラバイト)はそれぞれ 1,024 バ

イト,1,024

2

バイト,1,024

3

バイト,1,024

4

バイトです。

付録 D このマニュアルの参考情報

JP1/Advanced Shell

1520

付録 E 用語解説

このマニュアルで使用する用語について解説します。

(記号)

.env ファイル

環境変数 ENV にファイルパスを設定し,シェル起動時に読み込むファイルです。ファイルを読み込む

かどうかは,環境設定パラメーター KSH_ENV_READ で指定することができます。

(英字) export パラメーター

環境ファイルに設定するパラメーターのうち,コマンド起動時に環境変数を設定するために指定するパ

ラメーターです。

GUI アプリケーション実行プログラム

アプリケーション実行エージェント機能を使用する場合に,アプリケーション実行エージェントプログ

ラムに連絡をするプログラムです。JP1/AJS から実行アプリケーションを実行する場合には PC ジョブ

の実行ファイル名,またはカスタムジョブの実行プログラムに定義します。

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 コマンドなどがあります。

(ア行)

アプリケーション実行エージェント機能

ユーザー指定のアプリケーションをユーザーのログオン空間で実行する機能です。

付録 E 用語解説

JP1/Advanced Shell

1521

アプリケーション実行エージェントプログラム

ユーザーごとに動作し,実行アプリケーションを実行する目的で常駐させておくプログラムです。アプ

リケーション実行エージェント機能を使用する場合には,スタートアップに登録しておくことを推奨し

ます。

一時ファイル

ジョブ実行時に一時的に使用するファイルです。ジョブまたはジョブステップによって作成され,ジョ

ブ終了時には自動的に削除されます。 #-adsh_file_temp コマンドで定義できます。

ウォッチポイント

ある変数や式の値が変化したときにジョブ定義スクリプトを停止させる,特別なブレークポイントで

す。ウォッチポイントは,ほかのブレークポイントと同じように管理できます。

エディタ

開発環境に付属するさまざまな機能を利用して,効率良くジョブ定義スクリプトを作成できます。

エラー注入モード

デバッグ実行時にエラーの発生をシミュレーションするモードです。

エラー注入モードの有効/無効を切り替えるには,UNIX では joberrmode コマンドを実行します。

Windows では JP1/Advanced Shell エディタでメニュー[エラー注入モード]を選択します。

応答待ちイベント

応答要求メッセージを通知する JP1 イベントのことです。

応答要求メッセージ

運用者からの応答を求めるメッセージのことです。

オプション

コンピュータの入力装置から入力する指示に対して,選択的な機能を付け加えます。このことをオプ

ションといいます。

JP1/Advanced Shell では,1 個のハイフン(-)に続く 1 文字のコマンド引数をショートオプション,

連続する 2 個のハイフン(--)に続くコマンド引数をロングオプションと呼んでいます。

オプションの右側に指定する引数のことをオプションの値と呼びます。

オペランド

コマンドラインに指定するコマンド引数のうち,オプション名とオプション値のほかに指定する,規定

のコマンド引数のことです。また,パラメーターの値もオペランドと呼びます。

(カ行)

開発環境

JP1/Advanced Shell - Developer が提供する,バッチ処理のためのジョブ定義スクリプトを開発する

ための環境です。

外部コマンド

シェルの組み込みコマンドではない,UNIX 互換コマンド,OS が提供するコマンドおよびユーザーに

よって作成される実行ファイルやプログラムのことを指します。

付録 E 用語解説

JP1/Advanced Shell

1522

カスタムジョブ

ある特定の機能を持つジョブを 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 行に複数のコマンドを記述できるようにするための

機能です。

付録 E 用語解説

JP1/Advanced Shell

1523

コマンドのグループ化

JP1/Advanced Shell で複数のコマンドをまとめて実行する機能のことをいいます。

コマンドプロンプト

Windows 環境でコマンドの入力を促すものです。

コマンドライン

ユーザーがコマンドを入力するための行です。Windows では,コマンドプロンプトにあり,行は>の

次から入力します。UNIX では,シェルにあり,行は%の次から入力します。

コンソール

端末画面のことです。

(サ行)

サブシェル

UNIX 環境で,ジョブ定義スクリプトで外部コマンドや特定の構文を実行した際に自動的かつ一時的に

生成される,ルートジョブでも子孫ジョブでもない,ジョブコントローラと同一名称の子プロセスです。

算術演算

ジョブ定義スクリプトで演算子を使用して変数に代入されている値を数値として扱って,計算を実施す

ることをいいます。

シェル

コンピュータの入力装置から入力された指示を解釈して,OS に伝えるプログラムのことです。

シェル運用コマンド

実行形式のバイナリファイルやシェルスクリプトとして提供しているコマンドであり,ジョブ定義スク

リプトだけで使用できるコマンドと,ジョブ定義スクリプトだけでなく OS のシェルやコマンドプロン

プトなどからも使用できるコマンドがあります。シェル運用コマンドには,adshexec コマンド(バッ

チジョブを実行するコマンド)などがあります。

シェルオプション

シェルでコンピュータの入力装置から入力する指示に対して,選択的な機能を付け加えます。このこと

をシェルオプションといいます。

シェル拡張コマンド

シェル本体に組み込まれたコマンドであり,シェル自身のプロセスで実行されます。ジョブ定義スクリ

プトで使用できるコマンドです。

シェル拡張変数

JP1/Advanced Shell が提供する特別な意味を持つシェル変数です。

シェルコマンド

シェルまたはコマンドプロンプトから実行する JP1/Advanced Shell で使用できるコマンドの総称の

ことです。

付録 E 用語解説

JP1/Advanced Shell

1524

シェルスクリプト

テキストファイルにコマンドを並べて記載しておき,シェルからそのコマンドを続けて実行できるよう

にしたテキストファイルを,シェルスクリプトといいます。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 のことです。

終了コード

ジョブ定義スクリプトまたはコマンドを実行した場合に返信されるコードのことです。

条件式

ジョブ定義スクリプトで使用する,数値比較,文字列比較,ファイル属性,論理結合の演算子および三

項演算子を使って表す計算式のことです。

付録 E 用語解説

JP1/Advanced Shell

1525

条件パラメーター

環境ファイルに設定するパラメーターのうち,物理ホストまたは特定の論理ホストだけで有効とする環

境設定パラメーターおよび 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 の機能です。

シンボリックリンク

実際のファイルパスを格納したファイルを使ってリンクすることです。

付録 E 用語解説

JP1/Advanced Shell

1526

スクリプト

テキストファイルにコマンドを並べて記載しておき,シェルからそのコマンドを続けて実行できるよう

にしたテキストファイルを,スクリプトといいます。JP1/Advanced Shell のスクリプトは,Windows

環境と UNIX 環境で実行でき,ジョブ定義スクリプトともいいます。

スクリプト開発部品

JP1/Advanced Shell が提供する,関数形式のジョブ定義スクリプトです。空白を削除した文字列の取

得や,日付の経過日数の取得,ファイルサイズの取得など,汎用的な処理を関数として呼び出すことが

できます。

スクリプト拡張コマンド

ジョブ定義スクリプトで実行するコマンドです。通常のシェルスクリプトのコマンドに対してバッチ

ジョブの実行を制御するための機能を付け加えたコマンドです。ジョブ実行制御コマンドともいいま

す。JP1/Advanced Shell では,#-adsh で始まるコマンドがあります。

スクリプト制御文

ジョブ定義スクリプトでコマンドを制御する文のことです。if 文,for 文,while 文,until 文および case 文があります。

スクリプトファイル

作成したスクリプトを保存したファイルです。

スクリプト予約語コマンド

ジョブ定義スクリプトで予約語として使用できるコマンドのことです。time コマンドがあります。

スプール

JP1/Advanced Shell でジョブの実行結果やジョブ実行ログを格納する場所です。

スプールジョブ

スプールディレクトリに作成されたジョブごとの実行結果のことです。

正規組み込みコマンド

シェル標準コマンドの組み込みコマンドの一種です。コマンドの構文を誤ってもコマンドを実行してい

るシェルが終了しないコマンドです。

制御文

スクリプト制御文と同じ意味です。

総称変数名

変数名の一部が同一である変数名を総称して表す変数名の表記方法です。

次の形式で表現します。

[*][文字列][*]

*は 0 文字以上の文字を示します。

(タ行)

付録 E 用語解説

JP1/Advanced Shell

1527

ダイアログボックス

ユーザーに応答を促すウィンドウのことです。

通常ファイル

ジョブ定義スクリプトの入力および出力に使用するファイルです。ジョブ終了後にジョブ結果として残

すファイルですが,ジョブの実行中に削除することもできます。 #-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 か月分などにまとめて一括処理することで

す。

付録 E 用語解説

JP1/Advanced Shell

1528

ヒアドキュメント

ジョブ定義スクリプト内で使用されるリダイレクト機能のことです。標準入力をジョブ定義スクリプト

内で生成します。

引数

コマンドラインやジョブ定義スクリプトにコマンドを実行する記述をする場合,コマンド名の後ろに区

切り文字で区切って指定する項目の総称を引数といいます。

標準エラー出力(stderr)

プログラムがエラーなどのメッセージを出力するストリームです。

標準出力(stdout)

プログラムがデータを出力するストリームです。

標準入力(stdin)

プログラムへデータを入力するストリームです。

ファイルディスクリプタ

JP1/Advanced Shell での入出力種別ごとに,番号を付けて区別するようにしたものです。JP1/

Advanced Shell では,標準出力に 1,標準エラー出力に 2,およびそれ以外に 3〜9 を割り当てて使

用できます。

ファイルの割り当て

JP1/Advanced Shell では,ファイルの後処理を登録することを含めてファイルの割り当てといいます。

ブレークポイント

ジョブ定義スクリプトの開発時にジョブ定義スクリプトの動作状態を確認するために,ジョブ定義スク

リプト中に挿入される強制実行停止コードのことです。ブレークポイントではデバッガが処理を停止す

るため,開発者は停止直前の変数を確認できます。

プログラム出力データファイル

ユーザープログラムの出力結果をシステム実行ログと同様に一元管理するために,JP1/Advanced Shell

が自動的にファイル名を作成して,ユーザープログラムが実行結果を出力するためのファイルです。

ベース名

ファイル名から「.拡張子」を除いた部分の名称です。バッチジョブを実行するコマンドのプログラム

(adshexec.exe)のベース名は,adshexec となります。

変数

ジョブ定義スクリプト内で値を扱うために使用する領域および配列のことです。変数にはシェル変数お

よび環境変数も含まれます。

(マ行)

メタキャラクタ

ジョブ定義スクリプト内でそれぞれに特別な意味を持つキャラクタ(文字列)のことです。

(ラ行)

付録 E 用語解説

JP1/Advanced Shell

1529

リダイレクト

ジョブ定義スクリプトでは,コマンド実行前に実行結果の出力先の変更やコマンド実行に必要な情報の

入力先を変更できます。これをリダイレクトといいます。通常,標準入力はキーボードに,標準出力は

画面に割り当てられていますが,リダイレクトではこれらの割り当てを変更します。

流量制御 adshecho コマンドや adshread コマンドの実行時に発行される JP1 イベントに対して,発行間隔を制

御する機能です。

ルートジョブ

JP1/AJS やログインシェルなどから実行するジョブのうち,子孫ジョブ以外のジョブのことです。

ログ

コンピュータが出力する記録情報のことです。ログには記録した時間やメッセージなどが出力されます。

ロングオプション

コマンドの引数に指定するオプションのうち,先頭が連続する 2 個のハイフン(-)で始まり,そのあ

とに文字列が続く形式のオプションのことです。

(ワ行)

ワイルドカード

ワイルドカードは

*

と?で記述します。

*

は任意の文字列を,?は任意の 1 文字を表します。

また,[ ]で囲まれた文字列の 1 文字に合致させたり,「-」で範囲を指定したり,「!」でその文字列以外

を指定したり,コンマで区切られた文字列のどれかを選択させたりできます。

付録 E 用語解説

JP1/Advanced Shell

1530

索引

記号

_〔シェル変数〕

443

--〔print コマンド〕

1024

--〔set コマンド〕

1031

--〔typeset コマンド〕

1044

--absolute-paths〔tar コマンド〕

939

--all〔ls コマンド〕

859

--almost-all〔ls コマンド〕

859

--append〔tar コマンド〕

939

--blocking-factor=ブロック化係数〔tar コマンド〕

939

--brief〔 diff コマンド〕

768

--bytes=リスト〔cut コマンド〕

753

--characters=リスト〔cut コマンド〕

753

--classify〔ls コマンド〕

859

--cmdrc0〔tar コマンド〕

939

--compatible=種別〔tar コマンド〕

939

--context[=行数]〔 diff コマンド〕

768

--create〔tar コマンド〕

939

--date=日時情報指定文字列〔date オプション〕

756

--delimiter=デリミタ〔cut コマンド〕

753

--dereference〔cp コマンド〕

750

--dereference〔ls コマンド〕

859

--dereference〔stat コマンド〕

927

--dereference〔tar コマンド〕

939

--directory〔ls コマンド〕

859

--directory=ディレクトリ〔tar コマンド〕

939

--exclude-from=ファイル〔tar コマンド〕

939

--extract〔tar コマンド〕

939

--fields= リスト〔cut コマンド〕

753

--file= アーカイブ〔tar コマンド〕

939

--files-from= ファイル〔tar コマンド〕

939

--follow={yes | no}〔ln コマンド〕

851

--force〔cp コマンド〕

750

--force〔ln コマンド〕

851

--format=across〔ls コマンド〕

859

--format=commas〔ls コマンド〕

859

--format=horizontal〔ls コマンド〕

859

--format=long〔ls コマンド〕

859

--format=single-column〔ls コマンド〕

859

--format=verbose〔ls コマンド〕

859

--format=vertical〔ls コマンド〕

859

--format=書式〔stat コマンド〕

927

--full-time〔ls コマンド〕

859

--get〔tar コマンド〕

939

--hide-control-chars〔ls コマンド〕

859

--human-readable〔ls コマンド〕

859

--ignore-all-space〔 diff コマンド〕

768

--ignore-case〔 diff コマンド〕

768

--ignore-space-change〔 diff コマンド〕

768

--indicator-style=classify〔ls コマンド〕

859

--indicator-style=slash〔ls コマンド〕

859

--indicator-style=ファイル種別様式〔ls コマンド〕

859

--inode〔ls コマンド〕

859

--interactive〔cp コマンド〕

750

--interactive〔ln コマンド〕

851

--label=ラベル〔 diff コマンド〕

768

--list〔tar コマンド〕

939

--logical〔ln コマンド〕

851

--name=プログラム名〔getopt コマンド〕

806

--no-dereference〔cp コマンド〕

750

--no-dereference〔ln コマンド〕

851

--no-exist-directory〔ln コマンド〕

851

--no-exist-file 〔ln コマンド〕

851

--no-target-directory〔ln コマンド〕

851

--numeric-uid-gid〔ls コマンド〕

859

--only-delimited〔cut コマンド〕

753

--options=ショートオプション名〔getopt コマンド〕

806

--output-delimiter〔cut コマンド〕

753

--physical〔ln コマンド〕

851

--preserve-permissions〔tar コマンド〕

939

--preserve〔cp コマンド〕

750

JP1/Advanced Shell

1531

--quiet-output〔getopt コマンド〕

806

--quiet〔getopt コマンド〕

806

--recursive〔cp コマンド〕

750

--recursive〔 diff コマンド〕

768

--recursive〔ls コマンド〕

859

--report-identical-files 〔 diff コマンド〕

768

--reverse〔ls コマンド〕

859

--same-permissions〔tar コマンド〕

939

--side-by-side〔 diff コマンド〕

768

--size〔ls コマンド〕

859

--sort=none〔ls コマンド〕

859

--sort=size〔ls コマンド〕

859

--sort=time〔ls コマンド〕

859

--sort=ソートキー〔ls コマンド〕

859

--suppress-common-lines〔 diff コマンド〕

768

--symbolic〔ln コマンド〕

851

--tabs=タブリスト〔expand コマンド〕

787

--target-directory=ターゲットディレクトリ名〔ln

コマンド〕

851

--terse〔stat コマンド〕

927

--text〔 diff コマンド〕

768

--time=access〔ls コマンド〕

859

--time=atime〔ls コマンド〕

859

--time=ctime〔ls コマンド〕

859

--time=status〔ls コマンド〕

859

--time=use〔ls コマンド〕

859

--time=ファイル日時種別〔ls コマンド〕

859

--touch〔tar コマンド〕

939

--unified [=行数]〔 diff コマンド〕

768

--universal〔date コマンド〕

756

--unquoted〔getopt コマンド〕

806

--update〔cp コマンド〕

750

--update〔tar コマンド〕

939

--utc〔data コマンド〕

756

--verbose〔ln コマンド〕

851

--verbose〔tar コマンド〕

939

--width=出力幅〔 diff コマンド〕

768

-〔script_0〕

982

-〔script_su1〕

984

-〔シェル変数〕

443

-1〔ls コマンド〕

859

-a サフィックス長〔split コマンド〕

924

-A 数値〔egrep コマンド〕

784

-A 数値〔grep コマンド〕

811

-a〔 adshfile コマンド〕

695

-a〔 diff コマンド〕

768

-a〔egrep コマンド〕

784

-a〔grep コマンド〕

811

-a〔gunzip コマンド〕

818

-a〔gzip コマンド〕

825

-a〔ls コマンド〕

859

-A〔ls コマンド〕

859

-a〔sed コマンド〕

896

-a〔set コマンド〕

1031

-A〔set コマンド〕

1031

-a〔touch コマンド〕

952

-a〔ulimit コマンド〕

1048

-a〔unalias コマンド〕

1053

-a〔uname コマンド〕

959

-a〔which コマンド〕

967

-abnormal〔 #-adsh_file コマンド〕

1093

-B 数値〔egrep コマンド〕

784

-B 数値〔grep コマンド〕

811

-b バイト数〔split コマンド〕

924

-b ブロック化係数〔tar コマンド〕

939

-b ブロック数〔tail コマンド〕

935

-b リスト〔cut コマンド〕

753

-b〔adshvarconv コマンド〕

1086

-b〔cat コマンド〕

744

-b〔 diff コマンド〕

768

-b〔egrep コマンド〕

784

-b〔grep コマンド〕

811

-b〔sort コマンド〕

912

-c JP1/AJS のスケジューラーサービス名

〔adshevtout コマンド〕

679

-C 行数〔 diff コマンド〕

768

-c コマンドライン〔script_su1〕

984

-c 書式〔stat コマンド〕

927

JP1/Advanced Shell

1532

-C ディレクトリ〔tar コマンド〕

939

-c バイト数〔tail コマンド〕

935

-c リスト〔cut コマンド〕

753

-C[数値]〔egrep コマンド〕

784

-C[数値]〔grep コマンド〕

811

-c〔adshappagent コマンド〕

667

-c〔adshexec コマンド〕

688

-c〔 adshfile コマンド〕

695

-c〔adshvarconv コマンド〕

1086

-c〔egrep コマンド〕

784

-c〔grep コマンド〕

811

-c〔gunzip コマンド〕

818

-c〔gzip コマンド〕

825

-c〔ls コマンド〕

859

-C〔ls コマンド〕

859

-c〔sort コマンド〕

912

-c〔tar コマンド〕

939

-c〔touch コマンド〕

952

-c〔ulimit コマンド〕

1048

-c〔uniq コマンド〕

963

-c〔wc コマンド〕

965

-chk〔 #-adsh_file_temp コマンド〕

1095

-chk〔 #-adsh_file コマンド〕

1093

-c 行数〔 diff コマンド〕

768

-d デリミタ〔cut コマンド〕

753

-d 日時情報指定文字列〔data コマンド〕

756

-d リスト〔paste コマンド〕

878

-d ワークフォルダ〔adshappexec コマンド〕

669

-d〔adshappexec コマンド〕

1059

-d〔adshchmsg コマンド〕

673

-d〔adshecho コマンド〕

1064

-d〔adshevtout コマンド〕

679

-d〔adshexec コマンド〕

688

-d〔adshread コマンド〕

1074

-d〔 find コマンド〕

795

-d〔gzip コマンド〕

825

-d〔ls コマンド〕

859

-d〔rm コマンド〕

893

-D〔set コマンド〕

1031

-d〔tar コマンド〕

939

-d〔ulimit コマンド〕

1048

-d〔uniq コマンド〕

963

-e コマンド〔sed コマンド〕

896

-e ジョブの実行開始日時の上限〔adshevtout コマン

ド〕

679

-e パターン〔egrep コマンド〕

784

-e パターン〔grep コマンド〕

811

-e〔adshcollect コマンド〕

1173

-e〔adshparsecsv コマンド〕

1071

-e〔adshvarconv コマンド〕

1086

-e〔echo コマンド〕

1009

-E〔echo コマンド〕

1009

-E〔egrep コマンド〕

784

-E〔grep コマンド〕

811

-E〔sed コマンド〕

896

-exec〔adshscripttool コマンド〕

1078

-f アーカイブ〔tar コマンド〕

939

-f スクリプトファイルのパス名〔awk コマンド〕

713

-f スクリプトファイルパス名〔sed コマンド〕

896

-F 入力フィールドセパレータ〔awk コマンド〕

713

-f パターンファイルパス名〔egrep コマンド〕

784

-f パターンファイルパス名〔grep コマンド〕

811

-f リスト〔cut コマンド〕

753

-f〔adshcollect コマンド〕

1173

-f〔adshexec コマンド〕

688

-f〔cp コマンド〕

750

-f〔gunzip コマンド〕

818

-f〔gzip コマンド〕

825

-f〔ln コマンド〕

851

-f〔ls コマンド〕

859

-F〔ls コマンド〕

859

-f〔mv コマンド〕

876

-f〔rm コマンド〕

893

-f〔script_chmod1〕

973

-f〔script_chmod2〕

975

-f〔script_chmod3〕

978

-f〔set コマンド〕

1031

-f〔sort コマンド〕

912

JP1/Advanced Shell

1533

-f〔touch コマンド〕

952

-f〔typeset コマンド〕

1044

-f〔ulimit コマンド〕

1048

-f〔unset コマンド〕

1054

-fentry〔adshscripttool コマンド〕

1078

-fmode〔adshscripttool コマンド〕

1078

-format=表示形式〔ls コマンド〕

859

-fowner〔adshscripttool コマンド〕

1078

-g JP1/AJS のジョブ名〔adshevtout コマンド〕 679

-G〔grep コマンド〕

811

-g〔ls コマンド〕

859

-grp スケジュールグループ名〔adshjava コマンド〕

700

-h 論理ホスト名〔adshchmsg コマンド〕

673

-h 論理ホスト名〔adshcollect コマンド〕

1173

-h 論理ホスト名〔adshevtout コマンド〕

679

-h 論理ホスト名〔adshexec コマンド〕

688

-h 論理ホスト名〔adshlsmsg コマンド〕

706

-h 論理ホスト名〔adshmdctl コマンド〕

707

-H〔cp コマンド〕

750

-h〔egrep コマンド〕

784

-h〔 find コマンド〕

795

-H〔 find コマンド〕

795

-h〔grep コマンド〕

811

-h〔ls コマンド〕

859

-h〔script_chmod1〕

973

-h〔script_chmod2〕

975

-h〔script_chmod3〕

978

-h〔tar コマンド〕

939

-H〔ulimit コマンド〕

1048

-i JP1/Advanced Shell のジョブ識別子

〔adshevtout コマンド〕

679

-I ファイル〔tar コマンド〕

939

-i〔adshvarconv コマンド〕

1086

-i〔cp コマンド〕

750

-i〔 diff コマンド〕

768

-i〔egrep コマンド〕

784

-I〔egrep コマンド〕

784

-i〔grep コマンド〕

811

-I〔grep コマンド〕

811

-i〔ln コマンド〕

851

-i〔ls コマンド〕

859

-i〔mv コマンド〕

876

-i〔rm コマンド〕

893

-i〔typeset コマンド〕

1044

-id 一時ファイル識別名〔 #-adsh_file_temp コマン

ド〕

1095

-install〔adshmsvcd コマンド〕

709

-install〔adshmsvce コマンド〕

710

-j JP1/Advanced Shell のジョブ名〔adshevtout コ

マンド〕

679

-java〔adshjava コマンド〕

700

-k JP1/AJS のジョブ実行 ID〔adshevtout コマンド〕

679

-k 開始位置[,終了位置]〔sort コマンド〕

912

-k〔gunzip コマンド〕

818

-k〔gzip コマンド〕

825

-k〔ls コマンド〕

859

-l n1[-[n2]][,n3[-[n4]]]...〔adshcvshow コ

マンド〕

677

-l 行数〔split コマンド〕

924

-L ファイル〔tar コマンド〕

939

-L ラベル〔 diff コマンド〕

768

-l ロングオプション名〔getopt コマンド〕

806

-L〔adshscripttool コマンド〕

1078

-l〔cmp コマンド〕

747

-L〔cp コマンド〕

750

-l〔egrep コマンド〕

784

-L〔egrep コマンド〕

784

-L〔 find コマンド〕

795

-l〔grep コマンド〕

811

-L〔grep コマンド〕

811

-l〔gunzip コマンド〕

818

-l〔gzip コマンド〕

825

-L〔ln コマンド〕

851

-l〔ls コマンド〕

859

-L〔ls コマンド〕

859

-L〔pwd コマンド〕

1026

-L〔stat コマンド〕

927

JP1/Advanced Shell

1534

-l〔typeset コマンド〕

1044

-L〔typeset コマンド〕

1044

-l〔ulimit コマンド〕

1048

-l〔wc コマンド〕

965

-lhostname 論理ホスト名〔adshmsvcd コマンド〕

709

-lhostname 論理ホスト名〔adshmsvce コマンド〕

710

-longoptions=ロングオプション名〔getopt コマン

ド〕

806

-m パーミッション〔mkdir コマンド〕

874

-m〔adshappexec コマンド〕

669, 1059

-m〔adshevtout コマンド〕

679

-m〔adshexec コマンド〕

688

-m〔adshscripttool コマンド〕

1078

-m〔ls コマンド〕

859

-m〔sort コマンド〕

912

-m〔tar コマンド〕

939

-m〔touch コマンド〕

952

-m〔ulimit コマンド〕

1048

-m〔uname コマンド〕

959

-m〔wc コマンド〕

965

-n JP1/AJS のジョブ番号〔adshevtout コマンド〕

679

-n 応答要求メッセージ番号〔adshchmsg コマンド〕

673

-n 応答要求メッセージ番号〔adshlsmsg コマンド〕

706

-n 行数〔head コマンド〕

848

-n 行数〔tail コマンド〕

935

-n プログラム名〔getopt コマンド〕

806

-n〔adshappexec コマンド〕

669, 1059

-n〔 adshfile コマンド〕

695

-n〔cat コマンド〕

744

-n〔cut コマンド〕

753

-n〔echo コマンド〕

1009

-n〔egrep コマンド〕

784

-n〔grep コマンド〕

811

-n〔gunzip コマンド〕

818

-N〔gunzip コマンド〕

818

-n〔gzip コマンド〕

825

-N〔gzip コマンド〕

825

-n〔ln コマンド〕

851

-n〔ls コマンド〕

859

-n〔print コマンド〕

1024

-n〔sed コマンド〕

896

-n〔sort コマンド〕

912

-n〔ulimit コマンド〕

1048

-n〔uname コマンド〕

959

-normal〔 #-adsh_file_temp コマンド〕

1095

-normal〔 #-adsh_file コマンド〕

1093

-o asc ファイルのパス名〔adshexec コマンド〕

688

-o 解析するショートオプション名〔getopt コマン

ド〕

806

-o 出力先パス名〔gunzip コマンド〕

818

-o 出力先パス名〔gzip コマンド〕

825

-o 出力先パス名〔sort コマンド〕

912

-o 出力する asc ファイルのパス名〔adshcvmerg コ

マンド〕

675

-o〔adshvarconv コマンド〕

1086

-o〔set コマンド〕

1031

-onError〔#-adsh_step_start コマンド,#adsh_step_error コマンド,#-adsh_step_end コマ

ンド〕

1104

-p ジョブ定義スクリプトファイルのパス名

〔adshevtout コマンド〕

679

-p〔adshvarconv コマンド〕

1086

-p〔alias コマンド〕

1001

-p〔command コマンド〕

1006

-p〔cp コマンド〕

750

-P〔cp コマンド〕

750

-p〔export コマンド〕

1016

-P〔ln コマンド〕

851

-p〔ls コマンド〕

859

-p〔mkdir コマンド〕

874

-p〔print コマンド〕

1024

-P〔pwd コマンド〕

1026

-p〔readonly コマンド〕

1029

-p〔read コマンド〕

1027

-p〔tar コマンド〕

939

JP1/Advanced Shell

1535

-P〔tar コマンド〕

939

-p〔time コマンド〕

1115

-p〔typeset コマンド〕

1044

-p〔ulimit コマンド〕

1048

-p〔whence コマンド〕

1056

-pid〔kill コマンド〕

1020

-q〔adshappagent コマンド〕

667

-q〔 diff コマンド〕

768

-q〔egrep コマンド〕

784

-q〔getopt コマンド〕

806

-Q〔getopt コマンド〕

806

-q〔grep コマンド〕

811

-q〔gunzip コマンド〕

818

-q〔gzip コマンド〕

825

-q〔ls コマンド〕

859

-r JP1/AJS のルートジョブネット名〔adshevtout コ

マンド〕

679

-r 応答〔adshchmsg コマンド〕

673

-r 経過秒〔date コマンド〕

756

-r コマンドライン〔adshexec コマンド〕

688

-r パス名〔touch コマンド〕

952

-r〔adshscripttool コマンド〕

1078

-r〔cp コマンド〕

750

-R〔cp コマンド〕

750

-r〔 diff コマンド〕

768

-r〔egrep コマンド〕

784

-R〔egrep コマンド〕

784

-r〔grep コマンド〕

811

-R〔grep コマンド〕

811

-r〔gunzip コマンド〕

818

-r〔gzip コマンド〕

825

-r〔ls コマンド〕

859

-R〔ls コマンド〕

859

-r〔print コマンド〕

1024

-r〔read コマンド〕

1027

-r〔rm コマンド〕

893

-R〔rm コマンド〕

893

-R〔script_chmod1〕

973

-R〔script_chmod2〕

975

-R〔script_chmod3〕

978

-r〔sed コマンド〕

896

-r〔sort コマンド〕

912

-r〔tail コマンド〕

935

-r〔tar コマンド〕

939

-r〔typeset コマンド〕

1044

-R〔typeset コマンド〕

1044

-r〔uname コマンド〕

959

-run〔#-adsh_step_start コマンド,#adsh_step_error コマンド,#-adsh_step_end コマ

ンド〕

1104

-S サフィックス〔gunzip コマンド〕

818

-S サフィックス〔gzip コマンド〕

825

-s ジョブの実行開始日時の下限〔adshevtout コマン

ド〕

679

-s〔adshcvshow コマンド〕

677

-s〔adshexec コマンド〕

688

-s〔 adshfile コマンド〕

695

-s〔adshscripttool コマンド〕

1078

-s〔cat コマンド〕

744

-s〔cmp コマンド〕

747

-s〔cut コマンド〕

753

-s〔 diff コマンド〕

768

-s〔egrep コマンド〕

784

-s〔grep コマンド〕

811

-s〔kill コマンド〕

1020

-s〔ln コマンド〕

851

-s〔ls コマンド〕

859

-S〔ls コマンド〕

859

-s〔paste コマンド〕

878

-s〔ulimit コマンド〕

1048

-S〔ulimit コマンド〕

1048

-S〔umask コマンド〕

1051

-s〔uname コマンド〕

959

-signame〔kill コマンド〕

1020

-signum〔kill コマンド〕

1020

-srv バッチサーバ名〔adshjava コマンド〕

700

-stepVar シェル変数名〔#-adsh_step_start コマン

ド,#-adsh_step_error コマンド,#adsh_step_end コマンド〕

1104

JP1/Advanced Shell

1536

-successRC 終了コード定義〔#-adsh_step_start コ

マンド,#-adsh_step_error コマンド,#adsh_step_end コマンド〕

1104

-T 一時ファイルディレクトリ〔sort コマンド〕

912

-t 設定日時

952

-t ターゲットディレクトリ名〔ln コマンド〕

851

-t タブリスト〔expand コマンド〕

787

-T ファイル〔tar コマンド〕

939

-t フィールド区切り文字〔sort コマンド〕

912

-t〔adshevtout コマンド〕

679

-t〔adshexec コマンド〕

688

-t〔gunzip コマンド〕

818

-t〔gzip コマンド〕

825

-T〔ln コマンド〕

851

-t〔ls コマンド〕

859

-T〔ls コマンド〕

859

-t〔stat コマンド〕

927

-t〔tar コマンド〕

939

-t〔typeset コマンド〕

1044

-t〔ulimit コマンド〕

1048

-u JP1/Advanced Shell の実行ユーザー名

〔adshevtout コマンド〕

679

-U 行数〔 diff コマンド〕

768

-u[num]〔print コマンド〕

1024

-u[num]〔read コマンド〕

1027

-u〔adshvarconv コマンド〕

1086

-u〔cat コマンド〕

744

-u〔cp コマンド〕

750

-u〔date コマンド〕

756

-U〔egrep コマンド〕

784

-u〔getopt コマンド〕

806

-U〔grep コマンド〕

811

-u〔ls コマンド〕

859

-u〔mv コマンド〕

876

-u〔sed コマンド〕

896

-u〔set コマンド〕

1031

-u〔sort コマンド〕

912

-u〔tar コマンド〕

939

-u〔typeset コマンド〕

1044

-u〔uniq コマンド〕

963

-u 行数〔 diff コマンド〕

768

-v 表示名〔adshappexec コマンド〕

669

-v 変数名=変数値〔awk コマンド〕

713

-v〔adshappexec コマンド〕

1059

-v〔adshexec コマンド〕

688

-v〔command コマンド〕

1006

-V〔command コマンド〕

1006

-v〔egrep コマンド〕

784

-v〔grep コマンド〕

811

-v〔gunzip コマンド〕

818

-v〔gzip コマンド〕

825

-v〔ln コマンド〕

851

-v〔set コマンド〕

1031

-v〔tar コマンド〕

939

-V〔tar コマンド〕

939

-v〔uname コマンド〕

959

-v〔whence コマンド〕

1056

-W 出力幅〔 diff コマンド〕

768

-w〔adshappexec コマンド〕

669, 1059

-w〔command コマンド〕

1006

-w〔 diff コマンド〕

768

-w〔egrep コマンド〕

784

-w〔grep コマンド〕

811

-w〔uname コマンド〕

959

-w〔wc コマンド〕

965

-X ファイル〔tar コマンド〕

939

-x〔adshexec コマンド〕

688

-x〔alias コマンド〕

1001

-x〔egrep コマンド〕

784

-x〔grep コマンド〕

811

-x〔ls コマンド〕

859

-x〔set コマンド〕

1031

-x〔tar コマンド〕

939

-x〔typeset コマンド〕

1044

-y〔 diff コマンド〕

768

-z〔adshevtout コマンド〕

679

-z〔sort コマンド〕

912

-z〔tar コマンド〕

939

JP1/Advanced Shell

1537

-Z〔typeset コマンド〕

1044

-行数〔head コマンド〕

848

-行数〔tail コマンド〕

935

-タブリスト〔expand コマンド〕

787

:コマンド(引数を展開する)

999

!〔シェル変数〕

443

?〔シェル変数〕

443

.env ファイル

445

.env ファイル〔用語解説〕

1521

.コマンド(シェルスクリプトを実行する)

998

#-adsh_file_temp コマンド(一時ファイルの割り当

ておよび後処理をする)

1095

#-adsh_file コマンド(通常ファイルの割り当ておよ

び後処理を指定する)

1093

#-adsh_job_stop コマンド(ジョブの打ち切り条件

を定義する)

1097

#-adsh_job コマンド(ジョブ名を宣言する)

1096

#-adsh_path_var コマンド(パス名を扱うシェル変

数を定義する)

1098

#-adsh_rc_ignore コマンド(常に正常終了するコマ

ンドを定義する)

1100

#-adsh_script コマンド(実行中のジョブ定義スクリ

プトから外部のジョブ定義スクリプトファイルを呼び

出す)

1102

#-adsh_spoolfile コマンド(プログラム出力データ

ファイルの割り当てをする)

1103

#-adsh_step_end コマンド(ジョブステップを定義

する(定義終了))

1104

#-adsh_step_error コマンド(ジョブステップを定義

する(エラー時の処理))

1104

#-adsh_step_start コマンド(ジョブステップを定義

する)

1104

#〔シェル変数〕

443

+a〔set コマンド〕

1031

+A〔set コマンド〕

1031

+D〔set コマンド〕

1031

+f〔set コマンド〕

1031

+f〔typeset コマンド〕

1044

+i〔typeset コマンド〕

1044

+l〔typeset コマンド〕

1044

+L〔typeset コマンド〕

1044

+o〔set コマンド〕

1031

+p〔alias コマンド〕

1001

+p〔typeset コマンド〕

1044

+r〔typeset コマンド〕

1044

+R〔typeset コマンド〕

1044

+t〔typeset コマンド〕

1044

+u〔set コマンド〕

1031

+u〔typeset コマンド〕

1044

+v〔set コマンド〕

1031

+x〔alias コマンド〕

1001

+x〔set コマンド〕

1031

+x〔typeset コマンド〕

1044

+Z〔typeset コマンド〕

1044

+書式〔date コマンド〕

756

${#variable}書式で置換される変数値の長さの単位を

定義する

652

$〔シェル変数〕

443

数字

16 進数表記の ASCII コード文字をエスケープ文字と

して解釈するかを定義する

599

1 行ずつ実行(関数の中はステップ実行しない)する

場合〔JP1/Advanced Shell エディタ〕

348

1 行ずつ実行(関数の中もステップ実行)する場合

〔JP1/Advanced Shell エディタ〕

347

A action〔trap コマンド〕

1037, 1040

ADSH_AJS_AFEXECMV〔環境変数〕

87

ADSH_AJS_APPARG〔環境変数〕

87

ADSH_AJS_APPEXEC〔環境変数〕

87

ADSH_AJS_APPNAME〔環境変数〕

87

ADSH_AJS_ENVF〔環境変数〕

87

ADSH_AJS_GCHE〔環境変数〕

87

ADSH_AJS_LHOST〔環境変数〕

87

ADSH_AJS_MESOUT〔環境変数〕

87

ADSH_AJS_SCRF〔環境変数〕

87

ADSH_AJS_SHOWN〔環境変数〕

87

ADSH_AJS_WORKF〔環境変数〕

87

ADSH_CMD_ARGORDER〔環境変数〕

87

JP1/Advanced Shell

1538

ADSH_CMDDATE_FORMAT〔環境変数〕

87

ADSH_CMDEXPR_LENGTH〔環境変数〕

87

ADSH_CMDLN_FOLLOW〔環境変数〕

87

ADSH_CMDLN_OPT_I_F〔環境変数〕

87

ADSH_CMDTAR_ROOTPATH〔環境変数〕

87

ADSH_DIR_BIN〔シェル変数〕

443

ADSH_DIR_CMD〔シェル変数〕

443

ADSH_ENV〔環境変数〕

87

ADSH_JOB_NAME〔環境変数〕

87

ADSH_JOBID〔環境変数〕

87

ADSH_JOBRC_FATAL〔環境変数〕

87, 121

ADSH_LANG_JP1EVENT〔環境変数〕

87

ADSH_LANG〔環境変数〕

87

ADSH_LINK_SUPPORT〔環境変数〕

87

ADSH_RC_STEPLAST〔シェル変数〕

443

ADSH_RC_STEPMAX〔シェル変数〕

443

ADSH_RC_STEPMIN〔シェル変数〕

443

ADSH_STEP_NAME〔環境変数〕

87

ADSH_STEPRC_ジョブステップ名〔シェル変数〕

443

adshappagent コマンド(アプリケーション実行エー

ジェント起動コマンド)【Windows 実行環境限定】

667

adshappexec コマンド(GUI アプリケーション実行

コマンド)【Windows 開発環境限定】

1059

adshappexec コマンド(GUI アプリケーション実行

コマンド)【Windows 実行環境】

669

adshappexec コマンド(GUI アプリケーション実行

コマンド)【Windows 実行環境限定】

1059

adshchmsg コマンド(障害発生時に,応答要求メッ

セージに対して手動で応答する)

673

ADSHCMD_RC_ERROR パラメーター(スクリプト

拡張コマンド失敗時の終了コードを定義する)

576

ADSHCMD_RC_SUCCESS パラメーター(スクリプ

ト拡張コマンド成功時の終了コードを定義する)

576

adshcmdrc コマンド(コマンドの終了コードしきい

値を定義する)

1062

adshcollect コマンド(資料を採取する)

1173

adshcollect コマンドで採取するファイルと最大サ

イズ

1173

adshcvmerg コマンド(カバレージ情報をマージす

る)

675

adshcvshow コマンド(カバレージ情報を表示する)

677

adshecho コマンド(指定した事象通知メッセージを

JP1 イベントとして発行する)

1064

adshecho コマンドまたは adshread コマンドがエ

ラー終了した場合の対処

279

adshevtout コマンド(ジョブ定義スクリプトの稼働

実績情報を出力する)

679

adshexec コマンド(バッチジョブを実行する)

688

adshexec コマンド〔デバッガ〕

521

adshexec コマンドで設定できるシェルオプション

453

adshexec コマンドの引数にジョブ定義スクリプトを

指定する方法

207

adshfile コマンド(通常ファイルの割り当ておよび後

処理を指定する)

695

adshhk コマンド(スプールジョブを削除する)

697

adshjava コマンド(Java のバッチアプリケーション

を実行する)【Windows,Linux,AIX,HP-UX 限

定】

700

adshjava コマンドを使用して Java のバッチアプリ

ケーションを実行する【Windows,Linux,AIX,

HP-UX 限定】

217

adshjoberr コマンド(ジョブおよびジョブステップ

にエラーを通知する)

1067

adshlsmsg コマンド(障害発生時に,応答要求メッ

セージの一覧を表示する)

706

adshmdctl コマンド(ユーザー応答機能管理デーモ

ンを起動および停止する)【UNIX 限定】

707

adshmktemp コマンド(一時ファイルのパス名を出

力する)

1069

adshmsvcd コマンド(開発環境でユーザー応答機能

管理サービスを登録する)【Windows 限定】

709

adshmsvce コマンド(実行環境でユーザー応答機能

管理サービスを登録する)【Windows 限定】

710

adshparsecsv コマンド(CSV データを解析する)

1071

adshparsejson コマンド(JSON データを解析する)

1072

JP1/Advanced Shell

1539

adshread コマンド(指定した応答要求メッセージを

応答待ちイベントとして発行する)

1074

adshscripttool コマンド(ジョブ定義スクリプトの

作成を支援する)【Windows 限定】

1078

adshvarconv コマンド(変数の値を変換する)

1086

AJS_BJEX_STOP〔環境変数〕

87

alias コマンド(エイリアスを定義する)

1001

am i〔script_0〕

985

am i〔script_who1〕

986

args〔.コマンド〕

998

args〔builtin コマンド〕

1003

args〔command コマンド〕

1006

args〔echo コマンド〕

1009

args〔eval コマンド〕

1013

args〔exec コマンド〕

1014

args〔getopts コマンド〕

1019

args〔print コマンド〕

1024

arguments〔:コマンド〕

999

arrayToCsv(2 次元配列の値の CSV データ出力)

1152

ASC_FILE パラメーター(蓄積ファイル名の生成規則

を定義する)

577

asc ファイルのパス名〔adshcvshow コマンド〕

677

AUTO〔TRAP_ACTION_SIGTERM パラメーター〕

【UNIX 限定】

641

awk コマンド(テキストの加工やパターン処理をす

る)

713

B basename コマンド(パスからファイル名を取得す

る)

741

BATCH_CVR パラメーター(カバレージ採取の一括

有効化機能を有効にする)

578

BLOCKSIZE〔環境変数〕

87

break コマンド(繰り返し処理を抜ける)

1002

break コマンド〔デバッガ〕

523

builtin コマンド(組み込みコマンドを実行する)

1003

BYTE〔VAR_SHELL_GETLENGTH パラメーター〕

652

C

C0(ステートメントカバレージ情報)

284

C0 情報

284

C1(ブランチカバレージ情報)

284

C1 情報

284

case 文(複数処理からの選択)

1109

cat コマンド(ファイルの内容を標準出力に出力する)

744

CD-ROM 媒体を使ったインストール【Windows 限

定】

74

CDPATH〔シェル変数〕

445

cd コマンド(カレントディレクトリを移動する)

1004

cd コマンド〔デバッガ〕

556

CHARACTER〔VAR_SHELL_GETLENGTH パラメー

ター〕

652

CHILDJOB_EXT パラメーター(子孫ジョブとして実

行するジョブ定義スクリプトファイルの拡張子を定義

する)

579

CHILDJOB_PGM パラメーター(子孫ジョブとして

実行する指定を定義する)

580

CHILDJOB_SHEBANG パラメーター(子孫ジョブと

して実行するジョブ定義スクリプトファイルの実行プ

ログラムパスを定義する)

583

chmod コマンド(ジョブ定義スクリプトに記述され

ている chmod コマンドの指定を無効にする)

972

chmod コマンド(パーミッションをシンボルまたは

数値で設定する)

978

chmod コマンド(パーミッションを数値で設定する)

975

chmod コマンド(ファイルの読み取り専用属性の有

効・無効を切り替える)

973

CMDRC_CMDGRP_CHECK パラメーター(関数の終

了コードに従ってジョブおよびジョブステップのエ

ラー判定をする)

585

CMDRC_THRESHOLD_DEFINE パラメーター(コマ

ンドの終了コードのしきい値を定義する)

586

CMDRC_THRESHOLD_USE_PRESET パラメーター

(UNIX 互換コマンドの終了コードのしきい値を定義

する)

589

cmpDate(日付の比較)

1133

JP1/Advanced Shell

1540

cmp コマンド(バイナリファイルの内容を比較する)

747

COLUMNS〔環境変数〕

87

COMMAND_CONV_ARG パラメーター(コマンド

実行時にジョブ定義スクリプト中の引数を変換する規

則を定義する)

592

command〔builtin コマンド〕

1003

command〔command コマンド〕

1006

command〔eval コマンド〕

1013

command〔exec コマンド〕

1014

command〔time コマンド〕

1115

command コマンド(コマンドを実行する)

1006

COMPATIBLE_CMD_EXEC パラメーター(外部コマ

ンドの起動方法を定義する)【Windows 限定】

596

COMPATIBLE_CMDSUB パラメーター(コマンド置

換の動作を定義する)

597

conftest [環境ファイル名]〔adshmdctl コマンド〕

707

CONSOLE〔USERREPLY_DEBUG_DESTINATION

パラメーター〕

645

CONT〔TRAP_ACTION_SIGTERM パラメーター〕

【UNIX 限定】

641

continue コマンド(繰り返し処理を中断して繰り返

し処理の先頭に戻る)

1008

continue コマンド〔デバッガ〕

533

convCsvSep(CSV データの区切り文字の変換)

1154

CORE【UNIX 限定】

1173

cp コマンド(ファイルまたはディレクトリをコピー

する)

750

csvToArray(CSV データの 2 次元配列への格納)

1155

CSV 形式の稼働実績情報のレコードと出力項目

267

CUI でのデバッグ

511

CUI のデバッガ

521

CURRENT〔CMDSUB_PROCESS パラメーター〕

591

CURRENT〔PIPE_CMD_LAST パラメーター〕

630

cut コマンド(各行の選択範囲を標準出力に表示す

る)

753

C ランタイム関数のエラー情報に対する原因と対策

1483

D date コマンド(システムの日付と時刻を表示する)

756

DELETE〔SPOOLJOB_CHILDJOB パラメーター〕

634

deletesSpace(空白を削除した文字列の取得)

1127

delete コマンド〔デバッガ〕

528

diff コマンド(2 つのファイルや標準入力を比較する)

768

dirname コマンド(パス名からディレクトリパス名

部分の文字列を取り出す)

781

DISABLE〔CMDRC_THRESHOLD_USE_PRESET パ

ラメーター〕

589

DISABLE〔TRAP_ACTION_SIGTERM パラメー

ター〕

641

DISABLE〔VAR_ENV_NAME_LOWERCASE パラ

メーター〕

647

DUMP【Windows 限定】

1173

E echo コマンド(引数で指定した内容を標準出力に出

力する)

1009

egrep コマンド(ファイル内の文字を検索する)

784

ENABLE〔CMDRC_THRESHOLD_USE_PRESET パ

ラメーター〕

589

ENABLE〔VAR_ENV_NAME_LOWERCASE パラ

メーター〕

647

ENV〔シェル変数〕

445

ERR〔UNSUPPORT_TEST パラメーター〕

643

ESCAPE_SEQ_ECHO_DEFAULT パラメーター(エ

スケープ文字関連のオプション省略時の echo コマン

ドの動作を定義する)

598

ESCAPE_SEQ_ECHO_HEX パラメーター(16 進数

表記の ASCII コード文字をエスケープ文字として解釈

するかを定義する)

599

eval コマンド(引数を 1 つにまとめてコマンドとし

て実行する)

1013

JP1/Advanced Shell

1541

EVENT_COLLECT パラメーター(ジョブ定義スクリ

プト稼働実績情報取得機能の有効/無効を指定する)

600

exec コマンド(コマンドを実行して終了する)

1014

exec コマンド〔デバッガ〕

557

exit コマンド(シェルを終了する)

1015

expand コマンド(タブ文字をスペースに置き換え

る)

787

export コマンド(シェル変数をエクスポートする)

1016

export パラメーター

568

export パラメーター(環境変数を定義する)

601

export パラメーター〔用語解説〕

1521

expr1〔expr コマンド〕

792

expr2〔expr コマンド〕

792

expr コマンド(式を評価する)

792

EXTENDED〔OUTPUT_MODE_CHILD パラメー

ター〕

610

EXTENDED〔OUTPUT_MODE_ROOT パラメー

ター〕

612

F

FALSE〔UNSUPPORT_TEST パラメーター〕

643

false コマンド(終了コード 1 を返す)

1018

filename 〔.コマンド〕

998

find コマンド(ディレクトリ内のファイルを検索す

る)

795

finish コマンド〔デバッガ〕

533

for 文(繰り返し実行)

1110

FPATH〔シェル変数〕

445

FUNCTION〔CMDRC_CMDGRP_CHECK パラメー

ター〕

585

G

G〔UNSUPPORT_TEST パラメーター〕

643

getArrayIndex(配列の値をキーにした添え字取得)

1122

getCalcDate(加減算した日付の取得)

1135

getCsvColumn(CSV データの空白行を意識したカ

ラム取得)

1157

getDate(現在の日付取得)

1136

getDateDiff (日付の経過日数の取得)

1137

getDay(日付から日の取得)

1138

getFileMTime(ファイル・ディレクトリの日付と時

刻取得)

1146

getFileSize(ファイルのサイズ取得)

1147

getHour(時刻から時の取得)

1139

getJsonValue(JSON データの名前に対応する値の

取得)

1160

getMinute(時刻から分の取得)

1140

getMonth(日付から月の取得)

1141

GETOPT_COMPATIBLE〔環境変数〕

87

getopts コマンド(引数を解析する)

1019

getopt コマンド(コマンドラインのオプションを解

析する)

806

getSecond(時刻から秒の取得)

1142

getStrLen(文字列の文字数取得)

1128

getStrPos(文字列の位置取得)

1129

getTime(現在の時刻取得)

1142

getWeekday(日付から曜日の取得)

1143

getXmlAttrValue(XML データの要素の属性値の

取得

1162

getXmlDecl(XML 宣言の取得)

1163

getXmlElem(XML データの要素の内容の取得)

1164

getYear(日付から年の取得)

1144

grep コマンド(ファイル内の文字を検索する)

811

GUI アプリケーション実行プログラム〔用語解説〕

1521

GUI でのデバッグ

509

GUI デバッガの機能一覧

514

gunzip コマンド(圧縮されたファイルを伸長する)

818

GZIP〔環境変数〕

87

gzip コマンド(ファイルを圧縮,または圧縮された

ファイルを伸長する)

825

H h〔UNSUPPORT_TEST パラメーター〕

643

head コマンド(ファイルの最初の部分を表示する)

848

help〔adshmdctl コマンド〕

707

JP1/Advanced Shell

1542

help コマンド〔デバッガ〕

557

Hitachi PP Installer でバージョン情報を確認する

【UNIX 限定】

86

HOME〔シェル変数〕

445

HOSTNAME_JP1IM_MANAGER パラメーター

(JP1 イベントの送信先である JP1/IM - Manager が

稼働している運用管理サーバを指定する)

603

hostname コマンド(ホスト名を表示する)

850

HTML マニュアルを組み込む

183

I

IFS〔シェル変数〕

445

if 文(条件分岐)

1111

info breakpoints コマンド〔デバッガ〕

537

info functions コマンド〔デバッガ〕

539

info jobsteps コマンド〔デバッガ〕

540

info pathvars コマンド〔デバッガ〕

541

info signals コマンド〔デバッガ〕

541

info status コマンド〔デバッガ〕

542

info variables コマンド〔デバッガ〕

543

isDir(ディレクトリの存在有無判定)

1148

isEmptyDir(ディレクトリの内容有無判定)

1149

isEmptyVar(変数の空文字判定)

1123

isFileOrDir(ファイル・ディレクトリの存在有無判

定)

1150

isInitVar(変数の初期化判定)

1124

isLeapYear(うるう年の判定)

1145

isLowerStr(文字列の半角英小文字の判定)

1130

isNormalFile(通常ファイルの存在有無判定)

1151

isNumericStr(数値判定)

1132

isUpperStr(文字列の半角英大文字の判定)

1131

J

Java アプリケーションクラス名〔adshjava コマン

ド〕

700

Java オプション〔adshjava コマンド〕

700

joberrmode コマンド〔デバッガ〕

544

JOBEXECLOG_PRINT パラメーター(ジョブ終了時

に標準エラー出力へ出力するジョブ実行ログの内容を

定義する)

604

JOBLOG SCRIPT STDERR〔JOBEXECLOG_PRINT

パラメーター〕

604

JOBLOG_SUPPRESS_MSG パラメーター(ジョブ実

行ログへ出力させないメッセージを定義する)

605

JP1/Advanced Shell - Custom Job

50

JP1/Advanced Shell - Custom Job(カスタムジョ

ブ定義プログラム)

57

JP1/Advanced Shell - Custom Job〔用語解説〕

1521

JP1/Advanced Shell - Custom Job をアンインス

トールする

78

JP1/Advanced Shell - Custom Job をインストール

する

76

JP1/Advanced Shell - Developer

33

JP1/Advanced Shell - Developer〔用語解説〕

1521

JP1/Advanced Shell - Developer の起動

323

JP1/Advanced Shell - Developer の起動と終了

323

JP1/Advanced Shell - Developer の終了

323

JP1/Advanced Shell - Developer を使用する

【Windows 限定】

322

JP1/Advanced Shell〔用語解説〕

1521

JP1/Advanced Shell エディタウィンドウ

326

JP1/Advanced Shell エディタウィンドウの画面の

詳細

355

JP1/Advanced Shell エディタウィンドウのメニュー

329

JP1/Advanced Shell エディタの状態

324

JP1/Advanced Shell エディタの操作

325

JP1/Advanced Shell が設定するシェル変数

443

JP1/Advanced Shell で使用するファイル

63

JP1/Advanced Shell で使用できるシェル変数

445

JP1/Advanced Shell で必要なディレクトリを作成

する

127

JP1/Advanced Shell と JP1/AJS でバッチジョブ業

務と実行順序の定義を行う場合のジョブネット

205

JP1/Advanced Shell の運用の流れ

34

JP1/Advanced Shell の概要

28

JP1/Advanced Shell の環境情報を設定する

92

JP1/Advanced Shell

1543

JP1/Advanced Shell の機能を使って Java のバッチ

アプリケーションを実行するときの処理の流れ

【Windows,Linux(R),AIX,HP-UX 限定】

35

JP1/Advanced Shell の業務アプリケーションに対す

る位置づけ

34

JP1/Advanced Shell のシステムの全体構成

33

JP1/Advanced Shell の目的

29

JP1/Advanced Shell をアンインストールする

【UNIX 限定】

82

JP1/Advanced Shell をアンインストールする

【Windows 限定】

75

JP1/Advanced Shell をインストールしたあとのユー

ザー応答機能の設定【UNIX 限定】

159

JP1/Advanced Shell をインストールしたあとのユー

ザー応答機能の設定【Windows 限定】

156

JP1/Advanced Shell をインストールする【UNIX 限

定】

80

JP1/Advanced Shell をインストールする

【Windows 限定】

73

JP1/Advanced Shell を使用するときのエンコーディ

ング

66

JP1/Advanced Shell を利用するための準備

49

JP1/AJS - View でカスタムジョブを登録する

133

JP1/AJS3〔用語解説〕

1521

JP1/AJS からバッチジョブを実行する場合

57

JP1/AJS 環境を設定する

130

JP1/AJS の環境情報を設定する(JP1/AJS を使用す

る場合)

133

JP1/AJS のジョブに関する運用者の作業

193

JP1/AJS を使用したバッチジョブ業務の自動化の

概要

204

JP1/Base の環境情報を設定する

165

JP1/IM - Manager が稼働する運用管理サーバのホス

ト名〔HOSTNAME_JP1IM_MANAGER パラメー

ター〕

603

JP1/IM - Manager で環境情報を設定する

164

JP1/IM - View との関係

277

JP1/NETM/DM を使ったリモートインストール

【UNIX 限定】

80

JP1/NETM/DM を使ったリモートインストール

【Windows 限定】

74

JP1EVENT〔USERREPLY_DEBUG_DESTINATION

パラメーター〕

645

JP1 イベントの最小発行間隔を指定する

645

JP1 イベントの送信先である JP1/IM - Manager が

稼働している運用管理サーバを指定する

603

JP1 環境を確認する

127

K

KB(キロバイト)などの単位表記について

1520

kill コマンド(シグナルを送信する)

1020

kill コマンド〔デバッガ〕

523

KSH_ENV_READ パラメーター(シェル変数 ENV を

読み込むかどうかを定義する)

607

L

L〔UNSUPPORT_TEST パラメーター〕

643

let コマンド(数値計算を行って評価する)

1021

lhost_end パラメーター(論理ホストだけで有効なパ

ラメーターを定義する)

653

lhost_start パラメーター(論理ホストだけで有効な

パラメーターを定義する)

653

limit〔ulimit コマンド〕

1048

LINENO〔シェル変数〕

443

list コマンド〔デバッガ〕

554

ln コマンド(ファイル,またはディレクトリへのリン

クファイルを作成する)

851

LOG_DIR

1173

LOG_DIR パラメーター(システム実行ログ出力ディ

レクトリのパス名を定義する)

608

LOG_FILE_CNT パラメーター(システム実行ログを

バックアップする面数を定義する)

609

LOG_FILE_SIZE パラメーター(システム実行ログを

出力するファイルサイズを定義する)

609

ls コマンド(ファイルまたはディレクトリの内容を表

示する)

859

M main メソッドに渡す引数〔adshjava コマンド〕

700

mask〔umask コマンド〕

1051

MERGE〔SPOOLJOB_CHILDJOB パラメーター〕

634

JP1/Advanced Shell

1544

method〔trap コマンド〕

1040

MINIMUM〔OUTPUT_MODE_CHILD パラメー

ター〕

610

MINIMUM〔OUTPUT_MODE_ROOT パラメー

ター〕

612

mkdir コマンド(ディレクトリを作成する)

874

mv コマンド(ファイルまたはディレクトリを移動す

る)

876

N n〔break コマンド〕

1002

n〔continue コマンド〕

1008

n〔exit コマンド〕

1015

n〔return コマンド〕

1030

n〔shift コマンド〕

1034

n〔typeset コマンド〕

1044

name〔alias コマンド〕

1001

name〔export コマンド〕

1016

name〔getopts コマンド〕

1019

name〔readonly コマンド〕

1029

name〔set コマンド〕

1031

name〔typeset コマンド〕

1044

name〔unalias コマンド〕

1053

name〔unset コマンド〕

1054

name〔whence コマンド〕

1056

new〔cd コマンド〕

1004

next コマンド〔デバッガ〕

530

NONE〔CMDRC_CMDGRP_CHECK パラメーター〕

585

O

O〔UNSUPPORT_TEST パラメーター〕

643

old〔cd コマンド〕

1004

OLDPWD〔シェル変数〕

443

opt〔set コマンド〕

1031

OPTARG〔シェル変数〕

443

OPTIND〔シェル変数〕

443

optstr〔getopts コマンド〕

1019

OTHER〔CMDSUB_PROCESS パラメーター〕

591

OTHER〔PIPE_CMD_LAST パラメーター〕

630

OUTPUT_MODE_CHILD パラメーター(子孫ジョブ

の実行結果の出力情報に関する出力方式を定義する)

610

OUTPUT_MODE_ROOT パラメーター(ルートジョ

ブの実行結果の出力情報に関する出力方式を定義す

る)

612

OUTPUT_STDOUT パラメーター(ルートジョブの

出力先を定義する)

613

P

PARENT〔adshexec コマンド〕

688

PARENT〔OUTPUT_STDOUT パラメーター〕

613

paste コマンド(複数のファイルを行単位で連結す

る)

878

PATH_CONV_ACCESS パラメーター(ファイル入出

力時のパス変換内容を定義する)

616

PATH_CONV_ENABLE パラメーター(パス変換機能

を有効にする)

618

PATH_CONV_NOVAR パラメーター(パス名を扱わ

ないシェル変数を定義する)

619

PATH_CONV_RULE パラメーター(パス変換ルール

を定義する)【Windows 限定】

620

PATH_CONV_VAR パラメーター(パス名を扱うシェ

ル変数を定義する)

626

PATH_CONV パラメーター(パス変換内容を定義す

る)

614

PATH〔シェル変数〕

445

PC ジョブ

133

PC ジョブ/UNIX ジョブによるジョブの定義

149

PERMISSION_SPOOLJOB_DIR パラメーター(ス

プールジョブディレクトリのパーミッションを定義す

る)【UNIX 限定】

628

PERMISSION_SPOOLJOB_FILE パラメーター(ス

プールジョブディレクトリ下のファイルのパーミッ

ションを定義する)【UNIX 限定】

629

phost_end パラメーター(物理ホストだけで有効な

パラメーターを定義する)

654

phost_start パラメーター(物理ホストだけで有効な

パラメーターを定義する)

654

pid〔kill コマンド〕

1020

pid〔wait コマンド〕

1055

JP1/Advanced Shell

1545

PIPE_CMD_LAST パラメーター(パイプの最終コマ

ンドの実行プロセスを定義する)

630

POSIXLY_CORRECT〔環境変数〕

87

PPID〔シェル変数〕

443

printf コマンド(書式の引数を書式に従って変換し,

標準出力に出力する)

888

print コマンド(標準出力に出力する)

1024

print コマンド〔デバッガ〕

552

PS4〔シェル変数〕

445

PWD〔シェル変数〕

443

pwd コマンド(カレントディレクトリのパスを出力

する)

1026

Q quit コマンド〔デバッガ〕

522

R

RANDOM〔シェル変数〕

443

readonly コマンド(変数の属性を読み込み専用に変

更する,または読み込み専用の変数を表示する)

1029

read コマンド(標準入力から読み込んで変数に格納

する)

1027

REPLY〔シェル変数〕

443

return コマンド(関数または外部スクリプトから復帰

する)

1030

return コマンド〔デバッガ〕

535

rmdir コマンド(空のディレクトリを削除する)

895

rm コマンド(ファイルまたはディレクトリを削除す

る)

893

run コマンド〔デバッガ〕

522

S script_0

972, 982, 985

script_chmod1

973

script_chmod2

975

script_chmod3

978

script_su1

984

script_who1

986

searchCsvColumn(CSV データの特定の列を対象と

した検索によるレコード取得)

1158

SECONDS〔シェル変数〕

443

sed コマンド(テキスト中の文字列を置換する)

896

SEQUENTIAL【Windows 限定】

〔PIPE_CMD_LAST パラメーター〕

630

set コマンド(シェルオプションを設定する,配列を

作成する,または変数の値を表示する)

1031

set コマンド〔デバッガ〕

550

set コマンドで設定できるシェルオプション

451

SHELL〔シェル変数〕

445

shift コマンド(実行時パラメーターをシフトする)

1034

signal〔trap コマンド〕

1037

signal コマンド〔デバッガ〕

536

signame〔kill コマンド〕

1020

signum〔kill コマンド〕

1020

SIMPLE〔OUTPUT_MODE_CHILD パラメーター〕

610

SIMPLE〔OUTPUT_MODE_ROOT パラメーター〕

612

sleep コマンド(指定された時間だけ停止する)

911

sortArray(配列のデータのソート)

1125

sort コマンド(テキストファイルをソートする)

912

split コマンド(ファイルを分割する)

924

SPOOL_DIR

1173

SPOOL_DIR パラメーター(スプールルートディレク

トリのパス名を定義する)

633

SPOOL〔adshexec コマンド〕

688

SPOOL〔OUTPUT_STDOUT パラメーター〕

613

SPOOLJOB_CHILDJOB パラメーター(子孫ジョブ

のスプールジョブの扱いを定義する)

634

SPOOLJOB_CREATE パラメーター(スプールジョブ

の作成要否を選択する)

636

start [reuse]〔adshmdctl コマンド〕

707

status〔adshmdctl コマンド〕

707

stat コマンド(ファイルまたはディレクトリの状態を

標準出力に出力する)

927

STDERR〔JOBEXECLOG_PRINT パラメーター〕

604

step コマンド〔デバッガ〕

530

stop〔adshmdctl コマンド〕

707

su コマンド(実行ユーザーの権限でプログラムを実

行する)

984

JP1/Advanced Shell

1546

su コマンド(ジョブ定義スクリプトに記述されてい

る su コマンドの指定を無効にする)

982

T tail コマンド(ファイルの最後の部分を表示する)

935

tar コマンド(対象パス名をアーカイブに格納,およ

びアーカイブから抽出,表示する)

939

TEMP_FILE_DIR パラメーター(一時ファイルディレ

クトリのパス名を定義する)

637

TERM〔TRAP_ACTION_SIGTERM パラメーター〕

641

test コマンド(条件式を判定する)

1035

times コマンド(シェルが消費した CPU 時間を出力

する)

1036

time コマンド(コマンドの実行時間を出力する)

1115

TMPDIR〔環境変数〕

87

TMPDIR〔シェル変数〕

445

touch コマンド(ファイルの最終アクセス日時と最終

修正日時を変更する)

952

TRACE_DIR

1173

TRACE_DIR パラメーター(トレースを出力するディ

レクトリのパス名を定義する)

638

TRACE_FILE_CNT パラメーター(トレース面数を定

義する)

639

TRACE_FILE_SIZE パラメーター(トレースファイル

サイズを定義する)

640

TRACE_LEVEL パラメーター(トレース出力レベルを

定義する)

641

TRAP_ACTION_SIGTERM パラメーター(ジョブコ

ントローラが強制終了要求を受けたときの動作を定義

する)

641

trap コマンド(シグナルや強制終了要求を受けたとき

の動作を設定する)

1037

TRUE〔UNSUPPORT_TEST パラメーター〕

643

true コマンド(終了コード 0 を返す)

1043

typeset コマンド(変数や関数の属性と値を明示的に

宣言する)

1044

U ulimit コマンド(システムリソースの上限を設定す

る)

1048

umask コマンド(新規ファイル作成時のアクセス権

を設定する)

1051

unalias コマンド(エイリアス定義を無効にする)

1053

uname コマンド(OS またはハードウェアの情報を

表示する)

959

uniq コマンド(ソートされたファイルから重複した

行を削除する)

963

UNIX 互換コマンド

712

UNIX 互換コマンド(スクリプト形式)【Windows

限定】

972

UNIX 互換コマンド〔用語解説〕

1521

UNIX 互換コマンドの一覧

661

UNIX 互換コマンドの指定

428

UNIX 互換コマンドの終了コードのしきい値を定義

する

589

UNIX 互換コマンドを使用するための定義をする

102

UNIX ジョブ

133

unset コマンド(変数の値と属性の設定を解除する)

1054

UNSUPPORT_TEST パラメーター(サポートしてい

ない条件式の実行時の動作を定義する)【Windows

限定】

643

until 文(条件が成立するまでの繰り返し)

1112

USERREPLY_DEBUG_DESTINATION パラメーター

(デバッグ実行時の事象通知メッセージと応答要求メッ

セージの入出力先を指定する)

645

USERREPLY_JP1EVENT_INTERVAL パラメーター

(JP1 イベントの最小発行間隔を指定する)

645

USERREPLY_WAIT_MAXCOUNT パラメーター(物

理ホストまたは論理ホストごとに応答要求メッセージ

の最大同時出力数を指定する)

646

V

V10〔COMPATIBLE_CMD_EXEC パラメーター〕

596

V10〔COMPATIBLE_CMDSUB パラメーター〕

597

val〔set コマンド〕

1031

value〔alias コマンド〕

1001

value〔export コマンド〕

1016

value〔readonly コマンド〕

1029

value〔typeset コマンド〕

1044

JP1/Advanced Shell

1547

VAR_ENV_NAME_LOWERCASE パラメーター(環

境変数名の小文字の使用可否を指定する)【Windows

限定】

647

VAR_SHELL_FUNCINFO パラメーター(関数情報配

列の使用有無を選択する)

649

VAR_SHELL_GETLENGTH パラメーター($

{#variable}書式で置換される変数値の長さの単位を定

義する)

652

varname〔read コマンド〕

1027

W wait コマンド(子プロセスの完了を待つ)

1055

watch コマンド〔デバッガ〕

526

wc コマンド(ファイルのバイト,行,文字および単

語をカウントする)

965

whence コマンド(文字列をコマンドとした場合の解

釈を表示する)

1056

where コマンド〔デバッガ〕

553

which コマンド(外部コマンドのパスを取得する)

967

while 文(条件が成立している間の繰り返し)

1113

who コマンド(ジョブ定義スクリプトに記述されて

いる who コマンドの指定を無効にする)

985

who コマンド(ログインユーザーの情報をログに出

力する)

986

アプリケーション実行エージェント機能〔用語解説〕

1521

アプリケーション実行エージェント機能を使用すると

きの処理の流れ

37

アプリケーション実行エージェントプログラム〔用語

解説〕

1521

アンインストール【UNIX 限定】

79

アンインストール【Windows 限定】

73

一時カバレージ情報ファイル

287

一時ファイル

127, 196

一時ファイル〔用語解説〕

1521

一時ファイルディレクトリのパス名を定義する

637

一時ファイルの割り当ておよび後処理をする

496

位置パラメーター

399

一部のブレークポイントを解除する〔JP1/Advanced

Shell エディタ〕

342

一般ユーザー

33

移動先〔mv コマンド〕

876

移動先ディレクトリ〔mv コマンド〕

876

移動元〔mv コマンド〕

876

インストール【UNIX 限定】

79

インストール【Windows 限定】

73

インストール先ディレクトリ【UNIX 限定】

54

インストール先フォルダ【Windows 限定】

50

インストール前の検討事項

57

ウォッチポイント〔用語解説〕

1521

ウォッチポイントを設定する(watch コマンド)

526

運用管理サーバ

57

運用管理端末

57

運用時に使用するコマンド

655

運用者

33

エスケープ文字

421

エスケープ文字関連のオプション省略時の echo コマ

ンドの動作を定義する

598

エディタ〔用語解説〕

1521

エディタの動作環境を設定する〔JP1/Advanced

Shell エディタ〕

334

エラー注入モード

305

エラー注入モード〔用語解説〕

1521

エラー注入モードの有効/無効を設定する

(joberrmode コマンド)

544

エラーの詳細

1483

エラーの詳細(JP1/Advanced Shell 固有の場合)

1487

エラーの詳細(UNIX の場合)

1485

エラーの詳細(Windows の場合)

1483

エラーをシミュレートする〔JP1/Advanced Shell エ

ディタ〕

350

JP1/Advanced Shell

1548

応答待ちイベント〔用語解説〕

1521

応答要求メッセージ〔adshread コマンド〕

1074

応答要求メッセージ〔用語解説〕

1521

応答要求メッセージの最大同時出力数

〔USERREPLY_WAIT_MAXCOUNT パラメーター〕

646

オプション(色)ダイアログボックス

357

オプション(書式)ダイアログボックス

355

オプション〔getopt コマンド〕

806

オプション〔script_0〕

972

オプション〔用語解説〕

1521

オペランド〔用語解説〕

1521

解析される引数〔getopt コマンド〕

806

解析するオプション〔getopt コマンド〕

806

開発環境(JP1/Advanced Shell - Developer)

33

開発環境〔用語解説〕

1521

開発環境でユーザー応答機能管理サービスを登録する

709

開発環境の前提プログラムと関連プログラム

【Windows 限定】

61

開発者

33

外部コマンド〔用語解説〕

1521

外部コマンドの起動方法を定義する

596

外部コマンドの指定

422

外部コマンドの終了コード

473

外部スクリプトの場合

305

概要

28

拡張子〔CHILDJOB_EXT パラメーター〕

579

拡張出力モード

107

各バージョンの変更内容

1505

カスタムジョブ

133

カスタムジョブ〔用語解説〕

1521

カスタムジョブ定義プログラムの前提プログラムと関

連プログラム【Windows 限定】

62

カスタムジョブを登録する

133

稼働実績情報の形式

266

稼働実績情報の日時とタイムゾーンの関係

264

カバレージ採取の一括有効化機能

113, 306

カバレージ採取の一括有効化機能を有効にする

578

カバレージ情報〔用語解説〕

1521

カバレージ情報の概要

284

カバレージ情報の管理

285

カバレージ情報の機能

284

カバレージ情報の蓄積

289

カバレージ情報の蓄積方法と形式

289

カバレージ情報の表示

292

カバレージ情報のマージ

306

カバレージ情報ファイル(asc ファイル)

284, 285

カバレージ情報を取得する

284

カバレージ情報を取得する関数

1498

カバレージ情報を取得するコマンド

1494

カバレージ情報を取得するシェル変数の動作

1500

カバレージ情報を取得する制御文

1497

カバレージ情報を取得する対象

1494

カバレージ情報を取得するメタキャラクタ

1499

カバレージ情報を表示する(info coverage コマン

ド)

538

カバレージ情報を表示する〔JP1/Advanced Shell エ

ディタ〕

352

環境ごとに必要なプログラム

60

環境情報

1170

環境情報〔用語解説〕

1521

環境情報を設定する

92

環境設定パラメーター

576

環境設定パラメーター〔用語解説〕

1521

環境設定パラメーターの一覧

563

環境ファイル〔用語解説〕

1521

環境ファイルで設定するパラメーター

559

環境ファイルの記述形式

560

環境ファイル名〔adshcollect コマンド〕

1173

環境ファイルを設定する

92

環境変数〔用語解説〕

1521

環境変数 ADSH_JOBRC_FATAL(ジョブ続行不可エ

ラー発生時の終了コードを設定する)

121

環境変数名の小文字の使用可否を指定する

647

環境変数を設定する

87

JP1/Advanced Shell

1549

環境変数を定義する

601

簡潔出力モード

107, 224

関数

391

関数情報配列

446

関数情報配列〔シェル変数〕

443

関数情報配列の使用有無を選択する

649

関数情報を表示する(info functions コマンド)

539

関数定義スクリプトファイル名配列

447

関数定義ファイル

394

関数内ローカル変数

392

関数のオートロード機能

394

関数の終わりまで実行する場合〔JP1/Advanced

Shell エディタ〕

349

関数の終了コードに従ってジョブおよびジョブステッ

プのエラー判定をする

585

関数呼び出し行番号配列

447

関数を実行する( finish コマンド)

533

関数を終了する(return コマンド)

535

関連プログラム

60

関連マニュアル

1518

キー操作〔JP1/Advanced Shell エディタ〕

332

既存のジョブ定義スクリプトを編集する【Windows

限定】〔JP1/Advanced Shell エディタ〕

353

機能概要

44

機能修飾子オプション〔tar コマンド〕

939

機能文字オプション〔tar コマンド〕

939

行継続

399

強制終了時のジョブの動作【Windows 限定】

315

共通アプリケーションフォルダ

51

行番号〔JP1/Advanced Shell エディタ〕

328

業務への応用例

32

共有ドキュメントフォルダ

51

クォーテーション〔用語解説〕

1521

組み込みコマンド〔用語解説〕

1521

組み込み変数名=変数値〔awk コマンド〕

713

クライアントエリア〔JP1/Advanced Shell エディ

タ〕

328

クラスタ運用に関する注意事項

176

クラスタ運用の環境情報の設定

168

クラスタ運用の前提条件とサポート範囲

166

クラスタ運用の場合のコマンドの指定方法

174

クラスタ構成で運用する

166

クラスタシステムでの運用の概要

41

グローバルオプション

912

系切り替え

41

継続実行をする(continue コマンド)

533

検索式〔 find コマンド〕

795

検索ダイアログボックス

361

検索ツールバー〔JP1/Advanced Shell エディタ〕

326

コアダンプ〔用語解説〕

1521

異なるスプールのジョブ定義スクリプト稼働実績情報

を出力する

265

このマニュアルでの表記

1519

このマニュアルの参考情報

1518

コピー先ディレクトリ名〔cp コマンド〕

750

コピー先ファイル名〔cp コマンド〕

750

コピー元〔cp コマンド〕

750

コピー元ファイル名〔cp コマンド〕

750

コマンド〔sed コマンド〕

896

コマンド〔用語解説〕

1521

コマンドおよび制御文の一覧

994

コマンドおよび制御文の記述形式

989

コマンド実行結果の出力に関する注意事項

482

コマンド実行時にジョブ定義スクリプト中の引数を変

換する規則を定義する

592

コマンド実行時に引数を変換する

100

コマンドセパレータ

414

コマンドセパレータ〔用語解説〕

1521

コマンド置換の動作を定義する

597

コマンドの一覧

660

JP1/Advanced Shell

1550

コマンドのグループ化

415

コマンドのグループ化〔用語解説〕

1521

コマンドの終了コードのしきい値を定義する

586

コマンドの別名定義

397

コマンド引数 1〔COMMAND_CONV_ARG パラ

メーター〕

592

コマンド引数 2〔COMMAND_CONV_ARG パラ

メーター〕

592

コマンドプロンプト〔用語解説〕

1521

コマンド名〔#-adsh_rc_ignore コマンド〕

1100

コマンド名〔adshcmdrc コマンド〕

1062

コマンド名〔CMDRC_THRESHOLD_DEFINE パラ

メーター〕

586

コマンド名〔which コマンド〕

967

コマンド網羅性

284

コマンドライン〔adshappexec コマンド〕

1059

コマンドライン〔用語解説〕

1521

コメント

400

コンソール

365

コンソール〔用語解説〕

1521

最小出力モード

107, 224

最小発行間隔〔USERREPLY_JP1EVENT_INTERVAL

パラメーター〕

645

サフィックス〔basename コマンド〕

741

サブシェル〔用語解説〕

1521

サポートしていない条件式の実行時の動作を定義する

【Windows 限定】

643

サポートしていない条件式を実行した場合の動作を定

義する【Windows 限定】

103

三項演算子

438

算術演算

439

算術演算〔用語解説〕

1521

算術演算子

439

算術展開

411

シェル〔用語解説〕

1521

シェル運用コマンド

660

シェル運用コマンド〔用語解説〕

1521

シェル運用コマンドの一覧

660

シェルオプション

451

シェルオプション〔用語解説〕

1521

シェル拡張コマンド

1059

シェル拡張コマンド〔用語解説〕

1521

シェル拡張コマンドの一覧

995

シェル拡張コマンドの記述形式

991

シェル拡張変数

443

シェル拡張変数〔用語解説〕

1521

シェルコマンド〔用語解説〕

1521

シェルスクリプト

29

シェルスクリプト〔用語解説〕

1521

シェル標準コマンド

998

シェル標準コマンド〔用語解説〕

1521

シェル標準コマンドによるジョブの中断

476

シェル標準コマンドの一覧

994

シェル標準コマンドの記述形式

991

シェル変数

443

シェル変数〔JP1/Advanced Shell が設定〕

443

シェル変数〔JP1/Advanced Shell で使用できる〕

445

シェル変数〔用語解説〕

1521

シェル変数 ENV に指定されたファイルを読み込む

116

シェル変数 ENV を読み込むかどうかを定義する

607

シェル変数情報を表示する(info variables コマン

ド)

543

シェル変数名〔#-adsh_path_var コマンド〕

1098

シェル変数名〔adshvarconv コマンド〕

1086

シェル変数名〔PATH_CONV_NOVAR パラメー

ター〕

619

シェル変数名〔PATH_CONV_VAR パラメーター〕

626

シェルを設定する

127

式〔expr コマンド〕

792

しきい値〔adshcmdrc コマンド〕

1062

しきい値〔CMDRC_THRESHOLD_DEFINE パラメー

ター〕

586

シグナル〔用語解説〕

1521

シグナル受信時の動作【UNIX 限定】

310

JP1/Advanced Shell

1551

シグナル情報を表示する(info signals コマンド)

541

シグナルを送信する(signal コマンド)

536

時刻(メッセージの出力時刻)

1182

事象通知メッセージ〔adshecho コマンド〕

1064

システム環境ファイル

92

システム管理者

33

システム構成

57

システム実行ログ

127

システム実行ログ〔用語解説〕

1521

システム実行ログ出力ディレクトリのパス名を定義

する

608

システム実行ログを出力するファイルサイズを定義

する

609

システム実行ログをバックアップする面数を定義する

609

子孫ジョブ

194

子孫ジョブ〔用語解説〕

1521

子孫ジョブ実行ログ出力ファイル〔用語解説〕

1521

子孫ジョブとして起動するファイルを定義する

101

子孫ジョブとして実行する指定を定義する

580

子孫ジョブとして実行するジョブ定義スクリプトファ

イルの拡張子を定義する

579

子孫ジョブとして実行するジョブ定義スクリプトファ

イルの実行プログラムパスを定義する

583

子孫ジョブの実行結果の出力情報に関する出力方式を

定義する

610

子孫ジョブの実行方法

208

子孫ジョブのスプールジョブの扱いを定義する

634

子孫ジョブのスプールジョブをルートジョブのスプー

ルジョブへマージした場合

233

実行アプリケーション〔用語解説〕

1521

実行環境(JP1/Advanced Shell)

33

実行環境〔用語解説〕

1521

実行環境から JP1/AJS を使用してジョブを起動する

204

実行環境からコマンドでバッチジョブを起動する

207

実行環境でユーザー応答機能管理サービスを登録する

710

実行環境の設定ダイアログボックス

359

実行環境の前提プログラムと関連プログラム

60

実行系サーバ

41

実行したコマンドとその引数を出力する

260

実行時パラメーター〔adshexec コマンド〕

688

実行時パラメーター〔adshscripttool コマンド〕

1078

実行時パラメーター〔script_su1〕

984

実行中のジョブ定義スクリプトから外部のジョブ定義

スクリプトファイルを呼び出す

468

実行プログラムの引数〔CHILDJOB_PGM パラメー

ター〕

580

実行方法

277

実行ユーザーの権限でプログラムを実行する

984

指定した応答要求メッセージを応答待ちイベントとし

て発行する

1074

指定した事象通知メッセージを JP1 イベントとして発

行する

1064

終了コード〔ADSHCMD_RC_ERROR パラメーター〕

576

終了コード〔ADSHCMD_RC_SUCCESS パラメー

ター〕

576

終了コード〔adshjoberr コマンド〕

1067

終了コード〔用語解説〕

1521

終了コード定義〔#-adsh_job_stop コマンド〕

1097

出力パス名〔uniq コマンド〕

963

手動でバッチジョブを実行する場合

58

障害情報

1171

障害発生時に,応答要求メッセージに対して手動で応

答する

673

障害発生時に,応答要求メッセージの一覧を表示する

706

条件式

431

条件式〔用語解説〕

1521

条件パラメーター

653

条件パラメーター〔用語解説〕

1521

条件パラメーターの一覧

569

条件判定

430

条件判定〔用語解説〕

1521

条件判定と算術演算の優先順位

442

ショートオプション〔用語解説〕

1521

ショートオプションの指定形式

657

JP1/Advanced Shell

1552

書式〔printf コマンド〕

888

ジョブ

193

ジョブ,ジョブステップおよびコマンドの終了コード

472

ジョブ,ジョブステップおよびコマンドを定義する

455

ジョブ環境ファイル

92

ジョブ強制終了時にユーザー固有の後処理を実行する

130

ジョブコントローラ

34

ジョブコントローラ〔用語解説〕

1521

ジョブコントローラが強制終了要求を受けたときの動

作を定義する

641

ジョブ識別子

1182

ジョブ識別子〔用語解説〕

1521

ジョブ実行中にエラーが発生した場合の動作

477

ジョブ実行ログ

228

ジョブ実行ログ〔用語解説〕

1521

ジョブ実行ログへ出力させないメッセージを定義する

605

ジョブ実行ログへの情報メッセージと警告メッセージ

の出力を抑止する

224

ジョブ実行ログへの特定の情報メッセージの出力を抑

止する

224

ジョブ終了時に標準エラー出力へ出力するジョブ実行

ログの内容を定義する

604

ジョブ情報〔用語解説〕

1521

ジョブ情報の環境変数

454

ジョブスケジューラ〔用語解説〕

1521

ジョブステップ

199

ジョブステップ〔用語解説〕

1521

ジョブステップ情報を表示する(info jobsteps コマ

ンド)

540

ジョブステップの終了コード

473

ジョブステップ名〔#-adsh_step_start コマンド,#adsh_step_error コマンド,#-adsh_step_end コマ

ンド〕

1104

ジョブステップを定義する

457

ジョブ続行不可エラー発生時の終了コードを設定する

121

ジョブ定義スクリプト

29, 513

ジョブ定義スクリプト稼働実績情報取得機能の有効/

無効を指定する

600

ジョブ定義スクリプト実行時のシェルと書式チェック

の指定

428

ジョブ定義スクリプトに記述されている chmod コマ

ンドの指定を無効にする

972

ジョブ定義スクリプトに記述されている su コマンド

の指定を無効にする

982

ジョブ定義スクリプトに記述されている who コマン

ドの指定を無効にする

985

ジョブ定義スクリプトの稼働実績情報の採取

262

ジョブ定義スクリプトの稼働実績情報の出力

263

ジョブ定義スクリプトの稼働実績情報の出力内容

276

ジョブ定義スクリプトの稼働実績情報を出力する

262, 679

ジョブ定義スクリプトの構成要素に対する停止可否

517

ジョブ定義スクリプトのコマンドおよび制御文

988

ジョブ定義スクリプトの作成

367

ジョブ定義スクリプトの作成を支援する

1078

ジョブ定義スクリプトの実行環境を設定する〔JP1/

Advanced Shell エディタ〕

335

ジョブ定義スクリプトの実行を再開するコマンド

529

ジョブ定義スクリプトのデバッグ

508

ジョブ定義スクリプトファイル〔用語解説〕

1521

ジョブ定義スクリプトファイルの記述例

506

ジョブ定義スクリプトファイルのパス名〔adshexec

コマンド〕

688

ジョブ定義スクリプトファイルのパス名

〔adshscripttool コマンド〕

1078

ジョブ定義スクリプトファイル名〔#-adsh_script コ

マンド〕

1102

ジョブ定義スクリプトを一時停止する

521

ジョブ定義スクリプトを構成する基本要素

368

ジョブ定義スクリプトをコマンドとして指定する方法

207

ジョブ定義スクリプトを子孫ジョブとして実行する

208

ジョブ定義スクリプトを実行する(run コマンド)

522

ジョブ定義スクリプトを終了する(kill コマンド)

523

JP1/Advanced Shell

1553

ジョブ定義スクリプトを新規に作成する〔JP1/

Advanced Shell エディタ〕

334

ジョブ定義スクリプトを保存する【Windows 限定】

〔JP1/Advanced Shell エディタ〕

354

ジョブで実行する内容をコマンドラインに指定する

213

ジョブとジョブの関係

195

ジョブネット

205

ジョブネット〔用語解説〕

1521

ジョブネットの監視

193

ジョブネットを定義して実行する

137

ジョブの打ち切り条件を定義する

455

ジョブの強制終了の方法

308

ジョブの構成

193

ジョブの再実行

193

ジョブの実行

193

ジョブの実行結果を出力する

218

ジョブの実行結果をスプールに出力する

219

ジョブの終了コード

472

ジョブの種類ごとのジョブ実行ログの出力内容

228

ジョブの定義

193

ジョブの入力モード

194

ジョブ名〔#-adsh_job コマンド〕

1096

ジョブ名を宣言する

455

ジョブを強制終了する

308

ジョブを続行できないエラーが発生したときの終了

コードを定義する

117

処理の流れ

33

資料の採取

1168

資料の採取方法

1173

新規インストール

76

新規インストールの場合

74

新規にジョブ定義スクリプトを作成する〔JP1/

Advanced Shell エディタ〕

334

シンボリックリンク〔用語解説〕

1521

数値比較

432

スクリプト〔awk コマンド〕

713

スクリプト〔用語解説〕

1521

スクリプト開発部品

1117

スクリプト開発部品〔用語解説〕

1521

スクリプト開発部品を使うための準備

131

スクリプト拡張コマンド

1093

スクリプト拡張コマンド〔用語解説〕

1521

スクリプト拡張コマンド失敗時の終了コードを定義

する

576

スクリプト拡張コマンド成功時の終了コードを定義

する

576

スクリプト拡張コマンドの一覧

996

スクリプト拡張コマンドの記述形式

991

スクリプト拡張コマンドの指定

422

スクリプト拡張コマンドの終了コードとエラー発生時

の動作

471

スクリプト拡張コマンドの終了コードを定義する

112

スクリプト形式の UNIX 互換コマンドを使うための準

備【Windows 限定】

102

スクリプト制御文

1109

スクリプト制御文〔用語解説〕

1521

スクリプト制御文の一覧

997

スクリプト制御文の記述形式

993

スクリプトファイル〔用語解説〕

1521

スクリプトファイルのパス名〔script_su1〕

984

スクリプト予約語コマンド〔用語解説〕

1521

スクリプト予約語コマンドの一覧

997

スクリプト予約語コマンドの記述形式

993

ステータスバー〔JP1/Advanced Shell エディタ〕

328

ステータスを表示する(info status コマンド)

542

ステートメントカバレージ情報

284

スプール

127, 513

スプール〔用語解説〕

1521

スプール情報

1171

スプールジョブ〔用語解説〕

1521

スプールジョブ作成抑止機能の使用有無を決定する

105

スプールジョブディレクトリ

513

スプールジョブディレクトリ下のファイルのパーミッ

ションを定義する【UNIX 限定】

629

JP1/Advanced Shell

1554

スプールジョブディレクトリのパーミッションを定義

する【UNIX 限定】

628

スプールジョブの作成要否を選択する

636

スプールジョブを削除する

282

スプールの出力情報を定義する

105

スプールルートディレクトリのパス名を定義する

633

すべてのブレークポイントを解除する〔JP1/

Advanced Shell エディタ〕

343

正規組み込みコマンド〔用語解説〕

1521

制御文

430

制御文〔用語解説〕

1521

正常終了するコマンドを定義する

462

設定日時〔touch コマンド〕

952

前提条件

277

前提プログラム

60

総称変数名〔用語解説〕

1521

増分・減分演算子

440

ソースファイルを表示する(list コマンド)

554

そのほかのメタキャラクタ

415

ターゲット〔ln コマンド〕

851

ダイアログボックス〔用語解説〕

1521

待機系サーバ

41

対象パス名〔awk コマンド〕

713

対象パス名〔gunzip コマンド〕

818

対象パス名〔gzip コマンド〕

825

対象パス名〔tar コマンド〕

939

対象リストファイル名〔adshhk コマンド〕

697

対処の手順〔トラブルシューティング〕

1168

代入演算子

440

大量の配列要素を確保する場合のメモリ所要量につ

いて

390

置換

401

逐次実行をする(next コマンド)

530

逐次実行をする(step コマンド)

530

蓄積したカバレージ情報の初期化

291

蓄積ファイル名の生成規則を定義する

577

蓄積方法の種類

290

注意事項〔ユーザー応答機能〕

280

通常ファイル

197, 486

通常ファイル〔用語解説〕

1521

通常ファイルの割り当ておよび後処理をする

485

ツールバー〔JP1/Advanced Shell エディタ〕

326

常に正常終了するコマンドを定義する

463

定義ファイル〔用語解説〕

1521

定義ファイル名〔adshcollect コマンド〕

1173

ディスク占有量

185

ディレクトリ〔mkdir コマンド〕

874

ディレクトリ 1〔 diff コマンド〕

768

ディレクトリ 2〔 diff コマンド〕

768

ディレクトリ区切り文字〔PATH_CONV_ENABLE パ

ラメーター〕

618

ディレクトリの表記

1520

ディレクトリパス〔cd コマンド〕

1004

ディレクトリ名〔rmdir コマンド〕

895

ディレクトリを移動する(cd コマンド)

556

デバッガ

513

デバッガ〔用語解説〕

1521

デバッガとは

509

デバッガのコマンド一覧

515

デバッガを起動する

521

デバッガを終了する(quit コマンド)

522

デバッグ〔用語解説〕

1521

デバッグ実行〔JP1/Advanced Shell エディタ〕

324

デバッグ実行時の事象通知メッセージと応答要求メッ

セージの入出力先を指定する

645

デバッグ実行時のブレークポイントを設定・解除する

〔JP1/Advanced Shell エディタ〕

341

デバッグ中に変数値を参照・更新する

349

JP1/Advanced Shell

1555

デバッグツールバー〔JP1/Advanced Shell エディ

タ〕

326

デバッグモード〔JP1/Advanced Shell エディタ〕

324

デバッグモードのポップアップメニュー〔JP1/

Advanced Shell エディタ〕

331

デバッグを実行・中止する〔JP1/Advanced Shell エ

ディタ〕

345

デバッグをする〔JP1/Advanced Shell エディタ〕

340

同一バージョンによる修復インストール

77

同一バージョンによる修復インストールの場合

75

特殊組み込みコマンド〔用語解説〕

1521

トラップアクション〔用語解説〕

1521

トラブルシューティング

1167

トラブル発生時に採取が必要な資料

1170

トレース

127

トレース出力レベルを定義する

641

トレースファイルサイズを定義する

640

トレース面数を定義する

639

トレースモード

393

トレースレベル〔TRACE_LEVEL パラメーター〕

641

トレースログ〔用語解説〕

1521

トレースログの出力情報を定義する

111

トレースを出力するディレクトリのパス名を定義する

638

名前〔adshparsejson コマンド〕

1072

日数〔adshhk コマンド〕

697

入出力リダイレクト

411

入力パス名〔sort コマンド〕

912

入力パス名〔split コマンド〕

924

入力パス名〔uniq コマンド〕

963

入力ファイルパス名〔sed コマンド〕

896

バージョンアップによる上書きインストール

77

バージョンアップによる上書きインストールの場合

74

ハードリンク,シンボリックリンクを使用する

68, 69

パーミッション〔PERMISSION_SPOOLJOB_DIR パ

ラメーター〕

628

パーミッション〔PERMISSION_SPOOLJOB_FILE パ

ラメーター〕

629

パーミッションをシンボルまたは数値で設定する

978

パーミッションを数値で設定する

975

パイプ

414

パイプ〔用語解説〕

1521

パイプの最終コマンドの実行プロセスを定義する

630

パイプの最終コマンドの実行プロセスを定義する

【UNIX 限定】

116

パイプライン

414

配列

378

配列の値の参照

387

配列の作成

378

配列名〔adshparsecsv コマンド〕

1071

パス区切り文字〔PATH_CONV_ENABLE パラメー

ター〕

618

パス変換機能を有効にする

618

パス変換内容を定義する

614

パス変換ルールを定義する

620

パス名...〔grep コマンド〕

811

パス名〔adshscripttool コマンド〕

1078

パス名〔cat コマンド〕

744

パス名〔CHILDJOB_SHEBANG パラメーター〕

583

パス名〔cut コマンド〕

753

パス名〔egrep コマンド〕

784

パス名〔expand コマンド〕

787

パス名〔 find コマンド〕

795

パス名〔head コマンド〕

848

パス名〔LOG_DIR パラメーター〕

608

パス名〔ls コマンド〕

859

パス名〔paste コマンド〕

878

パス名〔rm コマンド〕

893

パス名〔script_0〕

972

JP1/Advanced Shell

1556

パス名〔script_chmod1〕

973

パス名〔script_chmod2〕

975

パス名〔script_chmod3〕

978

パス名〔SPOOL_DIR パラメーター〕

633

パス名〔stat コマンド〕

927

パス名〔tail コマンド〕

935

パス名〔TEMP_FILE_DIR パラメーター〕

637

パス名〔touch コマンド〕

952

パス名〔TRACE_DIR パラメーター〕

638

パス名〔wc コマンド〕

965

パス名 1〔cmp コマンド〕

747

パス名 1〔 diff コマンド〕

768

パス名 1〔PATH_CONV_ACCESS パラメーター〕

616

パス名 1〔PATH_CONV パラメーター〕

614

パス名 2〔cmp コマンド〕

747

パス名 2〔 diff コマンド〕

768

パス名 2〔PATH_CONV_ACCESS パラメーター〕

616

パス名 2〔PATH_CONV パラメーター〕

614

パス名を扱うシェル変数を定義する

465, 626

パス名を扱わないシェル変数を定義する

619

パス名を変換する

94

パスを扱う変数名情報を表示する(info pathvars コ

マンド)

541

パターン〔egrep コマンド〕

784

パターン〔grep コマンド〕

811

パターンマッチング

420

バックトレースを表示する(where コマンド)

553

バッチ業務サーバ

57

バッチ業務サーバ〔用語解説〕

1521

バッチ業務の OS 間での資産の継承

29

バッチ業務の構築のスピードアップ

29

バッチジョブ〔用語解説〕

1521

バッチジョブ起動後のジョブコントローラの処理

215

バッチジョブ業務と実行順序の定義

205

バッチジョブ業務と実行順序の定義スケジュールの

定義

206

バッチジョブ業務を開始する契機を登録する

207

バッチジョブの起動

204

バッチジョブの実行

192

バッチジョブの実行結果の一元管理

30

バッチジョブの実行結果の一元管理による運用性・保

守性の向上

30

バッチジョブの実行時にカバレージ情報を採取するオ

プションを指定しなくても有効にする

113

バッチジョブを自動実行するときの処理の流れ(JP1/

AJS と連携する場合)

34

バッチ処理〔用語解説〕

1521

パラメーターの一覧

563

ヒアドキュメント

413

ヒアドキュメント〔用語解説〕

1521

比較開始位置 1〔cmp コマンド〕

747

比較開始位置 2〔cmp コマンド〕

747

引数〔script_0〕

982

引数〔用語解説〕

1521

非クラスタ環境で論理ホストを運用する場合の設定

176

ビットごとの論理演算子

440

標準エラー出力(stderr)〔用語解説〕

1521

標準出力,標準エラー出力の出力先に関する指定

218

標準出力(stdout)〔用語解説〕

1521

標準ツールバー〔JP1/Advanced Shell エディタ〕

326

標準入力(stdin)〔用語解説〕

1521

標準入力についての注意事項

68

秒数〔sleep コマンド〕

911

ファイル環境変数定義名〔 #-adsh_file_temp コマン

ド〕

1095

ファイル環境変数定義名〔 #-adsh_file コマンド〕

1093

ファイル環境変数定義名〔 #-adsh_spoolfile コマン

ド〕

1103

ファイルサイズ〔LOG_FILE_SIZE パラメーター〕

609

ファイルサイズ〔TRACE_FILE_SIZE パラメーター〕

640

JP1/Advanced Shell

1557

ファイルシステムに関する注意事項

66

ファイル属性

434

ファイルディスクリプタ

413

ファイルディスクリプタ〔用語解説〕

1521

ファイル入出力時のパス変換内容を定義する

616

ファイルの入出力時にファイルパスを変換する

98

ファイルのパス名

658

ファイルの読み取り専用属性の有効・無効を切り替

える

973

ファイルの割り当て〔用語解説〕

1521

ファイルの割り当ておよび後処理をする

485

ファイルパス〔 #-adsh_file コマンド〕

1093

ファイルパス〔 adshfile コマンド〕

695

ファイル名規則〔ASC_FILE パラメーター〕

577

複数の OR 条件でジョブ定義スクリプト稼働実績情報

を出力する

264

複数の環境で共用する

113

物理ホストだけで有効なパラメーターを定義する

654

物理ホストまたは論理ホストごとに応答要求メッセー

ジの最大同時出力数を指定する

646

ブランチカバレージ情報

284

プリフィックス〔adshmktemp コマンド〕

1069

プリフィックス〔split コマンド〕

924

ブレークポイント・ウォッチポイントの情報を表示す

る(info breakpoints コマンド)

537

ブレークポイント・ウォッチポイントを削除する

(delete コマンド)

528

ブレークポイント〔用語解説〕

1521

ブレークポイントエリア〔JP1/Advanced Shell エ

ディタ〕

328

ブレークポイントまで実行する場合〔JP1/Advanced

Shell エディタ〕

345

ブレークポイントを設定する(break コマンド)

523

ブレークポイントを設定する〔JP1/Advanced Shell

エディタ〕

341

プログラム出力データファイル

499

プログラム出力データファイル〔用語解説〕

1521

プログラム出力データファイルの割り当てをする

499

プログラムのインストール先ディレクトリ

50

プログラムの種類

52, 55

プログラムパス名〔CHILDJOB_PGM パラメーター〕

580

分岐網羅性

284

文法チェック〔JP1/Advanced Shell エディタ〕

324

文法をチェックする〔JP1/Advanced Shell エディ

タ〕

336

ベースとなる asc ファイルのパス名〔adshcvmerg

コマンド〕

675

ベース名〔用語解説〕

1521

別プロセスでの実行

416

ヘルプを表示する(help コマンド)

557

編集ツールバー〔JP1/Advanced Shell エディタ〕

326

編集モード〔JP1/Advanced Shell エディタ〕

324

編集モードのポップアップメニュー〔JP1/Advanced

Shell エディタ〕

331

変数

368

変数〔用語解説〕

1521

変数ウィンドウ

363

変数ウィンドウ〔JP1/Advanced Shell エディタ〕

329

変数の値の参照

372

変数の値を設定する(set コマンド)

550

変数の値を表示する(print コマンド)

552

変数の命名規則

369

変数名〔adshread コマンド〕

1074

保守情報出力先ディレクトリ〔adshcollect コマン

ド〕

1173

ポップアップメニュー〔JP1/Advanced Shell エディ

タ〕

331

マージする asc ファイルのパス名〔adshcvmerg コ

マンド〕

675

マージする情報の種類

306

マージの方法

306

マウス操作〔JP1/Advanced Shell エディタ〕

332

JP1/Advanced Shell

1558

メタキャラクタ

398

メタキャラクタ〔用語解説〕

1521

メッセージ

1181

メッセージ ID

1184

メッセージ ID〔JOBLOG_SUPPRESS_MSG パラメー

ター〕

605

メッセージ出力ウィンドウ

362

メッセージ出力ウィンドウ〔JP1/Advanced Shell エ

ディタ〕

329

メッセージテキスト

1184

メッセージに出力される行番号に関する注意事項

1197

メッセージの一覧

1198

メッセージの記載形式

1184

メッセージの形式

1182

メッセージの出力形式

1182

メッセージの出力先

1186

メッセージ番号

1182

メッセージ番号の範囲で示されるメッセージの意味

1184

メッセージ番号の割り当て

1184

メッセージ用ダイアログボックス

1183

メッセージ用ダイアログボックスでのアイコンの意味

1183

メニューバーのメニュー〔JP1/Advanced Shell エ

ディタ〕

329

メモリ上に採取しているカバレージ情報の表示

305

メモリ所要量

185

面数〔LOG_FILE_CNT パラメーター〕

609

面数〔TRACE_FILE_CNT パラメーター〕

639

モード〔adshscripttool コマンド〕

1078

モード〔script_0〕

972

モード〔script_chmod1〕

973

モード〔script_chmod2〕

975

モード〔script_chmod3〕

978

文字列〔basename コマンド〕

741

文字列〔dirname コマンド〕

781

文字列区切り

399

文字列比較

433

文字列を検索する〔JP1/Advanced Shell エディタ〕

338

文字列を置換する〔JP1/Advanced Shell エディタ〕

339

ユーザー応答機能管理デーモンの情報【UNIX 限定】

1172

ユーザー応答機能管理デーモンを起動および停止する

707

ユーザー応答機能使用時の障害対応

1168

ユーザー応答機能で表示されるエラー情報の意味およ

び対処方法

1488

ユーザー応答機能の入出力先に標準入出力を指定する

方法

278

ユーザー応答機能を使用する

277

ユーザー応答機能を使用するための環境ファイルの

設定

155

ユーザー応答機能を使用するときの処理の流れ

36

ユーザー応答機能を設定する

126, 155

ユーザー名〔script_0〕

982

ユーザー名〔script_su1〕

984

呼び出し関数名称配列

447

予約語

368

ラージファイル

65

リスト〔cut コマンド〕

753

リダイレクト

411

リダイレクト〔用語解説〕

1521

流量制御〔用語解説〕

1521

リンク先パス名〔ln コマンド〕

851

ルートジョブ

194

ルートジョブ〔用語解説〕

1521

JP1/Advanced Shell

1559

ルートジョブが子孫ジョブより先に終了した場合の注

意事項

1169

ルートジョブと子孫ジョブ

194

ルートジョブの実行結果の出力情報に関する出力方式

を定義する

612

ルートジョブの出力先を定義する

613

ルーラー〔JP1/Advanced Shell エディタ〕

328

レポートファイル名〔adshhk コマンド〕

697

ローカルオプション

912

ローカルタイムの設定

67

ログ

1170

ログ〔用語解説〕

1521

ログインシェルを起動する(exec コマンド)

557

ログインユーザーの情報をログに出力する

986

ログファイル名〔adshhk コマンド〕

697

ロングオプション〔用語解説〕

1521

ロングオプションの指定形式

657

論理演算

437

論理ホスト

41

論理ホストだけで有効なパラメーターを定義する

653

論理ホスト名〔adshcollect コマンド〕

1173

論理ホスト名〔lhost_start パラメーター,lhost_end

パラメーター〕

653

ワイルドカード

400

ワイルドカード〔用語解説〕

1521

割り当て管理ファイル

219

JP1/Advanced Shell

1560

advertisement

Key Features

  • バッチ処理のためのジョブ定義スクリプトの作成・実行
  • バッチジョブの自動実行
  • JP1/AJS との連携
  • Java のバッチアプリケーションの実行
  • ユーザー応答機能
  • アプリケーション実行エージェント機能
  • クラスタシステムでの運用
  • 機能概要

Frequently Answers and Questions

JP1/Advanced Shell の目的は何ですか?
JP1/Advanced Shell は、バッチ処理のためのジョブ定義スクリプトを作成・実行するための製品です。
JP1/Advanced Shell はどのような業務に適用できますか?
JP1/Advanced Shell は、バッチ処理が必要な様々な業務に適用できます。例えば、データの定期的な更新、帳票作成、システムの定期的な監視などです。
JP1/Advanced Shell のシステム全体構成はどのようになっていますか?
JP1/Advanced Shell は、ジョブコントローラ、ジョブ実行エージェント、ジョブ定義スクリプト、環境ファイルなどから構成されています。
JP1/Advanced Shell の処理の流れはどのようになっていますか?
JP1/Advanced Shell の処理の流れは、ジョブ定義スクリプトの読み込み、ジョブステップの実行、ジョブ実行結果の出力などです。
JP1/Advanced Shell をクラスタシステムで運用する場合、どのような点に注意する必要がありますか?
JP1/Advanced Shell をクラスタシステムで運用する場合、ジョブコントローラ、ジョブ実行エージェント、環境ファイルなどの設定を適切に行う必要があります。
Download PDF

advertisement

Languages