如何从正在运行的进程中捕获用户输入?

时间:2012-12-29 19:25:13

标签: linux bash

我正在运行以下脚本部分:

gpg -c --cipher-algo AES256 key
File `key.gpg' exists. Overwrite? (y/N) n
Enter new filename: filekey

如何从gpg进程捕获用户的输入(即“filekey”),以便我可以将其分配给脚本内的变量?

谢谢。

1 个答案:

答案 0 :(得分:2)

在调用gpg之前,您可以检查文件是否存在,并根据新变量读取文件名,然后调用gpg

#!/bin/bash

infile=${1:-key}     # use argument as filename or `key` by default
filename="${infile}.gpg"

while [ -f "$filename" ] 
do
   echo -n "File $filename exists. Overwrite? (y/N)"
   read option
   case "$option" in
     y|Y )
       rm $filename
       ;;
     * )
       echo -n "Enter new filename:"
       read filename
       ;;
   esac
done

gpg -c --cipher-algo AES256 -o $filename $infile

这种方式gpg永远不会在文件存在时提出问题。

相关问题