[英]How do I get a bash script working on FreeBSD, OpenBSD and Linux without modifying it?
对不起,标题可能有点刺激,但我不知道更好。 无论如何,我想要一个bash脚本可以在FreeBSD,OpenBSD和Linux上运行而无需修改它,但是bash并不位于Linux和BSD的同一个地方。
所以,如果我写#!/bin/bash
然后它将无法在BSD上运行,因为bash shell位于/usr/local/bin/bash
中。 是否有任何解决方案可以让这个脚本同时工作?
或者我真的需要发送两个不同路径的脚本......?
在shebang中使用env
( #!/usr/bin/env bash
)应该使脚本OS不可知。
我喜欢使用#!/usr/bin/env bash
答案这是一个有趣且优秀的答案,但只有当bash在路径中时才会有效。
另一种选择可能是使用#!/bin/sh
,它是最普遍兼容的shell位置。 然后,让脚本在sh
执行某些操作,例如检查bash
的安装位置(如果安装了bash
)。 另一个选择可能是两个位置都存在bash
。 进行另一次安装可能听起来有点过分,但这个目标可以像创建硬链接一样完成,以便bash实际存在于两个位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.