如何将TCL管道通道传递给gpg --passphrase-fd?

时间:2014-11-22 04:21:19

标签: tcl gnupg

是否可以将tcl管道传递给gpg --passphrase-fd

;# $word is a pipe channel opened by pipe (tcl 8.5)
package require pipe;
;#
set fd [open "|gpg -d -q --no-options --batch --passphrase-fd $word $file" "r"]

1 个答案:

答案 0 :(得分:1)

来自man gpg

  

<强> --passphrase-fd n

     

从文件描述符n中读取密码。 如果你使用0作为n,那么           密码短语将从标准输入读取。

所以我设置为--passphrase-fd0的值,并将管道内容通过stdin通道传递给gpg,即

set fd [open "|echo [gets $word] | gpg -d -q --no-options --batch --passphrase-fd 0 $file" "r"]