Pular para o conteúdo

dúvida com IF no shell script [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. dúvida com IF no shell script [RESOLVIDO]

Enviado em 05/04/2009 - 05:15h

Olá,

eu queria fazer um IF no shell script para executar comando se uma variável $exdir for um diretório existente. Fiz assim:

if [ $exdir -d ]
then
echo "diretório válido"
else
echo "diretório inexistente"
exit
fi

mas nao funciona... alguém sabe dizer porque? se a variável tiver o valor "teste" aparece assim o erro:

teste: unary operator expected

obrigado

Responder tópico

2. inverta a variavel de posicao

Enviado em 05/04/2009 - 06:26h

if [ -d $exdir ]
then
echo "diretório válido"
else
echo "diretório inexistente"
exit
fi

3. Re: dúvida com IF no shell script [RESOLVIDO]

Enviado em 05/04/2009 - 14:06h

Valeu pela dica, mas aqui só funcionou com [[ ]]

abraço

4. Re: dúvida com IF no shell script [RESOLVIDO]

Enviado em 06/04/2009 - 00:34h

Outra alternativa:

[ -d "$exdir" ] && echo Existe || echo "Nao existe"

5. Re: dúvida com IF no shell script [RESOLVIDO]

Enviado em 29/04/2009 - 13:05h

eu estou com um problema parecido ....

só que é assim ....

preciso de uma resposta pra uma frase, tipo:

Quer Apagar ? (S ou N)
read apagar
if $apagar = S
then
............
else
............
fi

mas nao ta dando certo, nao sei como fazer, alguem pode me ajudar ?

7. Re: dúvida com IF no shell script [RESOLVIDO]

Enviado em 29/04/2009 - 18:30h

Nesse caso Dênis eu prefiro o CASE, que sairia assim:


echo "Quer Apagar ? (S ou N)"
read apagar
case "$apagar" in

"s" | "S" )
echo "sim ..."
;;

"n" | "N" )
echo "nao ..."
;;

* )
echo "Opcao invalida ... Digite S (sim) ou N (nao)"
;;
esac


MAS o IF seria assim:

echo "Quer Apagar ? (S ou N)"
read apagar

if [ $apagar -eq s ] ; then
echo "sim ..."
else
echo "não..."
fi


8. Re: dúvida com IF no shell script [RESOLVIDO]

Enviado em 01/05/2009 - 02:07h

"comfaa", tu pode tentar utilizar os "coringas extendidos" do Bash! Olha um simples exemplo:

=======================
#!/bin/bash
# Ativa o suporte a 'extended globbing':
shopt -s extglob

# Lê a partir do teclado, no máximo 4 caracteres (devido ao til '~' do não) e
# armazena o valor na variável 'resp'
read -n4 -p "Tem certeza disso? (s/n): " resp

# Realiza os testes...
if [[ $resp == +(s|S|sim|SIM) ]]
then
echo Sim
elif [[ $resp == +(n|N|não|NÃO) ]]
then
echo Não
else
echo Inválida
fi
=======================

Mais detalhes você encontrará em:

$ man bash
www.google.com/linux

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder