shell腳本報錯換行符syntax error near unexpected token \r

有時候一些windows下處理不當的sh腳本文件放到linux下執行報錯, 提示存在換行符linux

緣由主要就是window下EOL行結束是 \r\n 兩個字符, 而linux,unix下是 \n 單字符。shell


如下vim命令作確認vim

#顯示回車符(\r), 具體的在vim環境中會顯示爲 ^M 符號
:e ++ff=unix %

#顯示換行符(\n), 具體的再vim環境下回顯示爲 $ 符號。
#此命令同時會顯示製表符, 在vim環境中顯示爲 ^I 符號
:set list

以上兩條vim指令的查看效果也可經過一條shell指令實現windows

cat -A filename



刪除回車符, 使shell腳本能正常運行spa

:%s/\r//g

也可經過shell指令將windows下格式文件轉換爲linux下格式文件unix

dos2UNIX filename


附:code

將linux下格式文件轉換爲windows下格式文件class

UNIX2dos filename
相關文章
相關標籤/搜索