Linux

無法在腳本中導出變數

  • September 7, 2021

我一直在嘗試按照文件設置一個 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 還很陌生,所以這可能是一個簡單的解決方法,但是當我參考其他答案時,我自己無法做到。請幫忙。

sudo 不保留環境變數,請嘗試該-E選項。看man 8 sudo

-E’ -E(保留環境)選項向安全策略表明使用者希望保留他們現有的環境變數。如果指定了 -E 選項並且使用者沒有保留環境的權限,則安全策略可能會返回錯誤。

引用自:https://unix.stackexchange.com/questions/668069