是否有可能在shell脚本的“env”行中有一个环境变量?

时间:2015-09-28 10:10:33

标签: shell

我们要求有一个脚本,其中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

它有效!

有谁知道为什么?

1 个答案:

答案 0 :(得分:1)

参数替换由shell执行,而不是由内核执行。即使内核使用参数调用env,shebang行仍将保持未被取代。