1

I have a ruby script executing a shell script. How can I pass shell script data back to the ruby script.

      desc "Runs all the tests"
      lane :test do 

        sh "../somescript.sh"

        print variables_inside_my_script // i want to access my script data here.

      end

I'm able to do the reverse scenario using environment variables from ruby to shell script.

      desc "Runs all the tests"
      lane :test do 

        puts ENV["test"]

        sh "../somescript.sh" // access test using $test

      end

Thanks

4

2 に答える 2

2

ここでvariables_inside_my_scriptが何を意味するのかはあまり明確ではありませんが、オペレーティング システムでは原則として、サブシェルから親へ変数を「エクスポート」することは許可されていません。サブシェルの出力 (stdout) を読み取ることができます。

output = %x[ ls ]

本当に必要なものに応じて役立つ代替手法があります-例を参照してください

  1. Ruby で環境変数をエクスポートする

  2. http://tech.natemurray.com/2007/03/ruby-shell-commands.html

  3. http://blog.bigbinary.com/2012/10/18/backtick-system-exec-in-ruby.html

于 2016-03-10T04:58:34.073 に答える