完成在 GPG 中输入文本

IBP*_*BPX 8 terminal gpg

如果你在没有输入的情况下调用 GPG,它只会说

gpg: Go ahead and type your message ...
Run Code Online (Sandbox Code Playgroud)

您可以输入文本和所有内容,但如何结束输入?我在多个不同的程序中看到过这样的事情,但我从来不知道如何。

neh*_*art 12

您需要输入 EOF(文件结尾)。用CTRL+ D(或更一般地说,^D)来做到这一点。

  • @tchen 不,这是不可能的。这是因为按回车键会导致您到目前为止输入的内容被刷新到程序的输入缓冲区(或文件,或碰巧连接到的任何键盘输入) - 一旦发生,程序很可能已经在运行在它上面(或者它已经被写入文件,或者......),所以没有简单的方法来撤消它。 (2认同)
  • @tchen 有趣的事实:按 control-d 实际上也以相同的方式刷新输入。在您刚刚刷新(使用 control-d 或使用 return)时按下它仍然刷新,只是它刷新了 _0 个字节_(使 `read()` 系统调用返回 `0`),这就是系统如何传达已到达文件末尾。有时(通常不是,但有时!),即使在获得文件结束指示后,程序仍会继续读取。在我的脑海里,当你通过 `--starttls` 时,`gnutls-cli` 会这样做。 (2认同)