Shell scripts não convencionais
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 18 de Julho de 2003
Na primeira linha de uma shell, geralmente encontramos algo do tipo:
$ #!/bin/bash
ou
$ #!/bin/csh
O que poucos sabem, é que podemos criar shells diretamente com outros comandos do Unix.
Por exemplo, eu frequentemente preciso saber o meu endereço de trabalho, mas nunca me lembro onde coloquei o cartão com todos os dados. Este problema pode ser facilmente resolvido com uma shell como abaixo:
#! /bin/more Rubens Queiroz de Almeida Cidade Universitária Zeferino Vaz Centro de Computação Unicamp 13.083-970 - Campinas - São Paulo
Este é um script que ecoa para a tela o seu conteúdo. Ao executá-lo temos:
#! /bin/more Rubens Queiroz de Almeida Cidade Universitária Zeferino Vaz Centro de Computação Unicamp 13.083-970 - Campinas - São Paulo
Bom, apareceu também a primeira linha, que é uma informação que não
preciso. Para resolver isto, basta fornecer ao comando more
, o argumento
+2
, instruindo o comando a iniciar seu trabalho a partir da linha 2. O
script fica então assim:
#! /bin/more +2 Rubens Queiroz de Almeida Cidade Universitária Zeferino Vaz Centro de Computação Unicamp 13.083-970 - Campinas - São Paulo
Desta forma a linha inicial não é mais exibida.
Da mesma forma, se eu substituir a primeira linha por
$ #! /bin/ls -l
Teremos uma shell que executa o comando ls -l
sobre ele mesmo,
como abaixo:
$ ./endereço
-rwxr-xr-x 1 queiroz queiroz 137 Jul 12 18:40 ./endereço