Скрипт оболочки, отредактированный в Windows, отображает неожиданное сообщение об ошибке

Скрипт оболочки, отредактированный в Windows, отображает неожиданное сообщение об ошибке

У меня возникли проблемы с запуском скрипта для ssh на удаленном сервере. Если я просто подключаюсь по ssh из командной строки, у меня нет проблем с доступом к серверу, но когда я запускаю скрипт для этого, я получаю ошибку "Имя или служба не известны". Я добавил IP-адрес и имя хоста в /etc/hosts, но это не помогло.

Мой сценарий прост:

 #!/bin/bash 
ssh username@hostname

Я что-то делаю не так? Очевидно, мне не нужен скрипт только для этого, но я собираюсь добавить команды для выполнения, как только это заработает.

решение1

Проблема со скриптом в том, что при копировании файла из другой системы, например Windows, он добавляет новую строку \nи возврат каретки \r\n. Подробнее о переводах строк см.новая линиязапись в википедии.

Для демонстрации проблемы я загрузил короткий фрагментздесьгде объясняется, как решить проблему.

Короче говоря: используйтетрчтобы удалить эти странные окончания строк

tr -d \\r <yourscript>newscript && mv newscript yourscript

Затем запустите скрипт еще раз.

Или как предложил artm.

Находясь в vimредакторе, используйте

:set ff=unix

(ффэто сокращение отформат файла) и сохраните файл как shift+zz.

Связанный контент