원본이 불분명하게 업데이트되었습니다.
내 이메일에 SMTP를 사용하기 위해 내 컴퓨터에 postfix를 설정하고 있습니다.
특히 공개적으로 내 자격 증명을 일반 텍스트로 입력하고 싶지 않습니다.
bash에서 내가 입력한 명령 한두 개를 표시하지 않도록 할 수 있나요?
예: 일련의 명령을 입력한 다음 사용자 이름과 비밀번호를 구성 파일에 다시 표시하고 싶습니다.
입력한 내용이 화면에 나타나지 않는 모드로 빠르게 진입했다가 해당 모드를 쉽게 종료하고 싶습니다 ctl+c
.
답변1
Bash에서: read는 명령이고 관련 옵션은 다음과 같습니다(man bash에서).
-s 자동 모드. 입력이 터미널에서 오는 경우 문자는 에코되지 않습니다.
#!/bin/bash
unset password
prompt="Enter Password:"
while IFS= read -p "$prompt" -r -s -n 1 char
do
if [[ $char == $'\0' ]]
then
break
fi
prompt='*'
password+="$char"
done
echo
echo "Done. Password=$password"
그러나 별표를 사용하면 다른 사람이 비밀번호의 길이를 볼 수 있으므로 아무 것도 표시하지 않는 것이 가장 좋습니다.
답변2
다음 stty
명령을 사용해야 합니다:
stty -echo
터미널 입력 에코를 다시 활성화하려면:
stty echo