我们要求有一个脚本,其中env是ruby(在自定义位置),但设置#!/ usr / bin / env,其中脚本包含一个变量,例如。
#!/usr/bin/env ${NEWROOT}/location/of/ruby/bin/ruby
调用脚本设置了NEWROOT,如果我用实际内容替换NEWROOT,例如
#!/usr/bin/env /home/user/location/of/ruby/bin/ruby
它有效!
有谁知道为什么?
答案 0 :(得分:1)
参数替换由shell执行,而不是由内核执行。即使内核使用参数调用env
,shebang行仍将保持未被取代。