Получение ошибки при вложении цикла for в инструкцию if-else

#windows #bash #scripting #git-bash

#Windows #bash #сценарии #git-bash

Вопрос:

Я пытаюсь написать простой скрипт bash с циклом for внутри инструкции if-else. Работает следующий код:

 if [ $# -le 0 ]; then

    echo 'No arguments provided.'

else

    echo "Arguments detected."

fi
  

Но как только я заменяю второй echo на цикл for, он прерывается:

 if [ $# -le 0 ]; then

    echo 'No arguments provided.'

else

    for i in "$@"
    do

        echo "Arguments detected: $i"

    done

fi
  

Я пытался выполнить только цикл for, и мне выдается ошибка, поэтому я думаю, что цикл for каким-то образом неправильный, но я не знаю как. Ошибка заключается в:

 bash: C:/Users/Angleton/.bashrc: line 45: syntax error near unexpected token `fi'
bash: C:/Users/Angleton/.bashrc: line 45: `    fi'
  

Комментарии:

1. У меня работает с использованием bash-4.3.30 . Возможно, у вас есть какие-то странные символы пробела в миксе … возможно, попробуйте аккуратно перепечатать его.

2. Вы можете проверить, нет ли необычных пробелов или других странных символов, напечатав скрипт с помощью LC_ALL=C cat -vet .bashrc и посмотреть, печатает ли он что-нибудь странное (кроме «$» в конце каждой строки — это нормально для cat -e ).

3. Я вижу только $ на концах.