2010-11-28 5 views
0

問題: 私のココアアプリケーション(OS X)からすべての通常のプロファイル(〜/)をロードしてbashインスタンスを実行できるようにします。 bash_profileなど)。私はしません私はターミナルを発射したときのものとまったく同じデフォルトのbashインスタンスを持っているので、プロファイルを手動でロードします。そこから、あらかじめ定義された環境変数(Rubyバージョンマネージャの変数)を取得したいと思います。目的のCでロードされたデフォルトプロファイルを持つbashインスタンスを取得する方法

私が試したこと: 私はすでに成功していないいくつかの解決策を試しました。私はそれらをここにリストアップしてみましょう:

  1. NSTask
  2. システム() "/ binに/ shの-l" 私が実行しようとしたすべてのソリューションのための

を呼び出して、現在のようにロードbashのインスタンスを持っていますusername ...残念ながら、うまくいきませんでした。

+0

実行方法 –

+0

どのように実行するのですか?私はプログラムを起動したユーザーとしてプログラムを実行する、私はプロセスをフォークしていない –

答えて

2

bashshとして実行すると、互換モードで実行され、.bash_profileは読み取られません。あなたは/bin/bashを実行する(またはあなたが他の人があなたのアプリケーションを使用したい場合は、必ず、ユーザが選択したものは何でもシェルを占めます。)その後、bashを実行したい場合は

+0

私は明日それを試しています。それは多くの意味を作るようです! –

+0

それは働いた。それはまだ私が望むものではありませんが、これは上記の質問に答えています。ありがとうございました! –

0

あなたは伝えるために、コマンドラインオプション「--login」を使用することができますbashはログインシェルとして動作します。

古典的には、argv[0]の基本名がダッシュで始まっていれば、シェルはログインシェルとして機能します。

あなたはして必要な効果を得ることができるかもしれない:あなたはpopen()でこれをやっている場合は、シェルからの出力を読み取ることができ

bash --login -c 'echo $RUBY_VARIABLE_OF_INTEREST' 

関連する問題