在 Windows 上編輯的 shell 腳本顯示意外的錯誤訊息

在 Windows 上編輯的 shell 腳本顯示意外的錯誤訊息

我在運行 ssh 到遠端伺服器的腳本時遇到一些問題。如果我只是從命令列 ssh 存取伺服器,就沒有問題,但是當我執行腳本來執行此操作時,我會收到錯誤「名稱或服務未知名稱」。我已將 IP 位址和主機名稱新增至 /etc/hosts 中,但這沒有幫助。

我的腳本很簡單:

 #!/bin/bash 
ssh username@hostname

難道我做錯了什麼?顯然,我不需要為此專門編寫一個腳本,但我將添加命令以在開始工作後執行。

答案1

該腳本的問題在於,當從 Windows 等其他系統複製檔案時,它會添加換行符\n和回車符\r\n。有關換行的更多信息,請參閱新隊維基百科上的條目。

為了示範這個問題,我上傳了短片段這裡這解釋瞭如何解決問題。

簡而言之:使用t刪除那些奇怪的行結尾

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

然後再次運行該腳本。

或按照 artm 的建議。

在編輯器中時vim,使用

:set ff=unix

FF是縮寫文件格式)並透過 儲存文件shift+zz

相關內容