Kornshell 语法中的 #@(#) 是什么

Kornshell 语法中的 #@(#) 是什么

我正在查看 AIX 机器上的一个脚本,其中有几行以#@(#)

这说明什么?显然,谷歌搜索对于符号来说是完全没有结果的。

以下是脚本中的几行:

#!/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,所以我的猜测是某个项目编写了所有ksh脚本,以便 SCCSwhat命令可以打印出脚本的所有用法等。

相关内容