Избегайте ожидания сценария bash, пока пользователь вводит клавишу Enter

Проверьте разрешения, если там написано «вы не являетесь владельцем, поэтому вы не можете изменить разрешения», тогда вам нужно загрузить его с живого носителя и изменить разрешения для каждого из них.

1
14.07.2017, 20:03
3 ответа

Вы можете запустить команду в оболочке expect , которая позволит вам искать подсказки и отправлять информацию в ответ.

#!/usr/bin/expect
spawn COMMAND
expect "PROMPT"
send "RESPONSE\n";
interact
-1
27.01.2020, 23:33

Обычно вы пытаетесь использовать переключатели приложения для не -интерактивного режима или подавления ошибок для этого. Однако я не нашел явных для mailxпосле беглого просмотра документации.

Более общий подход к этому заключается в использовании для этого команды timeout, которая запускает указанную команду и уничтожает ее, если она все еще выполняется по истечении указанного времени ожидания.

Например, в вашем случае команда будет:

echo "Mail body" | timeout 15s mailx ${MAILX_OPTIONS}

Эта команда убьет mailx, если она все еще выполняется через 15 секунд, что должно быть только в случае затянувшегося сообщения об ошибке.

2
27.01.2020, 23:33

В категории грубых -хакерских решений отправьте бесплатный возврат каретки, который будет там, если понадобится, и выброшен, если нет:

{ echo "Please see attached file"; echo; } | mailx...
1
27.01.2020, 23:33

Теги

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