Erro no Shell Script [RESOLVIDO]

1. Erro no Shell Script [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 05/12/2014 - 13:49h

Boa tarde!
Galera estou com o seguinte erro "linha 8: erro de sintaxe: fim prematuro do arquivo" mas o meu script de teste só contem o código abaixo de 7 linhas, agradeço a colaboração para poder identificar o erro


#!bin/bash
DIR=/media/BACKUP/tmp/aquivo
if [ -d $DIR ]; then
mkdir /media/BACKUP/tmp/arquivo
else
echo "PASTA JÁ EXISTENTE !!!"
fi



  


2. Re: Erro no Shell Script [RESOLVIDO]

William Amaral de Souza
williamm

(usa Linux Mint)

Enviado em 05/12/2014 - 14:29h

Boa tarde, ta faltando uma barra em #!bin/bash

o correto

#!/bin/bash



3. Re: Erro no Shell Script [RESOLVIDO]

William Amaral de Souza
williamm

(usa Linux Mint)

Enviado em 05/12/2014 - 14:43h

Outro detalhe para verificar se o diretório existe...


if [ ! -d $DIR ]; then



4. Re: Erro no Shell Script [RESOLVIDO]

Wagner Souza
wagnerfs

(usa Fedora)

Enviado em 05/12/2014 - 15:13h

Execute o comando:

sh -x script

Este é o modo de debbug. Vai dar para você ver o erro.


5. Re: Erro no Shell Script [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 05/12/2014 - 15:16h


fiz os ajuste que vcs falaram e ainda apresenta o erro

Syntax error: end of file unexpected (expecting "then")



6. Re: Erro no Shell Script [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 05/12/2014 - 15:35h

Com os ajuste o código ficou assim


#!/bin/bash
DIR=/media/BACKUP/tmp/arquivo
if [ ! -d $DIR ]; then
mkdir /media/BACKUP/tmp/arquivo
else
echo "PASTA JÁ EXISTENTE !!!"
fi


o erro apresentado:
./teste.sh: 9: ./teste.sh: Syntax error: end of file unexpected (expecting "then")




7. Re: Erro no Shell Script [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 05/12/2014 - 17:58h

Você tem permissões para alterar o caminho destino ou você está executando o script como root?


8. Re: Erro no Shell Script [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 05/12/2014 - 18:52h

Tenho as permissões, já tentei como root e como user


9. Re: Erro no Shell Script [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 05/12/2014 - 19:19h

Não tenho certeza , mas acho que o erro se refere ao '{ESPAÇO}' entre o ';' e o 'then'

Tente assim :


#!/bin/bash

DIR="/media/BACKUP/tmp/arquivo"
if [ ! -d $DIR ]
then
mkdir $DIR
else
echo "PASTA JÁ EXISTENTE !!!"
fi


Recomendo você endentar o seu código. Qual dos dois é mais legível :


if [ alguma comparacao]
then
#ComandosExecutados
else
#OutrosComandos
fi



if [ alguma comparacao]
then
#ComandosExecutados
else
#OutrosComandos
fi


Com certeza o segundo. Utilize o '{TAB}' ou 4 '{ESPAÇO}' , agora se for composto , continue com mais '{TAB}' ou '{ESPAÇO}' , algo assim :


# Note o exemplo , pulando uma linha
if [ -d / ]
then
echo "Existe a pasta raiz ('/')"
# Note o outro exemplo , com o ';'
if [ -d /dev/ ];then
echo "Existe o /dev/"
else
echo "Não Existe o /dev/"
fi
else
echo "Não existe a pasta raiz ('/')"
fi


Espero ter ajudado

[]'s

T+


10. Re: Erro no Shell Script [RESOLVIDO]

Jaci Aparecido Salomao
jjcsalomao

(usa Debian)

Enviado em 08/12/2014 - 13:50h

Obrigado a todos!
Vou seguir as orientações passadas.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts