명령 입력 숨기기

명령 입력 숨기기

원본이 불분명하게 업데이트되었습니다.

내 이메일에 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

관련 정보