2016-10-13 2 views
0

私は最近Macでシェルスクリプトを学んできました。 AtlassianのSourceTreeのようなアプリケーションを例に挙げてください。私が理解しているのは、gitコマンド用のGUIであり、コマンドラインから実行できることです。ボタンを押すだけで対応するgitコマンドがトリガされます。これは事実上、コマンドラインを介してバックグラウンドで実行されます。そのような場合は、GUIを持つすべてのアプリケーションをこのように機能させますか?すべてのアプリケーションは基本的にマシンのシェルスクリプトを通してコマンドを実行していますか?もしそうなら、どのアプリケーションにもAPIを提供する、公に利用されている基本的なコマンドはありますか?すべてのアプリケーションにコマンドラインインターフェイスがありますか?

+3

いいえ、なぜそれを前提としていますか? – Biffen

+0

いくつかありますが、そうではありません。 –

+1

nit:作業を実行するために外部プログラムを呼び出すことは必ずしも "マシンのシェルスクリプトを通して"そのコマンドを実行するとは限りません。シェルはプログラムを呼び出すための便利なメカニズムを提供します。プログラムがシェルを介して最も一般的に呼び出される場合、それはしばしば "コマンドライン"ツールと呼ばれます。プログラムは外部ツールを呼び出すためのラッパーとしてシェルを呼び出すことができますが、そのステップは必ずしも必要ではありません。 –

答えて

2

これはそれより複雑です。

多くのアプリケーションにはGUI(Safariなど)しかありませんが、多くのアプリケーションではCLI(例:find)しか使用できません。 GUIアプリケーションとCLIのアプリが同じ機能を実行すると、彼らは互いに通信することができるか、そうでないかもしれ

  • あなたが指摘するようにGUIアプリケーションは、シーンの背後にCLIコマンドを実行することができます

  • (例えばsystem()又はpopen()で)代替の両方のアプリケーションが

  • またはNOコードはまったく共有されている同じ基本ライブラリを使用することである(0考えますとMacのファインダー)

  • 最後に、MacではGUIツールの一部をAppleScript言語で制御することができます。これはosascriptコマンドで利用できます。言い換えれば、bashスクリプトでiTunesを制御することができます。

+0

ありがとう - 役に立つ説明。 – cweber105

0

もちろん、すべてのアプリケーションがそのように動作するわけではありません。実際、私の経験からは、それに続くアプリケーションはほとんどないと言えます。ほとんどのアプリケーションは、OSのプラットフォームや機能に直接依存する独自の操作を実行します。シェルコマンドを実行するのではなく、OS間の移植には難しい(ほとんど不可能です)。

関連する問題