Bash 4提供了一些不错的特性,如珠星、关联数组、映射文件内置等。
如果我使用这些特性,它会大大降低脚本的可移植性吗?坚持使用Bash 3安全吗?
发布于 2015-06-08 12:08:21
取决于你想要的便携性。
苹果没有在Mac上发布Bash 4,因为Bash 4使用的是GPLv3。当然,用户可以自己安装它,如果他们想,但大多数用户不会拥有它。
如果您想要移植到OS,您可能不应该依赖于Bash 4功能。但是,如果您不介意只移植到现代的GNU/Linux发行版,那么几乎所有这些发行版都包括Bash 4,所以您最好还是依赖它们。
另外,请记住,在默认情况下,并不是所有的OS都会发布bash。例如,默认情况下,OpenBSD提供pdksh,您需要显式安装Bash。Debian提供bash,但是/bin/sh是Dash,所以如果您想要选择使用特定于Bash的特性,就需要显式使用#!/bin/bash。
如果你真的想要可移植性,你应该坚持POSIX/单Unix规范特性。但是,如果您只需要在最新的GNU/Linux发行版(甚至几年前的发行版)上运行,那么使用/bin/bash并假设它是Bash 4应该可以。
https://stackoverflow.com/questions/30708549
复制相似问题