Comando printf
O comando interno
printf, é utilizado para imprimir uma mensagem na tela. Abaixo, há alguns exemplos de sua utilização.
Para imprimir números inteiros, utiliza-se o comando abaixo:
printf "%d\n" 5
Obs.: o código
%d, representa um número inteiro.
Pode-se inserir mais de um número em um mesmo comando, basta colocar dois códigos de formatação, conforme o exemplo abaixo:
printf "Há %d clientes com compras acima de %f.\n" 50 20000
Obs.: o código
%f representa um número de ponto flutuante.
Para imprimir um número com sinal em uma coluna com largura de 10 caracteres, utilize o comando abaixo:
printf "%10d\n" 11
Códigos de formatação
Alguns exemplos de códigos de formatação que podem ser usados em conjunto com o comando
printf:
- %e :: exibe um número de ponto flutuante, mostrando em notação exponencial (também chamada de "científica").
- %f (ou %F) :: exibe um número de ponto flutuante sem exponencial.
- %g (General) :: deixa o bash escolher %e ou %f, dependendo do valor.
- %d (ou %i) :: representa um número com sinal.
- %s :: exibe uma string.
- \t :: tabulação.
- \n :: iniciar uma nova linha.
- \\ :: barra invertida.
Declaração de variáveis
A linguagem Shell Script é fracamente tipada, isso quer dizer que não necessita ser declarada. Quando não se declara uma variável, ela é tratada como String.
A tradição dita que as variáveis sejam escritas em maiúsculo, pois a maior parte dos comandos são em minúsculo. Abaixo, estão alguns exemplos sobre como utilizar as variáveis.
Para atribuir uma String vazia, basta utilizar a variável da seguinte maneira:
CUSTO=
Para ver o que está contido dentro da variável, utiliza-se o símbolo do cifrão antes da variável, como mostra o exemplo abaixo:
printf "%s" $CUSTO
As aspas no Shell Script não são utilizadas para identificar um valor, como String, mas sim, para delimitar onde começa e termina o valor.
Teste os comandos abaixo compreender melhor:
CUSTO=Maria Joao Carlos
Se você tentar executar esse comando, você perceberá que ocorrerá um erro, pois o bash não consegue identificar que a palavra
Joao e
Carlos fazem parte da mesma estrutura.
Para que ele possa identificar
Maria Joao Carlos como um único valor a ser recebido pela variável, você terá que delimitar utilizando aspas duplas, conforme o exemplo abaixo:
CUSTO="Maria João Carlos"
$ printf "%s" $CUSTO
Se você deseja colocar um valor contido em uma outra variável concatenando com outros valores, poderá fazer de duas formas:
1. A primeira, é delimitando a variável dentro das aspas duplas. Para entender melhor, teste o comando baixo.
TAXA=7,25
$ MENSAGEM_DA_TAXA="A taxa é ""$TAXA""%"
$ printf "%s" "$MENSAGEM_DA_TAXA"
2. A segunda forma, é delimitando a variável dentro de chaves, conforme o exemplo abaixo:
MENSAGEM_DA_TAXA="A taxa é ${TAXA} %"
$ printf "%s" "$MENSAGEM_DA_TAXA"
Uma observação importante, é que, se você utilizar aspas simples, o bash não reconhecerá como uma variável e sim como uma String. Teste o comando abaixo e verificará que será impresso na tela:
$MENSAGEM_DA_TAXA
printf "%s" '$MENSAGEM_DA_TAXA'
Dica: o bash costuma dar erro de espaçamentos, então, sempre deixe sem espaço entre o sinal de igual, a variável e o valor. Exemplo:
Modo errado:
MENSAGEM_DA_TAXA = "A taxa é ${TAXA} %"
Modo correto:
MENSAGEM_DA_TAXA="A taxa é ${TAXA} %"
Atributos de variáveis
Todas as variáveis bash são armazenadas como Strings simples. Cada variável tem determinadas opções chamadas atributos, que podem ser ligadas, ou desligadas, usando o comando
declare.
Para declarar uma variável do tipo inteiro, basta utilizar a opção
-i no comando
declare. Exemplo:
declare -i NUMERO_CONTAS=15
$ printf "%d" "NUMERO_CONTAS"
Para declarar uma constante utilizando o atributo
-r do comando
declare, assim o valor contido na variável não será modificado no decorrer do programa.
declare -r COMPANHIA="Smith and Jones"
$ printf "%s\n" "COMPANHIA"
Pode utilizar o atributo
-p no comando
declare para visualizar o que está contido na variável.
declare -p NUMERO_CONTAS
Para destruir a variável, utilize o comando
unset, antes da variável:
unset CUSTO