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

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

Re: [shell-script] Res: Duvidas


From: Julio C. Neves
Subject: Re: [shell-script] Res: Duvidas
Date: Fri, 18 Nov 2011 10:08:28 -0200

Estou metendo o bedelho, pq vejo muita gente usando o cmd test ([...]) (que
muitos pensam ser sintaxe do if) de forma errada.

Os operadores = e != são para comparar cadeias de caracteres. Para comparar
números, use respectivamente os operadores -eq e -ne.

Para entender isso, experimente fazer:

[ 01 = 1 ] && echo iguais
[ 01 -eq 1 ] && echo iguais

Ou seja, "asciialmente" ;) falando são diferentes, mas numericamente são
iguais.

Tb é possível usar o interpretador aritmético do bash para fazer
comparações numéricas e isso é mais rápido:

((01 == 1)) && echo iguais

CUIDADO: Usando esta sintaxe, == compara e = atribui.

SuShellso
Julio
*Quer aprender tudo de Shell em 2 fins de semana?*
*  address@hidden <address@hidden> ou  (21) 8112-9988*
**
*** » **julioneves1      » juliobash*



Em 17 de novembro de 2011 23:09, Rafael Nery Brito <address@hidden>escreveu:

> **
>
>
> Boa noite.
>
> Não sei trabalhar com este ttyrec, mas vejo que sua condição usada no "if"
> não parece certa.
>
> Minha sugestão é evitar trabalhar com a ` pois confunde a leitura em
> editores que não ressaltam a sintaxe. Eu prefiro sempre a construção
> $(comando).
>
> De qualquer modo, o erro está nas aspas duplas, que deveriam inexistir na
> sua construção.
> Assim estava:
> if [ "`id -u` !=0" ];
> Assim considero o correto:
> if [ `id -u` != 0 ];
> Assim considero o ideal:
> if [ "$(id -u)" != "0" ];
> ou também:
> if [ "$(id -un)" != "root" ];
>
> Sem mais,
> Rafael Nery Brito
>
> Por favor, não imprima esta mensagem se não for realmente necessário.
> Ao encaminhar esta mensagem:
> 1. Apague os e-mails, nomes e referências que não precisam ser
> encaminhados.
> 2. Ao escolher os destinatários, prefira usar o campo "Cópia Oculta" (CCO
> ou BCC).
> Agindo sempre assim, pessoas e programas duvidosos não terão os dados
> pessoais úteis,
> além de dificultarmos a propagação de vírus, SPAMs e banners.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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