автоматизация mysql через expect

Я не тестировал это, но должно работать.

Вы можете попробовать переключить «авиарежим» с терминала, используя следующий код:

nmcli nm wifi off 

Это должно повлиять на ваш Wi-Fi, но не на bluetooth.

См. сообщение askubuntu .

1
01.07.2017, 11:06
1 ответ

[является специальным в TCL, а "..."интерполирует, поэтому

"blah [foo]"

заставляет TCL пытаться вызвать процедуру foo(procили то, что другие языки могут вызывать subилиfunction). Можно либо ударить[

expect "blah \[foo]"

или вместо этого укажите {}, который отключает интерполяцию

expect {blah [foo]}

Это разумные варианты. Не используйте код дальше этой точки!

Министерство глупых дел

Мы также можем создать proc, который заставляет вызов Y/nвозвращать [Y/n];

$ expect
expect1.1> proc Y/n {} { return "\[Y/n]" }
expect1.2> puts "abort [Y/n]"
abort [Y/n]
expect1.3> 

это позволяет [Y/n]работать в интерполированной строке. Еще больше проблем можно получить с помощью unknown(n), так как это позволяет нам создать procдля большей части любой случайной строки [...], интерполированной где угодно... если, конечно, procуже не существует для данного имени процедуры; как я уже говорил ранее, это плохая идея и не должна использоваться.

expect1.1> proc unknown args { return "\[$args]" }
expect1.2> puts "abort [Y/n]"
abort [Y/n]
expect1.3> puts "already exists [puts -nonewline puts\ ]"
puts already exists 
expect1.4> 
3
27.01.2020, 23:33

Теги

Похожие вопросы