跨越各种风格编写常见脚本

时间:2016-06-24 10:11:58

标签: linux bash ubuntu centos

我想编写一些脚本(bash),这些脚本应该适用于所有类型的linux(主要是在ubuntu,centOs,redhat上)。

如何使脚本独立于OS类型?

是否有一些在线转换器使脚本与其他版本的Linux兼容?

或者处理这种情况的最佳方法是什么。

2 个答案:

答案 0 :(得分:2)

仅使用POSIX shell标准功能。在此链接上,您可以查看有关此主题的更多信息以及如何验证shell是否符合POSIX:

https://unix.stackexchange.com/questions/48786/how-can-i-test-for-posix-compliance-for-shell-scripts

答案 1 :(得分:0)

首先。对于您运行的命令,您必须确保您的脚本与某些shell版本兼容。

二。您可以测试运行脚本的兼容性,并检查它是否正在执行它想要执行的操作。

第三。如果您要在不同的发行版中运行/读取/写入某些文件/目录,您必须编写一个预运行脚本,其目的是检查所提到的文件/目录的路径,并将它们设置为您的脚本将使用的变量。

例如:您的脚本需要运行一些二进制文件,但您不知道它到底在哪里。您检查并发现此二进制文件位于不同的位置,具体取决于发行版:

1-在Ubuntu中位于/usr/bin/somebinary

2-在CentOs中位于/bin/somebinary

因此,您的预运行脚本会执行以下操作:

SOMEBINARY_FULLPATH=$(whereis somebinary)

或类似的东西。如果相同的二进制文件具有不同的参数,则会执行相同的操作,具体取决于您运行的发行版(例如,在Linux和* BSD中的grep版本之间会注意到)

最后,使用变量来运行命令。

问候。