Seu script é DOS
codificado e sh
/ bash
não gosta disso.
Instale dos2unix
e execute
dos2unix <script>
no seu script. E corra de novo.
Eu tenho um erro de "erro de sintaxe próximo ao token inesperado do", usando um loop for em um .sh. Aqui está o código:
#!/bin/sh
# some code
for flux in $(ls -d /home/eai/*/*/*) ; do
FICHIER=$(ls -p -tr $flux | grep -v / | head -n 1)
if [[ $FICHIER ]] ; then
# some code
fi
done
1) sh script.sh ou bash script.sh
'cript_1409.sh: line 24: syntax error near unexpected token 'do
'cript_1409.sh: line 24: 'for flux in $(ls -d /home/eai/*/*/*); do
2) ./script.sh
-bash: ./script_1409.sh: /bin/sh^M: bad interpreter: No such file or directory
1) Use uma sintaxe diferente para o loop.
for flux in $(ls -d /home/eai/*/*/*) ; do
FICHIER=$(ls -p -tr $flux | grep -v / | head -n 1)
if [[ $FICHIER ]] ; then
# some code
fi
) &
done
ou
for flux in $(ls -d /home/eai/*/*/*)
do
FICHIER=$(ls -p -tr $flux | grep -v / | head -n 1)
if [[ $FICHIER ]] ; then
# some code
fi
done
2) Mude o #! / bin / sh para #! / bin / bash.
3) Mude a extensão .sh para .bash e repita todos os comandos de execução acima mencionados.
Tags syntax shell scripting shell-script