1

SharpSSHを使用してSSHサーバーに接続しており、SshShellとSshExecの両方を使用してみました。一連のコマンドを順番にサーバーに送信できるようにする必要があります。そのため、SshShellは、ストリームを常に処理する必要があり、少し時間がかかるように思われるため、実際には必要な処理を実行しません。恨み。だから私はSshExecを試しましたが、1つの問題が見つかりました。コマンドを送信するたびに、新しい接続が確立され、最後のコマンドのコンテキストが失われているようです。たとえば、次のコマンドを実行した場合:

pwd
cd .ssh
pwd

私はそれが出力することを期待します

/home/adam

/home/adam/.ssh

ただし、代わりに、両方の時間で「/ home / adam」を出力するだけです。つまり、その間にディレクトリの変更が失われました。

切断するように指示するまでSSHサーバーへの常時接続を維持するようにこれを構成する方法はありますか?

4

2 に答える 2

2

これを行う:

exec.RunCommand("pwd; cd Desktop; pwd")

高度なコマンドの実行方法がわかりませんが、試してみると次のように出力されます。

/Users/MyUser
/Users/MyUser/Desktop
于 2011-01-20T20:38:27.747 に答える
1

隠しディレクトリ (ドット (.) 文字で始まる任意のディレクトリ) に cd するには、値を引用符で囲む必要があります。

ドキュメントによると:

4) ディレクトリ オペランドの最初のコンポーネントがドットまたはドット-ドットの場合は、手順 6 に進みます。

6) curpath を、 PWD の値、スラッシュ文字、およびオペランドの連結によって形成される文字列に設定します。

要するに、cd '.ssh'トリックを行う必要があります。

于 2010-06-29T15:16:02.127 に答える