开发者

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

开发者 https://www.devze.com 2023-02-14 17:31 出处:网络
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

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

精彩评论

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