Як закрити stdin у сценарії оболонки?


13

У мене недоброзичлива програма, яку мені потрібно викликати зі свого сценарію. Він виходить, як тільки щось бачить на stdin. Чи є спосіб закрити stdin?

Відповіді:



9

Просто передайте програму без виводу:

: | misbehaving_program

Вау, що це? Що робить ':'?
KaiserKatze

":" - це внутрішня команда оболонки, яка нічого не робить. Це дозволяє вводити коментарі або може використовуватися для переадресації. Наприклад, ":> файл" створює порожній файл. Або ": |" в цьому випадку подає в команду порожній потік.
Рауль Салінас-Монтеагудо

8

Знайшовши це, ви можете закрити stdin за допомогою:

exec 0<&-

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.