“Erro de sintaxe próximo ao token inesperado '$' \ r ''” no shell script [closed]

1

Estou escrevendo um script estou recebendo um erro nas linhas 2-3. O erro é impresso assim:

./ex6.sh: line2: $'\r': command not found
./ex6.sh: line3: syntax error near unexpected token '$'\r''
./ex6.sh: line3: 'fund ()

O arquivo é chamado ex6.sh . Alguém poderia fornecer alguma orientação sobre por que esse erro está acontecendo?

#!/bin/sh

func () 
{
if [ "$1" == "" ]; then
echo "Default";
for i in 'find' ; 
do
    if [ -d $i ]; then
        echo $i "is a directory";
    fi
    if [ -f $i ]; then
        if [ "$i" != "./script.sh" ]; then
            echo $i "is a file";        
        fi
    fi
done
fi

if [ "$1" == "--long" ]; then
echo "--long";
for i in 'find' ; 
do
    if [ -d $i ]; then
        echo $i "is a directory";
    fi
    if [ -f $i ]; then
        echo $i "is a file";        
    fi
done
fi

if [ "$1" == "--rm" ]; then
echo "--rm";
for i in 'find' ; 
do
    if [ -d $i ]; then
        echo $i "is a directory";
    fi
    if [ -f $i ]; then
        echo $i "is a file";        
    fi
done
fi
}

getArgs () {
if [ "$1" == "--long" ]; then
    echo "got the first param $1";
else
    if [ "$1" == "--rm" ]; then
        echo "got the second param $1";
    else
        if [ "$1" == "" ]; then
            echo "got default param";
        else
            echo "script.sh: unknown option $1";
            exit;
        fi  
    fi
fi

}

getArgs $1;
#ARGS=$1;

func $1;
    
por Eric 01.10.2011 / 20:11

2 respostas

4

Use dos2unix ou um editor de texto adequado para converter todas as suas quebras de linha do Windows \r\n para \n .

    
por 01.10.2011 / 20:23
1

Verifique o caractere da linha final no arquivo. Provavelmente você tem o estilo do Windows ( CR + LF ) e você deve ter o estilo Unix / Linux (somente LF ).

    
por 01.10.2011 / 20:45

Tags