2016-08-20 16 views
1

bashスクリプトをexpectスクリプト内で実行しようとしていますが、エラーが発生しています。expectスクリプト内でbashスクリプトを実行する

/usr/bin/expect <<EOD 
spawn ssh [email protected] $(< try1.sh) 
expect "assword:" 
send "$reg\r" 
expect eof 
EOD 

これではssh [email protected] "$(< try1.sh)"を期待してやろうとイム、これは働いているが、私は自動化された方法でそれを実行するための方法を見つける必要があります。私はRSAキーを使いたくない。遭遇したこと

エラー:

spawn ssh [email protected] #tats script 
invalid command name "echo" 
    while executing 
"echo "Enter Year:"" 

また、私は私のsshスクリプトを期待し実行することができますが、私には、あなたがssh [email protected] bash -c ...を使用することができ、「何の変数のエラー」

+0

[参考](http://stackoverflow.com/questions/4780893/use-expect-in-bash-script-to-provide-password-to-ssh-command) – gks

+0

'# !/ bin/bash /usr/bin/expect -c 'expect "\ n" {eval spawn ssh -oStrictHostKeyChecking = no -oCheckHostIP = no [email protected]$myhost.example.com; {ssh [email protected] "$(

答えて

0

を取得していない私の$(< try1.sh)イムを実行しようとします。例えば:

[bash] % cat foo.sh 
export CMD=$(printf '%q' "$(< try.sh)") 
expect << EOF 
spawn ssh [email protected] bash -c \$::env(CMD) 
expect -nocase password: 
send bar\r 
expect eof 
EOF 
[bash] % cat try.sh 
echo hello world | tr a-z A-Z 
[bash] % bash foo.sh 
spawn ssh [email protected] bash -c echo\ hello\ world\ \|\ tr\ a-z\ A-Z 
[email protected]'s password: 
HELLO WORLD 
[bash] % 
+0

ありがとうございます。これは、加工方法ですが、私のスクリプトは、いくつかの入力を持っており、私は何も入力しカント、入力 のプロンプトなしスルー実行スクリプトは '年入力:入力した日数の 数: 年: 詳細エコー月日 エコーを"月を入力:"エコー "何日?" 出力の生成中にお待ちください。 。 。 完了! ' –

+0

更新された回答をご覧ください。 – pynexj

+0

こんにちは卿はそれだけで 'その後、最初の入力を促し年を入力します。 [バッシュ] $ 2015 -bash:2015:コマンド –

関連する問題