[an error occurred while processing this directive]
Software  >  OpenVMS Systems > Documentation > 731final > 6489 > hanzi

HP OpenVMS Systems Documentation

Content starts here

OpenVMS �û��ֲ�


ǰҳ Ŀ¼ ����


�� 14 ��
DCL �߼����

�߼� DCL ��̰���ʹ�ø��ӵ�������̺� DCL ���� PIPE����������Ķ����� 13 �������Ҿ߱� DCL ��̵Ļ���֪ʶ��Ȼ����Ҫѧϰ����ĸ߼�����������Ӧ���Ķ����¡�

���ӵ�������̿���ִ�����Ƴ���Ĺ��ܡ�����������п���ʹ�ñ������롢ֻ��ijЩ����Ϊ��ʱ��ִ�й��̶Ρ�ִ�������г�����������������̡�

��Ҳ����ʹ�� DCL ���� PIPE ִ�����Ƴ���Ĺ��ܡ����磬ʹ�� PIPE ���������ͬһ DCL ��������ִ��һ���������²���:

  • ��ˮ�߲��� (һ������)
  • ����/����ض���
  • �������������ִ��
  • ��̨����

���°���������Ϣ:

  • ִ�������������
  • ʹ�ò����������ݸ�Ƕ�׵��������
  • ִ������������
  • ��ȡ��д���ļ� (�ļ� I/O)
  • �����ļ� I/O ����
  • ����ִ�����ļ���
  • �����µ����
  • ��д Case ���
  • ʹ�� PIPE ����

14.1 ִ�������������

�������Ƶ������Ҫ�û��ṩ���ݡ�������ݣ������룬���Դӽ��� (���� 13 ������) ��ǽ����ػ�á����������ǽ������뷽�����Լ���ͬ���� 13 �������Ľ������뷽����

ÿ���������ִ��ʱ������ʹ��ͬ�������ݡ�Ҫ������һ�㣬�����ݷ�������������е��������ϣ����������Ҫ��Щ���ݵ����

����������ִ��������� CENSUS.EXE���������ÿ��ִ��ʱ��CENSUS.EXE ��ȡ���� 1993��1994 �� 1995:


$ ! CENSUS.COM
$ !
$ RUN CENSUS
1993
1994
1995
$ EXIT

14.1.1 ����������ж԰������ݵ�����

DCL ���������ϵ��ı�ֱ�Ӵ��ݸ�������̡� ��ˣ������������뷭������ݣ�����:

  • ����
  • �߼���
  • ��������ʽ

14.1.2 �������ݵ���������

���¼�������Ϊ������̻���������ݵ���������������:

  • ʹ�ò�����������
  • ʹ�ò����������ݸ�������ҵ
  • ʹ�ò����������ݸ�Ƕ�׵��������
  • ʹ�� INQUIRE �� READ ������ʾ��������
  • ʹ�� SYS$INPUT �߼����������

14.2 ʹ�ò�����������

�±������Ѳ�����Ϊ���ݴ��ݸ�������̵�ָ��:

  • �Ѳ���������������ļ�˵��֮��
  • ���Դ������ 8 ��������һ��������̡�
  • ����������� 8 ������ֵ����ô����ķ��ű���ֵΪ��ֵ����ֵ�Dz����ַ����ַ��������������� (" ") ��ʾ��
  • ��һ�������ո���Ʊ����ָ����� ��

DCL �Ѵ��ݸ�������̵IJ�������ֲ����� P1 �� P8��P1 ��ֵΪ��һ������ֵ��P2 Ϊ�ڶ�����P3 Ϊ���������Դ����ơ����磬������������������ SUM.COM������ 8 ���������ݸ��������:


$ @SUM 34 52 664 89 2 72 87 3

14.2.1 ָ������Ϊ����

ָ��һ��������Ϊ����ʱ������ת��Ϊ�ַ����������������У�P1 ���ַ���ֵ 24��P2 ���ַ���ֵ 25:


$ @ADDER 24 25

�������������ַ�������ʽ��ʹ�÷��� P1 �� P8��DCL �Զ�ִ�б�Ҫ��ת����

14.2.2 ָ������Ϊ�ַ���

Ҫ���ַ����б��ֿո��Ʊ�����Сд��ĸ�ַ��������� (" ") ��������ַ���֮ǰ��֮������:


$ @DATA "Paul Cramer"

�����������У�P1 �� Paul Cramer �� P2 Ϊ�ա����ʡ�����ţ���ôÿ���ַ���������Ϊ�����IJ���������:


$ @DATA Paul Cramer

����������У��ַ��� Paul �� Cramer ��ת��Ϊ��д��ĸ��P1 �� PAUL �� P2 �� CRAMER��

����һ�����ӣ����������������� DATA.COM:


$ @DATA  "Paul Cramer" 24 "(555) 111-1111")

P1 �� P8 �� DATA.COM �������:

P1 = Paul Cramer
P2 = 24
P3 = (555) 111-1111
P4--P8 = null

14.2.3 ָ������Ϊ����

Ҫ����һ�����ŵ�ֵ����ʡ�Ժŷ����������֮ǰ��֮��Ҫ���ַ���ֵ�еĿո��Ʊ�����Сд��ĸ�ַ�������������������Щֵ����Ҳ����ʹ���������Ű�����Ϊ�ַ���һ���ֵ����š�

��һ�����ǰ��ı����������ڣ������ڷ��ų��ִ�������ʡ�Ժŷ����������֮ǰ���Һ������һ��ʡ�Ժš�

�����������У����ڴ��ݷ��Ÿ��������ʱ DCL ��ȥ���ţ���� P1 �� Paul ���� P2 �� Cramer:


$ NAME = "Paul Cramer"
$ @DATA 'NAME'

�����������У�P1 �� "Paul Cramer" �� P2 Ϊ��:


$ NEW_NAME = """Paul Cramer"""
$ @DATA 'NEW_NAME'

�����������У�P1 ����Ϊ Paul Cramer:


$ ! DATA.COM
$ @NAME "''P1'"

14.2.4 ָ������Ϊ��ֵ

Ҫ����һ���ղ��������������ַ�����ʹ��һ��������Ϊһ��ռλ���������������У����ݸ� DATA.COM �ĵ�һ��������һ���ղ���:


$ @DATA "" "Paul Cramer"

����������У�P1 Ϊ�գ��� P2 �� Paul Cramer��

14.3 ʹ�ò����������ݸ�������ҵ

Ҫ�Ѳ������ݸ�������ģʽִ�е�������̣���ʹ�� SUBMIT �����޶��� /PARAMETERS��

���Ҫʹ�õ��� SUBMIT ����ִ��һ������������̣���ôָ���IJ���������������ҵ�е�ÿ��������̡�

�����������У����������������������� ASK.COM �� GO.COM��������������ҵ��ʽִ��:


$ SUBMIT/PARAMETERS=(TODAY,TOMORROW,YESTERDAY) ASK.COM��GO.COM)

�����������У�SUBMIT ����������������������: LIBRARY.COM �� SORT.COM:


$ SUBMIT-
_$ /PARAMETERS=(DISK:[ACCOUNT.BILLS]DATA.DAT,DISK:[ACCOUNT]NAME.DAT) -
_$ LIBRARY.COM��SORT.COM

������ҵ��ִ�о�������ע�Ტ��ִ��ÿ��������̡���� SUBMIT ����ִ��һ���������ʻ���ע���������ҵ��ִ��ע��������̣�Ȼ��ִ����������:


$ @LIBRARY DISK:[ACCOUNT.BILLS]DATA.DAT DISK:[ACCOUNT]NAME.DAT)
$ @SORT DISK:[ACCOUNT.BILLS]DATA.DAT DISK:[ACCOUNT]NAME.DAT)

����������а������ݣ����߰� SYS$INPUT ����Ϊһ���ļ�����Ҳ���԰����ݴ��ݸ�������ҵ��ָ���IJ���������������ҵ�е�ÿ��������̡�

14.4 ʹ�ò����������ݸ�Ƕ�׵��������

�����Դ��ݶ�� 8 ��������Ƕ�׵�������̡���Ƕ�׹����еľֲ����� P1 �� P8 ����ù��̵ľֲ����� P1 �� P8 �Dz���صġ�

�����������У�DATA.COM ����Ƕ�׵�������� NAME.COM:


$ ! DATA.COM
$ @NAME 'P1' Joe Cooper

��� DATA.COM �е� P1 ���ַ��� Paul Cramer�������������ţ���ô����Ϊ�����������ݸ� NAME.COM���� NAME.COM �У�P1 �� P8 ��������:

P1 = PAUL
P2 = CRAMER
P3 = JOE
P4 = COOPER
P5--P8 = null

����� DATA.COM �е� P1 �� "Paul Cramer" (��������)����ô�� P1 ���� 3 �������ڿ��԰����ֵ��Ϊһ���������ݸ� NAME.COM��������ʾ:


$ ! DATA.COM
$ QUOTE = """
$ P1 = QUOTE + P1 + QUOTE
$ @NAME 'P1' "Joe Cooper"

����������У���������� NAME.COM �е� P1 �� Paul Cramer���� P2 �� Joe Cooper��

14.5 ��ʾ��������

������ʹ�� INQUIRE ���� (���� 13 ������) �� READ ������ػ������������ݡ����������ʾ���벢��Ӧ��ֵ��һ�����š�

READ ���������·��治ͬ�� INQUIRE ����:

INQUIRE ����... READ ����...
��ʾ����ֵ ��ʾ����ֵ
���ն˶�ȡֵ �ӵ�һ������ָ������Դ��ȡֵ
��һ�����Ÿ�ֵ ����Ϊ�ڶ��������ķ��Ÿ�ֵ

READ ������Ӧ��ʾʱ�������ն��ϼ������Ϊ��ȷ�ַ���ֵ  �������ַ� (������ĸ��Сд���ո���Ʊ���)�����ʡ�� /PROMPT �޶��ʣ���ô READ ������ʾ Data: ��ΪĬ����ʾ��

��Ҳ���Ա�д������������̣������ǿ��Խ��ܲ����������û��ָ����Ҫ�IJ���ʱ����ʾ�û����롣

�����������У��������ʾ Filename: ���նˣ����߼��� SYS$COMMAND (����Ĭ�ϣ��ն�) ָ������Դ��ȡӦ�𣬲��Ұ�Ӧ��ֵ������ FILE:


$ READ/PROMPT="Filename: "  SYS$COMMAND  FILE

�����������У������̵���ʱ���û��ָ��һ���ļ���������ʾ�û�����һ���ļ���:


$ ! Prompt for a file name if name
$ ! is not passed as a parameter
$ IF P1 .EQS. "" THEN INQUIRE P1 "Filename"
$ COPY 'P1' DISK5:[RESERVED]*.*
$ EXIT 

ע��

������ύһ����Ϊ������ҵִ�е�������̣�DCL �� INQUIRE ����֮ǰ�������ж�ȡ�� INQUIRE ������ָ���ķ���ֵ������������������У����ű�����һ����ֵ��

14.6 ʹ�� SYS$INPUT �߼����������

������ó��������ϵͳӳ����߼��� SYS$INPUT ָ������Դ������ǵ����룬����Ĭ�������� ������������У�SYS$INPUT ������Ϊ��������ļ�����Ҫ���ݵ������ӳ��Ҫ�ڴ��ļ���Ѱ�������С�Ȼ�����ض��� SYS$INPUT�������Դ��ն˻�Ӷ����������ļ��ṩ���ݡ�

14.6.1 �ض��� SYS$INPUT Ϊ�ն�

�����԰� SYS$INPUT ���¶���Ϊ�նˡ���������������̵��õ�ӳ���ý������룬�����Ǵ���������е������С�

ע�⣬�����Ҫ�����������ʹ����Ҫ��������� DCL ������ó��򣬱���� SYS$INPUT ���¶���Ϊ�նˡ�

�����������У���������������������ṩ�����ӳ�� CENSUS.EXE:


$ ! Execute CENSUS getting data from the terminal
$ DEFINE/USER_MODE SYS$INPUT SYS$COMMAND
$ RUN CENSUS
$ EXIT 

CENSUS.EXE ����ʱ��DEFINE/USER_MODE ������ʱ���¶��� SYS$INPUT����� CENSUS.EXE ���ն˻���������롣�� CENSUS.EXE ��� ֮��SYS$INPUT �ظ�������ԭʼ���� (��������ļ�)��

�����������У�������̰� EVE �����ı��༭����:


$ ! Obtain a list of your files
$ DIRECTORY
$ !
$ ! Get file name and invoke the EVE editor
$ EDIT_LOOP:
$      INQUIRE FILE "File to edit (Press Return to end)"
$      IF FILE .EQS. "" THEN EXIT
$      DEFINE/USER_MODE SYS$INPUT SYS$COMMAND
$      EDIT/TPU 'FILE'
$      GOTO EDIT_LOOP 

���������ʾ�����ļ�����ֱ������ Return ����ֹ���ѭ���������ļ���ʱ�������Զ����� EVE ���༭����ļ�����������༭����ʱ��SYS$INPUT ������Ϊ�նˣ�������Խ���������༭��

14.6.2 ���� SYS$INPUT Ϊһ���������ļ�

�� SYS$INPUT ����Ϊһ���ļ����������Ҳ���Դ��ļ�������롣ע�⣬DCL �����������У��������ֱ�Ӱ��������ϵ��ı����ݸ������ӳ��������������ϰ��� DCL ���Ż����ʽ��DCL �����滻������ŵ�ֵ������ֵ����ʽ���������������ʹ�ø�̾�� (!)����ô���������ݸ�����ӳ��ᴦ�������̾�� ��

�������ļ�������ָ��Ϊ SYS$INPUT����Ҳ���԰ѳ��������������ļ��С��⵼�±�������������̶�ȡ���򣬶����Ǵ���һ���ļ���

��������չʾһ��������̣�������һ�� FORTRAN ������Һ�������������:


$ FORTRAN/OBJECT=TESTER/LIST=TESTER SYS$INPUT
C  THIS IS A TEST PROGRAM
   A = 1
   B = 2
   STOP
   END
$ PRINT TESTER.LIS
$ EXIT

FORTRAN ����ʹ���߼��� SYS$INPUT ��ʶ������ļ������� SYS$INPUT ��ͬ�����������̣���� FORTRAN ������������� FORTRAN ����֮������ (ֱ����һ����ʼ����Ԫ����������)���������ʱ��������������ļ�: TESTER.OBJ �� TESTER.LIS��Ȼ��PRINT �����ӡ����ļ���

14.7 ִ������������

������̵�����������ݡ�������Ϣ��������У�飬���Ա�ָ�����ն˻������ļ���������������ָ������ķ���:

  • ��ʾ����
  • �ض��������ӳ������
  • ��������̷�������
  • �ض��������Ϣ

14.7.1 ��ʾ����

ʹ�� TYPE ������ʾ�м��г����Ҳ���Ҫ�����滻���ı���TYPE �������ָ���ļ�������д�� SYS$OUTPUT��

�����������У�SYS$INPUT ��ָ��Ϊ�����ļ���TYPE ����������ж�ȡ���ݣ������ն�����ʾ��Щ�С�


$ ! Using TYPE to display lines
$ TYPE SYS$INPUT
REPORT BY MARY JONES
PREPARED APRIL 15, 2002
SUBJECT: Analysis of Tax Deductions for 2002
   .
   .
   .
$ EXIT

ʹ�� WRITE ����д��������Ż�ʷ����������ݡ����ǰ������������� (" ") �ڣ����� WRITE �����Զ�ִ�з����滻��

Ҫʹ�� WRITE ������ַ�����ʾΪ�����ı������ַ����������� (" ") �ڡ�����:


$ WRITE SYS$OUTPUT "Two files are written."
Two files are written.

Ҫ���ַ����а������ţ�ʹ���������� ("" "")������:


$ WRITE SYS$OUTPUT "Summary of ""Q & A"" Session"
Summary of "Q & A" Session

Ҫ��һ�����ϼ���һ���ı�����һ���Ӻ� (+) �����ֺ� (-) �����������ַ���������:


$ WRITE SYS$OUTPUT "Report by Mary Jones" + -
" Prepared April 15, 2002"
Report by Mary Jones Prepared April 15, 2002

WRITE �����Զ�ִ�з����滻������ʾ���ŵ�ֵ��Ҫ���ַ�����ǿ�Ʒ����滻���ѷ�������ʡ�Ժ��ڡ�����:


$ AFILE = "STAT1.DAT"
$ BFILE = "STAT2.DAT"
$ WRITE SYS$OUTPUT "''AFILE' and ''BFILE' ready."
STAT1.DAT and STAT2.DAT ready.

����������У�STAT1.DAT �Ƿ��� AFILE �ķ��룻STAT2.DAT �Ƿ��� BFILE �ķ��롣

14.7.2 �ض��������ӳ������

������ó��������ϵͳӳ������ǵ����д���߼��� SYS$OUTPUT ָ������Դ������Ĭ�ϣ�SYS$OUTPUT ��ͬ���նˡ�Ȼ�������԰����·���֮һ�ض������:

  • �����������ʱ��ʹ�� /OUTPUT �޶��ʡ����� /OUTPUT �޶��ʵ� DCL �������: ACCOUNTING��CALL��DIRECTORY��HELP��LIBRARY��RUN (����)��SPAWN �� TYPE��
  • ʹ�� DEFINE/USER_MODE �����ʱ�� SYS$OUTPUT ���¶���Ϊһ���ļ���
  • ��ʱ�� SYS$OUTPUT ����Ϊһ�����豸 (ʹ�� DEFINE/USER_MODE ����)������������������

�����������У�������̰� SHOW USERS ���������ض���һ���ļ���ֻ��ִ�� SHOW USERS ����ʱ��SYS$OUTPUT �¶������Ч��


$ DEFINE/USER_MODE SYS$OUTPUT SHOW_USER.DAT
$ SHOW USERS
$ !
$ ! Process the information in SHOW_USER.DAT
$ OPEN/READ INFILE SHOW_USER.DAT
$ READ INFILE RECORD
   .
   .
   .
$ CLOSE INFILE
$ EXIT

�����������У�SYS$OUTPUT ����Ϊһ�����豸 (NL:)��


$ DEFINE/USER_MODE SYS$OUTPUT NL:
$ APPEND NEW_DATA.DAT STATS.DAT
   .
   .
   .

/USER_MODE �޶�����������һ����ʱ�߼�����ֵ����ֻ������һ��ӳ�����֮ǰ����Ч�����������ִ��֮��SYS$OUTPUT �ظ���Ĭ�϶��� (ͨ�����ն�)��

������ʹ�� DEFINE/USER_MODE �����ض�����������ͳ�����ִ�е� DCL ������������Ϊ���棬ʹ�� DEFINE �������¶��� SYS$OUTPUT������ʹ�� DEASSIGN ����ɾ������ʹ�õĶ��塣

�±������г���������ͳ�����ִ�е� DCL ����:

= ALLOCATE ASSIGN
ATTACH CALL CANCEL
CLOSE CONNECT CONTINUE
CREATE/LOGICAL_NAME_TABLE DEALLOCATE DEASSIGN
DEBUG DECK DEFINE
DEFINE/KEY DELETE/SYMBOL DISCONNECT
ELSE ENDIF ENDSUBROUTINE
EOD EXAMINE EXIT
GOSUB GOTO IF
INQUIRE ON OPEN
READ RECALL RETURN
SET CONTROL SET DEFAULT SET KEY
SET ON SET OUTPUT_RATE SET PROMPT
SET PROTECTION/DEFAULT SET SYMBOL/SCOPE SET UIC
SET VERIFY SHOW DEFAULT SHOW KEY
SHOW PROTECTION SHOW QUOTA SHOW STATUS
SHOW SYMBOL SHOW TIME SHOW TRANSLATION
SPAWN STOP SUBROUTINE
THEN WAIT WRITE

��������չʾ�������� SHOW TIME ���������ض����ļ� TIME.DAT ������ڽ����ֵ SYS$OUTPUT ֮�����ֻظ���Ĭ�϶��� (�ն�)��


$ DEFINE SYS$OUTPUT TIME.DAT
$ SHOW TIME
$ DEASSIGN SYS$OUTPUT


ǰҳ ��ҳ Ŀ¼ ����