Oop*_*ame 6 passwords shell ubuntu gnupg
下面的脚本曾经在Mac OS X上运行,但是,由于它将它移动到Ubuntu,它似乎根本没有从密码文件中读取.即使我从命令行运行它,无论我做什么,我都会弹出提示,询问密码.因为这将通过cron运行,我不希望这发生...我希望它从文件中读取密码而没有提示.需要注意的是,我确实尝试过使用passphrase-fd和passphrase-file,但两者都没有...
#!/bin/sh
p=$(<pass.txt)
set -- $p
pass_phrase=$1
destination="/var/www/decrypted"
cd /var/sl_bin/
for FILE in *.pgp;
do
FILENAME=${FILE%.pgp}
gpg --passphrase "$pass_phrase" --output "$destination/$FILENAME" --decrypt "$FILE"
rm -f $FILE
done
Run Code Online (Sandbox Code Playgroud)
小智 5
这有效:
gpg --no-use-agent --batch --passphrase-file pass.txt --output kkkk.tar.bz2 --decrypt kkk-data.tar.bz2.gpg
Run Code Online (Sandbox Code Playgroud)
你的问题可能$passphrase是空的。在 Ubuntu 上sh,符号链接到dash的符号链接与 Bash 的理解$(<file_name)方式不同(但也不会发出错误)。
您可以将 shebang 更改为:
#!/bin/bash
Run Code Online (Sandbox Code Playgroud)
或使用$(cat pass.txt)
另外,为什么不合并第二、第三和第四行?:(pass_phrase=$(<pass.txt)或者pass_phrase=($(<pass.txt))如果您试图删除文件中除第一个“单词”之外的所有内容)。