У меня есть следующий сценарий Bash. Как я могу сделать паузу при нажатии или паузе после нескольких циклов, но если я не нажимаю ни одну клавишу, она должна зацикливаться?Pause Bash loop
for i in `cat files`
do
echo $i
done
У меня есть следующий сценарий Bash. Как я могу сделать паузу при нажатии или паузе после нескольких циклов, но если я не нажимаю ни одну клавишу, она должна зацикливаться?Pause Bash loop
for i in `cat files`
do
echo $i
done
Я думаю, что изначально неправильно сформулировал ваш вопрос. Вы можете приостановить активный процесс в любое время, нажав Ctrl+Z
и возобновить его с помощью встроенного fg.
Для того, чтобы сделать паузу сценария после того, как число итераций было выполнено, вы можете использовать переменную-счетчик и оператор modulo%
:
i=1
for f in `cat files`; do
echo $f
if ((i % 10 == 0)); then # pause every 10 iterations
read
fi
let "i++"
done
Мой первоначальный ответ был:
Вы можете использовать встроенный встроенный корпус read, пока пользователь не нажмет клавишу RETURN
(или клавишу EOF
, Ctrl+D
):
for i in `cat files`
do
echo $i
read
done
Вы можете использовать -t
вариант read
в порядке иметь это время, и продолжить выполнение:
for i in `cat files`
do
echo $i
read -t 1
done
выше возобновит выполнение через 1 секунду, если пользователь не нажмет клавишу RETURN
,
это заставляет сценарий ждать любой клавиши, чтобы начать каждую цепочку-галочку – newmusicblog
@newmusicblog, нет, не будет. Опять же, вы просто добавили это требование к своему вопросу :) –
, если я использую этот скрипт, он только перекликается с одной переменной, а затем ждет ||| я нуждаюсь в ней, чтобы зацикливаться до тех пор, пока я не надавливаю на паузу – newmusicblog