Что такое bash-эквивалент команды паузы в DOS?

Мне нужна пауза в сценарии оболочки, чтобы вывести предупреждение перед продолжением. Например, в DOS это выглядит так:

doit.bat:

[...]
echo 'Are you sure? Press Ctrl-C to abort, enter to continue.'
pause
[...]

Как я могу сделать это на bash? На данный момент команда сна, кажется, делает свое дело и достаточно проста, но не совсем идея:

doit.sh

[...]
echo 'Are you sure? Press Ctrl-C to abort.'
sleep 3
[...]
13
задан 27 February 2012 в 21:00

5 ответов

read -p "Press any key to continue or CTRL-C to abort" отлично работает под 14.04 в моих скриптах. Как сказал @Lekensteyn в комментарии выше, похоже, что это имело место с 12.04.4. Страница 'help read' гласит:

-p prompt   output the string PROMPT without a trailing newline before
            attempting to read
0
ответ дан 27 February 2012 в 21:00
echo "press enter to continue"
read unusedVariable
echo "running these 3 lines in .sh file, this echo will never be seen, unless you have a really slow computer"

поместите эти 3 строки в файл .sh и запустите его

0
ответ дан 27 February 2012 в 21:00

Мое любимое использование этого - установить тайм-аут по умолчанию, чтобы скрипт мог запускаться без присмотра:

echo "Press any key to continue..."
read -n1 -t5 any_key

где:

  • -n1 сообщает о прочтении принять любой отдельный символ
  • -t5 говорит ему ждать максимум 5 секунд для ввода

Я работаю почти исключительно с Bash под CentOS, поэтому я не могу поручиться за это работает на других вариантах Linux, но так как это Bash, я ожидаю, что это сработает. Я хотел бы знать наверняка, если это так! :)

0
ответ дан 27 February 2012 в 21:00

simples ожидают для остановки, сценарий должен звонить kill -STOP $$ из сценария: После того, как приостановлено сценарий продолжится, его работа после получения - ПРОДОЛЖЕНИЕ СЛЕДУЕТ сигнализируют.

#!/bin/bash
echo "$0 stopping now"
kill -STOP $$
echo "$0 continues its work"
0
ответ дан 27 February 2012 в 21:00

что-то вроде

echo -n "prompt"  #'-n' means do not add \n to end of string
read              # No arg means dump next line of input
0
ответ дан 27 February 2012 в 21:00

Другие вопросы по тегам:

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