
소스 코드 환경:
$ 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 환경의 쉘 스크립트는 shebang 라인을 사용 #!/usr/bin/ksh
하고#!/bin/sh
목표는 셸 스크립트를 Solaris 10에서 RHEL 7.5로 마이그레이션하는 것입니다.
1) 스크립트는 /bin/sh
Solaris Korn 쉘과 쉘을 사용하여 작성되었습니다.posix 표준 준수? 코드 확인 없이 bash(Linux)로 원활하게 마이그레이션합니다.
2) 그렇지 않은 경우 스크립트를 Linux로 마이그레이션하기 전에 어떤 확인이 필요합니까?
답변1
당신은 할 수아니요 코드를 보지 않고 마이그레이션하세요. 보안 환경에서 스크립트 실행을 테스트하고 그 결과를 Solaris에서 동일한 테스트의 예상 결과와 비교해야 합니다. 또한 오류 조건이 두 시스템 모두에서 동일한지(파일 누락, 잘못된 데이터 등) 조사해야 합니다.
POSIX 방식은 중요하지 않습니다껍데기POSIX가 아닌 또는 Solaris 관련 유틸리티를 호출하거나 POSIX가 아닌 셸 확장을 사용할 가능성이 높기 때문에 이를 위해 스크립트가 작성되었습니다. 또한 Linux용으로 업데이트해야 하는 환경(파일이 있는 위치, 호출되는 장치 및 인터페이스 등)에 대해 가정할 수도 있습니다.
ksh
솔라리스의 쉘은매우 다르다따라서 Linux 에서 bash
스크립트가 "실행"될 것이라고 기대할 수 없습니다 ksh
.sh
bash