Shell script - Variáveis especiais

Publicado por Vitor Luis em 11/06/2013

[ Hits: 18.141 ]

Blog: http://howtolinux.com.br/

 


Shell script - Variáveis especiais



Olá pessoal, hoje vou falar sobre algumas variáveis especiais que podemos utilizar em nossos scripts em shell. Então vamos lá.

Existem algumas variáveis especiais, que podemos utilizar em nosso script, para verificação de parâmetros, valores de retorno de comandos e parâmetros para funções dentro de nosso próprio script, etc.

Abaixo segue uma tabela com essas variáveis especiais que estão disponíveis no shell:

Variável Descrição
$0 Parâmetro número 0 (nome do comando ou função)
$1 Parâmetro número 1 (da linha de comando ou função)
... Parâmetro número N (da linha de comando ou função)
$9 Parâmetro número 9 (da linha de comando ou função)
${10} Parâmetro número 10 (da linha de comando ou função)
$# Número total de parâmetros da linha de comando ou função
$* Todos os parâmetros, como uma string única
$@ Todos os parâmetros, como várias strings protegidas
$$ PID do processo atual (do próprio script)
$! PID do último processo em segundo plano
$_ Último argumento do último comando executado
$? Valor de retorno do último comando executado


Vejamos agora alguns exemplos utilizando essas variáveis especiais. Segue alguns scritps abaixo:

#!/bin/bash
cat /etc/arquivo_nao_existe
echo $?

O script acima vai tentar imprimir na tela um arquivo que não existe, e vai ser impresso na tela o número do erro, que no caso é 1. Vejamos um outro exemplo:

#!/bin/bash
if [ -z $1 ]; then
    echo -e "Arquivo não encontrado"
else
    cat $1
fi

No script acima é para ser recebido um parâmetro, esse parâmetro é o nome do arquivo a ser impresso na tela, caso o parâmetro não seja passado é impresso o código do erro. Vejamos agora um exemplo um pouco mais complexo:

#!/bin/bash
echo -e "Nome do Script: $0"
echo -e "PID do Script: $$"
echo -e "Número de Parâmetros Passados: $#"


if [ $# -gt 0 ]; then
    for n in $(seq 1 $#); do
        echo -n "Parâmetro  $n: "
        eval echo -e '$'$n
    done
    echo -e "Todos os parâmetros em uma única string: $*"
else
    echo -e "Nenhum parâmetro foi passado, então nada será impresso"
fi

Quando executar o nosso script dessa forma, teremos essa saída:

./script.sh param1 param2 param3
Nome do Script: ./script.sh
PID do Script: 6249
Número de Parâmetros Passados: 3
Parâmetro 1: param1
Parâmetro 2: param2
Parâmetro 3: param3
Todos os parâmetros em uma única string: param1 param2 param3
Caso seja executado não passando nenhum parâmetro, teremos essa saída:

./script.sh
Nome do Script: ./script.sh
PID do Script: 6258
Número de Parâmetros Passados: 0
Nenhum parâmetro foi passado, então nada será impresso
Por hoje é isso pessoal, espero que seja útil para todos vocês.
Quem tiver dúvidas, críticas e/ou sugestões, comentem aí.

Abraços!

Dica publicada originalmente em:
Outras dicas deste autor

Split de String em C++

Manipulação de strings no bash

Compilando PHP 5.4.X no Debian/Ubuntu

Leitura recomendada

Funções em Shell Script

Shell - Encontrando erros

Aulas Shell Script do zero - Parte 6

Pacman colorido no Arch Linux

Onde está a linha que preciso editar? [Resolvido]

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts