0

スクリプト1

#!/usr/local/bin/expect
spawn sftp user@10.xx.xxx.xx
expect \"password\"
send \"pass\r\"
interact
send \"lls\r\"

スクリプト2

#!/bin/bash

expect -c "
spawn sftp user@10.xx.xxx.xx
expect \"password\"
send \"pass\r\"
interact
send \"lls\r\"
"

TCL/TKをインストールしました。script1は、パスワードプロンプト自体で停止します。script2は、ログインが成功すると停止します。

spawn sftp user@10.xx.xxx.xx
user@10.xx.xxx.xx's password:
Connected to 10.xx.xxx.xx.
sftp>

lcd /home/usr/tmp ,mget *.*ファイルを転送するための次のコマンド(たとえば、私が持っている)は、その一部として実行されていません。

4

1 に答える 1

1

呼び出された後interact、コントロールはスクリプトからユーザーに返されるため、コマンドを手動で入力できます。したがって、他のコマンドは自動的に呼び出されません。

実行する代わりに、sftpプロンプト()を待機する別のステートメントinteractを追加し、後で目的のコマンドを発行する必要があります。expectsftp>

于 2013-01-26T15:46:10.397 に答える