Что делает флаг -i в Expect?
Я анализирую некоторые tcl-скрипты, оставленные для меня давно ушедшим бывшим сотрудником, и пытаюсь разобраться в них, не изучая tcl (возможно, в другой раз). У меня есть некоторый опыт написания сценариев, но не с tcl, поэтому я думаю, что получаю большую часть этого, но мне интересно, кто-нибудь может сказать мне, что делает флаг '-i', например:
expect {
-i $tbs -re "(.*)\n" {
или же
send -i $ftp "put /dev/acq/$data $data\r"
Обычно это встречается в блоке предположения {}, но я не знаю, насколько это актуально.
Спасибо за помощь,
Марио
1 ответ
Решение
Это специфическое ожидание, а не tcl в genreal (так что это ожидаемая man-страница, на которую вы должны ссылаться).
Для обоих expect
а также send
командует -i
Флаг аналогичен: он указывает конкретный spawn_id (подпроцесс) для работы, а не по умолчанию.
expect
[...]
By default, patterns are matched against output from the current
process, however the -i flag declares the output from the named
spawn_id list be matched against any following patterns (up to
the next -i).
а также
send
[...]
The -i flag declares that the string be sent to the named
spawn_id.