Shell腳本之編碼格式問題

shell腳本異常:/bin/sh^M:bad interpreter: No such file or directory  
把sh腳本在windows下修改了下,放到linux下,老是運行不能成功,每一個命令的最後都被加了一個M,查找了下,緣由是由於編碼格式引發的。 
分析:這是不一樣系統編碼格式引發的:在windows系統中編輯的.sh文件可能有不可見字符,因此在Linux系統下執行會報以上異常信息。 
解決:
1)在windows下轉換: 
利用一些編輯器如UltraEdit或EditPlus等工具先將腳本編碼轉換,再放到Linux中執行。轉換方式以下(UltraEdit):File-->Conversions-->DOS->UNIX便可。 
2)也可在Linux中轉換: 
#sh>vi filename 
利用以下命令查看文件格式 
:set ff 或 :set fileformat 
能夠看到以下信息 
fileformat=dos 或 fileformat=unix 
利用以下命令修改文件格式 
:set ff=unix 或 :set fileformat=unix 
:wq (存盤退出) 
3)使用dos2unix工具進行轉換(sudo yum/apt-get install dos2unix)
dos2unix filename
dos2unix: converting file filename to UNIX format ...
最後再執行文件 
#sh>./filename 
linux

相關文章
相關標籤/搜索