shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Ajuda em script para separar arquivo binario de scrip


From: mop
Subject: Re: [shell-script] Ajuda em script para separar arquivo binario de script
Date: Wed, 11 Jul 2007 16:13:32 -0300

Como esta é uma lista de shell não custa reforçar, mas não pesquisei, vai no
"intuitômetro" da minha experiência, exclusivamente com bash:

1. -eq é para comparar números exclusivamente

2. [ ${tipo} = "Bourne" ] somente deve ser usado quando a variável tipo não
puder ser vazia ou contendo espaços, caso contrário haverá erro. Não há nenhuma 
necessidade de aspas nessa string FIXA E SEM ESPAÇOS à direita

3. [ "${tipo}" = Bourne ] a forma mais econômica é essa, ou melhor, sem as
chaves, que neste caso, não vejo necessidade delas, ja que a variável tipo 
não está em meio a uma string onde o shell não teria como identificá-la,
como em: echo abc${tipo}123

4. Para prevenir o vazio à esquerda do comparador costumo fazer:
 [ "$tipo" = Bourne ] ou [ _$tipo = _Bourne ]

A segunda solução não serve caso $tipo possa conter espaços, por exemplo,
tipo='shell script', quer dizer, o mais garantido é a opção com aspas. Se
tipo nunca contiver espaços e nunca for vazio é possível simplificar para
[ $tipo = Algo ]
Em resumo, ratificando, a solução 100%, que cobre todos os casos com strings
é:
[ "$tipo" = Algo ]
Como o que está à direita neste caso é fixo, na hora que se escreve já é 
possível saber se são necessárias aspas ou não.

Não é preciso um script para experimentar isso. Basta a linha de comando do
shell:
shell-prompt> tipo="1 2 3"; [ "$tipo" = 2 ]&&echo igual||echo diferente

Daí é só brincar com as possibilidades, com um mínimo de trabalho, usando a 
magnífica tecla seta para cima. (don't be root :)
Não esquecer de fazer "tipo" vazio, com espaços somente, com espaços e 
caracteres, etc.

Pode setar na linha de comando:
set -x
Para o shell mostrar visualmente as linhas de comando que está executando.
Para retornar ao normal:
set +x

É isso, espero que os novatos aproveitem.
É muito bacana brincar com um shell a la "unix".
Não mostrem para as crianças, pois poderão achar muito mais legal que brincar
de clique-clique e ficar viciadas. :)

PS
Isto pode não valer inteiramente em outro shell



reply via email to

[Prev in Thread] Current Thread [Next in Thread]