shell指令碼報錯
阿新 • • 發佈:2019-01-04
報錯——syntax error near unexpected token
1. 這是因為在Windows中的回車符在Linux中被表示為了 ^M ,使用二進位制模式開啟指令碼:
- vim -b monitor.sh
我們會發現在每行的末尾都會有一個 ^M,如果消滅 ^M 呢?我們想到了幾種方法,其一就是使用 sed 命令:
- sed -i 's/^M//' monitor.sh
2. 另一個去除 ^M 的方法就是使用vim中的替換功能:
- vim -b monitor.sh 以二進位制模式開啟指令碼
- :%s/^M//g 去除^M
- shift+z+z 儲存退出
3. 當然會產生這種錯誤的原因是因為該指令碼是在Windows下編寫的,所以該指令碼就是dos格式的,所以我們將指令碼格式轉換為unix格式也就ok了。
- :set ff=unix
報錯——bad interpreter: 沒有那個檔案或目錄
當出現這個報錯時,原因是與上一個報錯類似的,所以我們只需要:
- vim monitor.sh
- :set ff=unix
在虛擬機器中找不到共享檔案的位置
在使用VMware時我們已經安裝了VMware tools,已經打開了“共享資料夾”功能,也已經添加了路徑:
這時我們將文件放入主機的共享資料夾中,但是虛擬機器中怎麼使用呢?首先我們要先了解一下linux中的mnt目錄,這個目錄被稱為掛載目錄,當掛載裝置後,這個目錄中就會出現相應的目錄。
- /mnt/hgfs