Понимание повторяет/порождает/отправляет/ожидает конструкцию

Можно сначала добавить другой столбец с количеством символов с awk, сделать sort и затем полоса добавила столбец:

awk '{printf "%d %s\n", length($1), $0}' file.txt | sort -n -k1,1 | sed -E -e 's/^[0-9]+ //'

1
21.08.2018, 03:05
2 ответа

Q1: цель ожидает, должен автоматизировать интерактивные программы. Чтобы запустить программу и взаимодействовать с ним, Вы используете spawn команда.

Q2: последние ожидают после того, как канал будет ожидать двоичным файлом. Если не, учитывая аргумент файла, это читает свой stdin, чтобы заставить сценарий выполняться.

Q3: автор хотел, чтобы механизм автоматически передал значение, когда сценарий запрашивает один.Именно.

Я сильно подозреваю (в зависимости от того, что myscript.sh делает), что Вы не должны ожидать вообще:

echo "myval" | myscript.sh arg1 arg2
4
27.01.2020, 23:15

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

Q2: строка передается как сценарий expect. Я принимаю, как большинство языков сценариев, это эквивалентно сохранению строки в файл и выполнение expect file.

Q3: Это похоже на тест для наблюдения этого myscript.sh, когда выполнено, печатает сообщение и отвечает пользователю, предоставленному значению путем выхода, ничего не печатая.

Другими словами, я ожидаю, что необходимо смочь запустить этот скрипт с тем же результатом:

#!/usr/bin/expect
spawn myscript.sh arg1 arg2 # Run `myscript.sh arg1 arg2` and return control to `expect`
expect "Please enter your value: " # Succeeds if the script prints this value
send "myval\r" # Simulate entering this value
expect eof # Succeeds if the script ends without printing anything
2
27.01.2020, 23:15

Теги

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