dúvida com IF no shell script [RESOLVIDO]

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

Xerxes
xerxeslins

(usa openSUSE)

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



  


2. inverta a variavel de posicao

M4iir1c10
m4iir1c10

(usa Arch Linux)

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]

Xerxes
xerxeslins

(usa openSUSE)

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]

Sandro Marcell
SMarcell

(usa Slackware)

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]

Dênis Wallace de Souza
comfaa

(usa Debian)

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 ?


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

Isaque Vieira de Sousa Alves
isaque_alves

(usa Fedora)

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

man test

http://aurelio.net/shell/canivete.html#operadores



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

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

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]

Osama Jr.
/bin/laden

(usa Void Linux)

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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts