【问题标题】:Solaris vs LinuxSolaris 与 Linux
【发布时间】:2016-05-16 07:51:49
【问题描述】:

我有一个要求,solaris 上的所有脚本都需要复制粘贴到 linux 上。我需要这样做,记住脚本应该是 linux 兼容的。我不知道如何检查这些现有脚本的兼容性。请注意,我没有准备好 linux 环境,我们正在收集所有此类类型的数据,请帮助。

谢谢 阿比纳夫

【问题讨论】:

    标签: linux solaris


    【解决方案1】:

    您将无法保证,存在太多潜在差异:
    * 调用 Solaris 特定工具的脚本。
    检查(grep)你的脚本调用/bin/*/usr/bin
    * 在 Linux 上调用具有不同选项的实用程序的脚本
    大多数时候,Linux 实用程序(grep、sed、awk、date)会有更多选项。尝试安装和使用 GNU 实用程序,或者希望 Linux 也支持 Solaris 上的基本选项。 * ksh 或 bash
    如果可以,请尝试在 Solaris 上安装和使用 bash。 注意while循环(见https://stackoverflow.com/a/5061255/3220113)。
    更新:
    我自己的经验:
    我已经将很多脚本从 Solaris 迁移到 AIX,都是 ksh。我遇到的问题主要是:
    * 当 $var 为空时,if [ -z $var ] 在 AIX 上失败(使用 if [ -z "$var"])。
    * 没有sed -i 选项我在原地编辑文件 使用vi file <<@
    从远程脚本调用时这不起作用,它缺少正确的 $TERM
    * crontab 脚本没有查看 /etc/environment(特定于 AIX)
    * AIX 上日期的自制时区中的 DST 运行不正常。
    * 不同的目录(数据库分布!)
    * 在启动 java 脚本之前要设置的其他 Java 类和类路径
    * 与邮件服务器的连接工作方式不同。
    最近我只与bash 合作。终于解脱了! find 在几分钟内支持 mtimedate 可以跳天,grep 有漂亮的选项,甚至 awk 已经找到了进入我的工具箱的方式。对于 bash,请记住您永远不会进入 while 循环。
    当然,您希望对您将要完成的工作进行估算。当您需要移植过去 3 年中自己编写的脚本时(因此您了解他们的工作,并且数量约为 2 年的工作量 - 您肯定也做过其他事情),我个人的猜测是大约 4 个月的编程和测试。

    【讨论】:

    • 感谢沃尔特的回复。我浏览了 solaris 上的脚本,它们很少有任何可能与 linux 不兼容的语法。所有 awk、grep、egrep、cd。使用 pwd 等命令。另外,在我的 linux 环境中对所有这些命令执行“man”检查它们是否兼容是否明智?
    • 我更新了我的答案,给你带来了一些惊喜。 man 页面无济于事。您可以尝试阅读 http://mywiki.wooledge.org/BashFAQ 页面或在 shellcheck.net 上测试您当前的一些脚本,并尝试了解脚本上的 cmets。
    • 感谢 Walter,shell 检查是一个很棒的工具。这有助于我逐行解码。
    猜你喜欢
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    相关资源
    最近更新 更多