2016-06-24 3 views
0

私はLinuxのすべての味(主にubuntu、centOS、redhat)で動作するスクリプト(bash)をいくつか書きたいと思っています。一般的なスクリプトをLinuxのフレーバに書き込む

OSの種類に依存しないスクリプトを作成するにはどうすればよいですか?

他のバージョンのLinuxと互換性のあるスクリプトを作成するオンラインコンバータがありますか?

このシナリオを処理するには、どのような方法が最適ですか。

+1

bashだけが必要な場合は、ディストリビューションごとのバージョンが考慮する最も厄介な事実です。 ... 1。 bashのためにこれらのプラットフォームのバージョン情報を収集し、変更を調べることを提案してください。 2.私が知っているシェルスクリプトは、他のプログラムへの呼び出しと、バージョンごとに(欠落している)バージョンとの間の接着剤であることがよくあります...そして、もしkornやzやcなどがないなら、確かめてくださいシェルを1つのプラットフォームにインストールするので、bash構文に集中することができます。 – Dilettant

答えて

0

まず:このリンク上では、このテーマとどのようにシェルがPOSIX準拠であるかどうかを確認するために詳細な情報を見ることができます。実行するコマンドに関しては、あなたのスクリプトがいくつかのシェルのバージョンと互換性があることを確認する必要があります。

秒。あなたは、あなたのスクリプトを実行している互換性をテストし、それがやるべきことをしているかどうかをチェックしなければなりません。

第3。異なるディストリビューション内のいくつかのファイル/ディレクトリを実行/読み書きする必要がある場合は、前述のファイル/ディレクトリのパスをチェックし、それらを変数に設定することを目的とした事前実行スクリプトを作成しなければなりませんあなたのスクリプトで使用されます。

例:スクリプトはバイナリを実行する必要がありますが、本当にどこにあるかはわかりません。 、あなたの前に実行するスクリプトをCentOSので

2-ので

/bin/somebinaryである/usr/bin/somebinaryでのUbuntuで

1-です:あなたはチェックして、このバイナリは、ディストリビューションに応じて、異なる場所に位置しています見つけます次のようになります。

SOMEBINARY_FULLPATH=$(whereis somebinary) 

などです。実行するディストリビューションに応じて同じバイナリに異なるパラメータがある場合も同様です(Linuxの* grepバージョンと* BSDの間など)

最後に、変数を使用してコマンドを実行します。

よろしくお願いいたします。

関連する問題