2016-06-30 7 views
1

私は、私はexpectスクリプトを経由して、それを実行した場合、このコマンドは、端末は、スクリプトの期待 - bashスクリプト・ファイルは、

ssh [email protected] "sh -" < test.sh 

に実行された場合うまく動作しますが、スクリプトを

#!/usr/bin/expect -f 

#I tried replacing sh - with bash -s still no positive results 
spawn ssh [email protected] "sh -" < test.sh 
expect "password: " 
send "zzzzz\r" 
expect "$ " 

を期待していません。それは失敗する。

これはexpectスクリプトで実行した場合の出力です。私が間違って

bash: test.sh: No such file or directory 

P.Sをつもりですどこ私が知っている可能性があります:はい、ファイルが存在し、資格情報が正しいです。

+2

スクリプト 'test.sh'の絶対パスを入力してみましたか? – Inian

+1

'expect'は' shell'ではなく、 '<'を処理しません。あなたのexpectスクリプトは 'test.sh'ファイルを読んで' send'する必要があります。 – Dummy00001

+0

@Inian:はい私はそれを試して、結果は同じでした –

答えて

0

Expectスクリプトがファイルの内容を読み取ることができませんでした。これは問題でした。ファイルの内容を読み込むと、ファイル名の代わりにその変数を渡し、

set fh [open test.sh r] 
set contents [read $fh] 
close $fh 

bash -c '$contents'

sh-を置き換えることによってそれを解決しようあなたの貴重なコメントのために皆に感謝します。

関連する問題