Use dos2unix
ou um editor de texto adequado para converter todas as suas quebras de linha do Windows \r\n
para \n
.
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;
Use dos2unix
ou um editor de texto adequado para converter todas as suas quebras de linha do Windows \r\n
para \n
.
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 ).
Tags bash