Script Bash: Fim inesperado de arquivo (FreeBSD)

1

Eu tenho uma tarefa para criar um script bash para instalar o agendador do Subversion na minha máquina freebsd, mas infelizmente não funciona como esperado.

quando eu corro

#bash -x ./installSubversion.sh

Eu sempre recebi essas mensagens de erro

+ REPOPATH=$'/usr/ports/devel/subversion\r'
+ CHECKPATH=$'/usr/local/bin/svnserve\r'
>./installSubversion.sh: line 22: syntax error: unexpected end of file

aqui está o script installSubversion.sh

#!/usr/bin/env bash
###########
### Installing subversion(svn) on Freebsd
###########
REPOPATH="/usr/ports/devel/subversion"
CHECKPATH="/usr/local/bin/svnserve"
if [ ! -x "$CHECKPATH"  ] || [ "$1" = "-force" ] ;
then
        echo "Trying to install subversion from ports"
        if [ "$1" = "-force"  ];
        then
                /usr/sbin/pkg_delete -fx subversion-
                cd $REPOPATH
                /usr/bin/make -DBATCH reinstall clean
        else
                cd $REPOPATH
                /usr/bin/make -DBATCH install clean
        fi
else
        echo "subversion is Installed"
fi

O que estou fazendo de errado?

    
por Adhi Wirawan 18.01.2015 / 08:57

1 resposta

3

As mensagens de erro REPOPATH=$'/usr/ports/devel/subversion\r' indicam que seu script tem finais de linha no estilo DOS \r\n em vez de estilo% Unix \n . Isso pode ser corrigido com um simples comando sed ou usando o comando dos2unix , que você já pode ter instalado em seu computador. sistema.

Seu editor de texto pode ter uma opção para selecionar o estilo de finalização de linha. Em caso afirmativo, certifique-se de usar o estilo Unix ao editar scripts para uso em * nix. E você pode usar esse editor para converter o estilo de término de linha dos arquivos existentes, mas isso pode ser um pouco entediante se você quiser corrigir vários arquivos.

    
por 18.01.2015 / 09:29

Tags