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バージョン番号を含めることができ、実行可能ファイルにどのファイルが含まれているかを確認できます。

私の考えではRCSidentコマンド同様の機能があります。

先行する「#」は行の残りの部分をコメントにするkshため、一部のプロジェクトでは、kshSCCSwhatコマンドがスクリプトのすべての使用などを印刷できるように、すべてのスクリプトを作成するようです。

関連情報