Скажем, у меня есть скрипт bash:
#!/bin/bash
read -p "Gimme some stuff: " stuff
echo "**${stuff}**"
Если скрипт вызывается с чем-то пронизывающим, например:
echo "Here's some stuff" | ./myscript.bash
Тогда команда read
будет читать из канала. Даже если я попытаюсь очистить stdin до того, как нажму эту команду read
, она все равно немедленно вернется.
Есть ли способ обойти это? Если у меня нет никакого контроля над тем, как вызывается мой скрипт, есть ли способ заставить его принять ввод для read
или select
из терминала? Если нет, есть ли какие-нибудь хитрые способы приостановить работу сценария, чтобы получить ввод от пользователя, отличного от stdin?