2

プロジェクトをビルドし、自動コンパイルの監視を開始し、Thinサーバーを起動してコンパイル済みアプリを表示するローカル開発者向けのRakeタスクを作成しました。

プロジェクトが現在依存しているローカルENV変数を設定できるように、Foremanを実装しました。Windowsでも動作する必要があることを除けば、うまく機能します。

私の解決策は、.envファイルを解析し、サーバーを起動するときに変数を手動で設定することでした。

$ MY_ENV_VAR=12345 ruby -rubygems app.rb

手で実行するとうまくいきます。しかし、Rakeタスクを介してそのコマンドを実行しようとするとsh %{MY_ENV_VAR=12345 ruby -rubygems app.rb}、失敗します。

Command failed with status (127): [MY_ENV_VAR=12345 ruby -rubygems app.rb...]

、、、、、およびバックティックを使用して実行しようとしましたが、sh %{}運がありませんでした。助言がありますか?execsystem%x{}

4

1 に答える 1

4

引数とともに使用Kernel#systemしてenvみてください:

env = {'FOO' => '123'}
cmd = 'echo $FOO'
system(env, cmd) # => prints "123", returns true
于 2012-05-03T22:57:57.740 に答える