Я пытаюсь выполнить свой сценарий оболочки korn и получаю сообщение об ошибке, например:
syntax error near unexpected token '§'{\r' 'filename.ksh.
и линия, на которую он указывает, - это то место, где я создал функцию:
function abc() {
}
и я попытался удалить эту функцию, но даже тогда я получаю ту же ошибку
abc(){
}
Пожалуйста помоги. Заранее спасибо.
извините, какие строки DOS?
По-видимому, все они. Ваше сообщение об ошибке указывает, что первая строка заканчивается на {\r
, а не только на {
, потому что только LF пары CR / LF обрабатывается как завершающая строка.
привет, это решает проблему в этой строке, но в других строках, поскольку у меня есть операторы sql, и у них есть скобки ')' в конце строки, так как мне завершить это. Спасибо.
Это совсем другой вопрос. Не вводите новые проблемы в существующий вопрос.
Попробуйте cat your_script | tr -d '\r' > copy_of_your_script
. Это удалит все CR, тем самым заменив все разрывы строк DOS / Windows (\r\n
, также известный как CR/LF
) на разрывы строк unix (\n
, также известный как LF
). Попробуйте, если полученный файл с именем copy_of_your_script в порядке. В зависимости от редактора, который вы используете, мы надеемся, что он уловит тот факт, что разрывы строк являются разрывами строк в стиле unix при будущих изменениях copy_of_your_script, в противном случае переключитесь на другой редактор.
В вашем скрипте есть окончания строк DOS; удалить их.