bash – 编写跨平台shell脚本的最佳方法是什么
发布时间:2020-12-16 01:58:16 所属栏目:安全 来源:网络整理
导读:我有一个 shell脚本,我想在多个平台上运行,所有平台都支持bash.我的问题是某些命令在 Linux,FreeBSD,OS X和Cygwin上表现不同. 到目前为止我的想法是: 为主脚本中的所有特定于操作系统的操作创建函数的默认实现,然后检查$OSTYPE并获取特定于实现的文件,该文
我有一个
shell脚本,我想在多个平台上运行,所有平台都支持bash.我的问题是某些命令在
Linux,FreeBSD,OS X和Cygwin上表现不同.
到目前为止我的想法是: >为主脚本中的所有特定于操作系统的操作创建函数的默认实现,然后检查$OSTYPE并获取特定于实现的文件,该文件(可选)替换行为不同的命令.如果我这样做,我应该如何使用多个参数处理命令?传递给函数的四个位置参数不是最干净的方法. 解决方法
首先,尽可能找到在差异无关紧要的情况下做自己想做的事情的方法.例如,某些版本的tar用于不支持-z选项来处理gzip压缩文件.然而,结合tar和gzip是可移植的.类似地,有一些方法可以调用ps,它们通常在BSD和LINUX上都有效.
一旦你发现你仍然需要处理的事情,你采购文件来提供处理命令语法的函数似乎是合理的.为避免位置参数,您可以使用内置bash的getopt. 另一种方法可能是编写一个python脚本或类似的东西,它只封装了最糟糕的平台依赖命令行为. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |