我有一个简单的脚本:
#!/usr/bin/env ruby --verbose
# script.rb
puts "hi"
在我的OSX机器上,它运行良好:
osx% ./script.rb
hi
但是,在我的Linux机器上,它引发了一个错误
linux% ./script.rb
/usr/bin/env: ruby --verbose: No such file or directory
如果我手动运行shebang线,效果很好
linux% /usr/bin/env ruby --verbose ./script.rb
hi
但是,如果我打包ruby --verbose
到一个参数中,我可以复制错误env
linux% /usr/bin/env "ruby --verbose" ./script.rb
/usr/bin/env: ruby --verbose: No such file or directory
因此,我认为这与env
解释shebang线的重置有关。我正在使用GNU coreutils 8.4 env
:
linux% /usr/bin/env --version
env (GNU coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard Mlynarik and David MacKenzie.
这似乎很奇怪。这是此版本的的常见问题env
吗?还是我不知道这里发生了其他事情吗?
4
有关系吗?
—
风铃草
与coreutils 8.17相同。奇怪的。向Fedora报告,因为这明显与手册中所说的相反。
—
vonbrand
@vonbrand Fedora说了什么?“我们不在乎。”
—
猫