Выполняю в терминале следующее:
for n in $*
do
count=` expr $count + 1`
done
То же самое записываю в sh-файл, но из файла код не читается,пишет "синтаксическая ошибка рядом с неожиданным маркером «$'do\r'»"
Насколько я понимаю, перед do должна быть не новая строка, а что-то другое.
Подозреваю,что вопрос тупой,но я осваиваю это все впопыхах перед зачетом, и времени тщательно гуглить нет
В unix перевод строки обозначаеться символом line feed (lf, \n, 0x0a, 10).
В windows - последовательностью carriage return + line feed (crlf, \r\n, 0x0d0a, 13 10).
Bash не распознаёт carriage return и выводит собщение об ошибке.
Чтобы избавится от спецсимволов, то удалить все пробелы и переводы коретки и восстановить структуру уже в той ОС, в которой предполагается работать.( самое тупое и простое). В Редакторах существуют спец функции