Mais scripts de shell do que um em um arquivo de texto?

4

Estou aprendendo scripts de shell para meu curso introdutório de UNIX na minha universidade, e estou curioso para saber se é possível ter mais de um script de shell em um arquivo de texto. O que quero dizer com isso é, por exemplo, em pascal quando você tem:

var…

begin
end.
//another program which will be ignore
O compilador

ignora qualquer coisa após o final do período. Pode algo assim ser feito com a Shell? Estou perguntando porque eu tenho que passar por muitos exemplos de shell e ter muitos arquivos abertos não é muito útil, com isso eu poderia executar o mesmo script sem se preocupar com permissões u + x e apenas executar o script com o mesmo nome sempre que eu for para o próximo exemplo de código. Então é possível ter algo que diga: final, não leia mais nada. ? Obrigado em ancia por responder a esta pergunta boba.

    
por Martin 22.09.2014 / 14:13

2 respostas

4

Para esse propósito - que é parar o script em qualquer linha específica - você poderia simplesmente usar exit para quebrar neste ponto. Para qualquer aplicação na vida real isso pareceria um pouco grosseiro, mas para fins de aprendizado, ele deveria se encaixar.

Diga:

#!/bin/sh

# now I am working here
do_something
exit

# this is old, do not execute
did_something
exit

# this is even older, do not execute
did_something_long_ago
    
por 22.09.2014 / 14:23
0

Você pode usar a construção : <<"SOMEWORD" ... SOMEWORD que substitui o comentário por #

##### The following "code block" is effectively ignored
: <<"SOMEWORD"
/etc/init.d/mydatabase clean_stop
mydatabase_dump /var/db/db1 /mnt/fsrv0/backups/db1
logger -t SYSHALT "System halt: pre-shutdown actions done, now shutting down the system"
shutdown -h NOW
SOMEWORD
##### The ignored codeblock ends here
    
por 25.10.2014 / 23:41