запускать сценарий оболочки с того места, где он остановил выполнение [закрыто]

0
02.03.2017, 13:11
2 ответа

Это устанавливает ловушку ERR :

trap 'printf "Error for %s, halted, continue with fg\n" "$cmd"; kill -s STOP $$; continue' ERR

while IFS= read -r cmd; do
    command $cmd
done <input

Ловушка срабатывает при любой ошибке, которая обычно приводит к сбой при запуске под set -e . Ловушка напечатает информационное сообщение, а затем временно остановит процесс.

Когда пользователь возобновляет его с помощью fg , оператор continue в ловушке гарантирует, что следующая строка ввода будет прочитана.

Пока сценарий приостановлен, можно редактировать входной файл. Сценарий продолжит чтение со следующей строки ввода после строки, содержащей неудачную команду.

1
28.01.2020, 02:34
#!/bin/bash
echo "$0 $$"
##Here do your stuff and redirect the errors to a log file
##if an error is found say using $?, use the following
kill -SIGSTOP $$
##After you'r done correcting your file
##use kill -SIGCONT <pid> on a console, the process shall continue
## Put in a mechanism to retry the last executed command 
echo "I am done!!! after SIGSTOP $$"
exit 0

Это всего лишь пример, вы можете реализовать его по-своему в соответствии с вашими требованиями.

1
28.01.2020, 02:34

Теги

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