源码环境:

源码环境:

源码环境:

$ uname -a
SunOS machine1 5.10 Generic_150400-63 sun4u sparc SUNW,SPARC-Enterprise
$ pwd
/
$ ls -l /bin/sh
lrwxrwxrwx   1 root     root          13 Nov  1 19:39 /bin/sh -> ../../sbin/sh

目标环境:

$ pwd
/root
$ ls -l /bin/sh
lrwxrwxrwx. 1 root root 4 Jul 16 12:10 /bin/sh -> bash
$ cat /etc/system-release
Red Hat Enterprise Linux Server release 7.5 (Maipo)

在目标环境中,我们#!/bin/sh在每个脚本中使用 shebang 行


Solaris 环境中的 Shell 脚本使用 shebang 行#!/usr/bin/ksh#!/bin/sh

目标是将 shell 脚本从 Solaris 10 迁移到 RHEL 7.5


1)脚本是用solaris korn shell & /bin/shshell编写的,符合 posix 标准?用于无缝迁移到 bash(在 Linux 中),无需验证代码。

2) 如果不是,将脚本迁移到 Linux 之前需要进行哪些验证?

答案1

您可以不是 不看代码就迁移它。您需要在安全环境中测试运行脚本,并将结果与​​ Solaris 上相同测试的预期结果进行比较。您还应该调查两个系统上的失败条件是否相同(丢失文件、无效数据等)。

POSIX 的方式并不重要贝壳脚本是为其编写的,因为脚本很可能调用非 POSIX 或 Solaris 特定的实用程序或使用非 POSIX shell 扩展。他们还可能对需要针对 Linux 进行更新的环境(文件所在的位置、调用哪些设备和接口等)做出假设。

kshSolaris 上的 shell是很不一样来自bashLinux 上,因此您根本不能指望脚本在 Linux 中或Linux 上ksh“运行” 。shbash

相关内容