在shell脚本中,有没有办法构造shebang,以便它测试指定的shell或执行环境是否存在,如果不存在,则测试另一个,最后选择存在的一个?
或者,您可以在脚本顶部列出多个 shebang,如果第一个失败,它会尝试下一个,依此类推,直到找到存在的 shebang?比如:
#!/bin/bash --
#!/usr/local/bin/bash --
#!/usr/bin/env bash
#!/bin/sh --
可以编写一个 shebang 来测试指定路径是否存在 shell/执行环境?
当然。下面的shebang测试bash是否存在,如果存在则运行它,否则运行sh。
#!/usr/bin/env -S sh -c 'if hash bash 2>/dev/null;然后bash“$@”;否则 sh "$@";菲'嘘