0

私は Dir.chdir("/xyz") に精通しています

残念ながら、これはプロセスのディレクトリを変更しますが、実際にはユーザーのディレクトリは変更しません。私の必要性を説明するために、次の例を作成します。

$~/: ruby my_script.rb
CHANGING TO PATH FOR USER NOT SCRIPT

$/Projects/Important/Path: pwd
$/Projects/Important/Path

見る?ユーザーのパスを変更するスクリプトが必要です。system/backticks/Dir.chdir をすべて実行すると、プロセス パスが調整され、必要なパスではなく、開始した場所にユーザーが座って終了します。

私が読んだことexecから、それは既存のプロセスを引き継ぐので、進むべき道でした...しかし役に立ちませんでした。

4

2 に答える 2

0

できませんが、十分に役立つ何かを行うことはできます。Ruby から別のシェルを呼び出すことができます。

Dir.chdir("/xyz")
system("bash")

これを実行すると、新しいbash プロセスが作成され、/xyzディレクトリで開始されます。欠点は、このプロセスを変更すると Ruby スクリプトに戻り、すぐに終了すると仮定すると、Ruby スクリプトを開始した bash プロセスに戻ることです。

于 2013-07-07T23:35:08.310 に答える