Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Script 
Um script ou script é um arquivo de texto que contém uma série de instruções que podem 
ser executadas na linha de comando e que serão executadas em uma linha. Nesse sentido, 
eles são iguais aos arquivos com uma extensão MS-DOS BAT, embora, é claro, como 
não há conceito de extensão em sistemas UNIX, eles podem ter qualquer nome. 
O único requisito é que este arquivo de texto tenha permissão de execução para a pessoa 
que tentar executá-lo. Como alternativa, você pode chamar o intérprete e fornecer o nome 
do script como parâmetro, mas é mais conveniente dar permissão de execução do script 
para nos poupar de digitar o nome do intérprete. 
 
Essas instruções serão processadas em ordem, como se alguém as tivesse escrito na 
mesma ordem na linha de comando (não exatamente, mas quase). Portanto, eles vão um 
por linha (as quebras de linha são interpretadas da mesma forma como se você tivesse 
pressionado ENTER), ou separados por caracteres `` ponto-e-vírgula '' (;) se eles 
estiverem na mesma linha. 
Ao executar um script para o shell, ele tenta ser executado como um binário normal, mas 
quando o sistema operacional percebe que não é um binário válido, mas é um arquivo de 
texto, ele executa um interpretador filho e começa a interpretar o arquivo de texto. Se 
fosse um arquivo com algum texto, mais cedo ou mais tarde (provavelmente na primeira 
linha) haveria um erro de sintaxe e a execução do programa seria abortada. 
Como o resto das linguagens de programação (pelo menos todas as que eu vi), há um 
caractere ou caracteres especiais que denotam comentários. Este texto é ignorado pelo 
intérprete ao ler o roteiro, e servem apenas para que uma pessoa, ao editar o roteiro, possa 
entender como ele funciona. Este caractere especial é o sinal de hash `# ', e denota que a 
partir daí até o final da linha, o resto dos caracteres são um comentário do programador 
(como C ++` //'). 
Como se fosse qualquer executável, um script permite o redirecionamento de entrada e 
saída. O mesmo não acontece com os arquivos BAT do MS-DOS, por razões óbvias (o 
MS-DOS está errado). Redirecionamentos de entrada, saída padrão, erro padrão e todas 
as saídas são feitas com os personagens , 2>e &>(dependendo do intérprete, assim 
são os do bash), como eu estou supondo que você já sabe. 
Algo que você talvez não saiba é que existe um arquivo de dispositivo no UNIX, padrão 
para todos os clones (no Linux é), que é o/dev/null. Tudo o que é gravado nesse 
dispositivo virtual acaba em um buraco negro, ou seja, é completamente ignorado. E para 
que serve isso? Você pode se perguntar. 
Bem, se você quiser verificar se um programa retorna um erro, mas não quer que a saída 
padrão apareça na tela (porque o usuário não está interessado, por exemplo), redirecione 
a saída total (com &>) para /dev/null. 
Reforçando o aprendizado
Script Um script ou script é um arquivo de texto que contém uma série de instruções que podem ser
executadas na linha de comando e que serão executadas em uma linha. Nesse sentido, eles são
iguais aos arquivos com uma extensão MS-DOS BAT, embora, é claro, como não há conceito de
extensão em sistemas UNIX, eles podem ter qualquer nome. O único requisito é que este arquivo de
texto tenha permissão de execução para a pessoa que tentar executá-lo. Como alternativa, você
pode chamar o intérprete e fornecer o nome do script como parâmetro, mas é mais conveniente dar
permissão de execução do script para nos poupar de digitar o nome do intérprete. Essas instruções
serão processadas em ordem, como se alguém as tivesse escrito na mesma ordem na linha de
comando (não exatamente, mas quase). Portanto, eles vão um por linha (as quebras de linha são
interpretadas da mesma forma como se você tivesse pressionado ENTER), ou separados por
caracteres `` ponto-e-vírgula '' (;) se eles estiverem na mesma linha. Ao executar um script para o
shell, ele tenta ser executado como um binário normal, mas quando o sistema operacional percebe
que não é um binário válido, mas é um arquivo de texto, ele executa um interpretador filho e começa
a interpretar o arquivo de texto. Se fosse um arquivo com algum texto, mais cedo ou mais tarde
(provavelmente na primeira linha) haveria um erro de sintaxe e a execução do programa seria
abortada. Como o resto das linguagens de programação (pelo menos todas as que eu vi), há um
caractere ou caracteres especiais que denotam comentários. Este texto é ignorado pelo intérprete ao
ler o roteiro, e servem apenas para que uma pessoa, ao editar o roteiro, possa entender como ele
funciona. Este caractere especial é o sinal de hash `# ', e denota que a partir daí até o final da linha,
o resto dos caracteres são um comentário do programador (como C ++` //'). Como se fosse qualquer
executável, um script permite o redirecionamento de entrada e saída. O mesmo não acontece com
os arquivos BAT do MS-DOS, por razões óbvias (o MS-DOS está errado). Redirecionamentos de
entrada, saída padrão, erro padrão e todas as saídas são feitas com os personagens , 2>e
&>(dependendo do intérprete, assim são os do bash), como eu estou supondo que você já sabe.
Algo que você talvez não saiba é que existe um arquivo de dispositivo no UNIX, padrão para todos
os clones (no Linux é), que é o/dev/null. Tudo o que é gravado nesse dispositivo virtual acaba em um
buraco negro, ou seja, é completamente ignorado. E para que serve isso? Você pode se perguntar.
Bem, se você quiser verificar se um programa retorna um erro, mas não quer que a saída padrão
apareça na tela (porque o usuário não está interessado, por exemplo), redirecione a saída total (com
&>) para /dev/null.

Mais conteúdos dessa disciplina