2016-09-27 13 views
1

私はいくつかのタスクを行うことができ、最終的にディレクトリを変更し、ユーザーに制御を与えることができる期待スクリプトを書いてみたい。私はexpectスクリプトを使って現在の作業ディレクトリを変更するには?

spawn cd path\to\dir interact

を使用してみましたが、私は同じディレクトリにまだいます。 期待どおりにこれを達成する上でのリード?

+0

単に 'cd'を使用してください。ディレクトリが変更されます。 – Dinesh

+0

Dineshは 'cd path_to_dir'を使ってディレクトリをsininly変更できると言ったので、なぜExpectについて考えましたか? –

+0

ExpectはTcl言語の拡張であり、 'cd'は[組み込みのTclコマンドの1つです](http://tcl.tk/man/tcl8.6/TclCmd/contents.htm) –

答えて

2

私はあなたが産卵 EDいくつかのコマンド(のようなSSHbashの)と産卵 edコマンドがまだ実行されているとします。最後に、次のようにすることができます:

send "cd /some/dir\r" 
interact 
+0

それは働いた!私はしています 'spawn zsh " cd/some/dir \ r " interactしかし、なぜ私はspawn cdを使ってそれを行うことができませんか? – maximus

+0

@maximus - 'spawn'コマンドは、(ファイルシステム内にある)* external *コマンドでのみ動作します。このような外部の 'cd'コマンド('/bin/cd'、 '/ usr/bin/cd'など)はありません。 – pynexj

3

expectスクリプトでディレクトリを変更するには、キーワード "spawn"を使用する必要はありません。 スクリプトを実行している端末では、同じディレクトリに置かれますが、スクリプトはそれが実行されているディレクトリを変更したので、少し混乱するかもしれません。

+1

良い答え@ GitZwergrapper - 私が探していたもの。 "cd "を入力するだけで、ディレクトリが切り替わります。これは "スポーン"を利用して対話しない限り明白ではありません。ありがとう – John

関連する問題