Как я могу поймать ввод из сценария оболочки, который вызывается с помощью трубы, без риска кошки, ожидающей ввода навсегда?Shell: Поймайте пользовательский ввод с cat
echo "hello world" | mysript.sh
В сценарии я пытаюсь извлечь вход с:
input=$(cat)
Но в некоторых случаях cat
команда вызывает весь сценарий на тайм-аут, потому что он ожидает ввода.
Вы хотите поймать ввод, но вы не хотите ждать ввода? –
Вход должен заканчиваться EOF = ctrl + D. –
Рассмотрите возможность использования 'read' в вашем скрипте. Вы можете читать строки за строкой, и ваша оболочка может поддерживать дополнительные инструменты, такие как таймауты и односимвольные чтения. – ghoti