누구든지 sudo
명령 을 실행하는 방법을 알려줄 수 있습니까 expect
? 다음을 시도했지만 작동하지 않습니다. 누구든지 제발 제안을 줄 수 있습니까?
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 "#"
아래 스크립트를 시도했을 때 오류없이 실행되었지만 출력을 얻지 못했습니다. 다음은 스크립트 및 스크립트 실행시 출력입니다. 내가 여기서 실수를 저지르는 곳은 어디입니까?
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}
"#"
}
실행
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:~$