Załóżmy, że próbuję napisać skrypt oczekiwany dla pliku test.sh, który ma trzy monity: prompt1, prompt2, prompt3.Jak korzystać z opcjonalnych podpowiedzi?
Mój kod to tak:
spawn test.sh
expect "prompt1"
send "pass1"
expect "prompt2"
send "pass2"
expect "prompt3"
send "pass3"
Jednak prompt2 występuje tylko połowę czasu. Jeśli prompt2 nie pojawi się, oczekiwany skrypt zostanie zerwany. W jaki sposób mogę napisać kod, który przeskakuje przez prompt2, jeśli się nie pojawi?
EDIT:
Naprawiono mój kod:
/usr/bin/expect -c '
spawn ./test.sh
expect {
"prompt1" {
send "pass1\r"
exp_continue
}
"prompt2" {
send "pass2\r"
exp_continue
}
"prompt3" {
send "pass3\r"
exp_continue
}
}
interact return
'
ten sposób reszta skryptu wykonuje i dostarcza dane wyjściowe.
trzeba będzie 'expect' inny wzór, aby być w stanie wyrwać się z pętli. W przeciwnym razie nigdy nie dojdziesz do linii "interakcji". –