O que é # @ (#) na sintaxe do Kornshell?

6

Estou vendo um script em uma caixa AIX, onde várias linhas começam com #@(#)

O que isso indica? Claramente, fazer uma pesquisa no Google é totalmente inútil para símbolos.

Aqui estão as linhas do script:

#!/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.
    
por Max Vernon 29.07.2014 / 18:41

1 resposta

8

A string estranha "@ (#)" é usada pelo antigo sistema de controle de versão do SCCS . Especificamente, o what comando olhar através de um arquivo (binário ou texto) e encontrar seqüências terminadas em ASCII-NUL que começaram com "@ (#)", e imprimir essa seqüência de caracteres. Isso permitiu que você incorporasse números de versão ASCII imprimíveis em arquivos ".o" e, por fim, em executáveis, para que você pudesse saber quais versões de quais arquivos terminavam no executável.

Acho que o comando RCS ident tinha uma função semelhante.

O líder '#' deixa o resto da linha em um comentário ksh , então meu palpite é que algum projeto escreveu todos os seus scripts ksh para que um comando SCCS what imprimisse todo o uso , etc para os scripts.

    
por 29.07.2014 / 19:42

Tags