如何pinentry
从 bash 脚本调用,以便提示我在调用我的脚本的同一终端上输入单个输入,然后通过管道将条目传递到其他命令,stdout
为了这个问题,让我们假设它的echo
.
我希望答案是这样的
pinentry-tty <this is what I dont know> | echo
我的问题不是关于:
gpg
ssh
git
- 如何使用命令行以外的任何东西
pinentry
- 如何使用设置环境变量
read -s
让我们假设:
- 我让它通过了第二个谷歌页面
- 我用了
pinentry info
如果答案适用于我系统上当前的版本,那就太好了,但我不希望您测试它。
pinentry-tty (pinentry) 1.2.0
Copyright (C) 2016 g10 Code GmbH
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
我不喜欢我的问题的语气,但我只是想让问题尽可能清楚。
答案1
Ichthyo 的评论分享的答案将对您有用。如果您不想使用 GUI,并在终端中输入 PIN,请执行以下操作:
sudo update-alternatives --config pinentry
并选择pinentry-curses
.
那么,你的脚本与 SO 答案相同:
tty=$(tty)
pwd=$(echo "GETPIN" | pinentry -T $tty | grep D)
pwd=${password#D }
您还可以添加更多命令(发现这里) 分隔\n
:
pwd=$(echo "setdesc my program\nsetprompt please enter password:\nGETPIN\n" | pinentry -T $tty | grep D)