$ 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)在目标环境中,我们在每个脚本中都使用shebang行#!/bin/sh。
solaris环境中的Shell脚本正在使用shebang line #!/usr/bin/ksh和#!/bin/sh。
目标是将shell脚本从Solaris 10迁移到RHEL 7.5
( 1)脚本是否编写了solaris & /bin/sh shell、符合posix标准?为了在不验证代码的情况下无缝迁移到bash(Linux中)。
2)如果不是,在将脚本迁移到Linux之前需要进行哪些验证?
发布于 2018-11-14 07:09:09
在不查看代码的情况下,您可能无法迁移代码。您需要在安全的环境中测试运行脚本,并将结果与Solaris上相同测试的预期结果进行比较。您还应该调查两个系统上的失败条件是否相同(缺少文件、无效数据等)。
不管脚本是为何种POSIX编写的,因为脚本很可能调用非POSIX或Solaris特定的实用程序,或者使用非POSIX shell扩展。他们还可以假设环境(文件所在的位置、设备和接口的名称等等)。需要对Linux进行更新。
Solaris上的ksh shell与Linux上的bash非常不同,因此您不能指望ksh脚本在sh或bash上“只运行”。
https://unix.stackexchange.com/questions/481602
复制相似问题