天天看點

ubuntu下ruby檔案執行蛋疼的一個問題

    ubuntu下面用sublime打開非常簡單的一段代碼(其實不算代碼,因為沒有實際語句):

在shell下加入x權限:chmod u+x doit.rb,然後運作 ./doit.rb,竟然出錯了!傳回:

./doit.rb

bash: ./doit.rb: /usr/bin/ruby^m: 壞的解釋器: 沒有那個檔案或目錄

又仔細看了一遍代碼,實在沒發現神馬問題。于是檢查/usr/bin/ruby路徑是否正确,結果也是正确的,隻不過用軟連接配接link了2次,但這不影響啊!因為直接#!/usr/bin/ruby2.1跳過軟連接配接仍然報同樣錯誤!(各位童鞋這時能猜到是神馬問題嗎?

ubuntu下ruby檔案執行蛋疼的一個問題

建立一個新的檔案 > other.rb,敲入同樣的代碼,執行竟然沒問題!那麼答案隻有一個了:源代碼編碼有問題!!!用16進制模式打開比較下:

doit.rb

2321 2f75 7372 2f62 696e 2f72 7562 790d 0a0d 0a

other.rb

2321 2f75 7372 2f62 696e 2f72 7562 790a 0a

這下了然了吧?一個回車是0d0a,一個是0a。回想一下doit.rb是在windows下編寫的,other.rb是在linux下編寫的哦!雖然隻是一個小問題,但是終歸破案了!go on吧!