場景重現
劇情需要,在Windows7新建了個文本,然后寫了個Shell給同事,然后他拷貝到Ubuntu14.04上去執行,
結果就出現如下異常(手機拍的,抽象了點,勿介):
解釋器錯誤:沒有那個文件或目錄
求解路上
剛剛開始我以為是他電腦解釋器不一致的原因,
然后把解釋器聲明換成了如下2種都試了下:
!/bin/sh
一般這么寫的比較常見
!/bin/bash
第二種是這個,當然還有其他,具體不多說
帶過:這里很多跟我一樣的新手非常容易忘了bin前面的/符號...導致異常
然后執行,還是一樣的錯誤。
同時在他電腦上直接在Terminal執行同樣的命令是沒啥問題的,
想想好像漏了什么。。。
真相大白
據說,在Windows下,默認的文件編譯,每一行的結尾是\n\r,但是在Linux下文件的結尾是\n。
因此在Windows環境下編輯過的文件在Linux下打開看的時候每一行的結尾就會多出來一個字符\r。
常規只是看看文件的情況下,一般沒啥影響,但是執行命令解釋器解析的時候,就會出現本文中的異常。
解決辦法
- 我反正是直接在Ubuntu下新建一個.sh文件,把命令輸入,執行即可.
- 話說有什么辦法能直接轉換么?