shell指令碼格式轉換

2021-07-24 14:18:47 字數 650 閱讀 1689

初學shell程式設計的研發人員通常都會遇到這樣的問題,在windows下編輯的shell指令碼放到linux環境下比如手機中執行時就會出一些莫名其妙的錯誤,及時是一些非常簡單的shell命令也會報錯。其實錯誤的原因只有乙個就是格式問題,在windows下編輯出的shell指令碼格式為dos格式,而linux只能執行格式為unix格式的指令碼。因為在dos/window下按一次回車鍵實際上輸入的是「回車(cr)」和「換行(lf)」,即'\r\n',而linux/unix下按一次回車鍵只輸入「換行(lf)」,即'\n',所以修改的sh檔案在每行都會多了乙個cr,所以linux下執行時就會報錯找不到命令。

解決這個問題的方法有幾種:

1.通過vi工具修改格式

在linux下通過vi開啟該檔案。在命令模式下使用set ff命令,可以看到該檔案的格式為fileformat=dos,然後修改檔案格式:set ff=unix,最後儲存退出就可以了。

2.用fromdos命令轉換

fromdos命令是ubuntu下進行dos格式檔案轉換成linux系統可以使用的檔案格式的命令。

3.windows下很大編輯器本身也可以支援linux格式的檔案編輯儲存,不過預設並不是linux格式的,最簡單的辦法就是找乙個已經是linux格式的shell指令碼檔案,在此基礎上進行修改儲存,這樣儲存之後仍然也是linux格式的。

shell指令碼進製轉換

shell指令碼進製轉換 bin bash read p 輸入進製數 a read p 輸入數字 bif a 10 then echo 二進位制數為 echo obase 2 b bc echo 十六進製制數為 echo obase 16 b bc elif a 2 then echo 十進位制數為...

shell指令碼格式化

1.intellij idea外掛程式格式化 1.開啟file settings plugins,搜尋bashsupport,安裝重啟idea 2.按ctrl alt l鍵進行格式化 2.vscode外掛程式格式化 1.外掛程式搜尋 格式化 shell format 3.vscode配置 檔案 首選...

shell指令碼獲取日期的格式

前一天的日期 date d 1 day ago y m d 前乙個月的日期 date d 1 month ago y m d 距離上乙個月少一天 date d 1 day ago 1 month ago y m d 距離去年的今天差一天 date d 1 day ago 1 year ago 1 m...