windows下寫(xiě)的shell腳本在linux執(zhí)行出錯(cuò)的解決辦法
在Windows下寫(xiě)了一個(gè)shell腳本,上傳到Linux下執(zhí)行時(shí)報(bào)錯(cuò):
-bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory
test.sh源碼:
echo "test shell "
由于自己對(duì)shell不太熟悉,找同事溝通了后了解了原委,主要原因是test.sh是我在windows下編輯然后上傳到linux系統(tǒng)里執(zhí)行的。.sh文件的格式為dos格式。而linux只能執(zhí)行格式為unix格式的腳本。因?yàn)樵赿os/window下按一次回車(chē)鍵實(shí)際上輸入的是“回車(chē)(CR)”和“換行(LF)”,而Linux/unix下按一次回車(chē)鍵只輸入“換行(LF)”,所以修改的sh文件在每行都會(huì)多了一個(gè)CR,所以Linux下運(yùn)行時(shí)就會(huì)報(bào)錯(cuò)找不到命令。
我們可以通過(guò)vi編輯器來(lái)查看文件的format格式。步驟如下:
1.首先用vi命令打開(kāi)文件
[root@localhost test]# vi test.sh
2.在vi命令模式中使用 :set ff 命令
可以看到改文件的格式為
3.修改文件format為unix
使用vi/vim修改文件format
命令::set ff=unix
或者::set fileformat=unix
然后:wq保存退出就可以了
相關(guān)文章
Shell兩種for循環(huán)對(duì)應(yīng)實(shí)現(xiàn)方法解析
這篇文章主要介紹了Shell兩種for循環(huán)對(duì)應(yīng)實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
創(chuàng)建Linux系統(tǒng)服務(wù)的方法
這篇文章主要介紹了通過(guò)linux sh創(chuàng)建Linux系統(tǒng)服務(wù)的方法,需要的朋友可以參考下2014-01-01
Shell腳本中的位置變量參數(shù)(特殊字符)實(shí)例講解
這篇文章主要介紹了Shell腳本中的位置變量參數(shù)(特殊字符)實(shí)例講解,本文講解了$#、$* 、$$ 、$!、$@、$-、$?等特殊字符的作用,并給出使用實(shí)例,比較清晰和簡(jiǎn)潔,需要的朋友可以參考下2015-05-05
程序中獲取linux系統(tǒng)啟動(dòng)時(shí)間方法
需要在應(yīng)用程序獲取系統(tǒng)的啟動(dòng)時(shí)間,通過(guò)sysinfo中的uptime可以計(jì)算出系統(tǒng)的啟動(dòng)時(shí)間,下面介紹一下獲取方法,大家參考使用吧2014-01-01
shell Bash的數(shù)組與關(guān)聯(lián)數(shù)組的實(shí)現(xiàn)
本文主要介紹了shell Bash的數(shù)組與關(guān)聯(lián)數(shù)組的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02

