很少用shell腳本,最近在寫1個(gè)shell腳本,遇到1些問(wèn)題,居然被折騰了半天。這些毛病太低級(jí)了,不應(yīng)當(dāng).趁現(xiàn)在有時(shí)間,將履行該shell的腳本的全部進(jìn)程記錄下來(lái),方便以后作為參考。
1、我們先看看編寫的shell腳本的內(nèi)容,該shell的作用主要是實(shí)現(xiàn)監(jiān)控某個(gè)程序崩潰以后就自動(dòng)重啟該進(jìn)程。
-eq意思是等于0,用于判斷該test是不是還在運(yùn)行狀態(tài)。監(jiān)控/home/test這個(gè)程序是不是運(yùn)行。
2、由于該程序是window上的編寫的,我們將它(名字用run._start.sh)拷貝到linux下以后需要對(duì)它賦予操作的權(quán)限
chmod 777 run_start.sh
3、我們將啟動(dòng)1下該程序
./run_start.sh &
記得加上&,要不然得窗口退了,該腳本也退出了。
3、發(fā)現(xiàn)運(yùn)行的時(shí)候有毛病“-bash: ./run_start.sh: /bin/bash^M: bad interpreter: 沒(méi)有那個(gè)文件或目錄” ,根據(jù)提示,我以為沒(méi)有這個(gè)shell沒(méi)有安裝,所以找不到“/bin/bash”,其實(shí)理解毛病了,是linux上沒(méi)法辨認(rèn)window的doc格式。以后記住了,如果遇到這bad interpreter的毛病,1定要將字符做1下轉(zhuǎn)換,方法以下:
1)編輯出錯(cuò)文件
vi run_start.sh
2)查看該格式(報(bào)錯(cuò)文件格式是DOS)
:set ff
3)修改格式
:set ff=unix
4)保存退出
:wq!
4、再重新運(yùn)行腳本,可以看到正常了