私は、APC PDU(パワーストリップ)にsshでbash/expectスクリプトを作成しようとしており、コマンドライン引数に基づいてアウトレットをリモートで再起動します。だから、新しいラインが期待されます
#!/usr/bin/expect
#usage: pdu.sh user pass ipaddr outletNum
set user [lrange $argv 0 0]
set pass [lrange $argv 1 1]
set ipaddr [lrange $argv 2 2]
set outlet [lrange $argv 3 3]
spawn ssh [email protected]$ipaddr
sleep 60
expect "*?assword*"
send "$pass\n"
expect ">"
sleep 5
send "1\n"
expect ">"
send "2\n"
expect ">"
send "1\n"
expect ">"
send "$outlet\n"
expect ">"
send "1\n"
expect ">"
send "2\n"
send "yes\n"
expect ">"
send "1\n"
send "yes\n"
send "exit\n"
SSH作品の産卵、それは正しいパスワードを入力し、その後私は、PDUに接続だし、それはオプションのインタフェースを示した後、私のスクリプトを送信します。これまでのところ私はこれを持っています1の代わりに12を入力してください(2)。混乱してもごめんなさい。ここではそれが何をするかです:
それは代わりに1の12を示し、その後、改行してから、私は具体的には、send "1\n"
この行の1の後に改行を送ってきた2。この例では\ nが機能しないのはなぜですか?ありがとうございました!
通常 '\のr'はない' \ N ' –
感謝の男、「Enterキーを押す」を表します。また、アウトレット番号を送信した後にクラッシュする理由を知っていますか?これは引数 "outlet"を送信した後のものです。http://i.imgur.com/SlIOZdu.png – ToxicProxy