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

时间:2013-07-12 12:12:21

标签: linux bash freebsd openbsd

对不起,标题可能有点刺激,但我不知道更好。无论如何,我想要一个bash脚本在FreeBSD,OpenBSD和Linux上运行而不修改它,但是bash并不位于Linux和BSD的同一个地方。

所以,如果我写#!/bin/bash,那么它将不适用于BSD,因为bash shell位于/usr/local/bin/bash。是否有任何解决方案可以让这个脚本同时工作?

或者我真的需要发送两个具有不同路径的脚本......?

2 个答案:

答案 0 :(得分:15)

在shebang(env)中使用#!/usr/bin/env bash会使脚本操作系统无法识别。

答案 1 :(得分:4)

我喜欢使用#!/usr/bin/env bash的答案 这是一个有趣且优秀的答案,但只有当bash在路径中时才会有效。

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