Ответ 1
Вам не нужно вводить чтение в каждую строку, просто добавьте в свой bash script ловушку, как показано ниже, она имеет необходимый эффект, например.
#!/usr/bin/env bash
set -x
trap read debug
< YOUR CODE HERE >
Работает, просто протестировал его с помощью bash v4.2.8 и v3.2.25.
УЛУЧШЕННАЯ ВЕРСИЯ
Если ваш script читает содержимое из файлов, перечисленные выше не будут работать. Обходной путь может выглядеть следующим образом.
#!/usr/bin/env bash
echo "Press CTRL+C to proceed."
trap "pkill -f 'sleep 1h'" INT
trap "set +x ; sleep 1h ; set -x" DEBUG
< YOUR CODE HERE >
Чтобы остановить script, вы должны убить его из другой оболочки в этом случае.
ALTERNATIVE1
Если вы просто хотите подождать несколько секунд, прежде чем перейти к следующей команде в script, следующий пример может работать для вас.
#!/usr/bin/env bash
trap "set +x; sleep 5; set -x" DEBUG
< YOUR CODE HERE >
Я добавляю set + x и устанавливаю -x в команде trap, чтобы сделать вывод более читаемым.