você está aqui: Home  → Colunistas  →  Cantinho do Shell

 

Macetes diversos

Por Júlio Neves

Data de Publicação: 16 de Abril de 2007

Dica 1 : Repare esta seqüência de comandos no prompt:

/home/jneves> cd bin
-bash: cd: bin: No such file or directory
/home/jneves> CDPATH=/usr/local
/home/jneves> cd bin
/usr/local/bin
/usr/local/bin>

Com esse exemplo eu quis mostrar que a variável CDPATH atua como o PATH, sendo que esta última contém os diretórios que devem ser percorridos na procura de arquivos e a primeira contém os os diretórios que devem ser percorridos na procura por subdiretórios.

Para agilizar o meu lado, repare o conteúdo do meu CDPATH:

/home/jneves> echo $CDPATH
.:..:~

Desta forma, quando eu faço um cd, os subdiretórios serão pesquisados no diretório corrente, no seu diretório pai e no meu diretório home, nesta ordem.

Dica 2 : Já que falamos na variável PATH, que tal usarmos o comando tr para facilitar a legibilidade do seu conteúdo:

/home/jneves> echo $PATH
/bin:/usr/bin:/sbin:~:.
/home/jneves> echo $PATH | tr ':' '\n'
/bin
/usr/bin
/sbin
~
.

Neste exemplo o tr trocou os dois-pontos (:) por new-line (ENTER), facilitando a leitura do conteúdo da variável.

Dica 3 - Quando você executa diversos comandos encadeados em um pipe (|), o return code dado por echo $? reflete apenas o resultado de saída do último comando executado no pipe. O array PIPESTATUS, por sua vez, armazena em cada elemento o resultado respectivo de cada um dos comandos do pipe. ${PIPESTATUS[0]} tem o return code do primeiro comando, ${PIPESTATUS[1]} contém o return code do segundo, e assim por diante.

O exemplo a seguir mostra um script que executa um pipe de três comandos, e imprime o return code de cada um dos comandos:

/home/jneves> date | grep Wed | wc -l
/home/jneves> echo ${PIPESTATUS[*]}
0 1 0

Na última linha temos a impressão do array ${PIPESTATUS}: 0 (zero) indicando o sucesso do primeiro comando, 1 indicando que o grep falhou ao procurar pela cadeia Wed, e novamente 0 (zero) para o sucesso do comando wc -l.

Até amanhã...

Duvidas? julio.neves@gmail.com
Deseja fazer curso de Programação em Shell? julio.neves@tecnohall.com.br

Conheça também o livro de Programação Shell de Júlio Neves

Publicado originalmente na Dicas-L em 25 de fevereiro de 2005
Error: No site found with the domain 'moodle.idph.com.br' (Learn more)