无法导出脚本内的变量

无法导出脚本内的变量

我一直在尝试按照文档设置一个 borg 自动备份脚本。由于某种原因,当我尝试写入受 sudo 保护的加密驱动器时,我的脚本无法看到其变量。

例如,类似这样的内容可以作为脚本使用,因为脚本不会再次询问我密码。

#!/bin/sh

DATE=$(date --iso-8601)-$(hostname)
TARGET=~/Documents/borg
export BORG_PASSPHRASE="whatever"
borg init --encryption=repokey $TARGET
borg create $TARGET::$DATE-$$ ~/Desktop/TestFolder/1

然而,当我安装外部 FDE 实现的驱动器时,它会忽略导出的密码以及奇怪的“repokey”加密模式。

#!/bin/sh

DATE=$(date --iso-8601)-$(hostname)
TARGET=~/X/borg
export BORG_PASSPHRASE="whatever"
sudo borg init --encryption=repokey $TARGET
sudo borg create $BORG_OPTS $TARGET::$DATE-$$ ~/Desktop/TestFolder/1

我对 Linux 相当陌生,所以这可能是一个简单的修复,但当我参考其他答案时,我无法自己完成。请帮忙。

答案1

sudo 不保留环境变量,请尝试该-E选项。看man 8 sudo

-E' -E(保留环境)选项向安全策略表明用户希望保留其现有的环境变量。如果指定了 -E 选项并且用户没有保留环境的权限,则安全策略可能会返回错误。

相关内容