我有一个shell脚本与两个shebangs,第一个告诉#!/ bin/sh,几行之后另一个是#!/ usr/bin/env python。Shell脚本之间的变化
当此脚本被授予可执行权限并以./script.sh运行时,该脚本正常工作,在第一部分中使用/ bin/sh并在后半部分使用python解释器。
但是当脚本以sh script.sh的形式运行时,第二个shebang无法识别并且脚本失败。无论如何,如果脚本明确运行为sh script.sh,我可以强制更改解释器。
我之所以需要这个是因为我需要通过它运行的一些sh script.sh工具来运行这些脚本
显示您的脚本以获得真正的帮助。 – 2011-12-27 07:26:24
@Basile Starynkevitch我实际上需要运行python,但该工具只通过sh script.sh运行shell脚本,所以我需要将解释器更改为python – Rnet 2011-12-27 07:36:43
如果将它作为'sh script.sh'运行,那么shebangs都是忽略。无论如何,第二个被忽略 - 内核只看第一个。 – 2011-12-27 07:53:41