Ruby似乎使用/bin/sh
作爲shell解釋器,它在* nix機器上不理解/bin/bash
命令,如pushd
。這是irb
告訴我:從特定目錄運行shell命令
1.9.3-p327 :011 > `pushd /tmp; echo foo`
sh: 1: pushd: not found
=> "foo\n"
在OSX,/bin/sh
是bash的一個別名,所以上面的代碼運行正常那裏。有沒有辦法強制Ruby在* nix機器上使用/bin/bash
來解釋shell命令?
腳本運行的方式全部在一行中,就像'pushd/tmp;做一點事;彈出',但你的答案的最後部分似乎好得多無論如何。謝謝。 – cbmanica