Este endereço mudou para: http://andrem.wordpress.com

Os projetos que estavam aqui para download, podem ser baixados em: http://github.com/andrem
Textos
Cups Parte Um 
Dica Rewrite Ubuntu 
Dicas C 
Dicas Shell Script 
HTML Template Perl 
Ketchup 
Mysql pt BR 
Oscommerce Shopline 
Perl com C 
Pesquisa Cpan Firefox 
Pesquisa Perldoc Firefox 
Processos no Kernel Linux 
Search Plugin 
Tradutor em Perl 
User Cups Ubuntu 
Whois em PHP 


Links
Dicas Shell Script

No Shell é uma serie de atalhos para tratar as variáveis que são passadas como argumentos pela linha de comando.

Veja um exemplo:


#!/bin/sh
for i in `echo $*`; do
arqumento="$(echo $i)"
mv $arqumento `echo $arqumento | sed 's/[0-9]/X/g'`
done


Essas linhas tem quase que a mesma função que o comando rename. A variável $* guarda todos os argumento passados para seu script, ou seja se você tiver em seu diretório os seguintes arquivos:

#ls
teste1.txt teste2.txt teste3.txt teste4.txt

E o código acima estiver em um arquivo chamado teste.sh, e ele for executado mais ou menos assim:

#sh teste.sh `ls`

Seu diretório ficará assim:

#ls
testeX.txt testeX.txt testeX.txt testeX.txt

Outras variáveis que podem ser muito útil para tratar argumentos de entrada em seu script são:

$# Quantidade de argumentos
$n Argumento n (1,2....)

Mais um exemplo:

Você precisa saber se foi passado dois argumentos para seu script, você pode checar isso facilmente com $#:


#!/bin/sh

if [ $# -eq 2 ]; then
echo -e "Dois Arumentos passados \n"
echo -e $1 $2 "\n"
fi


O script acima só executará se for passado 2 argumentos na linha de comando.

Pode acontecer de você necessitar de pegar somente uma parte da variável, nesse caso você pode usar os parâmetros de expansão de variáveis do shell:


#!/bin/sh
echo -e "Digite uma data no formato dd/mm/aaaa: \n"
dia=${1:0:2}
echo $dia


O script acima recebe um dado passado pela linha de comando (ex: sh data.sh 09/02/2007) e imprime o dia (09).

André Osti de Moura
andreoandre [a] gmail [.] com