2015-08-13 46 views
0

我似乎有一個奇怪的問題,其解決方案可能已經很簡單,而我只是失明。無法運行在Windows上創建的shell腳本

我的開發環境是Windows。我創建了一個部署檔案文件,其中包含一個shell腳本文件(稱爲install.sh)。我SFTP發佈此存檔到Linux環境,解壓縮,並嘗試運行執行腳本(CHMOD後使其可執行文件),我得到這個錯誤:

語法錯誤:文件

我不意外結束沒有注意到文件中的任何錯誤。我刪除這個文件,創建一個新的install.sh,從我的Windows環境中拷貝確切的內容,再次chmod,再次運行它,這次它運行正常!

我不知道爲什麼它沒有運行,我第一次解開它。任何幫助感謝!

回答

3

檢查文件:

cat --show-nonprinting file 

從Windows/DOS刪除回車:

tr -d "\r" <file> fixed_file 
+0

看起來像是回車導致它。但是我不能使用tr,我用它來代替:sed -i -e's/\ r // g'install.sh – starman1979

2

Linux和Windows使用線的不同終端(CL或CLRF),或者它是一個編碼的問題。您應該檢查運行sh和不運行之間的區別。