Windows環境下寫Linux sh腳本的一次挖坑和填坑


     最近在研究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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM