2017-06-16 12 views
0

私は引数として3つの入力ファイルを取るBashシェルスクリプトを持っています。私はそれらをすべてパッケージ化したいので、そのパッケージをUNIXマシンに置いて実行することができます。シェルスクリプトをパッケージ化するためのSolaris/AIXのユーティリティはありますか?

+0

あなたがしたいことは本当に不明です。あなたのスクリプトを 'パッケージ化'したい、またはスクリプトがファイルを 'パッケージ化'する必要がありますか? –

+0

スクリプトをパッケージ化します。 – Rohith

+0

あなたはどのようなパッケージを期待していますか? SolarisはSVR4パッケージング標準(またはSolaris 11以降のIPS)を使用しますが、AIXは独自のBFFを使用します。いずれにしても、1つのファイルで構成されている場合は、ユーティリティのパッケージ化のポイントは何ですか? – jlliagre

答えて

2

も灰色の髪の管理者に知られている実行ファイルでtarファイルを含めるために、古い、古代の技術があります。)

まずスクリプトを作成...スクリプト

という名前のファイルに入れてもちろん最後__

#!/bin/bash 
TAR_STARTS=`awk '/^__TARMAN BEGINS__/ { print NR + 1; exit 0; }' $0` 
NAME_OF_SCRIPT=`pwd`/$0 
tail +$TAR_STARTS $NAME_OF_SCRIPT | gunzip -c | tar -xvf - 
# Insert commands to execute after untaring here .... with relative 
# pathname (e.g. if there is directory "bin" with a file "executable" 
# then you should insert a line bin/executable 
exit 
__TARMAN BEGINS__ 

ない改行、このスクリプトは、インターネットでどこかに由来しています。私のものではありません。私はちょうど正しい功績のためにどこを覚えていない。

次に、tarファイルを作成してファイルの最後に配置します。これは、今、あなただけのことを、それあなたはもちろん出る前にスクリプトの名前を入れることができます

$ bash ./selfexploding.sh 
tar: blocksize = 9 
x testtar, 0 bytes, 0 tape blocks 
x testtar/test2, 1024 bytes, 2 tape blocks 
x testtar/test1, 1024 bytes, 2 tape blocks 

を試すことができ、それは__

$ cat script test.tar.gz > selfexploding.sh 

後に何の改行がないことnescessaryだ理由です解凍して作成する...もちろん、パスは実行のpwdに相対的でなければなりません。これがAIXで動作するかどうかはわかりません。少なくともSolaris 11.3では動作します。しかし、それは標準的なコマンドを使用するだけです。それはどこでもうまくいくはずです。これに加えて、もちろん、SolarisとAIX用のネイティブパッケージを作成することもできます。

関連する問題