Bất cứ ai có thể cho tôi biết làm thế nào để thực hiện sudo
các lệnh với expect
? Tôi đã thử sau đây nhưng điều này không hiệu quả. Bất cứ ai có thể cho tôi đề nghị xin vui lòng?
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 "#"
Khi tôi thử đoạn script dưới đây, nó thực thi không có lỗi, nhưng tôi không nhận được kết quả đầu ra. Đây là kịch bản và đầu ra khi nó thực thi. Tôi đang mắc lỗi ở đâu?
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}
"#"
}
Chấp hành
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:~$