【发布时间】:2021-04-16 23:52:56
【问题描述】:
我试图编写一个 bash 脚本来解密 gpg 文件并输出结果(这样我就可以将密码复制到应用程序中)。然后它会擦除文件。
在 bash 脚本之外成功提示输入密码。
但是,当我运行 bash 脚本时,它会直接跳转到输出文件内容而不提示输入密码?
脚本如下。
我刚开始编写脚本 - 谁能告诉我哪里出错了?
谢谢
1 ###################################
2 # securely decrypt password file and delete
3 ###################################
4 #secure wipe gpgout directory
5 wipe -rfi ~/programs/utils/scripts/gpg/gpgout/*
6 #decrypt p1.gpg to file p1.txt
7 gpg -o ~/programs/utils/scripts/gpg/gpgout/p1.txt -d ~/programs/utils/scripts/gpg/p1.gpg
8 #clear cached password
9 echo RELOADAGENT | gpg-connect-agent
10 #print p1.txt password to the terminal
11 cat p1.txt
12 #secure wipe gpgout directory again to remove p1.txt
13 wipe -rfi ~/programs/utils/scripts/gpg/gpgout/*
14 #silence bash output
15 #https://www.baeldung.com/linux/silencing-bash-output
16 command > /dev/null 2> /dev/null
【问题讨论】:
-
可以肯定的是,您是在问为什么您的 bash 脚本不查询密码并且仍然毫无问题地解密 p1.gpg 文件?
-
完全正确 - 我希望脚本提示输入密码 - 不确定我是否需要明确告诉它在 bash 脚本中执行此操作? gpg -o ~/programs/utils/scripts/gpg/gpgout/p1.txt -d ~/programs/utils/scripts/gpg/p1.gpg
-
在脚本之外工作正常并提示输入密码。在脚本里面它没有,只是给了我解密的结果?谢谢