Pular para o conteúdo

duvida shell script basico [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. duvida shell script basico [RESOLVIDO]

Enviado em 21/08/2008 - 16:12h

gostaria de saber pq este codigo nao funciona, eu fiz apenas para testar mas nao esta rolando.
#!/bin/bash -vx
int=`ifconfig eth0 | grep UP`
if [ -z $int ]; then
echo "Interface ja esta ativa"
else
echo "Interface nao Ativada"
fi

o resultado no shell com o modo debug

#!/bin/bash -vx
status=`ifconfig eth0 | grep UP`
ifconfig eth0 | grep UP
++ ifconfig eth0
++ grep UP
+ status=' UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1'
if [ -z $status ]; then
echo "Interface ja esta ativa"
else
echo "Interface nao Ativada"
fi
+ '[' -z UP BROADCAST RUNNING MULTICAST MTU:1500 $'M\303\251trica:1' ']'
./teste_up.sh: line 3: [: muitos argumentos
+ echo 'Interface nao Ativada'
Interface nao Ativada

teria que dar ativada esta up a eth0

Responder tópico

2. Re: duvida shell script basico [RESOLVIDO]

Melhor resposta

Enviado em 21/08/2008 - 20:14h

2 coisas estão erradas.

1) [ -z $var ] só funciona se não houver espaço em branco na string, caso contrário ele irá tratar como se fossem argumentos. No caso de string com espaço em branco você deve usar entre aspas. [ -z "$var" ]

2) -z retorna verdade se a string tiver comprimento 0 ou seja, suas mensagens estão invertidas. Ou usa -n ou inverte as mensagens:

if [ -n "$int" ]; then
echo "Interface ja esta ativa"
else
echo "Interface nao Ativada"
fi

ou

if [ -z "$int" ]; then
echo "Interface nao Ativada"
else
echo "Interface ja esta ativa"
fi

3. Re: duvida shell script basico [RESOLVIDO]

Enviado em 22/08/2008 - 07:58h

Muito obrigado ae agora me esclareceu algumas coisas meio bobas.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder