2

バックグラウンド:

私たちは、いくつかの基本的なシステム管理タスクと複雑なWebサイトの展開を支援するために、社内でのみ使用するcocoaアプリを開発しています。このアプリケーションは基本的に、多くの異なるbashシェルコマンドのラッパーです。これらのコマンドからの出力は、解析またはユーザーに表示する必要がある場合があります。

NSTaskを試してみて、いくつかのスクリプトを起動することができます。ただし、これはやや面倒なようです(正確なパスを設定する必要がある、各引数を個別に渡すなど)。これが実際に推奨される方法である場合は、この方法でNSTaskを使用できます。

これまでの最大の課題は、シェル環境のセットアップです。多くのRubyGemやプログラムとやり取りし、capistranoを使用してデプロイします。

質問は:

ユーザーのような環境設定でシェルとどのように対話できますか?(エイリアス、rvm、ruby、パス)

4

1 に答える 1

1

Terminal.appのシェルに設定されている環境変数は、Terminalコンテキストで使用しているシェルにほぼ限定されています。NSTask自動的に""によってピックアップされません。

しかし...あなたには選択肢があります。それらのいくつかは、この関連する質問への回答で説明されています

" "ファイルを介してNSTaskによって取得されるよりユニバーサルな環境変数を設定するか、 " "のシェルをターミナルのシェルと一致するように設定できます(つまり、.bashrcまたは.profileまたはパスを初期化するものを取得します) )via " "(起動パスはシェルです)。~/.launchd.confNSTask[NSTask setLaunchPath:]

もちろんsystem()、ツール内から「」を呼び出すこともできます。~/.launchd.confこれにより、" "ファイルで設定された変数が取得される場合もあります。

この質問では、環境変数の詳細を確認できます。

于 2012-11-21T05:44:23.843 に答える