Можно ли переносить чтение чувствительных данных из командной строки?

Встроенный bash read имеет флаг -s это предотвращает повторение всего, что читается из командной строки. После поиска opengroup.org и фильтрации всех других значений readЯ до сих пор не нашел POSIX/ портативный эквивалент. Есть ли разумный способ сделать это?

В bash это достаточно просто:

$ bash -c 'read -sp "What is your password? " password; printf "\n%s\n" "$password"'
What is your password? 
I'll never tell!

Но в ш…

$ dash -c 'printf "What is your password? "; read password >/dev/null 2>&1; printf "\n%s\n" "$password"'
What is your password? I'll never tell!

I'll never tell!

1 ответ

Решение

Таким образом, ответ на ваш вопрос, как описано в этой ссылке, вы можете отключить с помощью встроенной команды stty

stty -echo 

пс:

не забудьте сохранить свои предыдущие настройки

old_set=$(stty -g)
stty -echo

read -r password

stty "$old_set"
Другие вопросы по тегам