ソースコード環境:
$ 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
Solarisのシェルはとても違うしたがって、Linuxではbash
スクリプトが「実行」されるとは期待できませんksh
。sh
bash