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



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a