답변1
이 게시물이 거의 6개월 전이라는 것을 알고 있지만 아무도 yad(아직 또 다른 대화) 도구 사용을 제안하지 않았습니다. 이것이 어떻게 보이는지입니다:
전체 명령은 다음과 같습니다.
password="$(yad --center --width=300 --image=keys.png --entry --hide-text --button=gtk-ok:0 --button=gtk-cancel:1 --title="Authentication required" --text="Enter password:")"
비밀번호는 입력된 대로 화면에 표시되지 않습니다("--hide-text"가 표시함). 버튼은 표준 gtk "OK" 및 "Cancel" 버튼입니다. 이 예에서 입력된 비밀번호는 $password 변수에서 액세스할 수 있습니다. 예:
echo $password
취소 버튼을 누르면 yad의 반환 코드($?)는 1(--button=gtk-cancel:1에서)이고 확인 버튼을 누르면 반환 코드는 0(--button=gtk-ok에서)입니다. :0).
yad는 소프트웨어 센터의 최신 Ubuntu 버전에 설치할 수 있습니다. 16.04에서는 다음을 사용하여 설치해야 합니다.
sudo apt install yad
yad의 홈페이지는 다음과 같습니다. https://sourceforge.net/projects/yad-dialog/
yad 사용 방법을 보여주는 다른 예는 여기에서 찾을 수 있습니다. https://sourceforge.net/p/yad-dialog/wiki/browse_pages/
답변2
나는 올바른 해결책이 pinentry-gnome3
. IIRC는 다음의 종속성입니다.gpg
askpass() {
prompt=$1
echo -e "SETPROMPT $prompt\nGETPIN\nBYE" | pinentry-gnome3 | grep -E '^D ' | sed 's/D //'
}
password=$(askpass 'Enter your password:')