ルビースクリプトを実行している場所から現在のターミナルディレクトリを変更できるかどうかを知りたいと思います。rubyスクリプトからフォルダ内の(ターミナル)cd
たとえば、端末の$HOME
からスクリプトを実行している場合は、スクリプトの最後に$HOME/mydir
でcdしたいと思います。
私はいくつかのことを試しましたが、私はいつもスクリプトが開始された同一の場所で探しています。私が試した
もの:
Dir.chdir(mydir)
%[cd mydir]
彼らは実際にだけスクリプトの実行のスレッドで、ディレクトリを変更します。スクリプトが終了すると、端末の私の現在の位置は、私がスクリプトを起動する前と同じです。
私はSOと同様のものを見つけましたが、Python-relatedです。応答は否定的です。
なぜか質問することがありますか?
私は現在、開始点としてプロジェクトフォルダが必要なコマンドラインアプリケーション(gli
を使用しています)に携わっています。現在のディレクトリに名前project
で新しいフォルダを作成します
$ myfoo new project
:だから私の最初のコマンドは次のようになります。今、私がする必要がある他のコマンドで作業できるようにするには:
$ cd project
project$ myfoo domore
だから私は単にmyfoo new project
を実行した後にproject
に私の自己を発見したのはいいだろうと考えていました。
私が恐れていたように、それは簡単ではありません(全く不可能です)。 RubyGemsによって生成された標準ファイルの代わりに、私が望むRuby呼び出しを実行するbashスクリプトを使うのはどうですか?それは実現可能ですか?私は愚かですか? eval
を使用する必要がありますか?
回答ありがとうございます。しかし、私は誰も受け入れられないことを恐れています。おそらく質問はなかったでしょう:)。
これを行うことはできないようです。 rubyからのシステムコールは、あなたのスクリプト/シェルとは異なるスレッドで動作し、現在の場所には影響しません。あなたはこれを使うために何を望んでいますか? –
@ Douglas-F-Shearer:なぜ私の答えがちょっと好奇心から外れて –
になってしまったのですが、どうして私の答えがうまくいかなかったのですか?私はこのテクニックを数回使いましたが、あなたの状況にどう対応していないのかはっきりしていません。 – Ian