我有一个脚本,其部分看起来像这样:
for file in `ls *.tar.gz`; do echo encrypting $file gpg --passphrase-file /home/$USER/.gnupg/backup-passphrase \ --simple-sk-checksum -c $file done
由于某些原因,如果我手动运行这个脚本,工作完美,所有文件都被加密。如果我运行这个作为cron作业,echo $ file工作正常(我在日志中看到“加密< file>”),但是该文件没有加密,gpg无声,没有stdout / stderr输出。
任何线索?
事实证明,答案比我预期的要容易得多。缺少一个–batch参数,gpg尝试从/ dev / tty读取cron作业不存在。要调试我已经使用了–exit-on-status-write-error-param。但是使用我的启发是由退出状态2,回应$?正如Cd-Man所说。