LINUX.ORG.RU

Чтение переменных в tcl ( expect)

 , ,


0

3

Здравствуйте форумчане! Подскажите, пожалуйста, ответ на следующий вопрос. Приходит сообщение, например, Номер порта: «12936»,«145»,«1» Мне нужно, чтобы переменная port получило значение 12936 на языке программирования tcl. Как это сделать? Большое спасибо!

set str {"12936","145","1"}
set port [lindex [split [string map {\" {}} $str] ,] 0]

puts $port

12936
most-fucktum ()
Ответ на: комментарий от most-fucktum

У меня еще запись в начале строки без кавычек. Так эта конструкция мне закидывает в переменную и эту запись, а она мне не нужна.

Т.е. получается так: Number port 12936

Как удалить Number port?

vash_sa ()
Ответ на: комментарий от vash_sa

Подскажите ответ на еще один вопрос.

В stdin выбрасываются данные, expect их распознает и обрабатывает. Например expect «clip:» ожидает прихода clip:, т.е. обмен информацией проходит.

А такая конструкция

 while {[gets stdin line] != -1} {
    puts "$line\n"
}

не читает строку из stdin.

Подскажите в чем я не прав?

vash_sa ()
Ответ на: комментарий от vash_sa

Эта конструкция у меня читает с клавиатуры, а мне надо из скрипта. Как быть?

vash_sa ()

Харе с собой разговаривать ради кармы! Заминусуют же

FRWHate ()
Ответ на: комментарий от FRWHate

Не, минусовать не надо.

Запутался окончательно! Помогите!

Настраиваю GSM на raspberry pi. Из скрипта чтения последовательного порта /dev/ttyAMA0. При приходе звонка в stdin выдается строка: +CLIP: «+7908xxxxxxxx»,145,"",,"",0 Из нее мне нужно в переменную загнать номер телефона (+7908xxxxxxxx) для сравнения со списком телефонов, находящихся в файле.

Оператор expect «+CLIP: \»$number\"," с заранее заданным номером работает, а как мне сравнить номер входящего звонка не с 1 номером, а с множеством не пойму. Как прочитать в переменную номер входящего звонка? Заранее благодарен за любую оказанную помощь.

vash_sa ()
Ответ на: комментарий от FRWHate

С каким потоком работает expect? Почему expect читает строку из консоли, а [gets stdin line] только с клавиатуры?

vash_sa ()
Ответ на: комментарий от most-fucktum

Подскажите как прочитать строку с экрана (стандартного stdout). Или хотя бы как открыть stdout для чтения?

vash_sa ()
Ответ на: комментарий от vash_sa

дока по тиклю и базовым командам изучается достаточно тщательно за день

tcler ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.