日常

ケ・セラ・セラ

Rubyでsystemとバッククォートによる外部コマンド実行の違い

たまに使おうとして、どっちがどっちだっけ?となるやつ。

system

子プロセスが終了ステータス 0 で終了すると成功とみなし true を返す。 それ以外の場合 false を返す。

バッククォート

標準出力を返す。

たとえば

[1] 2.2.1-p85(main)> system('git rev-parse -q --git-dir')
.git
=> true
[2] 2.2.1-p85(main)> `git rev-parse -q --git-dir`
=> ".git\n"