Bug同样的shell脚本在win与linux系统下执行不一样
生活随笔
收集整理的這篇文章主要介紹了
Bug同样的shell脚本在win与linux系统下执行不一样
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
問題
在windows下面編輯的.sh腳本??
在win下面運(yùn)行正確
在linux下面運(yùn)行錯(cuò)誤??
應(yīng)該是系統(tǒng)編碼的差異原因吧!
原因
在執(zhí)行shell腳本時(shí)提示這樣的錯(cuò)誤主要是由于shell腳本文件是dos格式,即每一行結(jié)尾以\r\n來(lái)標(biāo)識(shí), 而unix格式的文件行尾則以\n來(lái)標(biāo)識(shí)。查看文件的編碼
查看腳本文件是dos格式還是unix格式的幾種辦法。 (1)cat -A filename? 從顯示結(jié)果可以判斷,dos格式的文件行尾為^M$,unix格式的文件行尾為$。 (2)od -t x1 filename 如果看到輸出內(nèi)容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,則是unix格式。 (3)vi filename 執(zhí)行 : set ff,如果文件為dos格式在顯示為fileformat=dos,如果是unxi則顯示為fileformat=unix。設(shè)置文件的編碼方法
(1)使用linux命令dos2unix filename,直接把文件轉(zhuǎn)換為unix格式 (2)使用sed命令sed -i "s/\r//" filename 或者 sed -i "s/^M//" filename直接替換結(jié)尾符為unix格式 (3)vi filename打開文件,執(zhí)行 : set ff=unix 設(shè)置文件為unix,然后執(zhí)行:wq,保存成unix格式。?
https://blog.csdn.net/hxpjava1/article/details/79711710
總結(jié)
以上是生活随笔為你收集整理的Bug同样的shell脚本在win与linux系统下执行不一样的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么有的女人要靠自己买房子呢?
- 下一篇: Linux的make 命令出现:make