Windows環境下寫Linux sh指令碼的一次挖坑和填坑

來源:互聯網
上載者:User

標籤:docker叢集   批量複製   linux   inux   千萬   協助   總結   doc   時間   

     最近在研究Docker叢集和安裝的時候,需要準備若干台機器。所以我為節約時間,打算批量複製VM機器,然後用sh指令碼命令執行機器名稱和IP等基礎配置資訊的修改。

具體操作:我在windows環境下,用Notepad++編輯如下指令碼,並且儲存編碼格式為UTF-8無編碼BOM。

但是測試發現,linux會自動將命令列尾部的\r寫到執行命令裡面。

 

 

 

一、失敗過程,如下

>> sh -x /opt/command/batch_modify_servername_all.sh

 

然後,我們試著找剛才建立的ifcfg-eno01檔案,卻提示找不到,原因就是windows自動給每行命令後面加了\r,結果linux把他當作檔案名稱的一部分了。

 

 

 二、成功過程,如下

 先在vim 模式下,執行:set ff=unix,來刪除windows環境下給sh指令碼每行尾部自動加入的\r。

 

然後,我們試著找剛才建立的ifcfg-eno01檔案,這次就可以找到了,如下

 

       總結,在windows環境下任何工具編寫sh指令檔,在上傳到linux環境後執行sh指令碼前千萬記得要set ff=unix
去掉每行尾部多餘的\r。

 

最後,附上代碼:(如果對您有協助,請幫我點贊,各位的支援也是我寫作的動力,謝謝)

https://files.cnblogs.com/files/itshare/batch_modify_servername_all.sh

Windows環境下寫Linux sh指令碼的一次挖坑和填坑

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.