我正在查看 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
命令可以打印出脚本的所有用法等。