Вы ожидаете, что read
напечатает до stdout
, но печатает до stderr
, как показано этой командой:
> read -p "prompt" 2>/dev/null # this command will print nothing
Загляни в свой /tmp/stderr.log
. Там будет отсутствующее приглашение.
Чтобы восстановить способность read
печатать на экране, вместо восстановления stdout
, вам необходимо восстановить stderr
:
exec 2>&4
read -n 1 -s -r -p "Please do manually Installation of package ,Press any key to continue"
В качестве альтернативы, как отмечено в комментариях, вместо восстановления stderr
отдельной командой вы можете восстановить его только для команды read
:
read -n 1 -s -r -p "<shortened for clarity>" 2>&4