Я думаю, что вы столкнулись с проблемой окончания строки в Windows. Если вы подготовили файл сценария с помощью какой-либо утилиты Windows, а затем вызвали его в Unix-подобной среде, тот факт, что командная строка заканчивается последовательностью CR-LF (Windows), вызовет проблемы с оболочкой, скомпилированной для использования всреда unix, потому что CR будет рассматриваться как обычный символ.
Это немного трудно увидеть, потому что CR полностью невидим в конце строки и видим только для его эффекта в других контекстах. Вы можете сделать CR видимым, убедившись, что текст, который вы подставляете в любой вывод, имеет следующий видимый символ. Например, если вы изменили отчет об ошибке на:
console.log('ERROR: Unknown Table Name "' + tableName + "'")
, то вы можете увидеть это:
"RROR: Unknown Table Name "table1
Обратите внимание, что E
в ERROR
было перезаписано с помощьюдвойная кавычка;это потому, что CR в конце table1
заставляет курсор вернуться к левому полю, прежде чем будет напечатано следующее "
.