У меня возникли проблемы с запуском скрипта для 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
.