Adakah yang bisa memberi tahu saya cara menjalankan sudo
perintah expect
? Saya mencoba yang berikut tetapi ini tidak berhasil. Adakah yang bisa memberi saya saran?
set login "sasuke"
set addr "hostname"
set pw "mypasswd"
spawn ssh $login@$addr
expect "$login@$addr\'s password:"
send "$pw\r"
expect "#"
send "output=$(sudo virsh list --all | awk "/running/{print \$2}" | tail -2); sudo virsh dominfo $output"
expect "password:"
send "$pw\r"
expect "#"
Ketika saya mencoba skrip di bawah ini, dijalankan tanpa kesalahan, tetapi saya tidak mendapatkan hasilnya. Ini adalah skrip dan output ketika dijalankan. Di mana saya membuat kesalahan di sini?
set login "sasuke"
set addr "hostname"
set pw "mypasswd"
spawn ssh $login@$addr
expect "$login@$addr's password:"
send "$pw\r"
expect "#"
send {output=$(sudo virsh list --all | awk '/running/{print $2}' | tail -2)}
expect {
password: {send "$pw\r"; exp_continue}
"#"
}
send {sudo virsh dominfo "$output"} ;# don't know if you need quotes there
expect {
password: {send "$pw\r"; exp_continue}
"#"
}
Eksekusi
sasuke@njob:~$ ./hypr.sh
spawn ssh sasuke@hostname
sasuke@hostname's password:
sasuke@hostname:~$ output=$(sudo virsh list --all | awk '/running/{print $2}' | tail -10)sudo virsh dominfo '$output' sasuke@njob:~$