Estou aprendendo shell script e encontrei com um problema de um exemplo do
livro Programação Shell Linux.
Fiz algumas simplificaçoes nos exemplos.
Vejam:
$ grep klaus /etc/passwd
klaus:x:1000:1000:klaus:/home/kurumin:/bin/bash
$ IFS=: # tranformei a variavel $IFS em dois pontos.
Estou aprendendo shell script e encontrei um problema de um exemplo do livro
Programação Shell Linux.
Fiz algumas simplificaçoes nos exemplos.
Vejam:
$ grep klaus /etc/passwd
klaus:x:1000:1000:klaus:/home/kurumin:/bin/bash
$ IFS=: # tranformei a variavel $IFS em dois pontos.
At
$ var=1
$ if expr $var + 1 > /dev/null 2>&1; then echo NUMERICO; else echo STRING; fi
NUMERICO
$
$ var="uhet"
$ if expr $var + 1 > /dev/null 2>&1; then echo NUMERICO; else echo STRING; fi
STRING
2008/9/23 jimmy <[EMAIL PROTECTED]>:
> a expressão regular utilizada é "^[0-9]+$" e não "^[0-9]+" como
a expressão regular utilizada é "^[0-9]+$" e não "^[0-9]+" como você
mencionou.
antes eu fazia esses testes com [ "$(echo $var | grep "^[0-9]+$")" ].
On Tue, Sep 23, 2008 at 03:47:20PM -0300, Pablo Cardoso wrote:
> jimmy, esse método não só testa se o início da variável possui números
> (pois us
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Humberto Cruz wrote:
> pode ser tambem:
>
> $ var=123456 #variavel
> $ tr -d ".," <<< $var #remove ponto ou virgula ( para testar numeros decimais
> )
> $ if [ $var -eq $var ]; then echo "num"; else echo "nao-num"; fi
> #testa numericamente
Não pode
jimmy, esse método não só testa se o início da variável possui números
(pois usa o ^[0-9]+)?
uma variável com valor "nome123" é filtrada nesse caso como numérico
ou não numérico?
[]'s
2008/9/23 jimmy <[EMAIL PROTECTED]>:
> talvez no seu caso seja possível utilizar um modo de testar variáveis
>
pode ser tambem:
$ var=123456 #variavel
$ tr -d ".," <<< $var #remove ponto ou virgula ( para testar numeros decimais )
$ if [ $var -eq $var ]; then echo "num"; else echo "nao-num"; fi
#testa numericamente
[]s
Humberto
talvez no seu caso seja possível utilizar um modo de testar variáveis
que aprendi aqui na lista:
$ var=0123456789
$ if [[ $var =~ "^[0-9]+$" ]]; then echo "numérico"; else echo "não numérico";
fi
numérico
$ var=string1
$ if [[ $var =~ "^[0-9]+$" ]]; then echo "numérico"; else echo "não numérico"
Hehehe resposta de principiante: você pode dar um echo na variável e
utilizar um pipe "tr -d [A-z]" para remover os caracteres que não
sejam numéricos... Para validar, é só usar um if antes desse comando.
Claro que devem haver soluções mais elegantes :P
HTH
2008/9/23 Elvio Barbalho <[EMAIL PROTE
Senhores boa tarde como posso validar se uma variável possui
somente números??
[As partes desta mensagem que não continham texto foram removidas]
Opa, na hora de passar o script para o e-mail ele foi todo desformatado
:-( Mas acredito estar legível :-)
Leandro Santiago escreveu:
> Caso o número de comandos a ser executado possa crescer, e você não
> queira modificar muito o programa, pode fazer assim.
> Por exemplo, tenho três comandos:
>
Caso o número de comandos a ser executado possa crescer, e você não
queira modificar muito o programa, pode fazer assim.
Por exemplo, tenho três comandos:
#!/bin/sh
# lista de comandos que quero executar
comando[0]='ls /tmp'
comando[1]='rm /' # este irá falhar...
comando[2]='echo $PWD'
comando[3
hehe, eu sei...só te provoquei para conseguir essa explicação mais
técnica, já que vi num blog uma pessoa falando do for e while como um
sleep ou delay
2008/9/23 MrBiTS <[EMAIL PROTECTED]>:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
>> Um for ou while também pode ser usado como um sle
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
> Um for ou while também pode ser usado como um sleep, correto?
Eric Raymond já dizia, nas suas histórias do Mestre Foo, que "há mais natureza
unix em uma linha de shell script do que em 10.000
linhas de código C".
Na teoria, um for ou while podem s
Um for ou while também pode ser usado como um sleep, correto?
2008/9/23 MrBiTS <[EMAIL PROTECTED]>:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
>> A minha dúvida é o seguinte: Tem como eu configurar um sleep nesse
>> scritp? Tipo.. ele dá a mensagem Configurando IP e Mask... e após 3
>> se
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
> A minha dúvida é o seguinte: Tem como eu configurar um sleep nesse
> scritp? Tipo.. ele dá a mensagem Configurando IP e Mask... e após 3
> segundos ele configura o IP e a Máscara, depois de 3 segundos ele dá a
> mensagem Configurando Rota Default...,
Boa Noite,
A minha dúvida é o seguinte: Tem como eu configurar um sleep nesse
scritp? Tipo.. ele dá a mensagem Configurando IP e Mask... e após 3
segundos ele configura o IP e a Máscara, depois de 3 segundos ele dá a
mensagem Configurando Rota Default..., e com mais 3 segundos ele
configura. Ou s
17 matches
Mail list logo