だから私はLinuxに初めてアクセスし、その内容を詳しく調べようとしたところ、インストールされたソフトウェアが異なる動作をすることがわかりました。たとえば、私のOpenSUSEには2つのソフトウェアOpenFOAMとMATLABがあります...私の.bashrcエイリアスOpenfoamは次のエイリアスですが、 alias OF='source /..../bashrc'
matlabエイリアスOSは次のようになります。alias matlab='/opt/..../matlab'
これはmatlabに実行可能ファイルがあり、openfoamはそれを実行するためのbashスクリプトにすぎません。
私の質問は、なぜソフトウェアを実行する2つの異なる方法がありますか?
PS:このソフトウェアは私が直接インストールしたものではなく、すでにインストールされています。
ありがとうございます!
答え1
特定のソフトウェアを実行すると、開発者はさまざまなアプローチを使用します。それらのいくつかは、設定ファイル(matlab.configファイルなど)からすべてのパラメータを読み取ることを好みます。他の人は、openFOAMなどの環境変数やコマンドラインでいくつかのパラメータを設定することを好みます。
一部のソフトウェア開発者の場合、特定のパラメータは起動時にのみ設定できるため(ほとんどのJavaソフトウェア - ヒープサイズ、GCなど)、シェルスクリプトを使用する必要があります。他のソフトウェア開発者の場合は、環境/ターミナル全体の環境変数(LANG、LD_LIBRARY_PATHなど)を設定せずに変更したいか変更する必要があるため、シェルスクリプトも使用します。
どちらの方法も機能します(ご覧のように)。
答え2
すべての言語をコンパイルして実行できるわけではありません。同様に、実行可能ファイルは、実行可能ファイルに正しい引数を渡すラッパーとして機能するシェルスクリプトから呼び出されることがあります。 Atomエディタはそのような例の1つです。
Linuxは正しいアーキテクチャでバイナリを実行し、解釈/スクリプト言語コードを解釈できます(インタプリタがある場合)。 $ PATHの実行可能ファイルはシェルから呼び出すことができます。他の実行可能ファイルの場合は、実行可能ファイルのパスを参照する必要があります。また、実行ファイルにはユーザー/グループに対して実行ビットが設定されている必要があります。