“Ожидайте”, что вывод средства автоматизации окружит переменную

То, что происходит, то, что -b переключатель не имеет смысла и даже не должен быть там. Номера секторов, зарегистрированные в MBR, всегда интерпретируются, чтобы быть в единицах логического размера сектора диска (512 байтов). При помощи -b переключатель, Вы заставляете fdisk делить все секторы, которые он записывает 8, таким образом, ядро интерпретирует разделы, чтобы быть 1/8-м размер, Вы предназначили.

Если Вы используете parted вместо fdisk, это удостоверится, что Ваши разделы правильно выровненные автоматически. С fdisk, просто удостоверьтесь, что стартовые секторы являются кратными 8.

0
10.02.2014, 01:44
3 ответа

Вы могли создать обертку в ударе, перенаправить вывод, ожидают в файл, анализируют файл и устанавливают переменные. Или изменения этого.

mark5:~/test# cat test.xp
send "bla\n"
mark5:~/test# expect test.xp
bla
mark5:~/test# expect test.xp > test.out
mark5:~/test# cat test.out
bla
mark5:~/test# #now parse test.out
0
28.01.2020, 02:52
  • 1
    И как Вы перенаправляете вывод, ожидают в файл? Тем не менее я хочу сделать это от, ожидают колотить. –  1.61803 10.02.2014, 01:04
  • 2
    Посмотрите мое редактирование... Почему Вы не смогли бы перенаправить? Создайте сценарий оболочки, который работает expect test.xp > test.out и синтаксический анализ, что находится в test.out после этого –  Marki 10.02.2014, 01:12
  • 3
    О, я думал, что Вы обращались к перенаправлению здесь документа, который я отправил выше. Обертывание является громоздким. Я предпочел бы обрабатывать вывод expect непосредственно как источники упомянутое состояние, хотя я не мог понять это. –  1.61803 10.02.2014, 17:15

Так как вы используете expect с here-doc в скрипте bash, вы бы сделали:

output=$(
    expect << END
        expect script here
END
)

Чтобы уменьшить вывод, добавьте log_user 0 в верхнюю часть тела ожидания, и распечатайте вывод команды GETINFO

send -- "GETINFO circuit-status\r"
expect "250 OK\r"
puts $expect_out(buffer)

Я имею в виду следующее:

output=$(
    expect << EOD
        log_user 0
        spawn telnet localhost 9151
        expect "Escape character is '^]'."
        send -- "AUTHENTICATE $COOKIE\r"
        expect "250 OK\r"
        send -- "SIGNAL NEWNYM\r"
        expect "250 OK\r"
        send -- "GETINFO circuit-status\r"
        expect "250 OK\r"
        puts $expect_out(buffer)
        send -- "QUIT\r"
        expect eof
EOD
)
1
28.01.2020, 02:52

Слишком поздно я узнал ( переменную доступа от ожидаемого скрипта в сценарии Bash ), что среда Vars от ребенка не может быть передана в окружающую среду родителей, по крайней мере, как я описал , т. Е. Ссылаясь на ожидаемое значение по умолчанию от Bash Shell. Поэтому я просто буду продолжать использовать ожидаемый скрипт в VAR и анализировать его значение.

0
28.01.2020, 02:52

Теги

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