リモートサーバーにSSHで接続するスクリプトを実行するには、いくつかの問題があります。コマンドラインからサーバーにSSHで接続しても問題はありませんが、これを行うためにスクリプトを実行すると、「不明な名前またはサービス」というエラーが発生します。 IPアドレスとホスト名を/ etc / hostsに追加しましたが、役に立ちません。
私のスクリプトは簡単です。
#!/bin/bash
ssh username@hostname
私は何が間違っていましたか?明らかに、このために特別なスクリプトを書く必要はありませんが、タスクを開始したら実行するコマンドを追加します。
答え1
このスクリプトの問題は、Windowsなどの他のシステムからファイルをコピーするときに改行と\n
キャリッジリターンが追加されることです\r\n
。改行の詳細については、次を参照してください。新しいチームWikipedia アイテムです。
問題を示すために短いスニペットをアップロードしました。ここ問題を解決する方法を説明します。
一言で言えば:ティー奇妙な行末を削除してください。
tr -d \\r <yourscript>newscript && mv newscript yourscript
その後、スクリプトを再実行します。
またはartmの提案に従ってください。
エディターにいる間、vim
以下を使用します。
:set ff=unix
(FFは略語ですファイル形式)ファイルを保存しますshift+zz
。