From: "nobu (Nobuyoshi Nakada)" <nobu@...> Date: 2012-06-26T23:27:21+09:00 Subject: [ruby-dev:45854] [ruby-trunk - Feature #6651] Re: [ruby-cvs:43389] nobu:r36213 (trunk): popen: shell commands with envvar Issue #6651 has been updated by nobu (Nobuyoshi Nakada). Description updated ---------------------------------------- Feature #6651: Re: [ruby-cvs:43389] nobu:r36213 (trunk): popen: shell commands with envvar https://bugs.ruby-lang.org/issues/6651#change-27485 Author: nobu (Nobuyoshi Nakada) Status: Open Priority: Normal Assignee: Category: Target version: =begin なかだです。 : At Mon, 25 Jun 2012 17:13:56 +0900, : Tanaka Akira wrote in [ruby-dev:45812]: とりあえず、現在はドキュメントと整合していない状態になっています。 すいません、自分で入れた仕様を忘れてました。 何がしたいかというと環境変数を指定してpopenをしたい、ただしコマ ンドはArrayにはわかれていない単一の文字列、といったところです。 例えばgitがページャーを実行するのにやっているようなことです。 IO.popen("LESS=RSs #{ENV['PAGER']}", "w") 今のところenvやexec optionを指定するのはcmdがArrayでないとできま せんが、Arrayの外に出してしまうというのを考えました。 IO.popen({"LESS"=>"RSs"}, ENV['PAGER'], "w") IO.popen({"LANG"=>"C"}, "ls non-existent", err:[:child, :out]) もちろんArrayを使っても同じです。 IO.popen({"LANG"=>"C"}, ["ls", "non-existent"], err:[:child, :out]) パッチは https://github.com/ruby/ruby/pull/134 です。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦 =end -- http://bugs.ruby-lang.org/