在新闻脚本中使用Bash 4功能是否安全?

时间:2015-06-08 11:55:59

标签: bash portability

Bash4提供了一些不错的功能,如globstar,关联数组,内置mapfile等。

如果我使用这些功能,是否会大大降低我的脚本的可移植性?坚持使用Bash 3会更安全吗?

1 个答案:

答案 0 :(得分:4)

取决于您想要的便携性。

由于Bash 4使用GPLv3,因此Apple不会在Mac OS X上发布Bash 4。当然,用户可以根据需要自行安装,但大多数用户都没有。

如果您想要移植到OS X,您可能不应该依赖Bash 4功能。但是,如果你不介意只是可以移植到现代GNU / Linux发行版,那么几乎所有这些都包含Bash 4,所以你也可以依赖它们。

此外,请记住,并非所有操作系统都默认发货。例如,OpenBSD默认提供pdksh,您需要显式安装Bash。 Debian发布bash,但/bin/sh是Dash,因此如果您想选择使用Bash特定功能,则需要明确使用#!/bin/bash

如果您真的想要可移植性,那么您应该坚持使用POSIX / Single-Unix-Specification功能。但是,如果您只需要运行最新的GNU / Linux发行版(甚至是几年前发行版),使用/bin/bash并假设它是Bash 4应该没问题。