如何在不修改FreeBSD,OpenBSD和Linux的情况下使用bash脚本?

对不起,标题可能有点刺激,但我什么都不知道。 无论如何,我想要一个bash脚本在FreeBSD,OpenBSD和Linux上工作,而不用修改它,但是bash不在Linux和BSD中的相同位置。

所以,如果我写#!/bin/bash那么它将不能在BSD上工作,因为bash shell位于/usr/local/bin/bash中。 有什么解决scheme让这个脚本同时工作吗?

还是我真的需要运送两个不同path的脚本…?

Solutions Collecting From Web of "如何在不修改FreeBSD,OpenBSD和Linux的情况下使用bash脚本?"

在shebang( #!/usr/bin/env bash )中使用env应该使脚本OS不可知。

我喜欢关于使用#!/usr/bin/env bash答案这是一个有趣而且很好的答案,但是这只有在bash在路径中才有效。

另一种选择可能是使用#!/bin/sh这是最普遍兼容的shell位置。 然后,让脚本在sh执行某些操作,如检查bash是否安装(如果bash是安装的话)。 另一种选择可能是在两个地方都有bash 。 进行另一次安装听起来可能会有些过火,但是这个目标可以像创建一个硬链接一样简单地完成,这样bash实际上就存在于这两个位置。