Имеется код
request_password() {
local password
while true; do
read -rs -p "Password: " password
[ -z "$password" ] && printf "\rPassword cannot be empty. Please try again. " || break
done
printf "\r\033[K"
echo $password
}
# Пример прямого вызова
request_password
# Пример обратного вызова
password=$(request_password)
echo "Your password is: $password"
При обратном вызове функция работает некорректно, т.к. вывод
printf "\rPassword cannot be empty. Please try again. "
идёт в "подоболочку" и не отображается в консоли. Как это исправить?