私は最近Macでシェルスクリプトを学んできました。 AtlassianのSourceTreeのようなアプリケーションを例に挙げてください。私が理解しているのは、gitコマンド用のGUIであり、コマンドラインから実行できることです。ボタンを押すだけで対応するgitコマンドがトリガされます。これは事実上、コマンドラインを介してバックグラウンドで実行されます。そのような場合は、GUIを持つすべてのアプリケーションをこのように機能させますか?すべてのアプリケーションは基本的にマシンのシェルスクリプトを通してコマンドを実行していますか?もしそうなら、どのアプリケーションにもAPIを提供する、公に利用されている基本的なコマンドはありますか?すべてのアプリケーションにコマンドラインインターフェイスがありますか?
答えて
これはそれより複雑です。
多くのアプリケーションにはGUI(Safariなど)しかありませんが、多くのアプリケーションではCLI(例:find
)しか使用できません。 GUIアプリケーションとCLIのアプリが同じ機能を実行すると、彼らは互いに通信することができるか、そうでないかもしれ
:
あなたが指摘するようにGUIアプリケーションは、シーンの背後にCLIコマンドを実行することができます
(例えば
system()
又はpopen()
で)代替の両方のアプリケーションがまたはNOコードはまったく共有されている同じ基本ライブラリを使用することである(0考えますとMacのファインダー)
最後に、MacではGUIツールの一部をAppleScript言語で制御することができます。これは
osascript
コマンドで利用できます。言い換えれば、bashスクリプトでiTunesを制御することができます。
ありがとう - 役に立つ説明。 – cweber105
もちろん、すべてのアプリケーションがそのように動作するわけではありません。実際、私の経験からは、それに続くアプリケーションはほとんどないと言えます。ほとんどのアプリケーションは、OSのプラットフォームや機能に直接依存する独自の操作を実行します。シェルコマンドを実行するのではなく、OS間の移植には難しい(ほとんど不可能です)。
- 1. 範囲内のすべてのBluetoothデバイスを一覧表示するコマンドラインインターフェイスはありますか?
- 2. GoLang用のCLI(コマンドラインインターフェイス)はありますか?
- 3. Spring Framework用のコマンドラインインターフェイスはありますか?
- 4. bluemixコマンドラインインターフェイスでアプリケーションをデプロイ
- 5. すべてのアクティビティにDVMインスタンスがあるか、すべてのAPKにDVMインスタンスがありますか?
- 6. Pythonでコマンドラインインターフェイス(CLI)を作成するためのパッケージはありますか?
- 7. JSのすべてのオブジェクトにtoString()メソッドがありますか?
- 8. すべてのUIRespondersにiPhoneの通知がありますか?
- 9. すべてのプロセスに独自のページテーブルがありますか?
- 10. すべてのOrientDBマスターノードに同じデータがありますか?
- 11. listViewすべてのアイテムにプログレスバーがありますか?
- 12. WebGLUにはすべてWebGLの機能がありますか?
- 13. すべてのAndroid端末にen_USロケールがありますか?
- 14. すべてのiosデバイスにUDIDがありますか?
- 15. すべてのブラウザにローカルストレージがありますか?
- 16. Javascript - すべての配列に「some」キーがありますか?
- 17. すべてのプロパティにObject.watchがありますか?__noSuchMethod__にshimがありますか?
- 18. ビジュアルスタジオスキャフォールドnodejsにはすべてのモジュールがありませんか?
- 19. NHibernateセッションカスケード(すべて)がトランザクション内にありますか?
- 20. Webrequestの後にパラメータにすべてのプロパティがあります
- 21. アプリケーション内のすべてのSELECTクエリでARITHABORTをONに設定する必要がありますか?
- 22. DjangoアプリケーションのすべてのモデルにWagtailを使用する必要がありますか?
- 23. すべてのJDBCプラグインは互換性がありますか?
- 24. Reduxアプリケーションのすべてのアクションを1つのファイルに含める必要がありますか?
- 25. kaaにはアプリケーションの登録済みエンドポイント/デバイスをすべて一覧表示するAPIがありますか?
- 26. すべての要素にCSSの背景があります
- 27. .NETディレクトリ内のすべてのフォルダにファイルがあります
- 28. すべてのチェックボックスのチェックに問題があります
- 29. すべてのページにJavaScriptのJavaScriptファイルがあります
- 30. デプロイメントフォルダ内のすべてのファイルにwldeployがあります
いいえ、なぜそれを前提としていますか? – Biffen
いくつかありますが、そうではありません。 –
nit:作業を実行するために外部プログラムを呼び出すことは必ずしも "マシンのシェルスクリプトを通して"そのコマンドを実行するとは限りません。シェルはプログラムを呼び出すための便利なメカニズムを提供します。プログラムがシェルを介して最も一般的に呼び出される場合、それはしばしば "コマンドライン"ツールと呼ばれます。プログラムは外部ツールを呼び出すためのラッパーとしてシェルを呼び出すことができますが、そのステップは必ずしも必要ではありません。 –