【发布时间】:2012-01-28 08:26:24
【问题描述】:
我有一个带有两个 shebang 的 shell 脚本,第一个告诉 #!/bin/sh,几行之后另一个是 #!/usr/bin/env python。
当此脚本被授予可执行权限并以 ./script.sh 运行时,该脚本工作正常,在第一部分使用 /bin/sh,在后部分使用 python 解释器。
但是当脚本以 sh script.sh 运行时,第二个 shebang 无法识别,脚本失败。如果脚本作为 sh script.sh 显式运行,我是否可以强制更改解释器。
我需要这个的原因是因为我需要通过一个作为 sh script.sh 运行的工具来运行脚本
【问题讨论】:
-
显示您的脚本以获得真正的帮助。
-
@Basile Starynkevitch 我实际上需要运行 python ,但是该工具只运行 sh script.sh 的 shell 脚本,所以我需要将解释器更改为 python
-
如果您以
sh script.sh运行它,则所有shebangs 都会被忽略。无论如何,第二个都被忽略了——内核只查看第一个。