[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: Expressões regulares usando SED (novo problema)
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] Re: Expressões regulares usando SED (novo problema) |
Date: |
Tue, 6 Nov 2007 21:46:14 -0200 |
Miguel, o -eq é para comparações numéricas.
$ id=043fecd0
$ outro_id=043fecd0
$ [[ $id = $outro_id ]] && echo "sao iguais" || echo "sao diferentes"
sao iguais
$ outro_id=043fecd1
$ [[ $id = $outro_id ]] && echo "sao iguais" || echo "sao diferentes"
sao diferentes
$ [[ $id -eq $outro_id ]] && echo "sao iguais" || echo "sao diferentes"
bash: [[: 043fecd0: value too great for base (error token is "043fecd0")
sao diferentes
use o operador = nesse caso ;-)
On Nov 6, 2007 3:33 PM, miguelcm86 <address@hidden> wrote:
>
> Boas...
>
> Bem isto está quase lá, estou agora a ter problemas na comparação das
> strings UUID. Talvez porque são strings complexas do tipo:
> hj34-jk323-3j3k23m-23nk32.....
>
> estou a fazer assim:
> primeiro recebo a string do disco:
> ## Inserir na variável id a identificação da partição '/':
>
>
> verify=$(mount | sed -n '/ on \/ /{s/ on \/ .*//;p}')
> id=$(sudo vol_id $verify | sed -n '/ID_FS_UUID=/{s///;p}')
>
> está a inserir em id a string certa!!
>
> depois leio a srting que está guardado no ficheiro report:
>
> id_file=$(sed -n '/ID_FS_UUID=/{s///;p}' report)
>
> agora testo se é igual, se não for, aviso ao usuário e meto state=0:
>
> [[ "$id_file" -eq "$id" ]] || echo "id não corresponde" && state="0"
>
> o erro que me dá na hora de verificação é este:
>
> ./choicet.sh: line 35: [[: 043fecd0: valor muito grande para a base
> (error token is "043fecd0")
>
> Alguém sabe onde estou a errar, já agora expliquem o problema ;)
>
> Obrigado pessoal por tudo
>
>
>
--
Tiago B Peczenyj
Linux User #405772
http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"