Darwin/MacOS 是否修改了 Bash?

2023-12-07

我想知道使用 Bash 内置命令的 Bash 脚本的可移植性。

据我了解,每种 UNIX 风格都倾向于修改各种 UNIX 实用程序。但他们是否倾向于不理睬 Bash 和 Bash 内置函数呢?尤其是 MacOS 呢?


据我所知,bash 在 Mac OS X 上未经修改(除了编译所需的细微调整之外;您可以查看源代码http://opensource.apple.com/),并且脚本应该非常可移植。

正如 Graham Lee 和 Gordon Davisson 指出的那样,Mac OS X 附带较旧的版本,并且受支持的版本之间存在差异。 Bash 4 有关联数组其他变化。 Bash 3 包括正则表达式匹配(可能还有我没有搜索过的其他匹配)。不记得 Bash 2 的差异,也许是一些括号/条件测试的差异?

Mac OS X 10.7.x Lion 包括 Bash 3.2.x。我不记得确切的版本,但 Mac OS X 10.6.x Snow Leopard 和 10.5.x Leopard 包含 Bash 3.x。 Mac OS X 10.4.x Tiger 及更早版本使用 Bash 2.0.5。因此,您肯定会遇到默认支持的内容之间的差异。

当然,除了不同功能集和内置功能之间的差异之外bashMac OS X 上的版本,您还会发现其他工具的差异。例如,有getoptMac OS X 上的问题(参数中不支持在 Mac OS X 目录/文件路径中常见的空格;内置getopts在较新的bash版本可以帮助解决此问题,但在旧版本中可能不可用)。当然,还会有其他具有不同功能或语法的工具。

我绝对不是专家bash开发人员,但我已经写了一个number支持各种版本的 Mac OS X 特定脚本。看我的Bash 中的正则表达式及其替代方案讨论 2.x 与 3.x 正则表达式功能和解决方法的文章。或者,我的一些bash重点考虑了 Mac OS X 的脚本:工具-OSX & bash_存根.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Darwin/MacOS 是否修改了 Bash? 的相关文章

随机推荐

  • 如何将未知的参数列表映射到 elisp 中的启动进程?

    我终于尝试学习 elisp 但还没有集中精力如何将未知的参数列表动态映射到变量 这是一个工作函数 它将最多三个参数传递给启动进程 但我想将无限数量的参数传递给该函数 defun create drush buffer command res
  • C++ 空括号成员初始化 - 将内存清零?

    我最初写了一些这样的代码 class Foo public Foo m buffer private char m buffer 1024 比我聪明的人说使用 m buffer 初始化器会将内存清零 我的目的是让内存保持未初始化状态 我没有
  • 将 Unicode 转义符转换为希伯来语文本

    我的 json 文件中有以下文本 u00d7 u0090 u00d7 u0097 u00d7 u0095 u00d7 u0096 u00d7 u00aa u00d7 u00a4 u00d7 u0095 u00d7 u009c u00d7 u
  • 将大量 CSV 文件导入 Matlab

    我有一个 1 6 GB 大的 CSV 文件 需要将其输入到 matlab 中 我必须经常这样做 并且需要它快速运行 该文件的格式为 20111205 00 00 2 99 18 6 E 20111205 00 00 2 99 18 5 E
  • 通过 iPhone 应用程序拨打电话号码

    嗨 iPhone 开发者 我想在我的 iPhone 应用程序中添加一个功能 它们是 拨打我的应用程序中的电话号码 通话结束后 重新启动之前的应用程序 我知道它在 iphone OS 3 2 中不可能 iOS 4 中可以吗 我需要你的帮助 你
  • 流中记录的排序

    以下是我的一些疑问 我有两个不同的流stream1 and stream2其中元素是有序的 1 现在当我这样做时keyBy在每个流上 顺序会保持不变吗 因为这里的每个组都只会发送给一个任务管理器 我的理解是记录将按小组顺序排列 请在这里纠正
  • 传单中圆形和多边形的联合

    我正在向传单地图添加两个圆圈和一个多边形 这是我绘制这三个形状的代码 有什么办法可以得到这三个形状的联合吗 leaflet options leafletOptions minZoom 0 maxZoom 18 m lt leaflet g
  • 如何在没有宏的情况下自动创建 Clojure `defn` 函数?

    最初是出于以下问题的动机 映射到 clojurescript 宏的调用 假设您想自动创建许多类似的函数 即不需要全部手写 假设我们有一些预先存在的函数 并且希望用处理程序包装它们以进行某种回调 defn do foo println I f
  • decltype 和成员函数(非指针)类型

    struct C int Foo int i return i typedef decltype C Foo type 由于不存在成员函数类型这样的类型 没有 是吗 我希望C type to be int int 但以下内容无法使用 Vis
  • Flex:无法调整外部加载的 SWF 内容的大小

    我有一个应用程序 我尝试加载外部 SWF 所以 我们有 我的应用 舞台的尺寸为 768x1280 缩放模式 EXACT FIT 外部 SWF 这是另一个应用程序 其阶段为 800x600 缩放模式 EXACT FIT 问题是 尽管我应用 s
  • Tomcat 未加载 MSSQL 驱动程序

    我正在尝试将我的 web 应用程序部署到 Tomcat 容器 但出现异常 指出找不到数据库的驱动程序 我在 Jetty 上本地测试了该应用程序 driver jar 由 Maven 提供 我将 driver jar 复制到 Tomcat 主
  • 将 (720, 720) 的 pandas DataFrame 重塑为 (518400, ) 2D 为 1D

    我有一个形状为 720 720 2D 的 DataFrame 我想将其转换为一维维度而不更改其值 我该如何使用 Pandas 来做到这一点 Use numpy ravel将 DataFrame 转换为 numpy 数组 np random
  • 未捕获的类型错误:无法读取 ReactJs 中 {Component}.render 处未定义的属性“映射”

    我将我的数组传递给这样的侧边栏组件的道具 我想在我的子组件中访问它 When i save the code and go to browser i am getting this error message import React Co
  • 如何在java中创建类型安全的泛型数组?

    我想在 java 中创建一个通用数组 维护 Java 通常提供的类型安全性 我正在使用这段代码 class Stack
  • “of”与“from”运算符

    之间唯一的区别是Observable of and Observable from参数格式 像Function prototype call and Function prototype apply Observable of 1 2 3
  • 1帧内使用opengl es在ipad上最多可以绘制多少个三角形?

    ipad上一帧最多可以画多少个三角形 另外 用于绘制这些三角形的 gl 调用数量是否有限制 您在 iPad 上遇到的三角形总数的唯一限制是内存大小以及您希望渲染的速度 发送的顶点越多 应用程序将使用的内存就越多 渲染速度就越慢 例如 在我的
  • utf8' 编解码器无法解码位置 15 中的字节 0x89:起始字节无效

    这是我的项目的视图 其中我尝试使用 boto 将图像从本地系统上传到 s3 class ImageList generics ListCreateAPIView queryset Image objects all serializer c
  • 如何在gem5中启用ARM半主机?

    我尝试运行在 QEMU 上运行的半主机退出指令 mov r0 0x18 ldr r1 0x20026 svc 0x00123456 但是gem5似乎没有正确处理它并崩溃了 以下补丁将其添加到 baremetal py 但不添加到 fs py
  • jquery改变用户滚动的背景颜色

    jquery 是否有可能在用户向下滚动页面时背景动画从 50 白色变为 90 白色或其他 所以首先是颜色rgba 255 255 255 5 当用户滚动到颜色下方 210px 时become rgba 255 255 255 9 更新后的更
  • Darwin/MacOS 是否修改了 Bash?

    我想知道使用 Bash 内置命令的 Bash 脚本的可移植性 据我了解 每种 UNIX 风格都倾向于修改各种 UNIX 实用程序 但他们是否倾向于不理睬 Bash 和 Bash 内置函数呢 尤其是 MacOS 呢 据我所知 bash 在 M