日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


HP OpenVMS
DCL ディクショナリ


目次 索引

この例は,1 つのコマンドでパイプライン機能を使用して,不要な中間ファイルを生成せずにテストを実行し,結果をソートし,結果をベンチマーク・ファイルと比較します。

#3
$ PIPE (SET DEF WRK$:[WORK] ; RUN REPORT ) | MAIL SYS$INPUT SMITH

この例は,パイプラインで,サブシェルをパイプ・セグメント・コマンドとして指定する 1 つの方法を示しています。

#4
$ more :== TYPE/PAGE=SAVE SYS$INPUT 
$ PIPE    ANA/RMS PAGE.TXT | more 
 
Check RMS File Integrity              26-DEC-2001 16:12:00.06  Page 1 
SYS$SYSDEVICE:[TEST]PAGE.TXT;2 
 
FILE HEADER 
 
    File Spec: SYS$SYSDEVICE:[TEST]PAGE.TXT;2 
    File ID: (4135,58220,0) 
    Owner UIC: [PIPE] 
    Protection:  System: RWED, Owner: RWED, Group: RE, World: 
    Creation Date:   26-NOV-2001 16:08:50.05 
    Revision Date:   26-NOV-2001 16:09:09.06, Number: 1 
    Expiration Date: none specified 
    Backup Date:     none posted 
    Contiguity Options:  none 
    Performance Options: none 
    Reliability Options: none 
    Journaling Enabled:  none 
 
RMS FILE ATTRIBUTES 
 
RETURN/SPACE=More,PREV/NEXT=Scroll,INS/REM=Pan,SELECT=80/132,Q=Quit 
 

この例は,パイプラインの中で/PAGE修飾子を使用する方法を示しています。 /PAGE 機能は,他の多数のDCLコマンドにも存在し,同じように PIPE コマンドと組み合せて使用して他の有用なツールを作ることができます。

#5
$ ! TEE.COM - command procedure to display/log data flowing through 
$ !           a pipeline 
$ ! Usage: @TEE log-file 
$ 
$ OPEN/WRITE  tee_file 'P1' 
$ LOOP: 
$  READ/END_OF_FILE=EXIT  SYS$PIPE LINE 
$  WRITE SYS$OUTPUT LINE ! Send it out to next stage of the pipeline 
$  WRITE tee_file LINE  ! Log output to the log file 
$  GOTO LOOP 
$ EXIT: 
$  CLOSE tee_file 
$  EXIT 

これは,パイプライン DCL アプリケーション TEE.COM の例です。

TEE.COM を使用する PIPE コマンドは次のように指定することができます。

$ PIPE  SHOW SYSTEM | @TEE showsys.log | SEARCH SYS$INPUT LEF 

コマンド・プロシージャ TEE.COM は,パイプラインを通じて送信されるデータのログを記録するために使用されています。これは,SYS$INPUT ではなく SYS$PIPE からのデータを読み込ます。

#6
$ CD_WORK :== PIPE  SAVE_DIR=F$DIRECTORY() ; SET DEFAULT FOO:[WORK] 
$ BACK  :== SET DEF 'SAVE_DIR' 
$ 
$ CD_WORK  ! Switch to working directory 
$     : 
$     : 
$ BACK     ! Switch back to home directory 
 
 
$ GET_RECORD :== PIPE READ/END_OF_FILE=CLEANUP IN RECORD ; - 
                                F$EDIT(RECORD, "COMPRESS, TRIM") 
$ 
$ OPEN IN EMPLOYEE.DAT 
$ LOOP: 
$ GET_RECORD 
$    : 
$    : 
$ GOTO LOOP 
$ 
$ CLEAN_UP: 
$    : 

この例は,シンボル定義を持つ複数のコマンドを使用して,コマンド・プロシージャに有用なツールを作成する 2 つの簡単な方法を示しています。

#7
$ PIPE cc foo.c && link foo, sys$library:vaxcrtl.olb/lib

コンパイルでエラーが発生しない場合,オブジェクト・ファイルは実行可能イメージを生成するためにリンクされます。コンパイル・エラーが発生すると,リンク・ステップはスキップされます。

#8
$ 
$ PIPE RUN COLLECT_DATA.EXE || GOTO CLEAN_UP 
$       : 
$       : 
$ EXIT 
$ 
$ CLEAN_UP: 
$       : 
$       : 

条件付きコマンド実行を使用すると,コマンド・プロシージャの中に単純なエラー処理制御フローを簡単に設定できます。 COLLECT_DATA イメージが失敗すると,制御が CLEAN_UP に移ります。

#9
$ PIPE COPY LARGE_FILE.DAT REMOTE"user password"::[DESTINATION]*.*  &

この PIPE コマンドは,大型ファイルのコピーを処理するバックグラウンド・プロセスを作成します。

#10
$ PIPE (SET DEF [.DATA_DIR] ; BACKUP  DATA.SAV/SAV [...]) ; RUN FOO

サブシェル・コマンド・シーケンスは,サブプロセスで実行されます。つまり,プロセス固有特性 (たとえば,省略時のディレクトリ) を変更しても,サブシェルの終了後,現在のプロセスに影響しません。この例では,プログラムFOOを実行するのに必要なデータを提供するため,セーブ・セットがザブディレクトリに復元されます。

#11
$ RSH 0 PIPE SH DEC/FI | SH LOG/PR
LNM$PROCESS_TABLE
  "SYS$COMMAND" = "_NODE$MPA24:"
  "SYS$DISK" = "SYS$SYSDEVICE:"
  "SYS$ERROR" = "_BG9930:"
  "SYS$INPUT" [super] = "_BG9930:"
  "SYS$INPUT" [exec] = "_NODE$MPA24:"
  "SYS$OUTPUT" [super] = "_BG9930:"
  "SYS$OUTPUT" [exec] = "_BG9930:"
  "SYS$PIPE" = "_NODE$MPA24:"
  "TT" = "_MPA24:"
 

この例は,SYS$PIPE と SYS$OUTPUT の相違点を示しています。


目次 索引

プライバシー ご利用条件・免責事項