script de shell:
Um script de shell é uma série de comandos que serão interpretados por um shell (geralmente sh ou um shell compatível com sh, às vezes outro).
O nome do script pode, mas NÃO precisa, terminar em ".sh" ou ".bash" ou ".csh" etc (dando uma dica quanto ao shell que deve ser lançado por).
Para maior clareza, assumirei: que o nome do script é script
e o shell em que ele deve ser lançado é bash
.
Uma maneira típica de iniciá-lo no shell seria: bash /absolute/path/to/the/script
ou bash ./relative/path/to/the/script
. Dessa forma, não é necessário ter o bit executável definido, pois ele é lido apenas pelo bash, que então executa o conteúdo.
também pode ser definido como + x (executável) para permitir iniciá-lo diretamente de sua sessão atual com: / absolute / path / to / the / script (ou ./relative/path / para / o / script). Cuidado: por padrão, quando lançado dessa forma, ele é lançado através do shell que você digitou ou através de um shell posix (o comportamento depende do sistema operacional), então ele pode não ser o shell que deveria ser executado por. É por isso que você pode (e deve) especificar como a primeira linha do script:
#! / path / to / good / shell
que indica ao seu sistema operacional que esse script deve ser lançado por / path / to / good / shell.
executável:
Um executável é um arquivo que possui o bit "x" definido para o (s) usuário (s) / grupo (s) para o qual deve ser lançado. Pode ser tipicamente um "binário" ou um script.
Dica: file /some/file
pode informar mais sobre o conteúdo do arquivo. Experimente file /usr/bin/bash
ou file /etc/profile
para ver alguns exemplos.