當一個文件在Windows和Linux上交替操作后,經常遇到一些莫名其妙的問題,如shell腳本無法執行,找不到shell腳本等問題,本文謹就這一問題做一總結,供各位參考; 本文作者:? ?花神廟碼農 博客地址,https://blog.csdn.net/qxhgd。
后文僅以test-dos.sh文件為例來說明,具體內容如下:
#!/bin/bash
echo?"Hello?World?!"
[qxhgd@localhost?crlf]$?./test-dos.sh
-bash:?./test.sh:?/bin/bash^M:?bad?interpreter:?No?such?file?or?directory
make[3]:?./mksh:?Command?not?found



[qxhgd@localhost?crlf]$?cat?-v?test-dos.sh
#!/bin/bash^M
echo?"Hello?World?!"^M
顯示Tab:
[qxhgd@localhost?crlf]$?cat?-T?test-dos.sh
#!/bin/bash
^Iecho?"Hello?World?!"
[qxhgd@localhost?crlf]$?od?-c?test-dos.sh
0000000???#???!???/???b???i???n???/???b???a???s???h??\r??\n???e???c???h
0000020???o???????"???H???e???l???l???o???????W???o???r???l???d???????!
0000040???"
0000041
也可以和cat配合使用:
cat?test-dos.sh|?od?-c
[qxhgd@localhost?crlf]$?hexdump?-c?test-dos.sh
0000000???#???!???/???b???i???n???/???b???a???s???h??\r??\n???e???c???h
0000010???o???????"???H???e???l???l???o???????W???o???r???l???d???????!
0000020???"
0000021
狀態欄下會顯示:
"test-dos.sh" [noeol][dos] 2L, 33B
命令模式下執行set ff:
??fileformat=dos
-- 首先使用gedit打開文件:
[qxhgd@localhost?crlf]$?gedit?test-dos.sh
-- 搜索\r\n,如果搜索到了就表示是DOS格式:
可以利用編輯器修改,如Visual Studio Code,點擊狀態欄右下方的CRLF,選擇“行尾序列”可修改為LF的格式;
有的編輯器,如Notepad2,有Line Endings可供選擇:
利用支持擴展搜索的編輯器,如Notepad++,可將\r\n替換掉:
[qxhgd@localhost?crlf]$?dos2unix?test-dos.sh
dos2unix:?converting?file?test-dos.sh?to?Unix?format?...
[qxhgd@localhost?crlf]$?dos2unix?-n?test-dos.sh?test-unix.sh
dos2unix:?converting?file?test-dos.sh?to?file?test-unix.sh?in?Unix?format?...
[qxhgd@localhost?crlf]$?fromdos?test-dos.sh
-- 轉換一個文件:
sed?‘s/^M//’?test-dos.sh>?test-unix.sh
-- 轉換多個文件:
find?./?-type?f?print0?|?xargs?-0?sed?-i?'s/^M$//'
-- ?1、vi test-dos.sh -- ?2、:%s/^M//g或:%s/\r//g
-- 3、esc退出 :wq保存退出
其中^M 必須是同時按 Ctrl+V+M(按住Ctrl鍵,然后依次V、M鍵)或依次按Ctrl + V然后Ctrl + M,表示回車。
tr?-d?"\015"?test-dos.sh??????????????????
cat?test-dos.sh|tr?-d?‘/r'?>?test-unix.sh?
tr?-d?'\r'??test-unix.sh
cat?test-dos.sh?|?perl?-pe?‘~s/\r//g’?>?test-unix.sh
perl?-p?-e?'s/\r//g'?test-dos.sh>?test-unix.sh
perl?-pi?-e?'s/\r\n/\n/g'?test-dos.sh
?
end
一口Linux?
關注,回復【1024】海量Linux資料贈送
精彩文章合集
文章推薦
【課程推薦】
點擊“閱讀原文”查看更多分享,歡迎點分享、收藏、點贊、在看