4/23(水)にNTT-ATさんの会議室にてkawasaki.rb #023を開催しました。
togetterのまとめはこちら
パーフェクトRuby読書会
3-6-2 外部コマンドを実行するまで終えました。
3-6-2 外部コマンドを実行する
Rubyでは外部コマンドを呼び出す際に`(バッククォート)を使用します
この時、戻り値は外部コマンドの標準出力となります。 外部コマンドの戻り値が必要でない場合は、Kernel.#systemを用います。 この時、外部コマンドの終了ステータスが0の場合はtrue、それ以外の場合はfalseを返します。
直前に実行したコマンドの終了ステータスは組み込み変数$?で確認できます。
Kernel.#execはKernel.#systemと同じく、引数に与えられた外部コマンドを実行します。systemとの違いは、実行中のRubyプロセスは外部コマンドのプロセスに変わり、外部コマンドの実行が終了しても制御は戻らずプロセスが終了します。
Kernel.#`やKernel.#systemは外部コマンドが終了するまで処理を同期的に待ちますが、Kernel.#spawnは即座に子プロセスのPIDを返します。
system,exec,spawnメソッドには第一引数にハッシュを指定する指定することができ、これを用いて環境変数の追加/変更することができます。
第二引数(第一引数に環境変数を指定した場合には第三引数)にはハッシュでオプションを指定することができます
なお、このオプションについてはRubyリファレンスのspwanのページに記載されていました。
http://docs.ruby-lang.org/ja/2.2.0/method/Kernel/m/spawn.html
会場では、オプションからchdirを指定しなくても内部でcdすれば良いのではないか?という議論がありましたが、下記のような挙動の差がありました。
と、オプションのchdirに存在しないパスを指定した場合、処理を実行せず戻り値をnilで返すという挙動をしてくれました。
セッション
日本のJuliaもっと盛り上げてこ⤴⤴ @chezouさん
2015/4/25に開催されたJulia Tokyoで発表するスライドを使ってJuliaの紹介をしていただきました。
Juliaはスクリプト言語の感覚で書ける科学技術計算向け言語であり、こちらのベンチマークにもあるように、処理によってはC並みのパフォーマンスが出せる、ということが売りの言語のようです。
また、Juliaの入門にはX分で学ぶJulia - りんごがでているが良いとのご紹介もありました。
まとめ
次回は5/20(水)に開催します。