當我通過SSH登錄到特定的Ubuntu Linux(10.04 64位)主機時,我得到了一個bash shell。從這裏我能夠運行特定的Python腳本,與可執行位集,有這個作爲第一行:在Ubuntu中以新用戶身份運行腳本時出現Shell問題
#!/usr/bin/env python
但是,如果通過SSH另一個(新)用戶登錄到同一臺主機,並嘗試運行此腳本(或本複印件),他們得到這個錯誤:
$ ./script.py
: No such file or directory
事實證明,這個文件實際上是一個DOS換行符的文件,但我可以從我登錄時運行此罰款。如果我將它轉換成UNIX格式,那麼其他人也可以很好地運行它。
腳本也運行正常對我們雙方的,如果我們用「蟒蛇」前綴,而不管DOS/UNIX格式:
$ python ./script.py
blah blah blah...
進一步就此,一旦腳本轉換爲UNIX格式和其他用戶可以運行它,它仍然不能從Makefile運行 - make顯示與上面相同的錯誤。
我讀到/ bin/sh是Ubuntu中的'dash'(而不是'bash')shell,我想知道這是否與此有關,因爲它的行爲與bash不同。如果是這樣,我想知道我的登錄(它工作得很好,並且已經完成多年)和這個新用戶的登錄顯示各種奇怪的行爲之間有什麼不同。從哪裏開始尋找?
也可能相關 - 新用戶是由類似服務(Active Directory集成客戶端)自動創建的,並且可能此服務以某種方式錯誤地配置了新用戶。
我也試過把第一行改成#!/ usr/bin/python沒有區別。
這兩個用戶都在運行bash shell作爲其登錄shell。
您是否安裝了'/ usr/bin/env'? '/ usr/bin/env python'是否從命令行運行?另外,shell的名字是「bash」。 – 2010-11-02 21:07:13
@ S.Lott:*一個*的shell命名爲「bash」。 OP指的是Debian Almquist SHell('dash')在Ubuntu系統上默認提供'sh'的方式。 – 2010-11-02 21:24:36
嘗試了第三個用戶,也是新的(所以同樣使用不同的名稱創建一個新帳戶),並且這個用戶沒有問題。這個問題似乎與第一位新用戶隔離開來。 – meowsqueak 2010-11-02 21:30:42