Pular para o conteúdo

If no Shell Script [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar
01 02

1. If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 09:57h

Olá,

Estou iniciando com o shell script e aqui no portal também. Se possível preciso de ajuda da galera mais experiente em shell.
Bem, não consigo fazer meu if rodar direito. preciso verificar se um arquivo existe no diretório onde estarei rodando o script. Sempre aparece o erro: if[1: not found

Eu estou fazendo assim.

find "diretório" |grep -i "Arquivo"
if[ $? -eq 0]; then
echo "Arquivo existe no diretório!";
else
echo "Arquivo não existe no diretório!";
fi

Valeu a força galera!!

Responder tópico

2. Re: If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 10:36h

Tente assim:

find "diretório" |grep -i "Arquivo"
if [ $? -eq 0 ]; then
echo "Arquivo existe no diretório!";
else
echo "Arquivo não existe no diretório!";
fi

Note q eu só acrescentei um espaço entre os colchetes, pois o shell script dá erro se não deixar da forma q ele deseja.

3. Re: If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 11:41h

Agora gerou este erro => if[: not found

Hein Renato estou salvando e executando com tipo sh, tem algum problema?

4. Re: If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 11:53h

Devem haver espaços...

if<espaço>[<espaço>$? -eq 0<espaço>] ...


5. Re: If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 11:55h

O kra ainda num entendeu...

6. Re: If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 12:05h

Agora funcionou a parte da validação do IF, ficou show, valeu.

Mas esta dando este erro => Syntax error: end of file unexpected (expecting "fi")

Eu já coloquei o ";" no final do else, já tirei também, não funcionou. Tentei outras coisas também não funcionou.

7. Re: If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 12:19h

Eu vi o erro. Na verdade vc colocou ponto-e-vírgula (igual no C++), mas num é necessário neste caso. O certo é:

find "diretório" |grep -i "Arquivo"
if [ $? -eq 0 ]; then
echo "Arquivo existe no diretório!"
else
echo "Arquivo não existe no diretório!"
fi

O ponto-e-vírgula vc só põe se todas as condições (if, then, else e fi) estiverem na msm linha.

8. Re: If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 13:36h

Desculpe ai Renato não ter visto o espaço antes.

Bom eu também testei sem o ";" não funcionou, vou postar meu script aqui pra facilitar.

#!/bin/bash
echo "Realizando download versão IntegradorSAW..."
find jboss-3.2.8.SP1 |grep -i integradorSAW
if [ $? -eq 0 ]; then
rm -rf *.zip
echo "Arquivo versão antiga Apagado!"
ftp -inv "Endereço de FTP" <<EOF
user ##### #########
bin
cd IntegradorSAW/Infomed
mget *.zip
quit
EOF
echo "Download realizado com sucesso!"

else
ftp -inv ftp -inv "Endereço de FTP" <<EOF
user ##### #########
bin
cd IntegradorSAW/Infomed
mget *.zip
quit
EOF
echo "Download realizado com sucesso!"
fi


9. Re: If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 14:26h

Vamos fazer diferente. Execute-o assim:

# bash -x nomedoscript.sh

E poste a saída aki.

10. Re: If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 14:43h

Segue a resposta do bash...

download_integrador.sh: linha 25: aviso: here-document na linha 7 delimitado por final do arquivo (era pedido `EOF')
download_integrador.sh: linha 26: erro de sintaxe: fim prematuro do arquivo

Pesquisei em outros lugares...mas em cada um diz uma coisa diferente...ai é complicado...

Desde já, agradeço pelo suporte!!

11. Re: If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 14:53h

Na última linha, pq vc colocou "fi"? Apague e tente d novo.

12. Re: If no Shell Script [RESOLVIDO]

Enviado em 26/05/2010 - 15:09h

Ué porque é padrão do IF no shell não é?

Mas Tirei...Abaixo resultado:

Syntax error: end of file unexpected (expecting "fi")
01 02

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder