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