Kornshell 구문에서 #@(#)은 무엇입니까?

Kornshell 구문에서 #@(#)은 무엇입니까?

AIX 시스템에서 스크립트를 보고 있는데 다음으로 시작하는 여러 줄이 있습니다.#@(#)

이것은 무엇을 의미 하는가? 분명히 Google 검색은 해당 기호에 대해 전혀 효과가 없었습니다.

다음은 스크립트의 몇 줄입니다.

#!/usr/bin/ksh
#
#@(#)
#@(#) USAGE: dump_master_db [opts] SERVER [AREA]
#@(#)  opts: -p PAGENAME : send Pages to PAGENAME rather than the default (usually database)
#@(#)        -nodbcc     : will not do the DBCCs before the dump
#@(#)                     -c COMPRESSION_LEVEL : dump the database at the stated compression level.
#@(#)
#@(#) This script will do some DBCCs, truncates the log and then dumps the master database on any SERVER
#@(#) The SERVER parm is used to build the logical device name as follows:
#@(#)     SERVER_master_dump
#@(#) NOTE: There is no AREA and no stripes for this dump device.
#@(#)       COMPRESSION: VALUES 1 (least) to 9 (most compressed).
#@(#)       Currently, we only use values of none  to 1.

답변1

이상한 문자열 "@(#)"은 실제로 다음으로 인해 발생합니다.고대 SCCS 버전 제어 시스템. 구체적으로,what주문하다파일(바이너리 또는 텍스트)을 보고 "@(#)"으로 시작하는 ASCII-Nul 종료 문자열을 찾은 다음 해당 문자열을 인쇄합니다. 이를 통해 ".o" 파일과 최종 실행 파일에 인쇄 가능한 ASCII 버전 번호를 포함할 수 있으므로 어떤 파일이 실행 파일에 포함되었는지 알 수 있습니다.

제 생각에는RCS ident명령비슷한 기능을 가지고 있습니다.

선행 "#"은 줄의 나머지 부분을 주석으로 만들기 ksh때문에 일부 프로젝트에서는 kshSCCS what명령이 스크립트의 모든 사용 등을 인쇄할 수 있도록 모든 스크립트를 작성하는 것 같습니다.

관련 정보