V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
adoyle
V2EX  ›  Bash

统计一下,如果你在用 bash,用什么版本号的 bash?

  •  
  •   adoyle · 2019-06-03 12:29:46 +08:00 · 7412 次点击
    这是一个创建于 2034 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在写 Bash shell script,想到 Bash 4.3 有个 nameref 的特性,但是之前版本都是没有的。 而且 Bash 3 也没有 Associative Array。 于是产生一个疑问,写脚本有必要兼容到 Bash 3 吗?

    顺便统计一下,如果你在用 bash,现在用的是什么版本号的 bash ?

    7 条回复    2019-06-10 11:51:53 +08:00
    goreliu
        1
    goreliu  
       2019-06-03 12:40:34 +08:00 via Android
    如果一个环境的 bash 版本只有 3,那就不只是 bash 版本低了,很可能 coreutils、awk、sed 等等版本都很低,除了专门适配,不然不兼容是很自然的。
    mattx
        2
    mattx  
       2019-06-03 14:07:57 +08:00   ❤️ 1
    可以通过关注常见发行版的 bash 版本, 来判断, 比如 debian 8+, ubuntu 16+
    Kobayashi
        3
    Kobayashi  
       2019-06-04 08:30:04 +08:00 via Android   ❤️ 1
    最新 5.x 19 年新出,4.0 是 2009 年出的,10 年过去了,这还用问吗?

    恐怕除了 macOS 除了 GPL 3 协议原因,默认 /usr/bin/bash 还是 3 (直接检查 BASH_VERSION 让这些脑残升级),其他发行版最差也得是 4。

    不同版本新特性速查: http://mywiki.wooledge.org/BashFAQ/061 参考来自最好的 Bash wiki
    Kobayashi
        4
    Kobayashi  
       2019-06-04 08:32:09 +08:00 via Android
    另外,4.x 已经进入维护阶段。根据上面参考链接,4.4 最后新特性添加于 2016 年。
    adoyle
        5
    adoyle  
    OP
       2019-06-10 10:39:57 +08:00
    @Kobayashi 你说的这些我也知道啊,不代表别人也知道,所以需要来做下统计。
    另外最新版本发布,不代表用户就会主动升级。我问过一些用 mac 的同事,他们都在用 bash 3,因为他们不常用 bash,所以没有升级的需求。
    还是要感谢你的分享。
    Kobayashi
        6
    Kobayashi  
       2019-06-10 11:16:21 +08:00 via Android
    @adoyle 我也明白主要问题就在 macOS 平台上。不知道你有没有考虑过 BSD,BSD 上 bash 根本没有自带。但是大家都知道 Bash 算是事实上的默认 shell。

    你根本无法满足都有平台,除非你用 POSIX shell。但这样只会让问题变的更麻烦。开发者放弃部分用户也不是不常见。

    这种事情无非是看你怎么选择。
    adoyle
        7
    adoyle  
    OP
       2019-06-10 11:51:53 +08:00
    @Kobayashi 是的,所以我放弃了 Bash 4.3 及之前版本,主要原因是 shopt -s inherit_errexit 这个选项在 4.4 才加进去,我觉得这个功能非常重要,在老版本很难实现这个功能。况且升级 bash 并不是困难的事,而且现在还有 docker。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1108 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:49 · PVG 02:49 · LAX 10:49 · JFK 13:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.