2
什么时候编写可移植脚本很重要?
我写的大多数代码都在PHP中。我最近开始学习Shell脚本。我遇到的大多数资源和教程都是针对Bash的。有些警告关于洗礼,有些则没有。我在这里和Stack Overflow上已经读了很多东西。 每当答案使用Bashisms时,不可避免地会有人评论说: 您不应该使用<在此处插入bashism>。它不是便携式的。 即使将问题标记为,也会发生这种情况bash。对我来说,这就像告诉一个PHP程序员,他们不应该使用PHP 5中的新代码,因为它不能与PHP 4一起使用。或者告诉某人,他们不应该为Mac写一些东西,因为它不能被使用。在Windows上。 当我用PHP编写时,我选择了最低要求,并编写了向前兼容的代码。我不担心使其向后兼容。 如果我使用#!/bin/bashshebang,为什么不使用bashisms?我开始得到的印象是有些人就是喜欢bash的 bash化(双关语意)只是为了它的缘故。 人们经常使用bash并且shell可以互换使用-可能是由于bash是许多系统上的默认shell。因此,我可以理解添加注释以警告该代码使用了bashisms,但我不明白使用它们的含义是错误的。 显然,如果我编写的脚本严格仅供个人使用,则可以用我想要的任何语言编写。但我想认为我编写的某些代码可能对其他人有用。 发布前,我尝试过寻找问题的答案。我发现了很多有关如何测试可移植性的信息,但是找不到什么时候进行此操作很重要。 那么,什么时候编写可移植脚本很重要? 例如, 哪种类型的脚本应尽可能地可移植? 没有安装Bash的系统有多普遍? 如果系统已安装Bash,它还会具有GNU版本的find和其他实用程序吗?