我有一个可以使用不同解释器运行的脚本:
#!/usr/bin/env default-interpreter
[my script]
Run Code Online (Sandbox Code Playgroud)
但我想使用alternative-interpreter它,如果它可用,就像这样:
#!/usr/bin/env alternative-interpreter
[my script]
Run Code Online (Sandbox Code Playgroud)
有没有办法创建一个shebang来查找alternative-interpreter并回退到default-interpreter第一个不可用的情况?
不直接,不。最好编写一个包装器 Bourne shell 脚本和 shebang :
#!/path/to/my/wrapper
Run Code Online (Sandbox Code Playgroud)
包装器以:
#!/bin/sh
for shell in first second third; do
if /usr/bin/env "${shell}" "$@"; do exit $?; done
done
# We didn't find any of them.
exit 1
Run Code Online (Sandbox Code Playgroud)
这让 env(1) 使用 ${PATH} 搜索列表来定位程序,按照 for 循环中给出的顺序。
| 归档时间: |
|
| 查看次数: |
2428 次 |
| 最近记录: |