Зачем программе командной строки вводить пользователя, если он не указан в исходном коде

376
George

Почему программа, запускаемая из командной строки, будет ждать ввода пользователя (нажав Enter), если она не была запрограммирована для этого?

Я использовал экземпляр AWS EC2 для запуска программы, требующей большого объема вычислений, которая выполняет несколько вещей, включая чтение файлов, выполнение вычислений для содержимого файлов и создание новых файлов. Для каждой задачи программа выводила некоторую отладочную информацию в stdout.

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

  • Мне не предложили ввести
  • Автор заверил меня, что пауза ввода не было в исходном коде
  • Учитывая факты, совпадение очень маловероятно

Это системная ошибка / особенность / особенность ?

Почему это могло произойти, и могу ли я избежать этого в будущем?

0
Возможно, отладочная функция, которую автор программы забыл удалить. Или это может быть какая-то другая программа, которая вызывается изнутри. Чтобы выяснить, что нужно сделать, нужно выполнить сканирование исходного кода. harrymc 6 лет назад 0
Что сказал @harrymc. Разработчик должен попытаться воссоздать вашу ошибку, а не просто исключить ее из-под контроля. music2myear 6 лет назад 0
«Автор заверил меня, что пауза при вводе отсутствует в исходном коде», - Apple сказала, что невозможно заблокировать антенну на более старой модели iPhone до тех пор, пока это не произойдет, и в итоге они изменили дизайн телефона. Дело в том, что люди лгут, и, к сожалению, вы не можете подтвердить, что это так. Ramhound 6 лет назад 0
Разве это не более вероятно, что командная строка была нажата, что приостановило вывод, ввод возобновил его. В качестве примера. Если вы откроете командную строку и запустите что-то вроде `ping www.google.com -t`. Если вы нажмете на окно, оно приостановит вывод, пока вы не нажмете клавишу, например Enter. HelpingHand 6 лет назад 0
@HelpingHand Это звучит как жизнеспособная причина! Я постараюсь воспроизвести это в следующий раз, когда у меня будет такая возможность. Я думаю, что вы можете отправить это как ответ, я приму это / дам больше отзывов после того, как попробую. George 6 лет назад 0

1 ответ на вопрос

1
HelpingHand

В командной строке Windows (cmd.exe) есть режим «быстрого редактирования», который включен по умолчанию.

Quick Edit Mode

Если включен режим «быстрого редактирования», если вы нажмете на командную строку во время обновления, например, в случае запуска такой команды, как:

ping www.google.com -t 

затем обновление вывода прекратится до тех пор, пока не будет введен ключ, такой как Enter, в случае вопроса.

Действительно, это, кажется, и стало причиной моей проблемы. Должно быть, я щелкнул окно терминала, чтобы увидеть, все еще ли оно запущено, и перешел в режим быстрого редактирования. George 6 лет назад 1