我遇到了一個奇怪的問題/usr/bin/env ...我設計了一個簡單的腳本來顯示問題。腳本在Ruby中,但Python中類似的腳本也是如此。下面是該腳本:如何解決/ usr/bin/env agrument processing?
#!/usr/bin/env ruby
p ARGV
而另一個沒有在/ usr/bin中/ env的:
#!/data/software/ruby-1.9.2-p180/bin/ruby
p ARGV
正如你看到的應該只是打印腳本參數。一個它完美的作品在頭節點上:
[[email protected] test]$ which ruby
/data/software/ruby-1.9.2-p180/bin/ruby
[[email protected] test]$ ./script.no_usr_bin_env.rb 1 2 3
["1", "2", "3"]
[[email protected] test]$ ./script.usr_bin_env.rb 1 2 3
["1", "2", "3"]
但在計算節點上運行時,它就會被卡住:
[[email protected] test]$ qsub -d $(pwd) -I
qsub: waiting for job 176427.scyld.localdomain to start
qsub: job 176427.scyld.localdomain ready
-bash-3.2$ ./script.no_usr_bin_env.rb 1 2 3
["1", "2", "3"]
-bash-3.2$ ./script.usr_bin_env.rb 1 2 3
<stuck>
在/ usr/bin中/ env的正好在兩臺機器上是相同的:
[[email protected] test]$ md5sum /usr/bin/env
7ada476000967f2e4cca2bc669045479 /usr/bin/env
[[email protected] test]$ qsub -I -d $(pwd)
qsub: waiting for job 176428.scyld.localdomain to start
qsub: job 176428.scyld.localdomain ready
-bash-3.2$ md5sum /usr/bin/env
7ada476000967f2e4cca2bc669045479 /usr/bin/env
我知道有的/ usr/bin中參數處理/ env的可能會非常棘手。但是我們有很多使用這個軟件的軟件,我們不能僅僅修復它們。有什麼我可以解決這個問題嗎?
你確定節點上PATH中的'ruby'有什麼好處嗎?它與'/ data/software/ruby-1.9.2-p180/bin/ruby'是否相同? – mvp
事實上,問題是計算節點上的PATH變量。 – user1179926