Durante minha experiência com o
Linux aprendi muitas coisas, como compilar programas, criar pacotes, criar scripts e muito mais. O objetivo desse pequeno artigo é apresentar algumas variáveis padrões ou variáveis de sistema que eu costumo usar, eu tenho conhecimento no Linux que é basicamente para ajudar os iniciantes para que possam também criar seus scripts. É claro que deve ter muito mais do que eu vou apresentar, mas o que vou apresentar de variáveis padrões já vai ajudar quem for começar a programar em
shell.
Existem duas categorias de variáveis de sistema no Linux. As variáveis de ambiente do bash, que existem independentemente de você as ter definido ou não. Elas são criadas automaticamente, assim que você faz o login no sistema.
São também conhecidas como
Variáveis Globais. Mas também tem as variáveis do shell, são variáveis contidas exclusivamente no shell no qual elas foram configuradas ou definidas, usadas para manter registro de dados como, por exemplo, o valor do diretório de trabalho atual.
Conhecendo as Variáveis Padrão
A quantidade de Variáveis Padrão são muitas, o que eu basicamente uso, são essas:
$USER - Retorna o Nome do Usuário.
$UID - Retorna o ID do Usuário.
$PWD - Retorna o Diretório Atual.
$HOME - Retorna o Diretório HOME do Usuário Atual.
$PATH - Obtém o PATH Atual do Sistema.
$LINES - Retorna o Número de Linhas do Terminal.
$COLUMNS - Retorna o Número de Colunas do Terminal.
$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, [...] - Usado dentro dos Scripts para Inserção de Parâmetros Posicionais.
$? - Para Retornar o Status de Saída ou de Erro.
Mas é possível listar muitas outras variáveis de sistema (vou listar inclusive o que já está acima):
$BASH_VERSION - Armazena a versão do shell bash em execução, em formato legível por humanos.
$CDPATH - Caminho de busca do comando cd.
$COLUMNS - Retorna o número de colunas do terminal.
$DIRSTACK - Pilha de diretórios disponíveis para os comandos pushd e popd.
$DISPLAY - Configura o valor do display X.
$EDITOR - Configurar o editor de texto padrão do sistema.
$EUID - Retorna o ID do usuário.
$GROUPS - Retorna informações sobre o GID.
$HISTFILE - Nome do arquivo no qual o histórico de comandos é salvo.
$HISTFILESIZE - Número máximo de linhas contidas no arquivo de histórico.
$HISTSIZE - Número de comandos a serem armazenados no histórico de comandos. O valor padrão é 500.
$HOME - Diretório pessoal do usuário atual.
$HOSTNAME - Nome do computador.
$HOSTTYPE - Para obter a arquitetura da maquina.
$IFS - (Separador de Campos Interno). Para separar palavras após a expansão e para dividir linhas em palavras ao usar o comando read do shell. O valor padrão é .
$LANG - Configurações de localização e idioma atuais, incluindo a codificação de caracteres.
$LINES - Retorna o número de linhas do terminal.
$MACHTYPE - Para obter a arquitetura da maquina.
$OSTYPE - Detecta o Sistema Operacional.
$PATH - Caminhos de busca para os comandos. É uma lista de diretórios, separados por dois-pontos (:), nos quais o shell procura pelos executáveis dos comandos.
$PIPESTATUS - Retorna o status de uma saída de pipe.
$PPID - Obtém o ID do processo pai.
$PS1, $PS2, $PS3, $PS4 - Configurações do Interpretador de Terminal.
$PWD - Valor do diretório de trabalho atual.
$RANDOM - Retorna um número aleatório entre 0 e 32767.
$TMOUT - Timeout padrão do comando read do shell.
$TERM - Tipo de terminal de login do usuário.
$SHELL - Configuração de caminho do shell que interpretará os comandos digitados. Geralmente, é o shell bash.
$UID - Retorna o ID do usuário.
$USER - Usuário logado atualmente.
Também tem algo específico para os
Scripts:
$LINENO - Obtém o numero da linha que o script esta executando. Útil para debug.
$RANDOM - Obtém um número aleatório.
$REPLY - mantém o último valor lido.
$SECONDS - Para obter a quantos segundos o script está rodando.
$1, $2, $3, $4, $5, $6, $7, $8, $9 - Parâmetros posicionais.
$0 - Obtém o nome do script.
$* - Todos os parâmetros posicionais.
$@ - Todos os parâmetros posicionais, separados por espaço.
$# - Número de parâmetros.
$$ - PID atual.
$! - ID de uma tarefa em background.
$? - Status de saída ou de erro.
$_ - Obtém o argumento do comando anterior.
Para facilitar, existem três comandos que te vão listar as variáveis de ambiente do Linux. São eles:
printenv
env
set
Use um desses comandos e você terá uma lista bem completa de variáveis pré-definidas no sistema.
Conclusão
Tomando conhecimento dessas variáveis de sistema, as variáveis padrões, você poderá criar scripts com mais eficiência e mais enxutos. Além disso, te proporcionará um conhecimento extra em relação ao funcionamento e as propriedades do sistema que você está usando.
Referências