开发者

What is the proper way to make a bash script portable between Linux and FreeBSD?

I am working on some bash scripts that I'd like to work across my Linux and FreeBSD systems.

Since I mostly work in Linux, I am used to starting my bash scripts with

#!/bin/bash

But this doesn't work on FreeBSD since bash liv开发者_开发问答es at /usr/local/bin/bash. So on FreeBSD my scripts need to start with

#!/usr/local/bin/bash

So is there something else I could use that would be portable across both systems? I'd rather not maintain two versions of the scripts.


#!/usr/bin/env bash

should do the trick, provided that bash is on the path somewhere. See here for more details.


Honestly, if you want portability, invoke as /bin/sh and code to POSIX. It's less pretty, but you will run into fewer potential issues if you do.


Use #!/bin/sh on both systems if you want to be portable and avoid bashisms entirely.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜