Linux

將變數保存到環境中,直到它不被擦除

  • September 21, 2022

我是 bash 腳本的新手,所以如果我問任何愚蠢的問題,請原諒它 xD

我正在製作一個每天執行 cli 命令的腳本。我從 cli 命令得到的輸出是一個 ID,我必須在第二天使用它。所以它就像

cli-command-delete $oldid; # here we delete the old id which was generated past day

newid=$(cli-command-create) #here we get the new id.

現在我想將newid 保存到 oldid,它將在第二天或下一次腳本執行時使用。如何將其保存為環境變數並在創建新 id 後替換該值?如果 vm 重新啟動,該值會被保存嗎?我在Google上看到使用導出,但我很困惑如何將其保存為其他名稱

您必須將其保存到一些永久儲存中,例如文件,並在腳本啟動時讀取它,最好檢查它是否可以讀取。例如:

#!/usr/bin/env sh

id_path=~/.id

oldid="$(cat $id_path)"

if [ -z "$oldid" ]
then
   printf "Failed to read oldid from %s\n" "$id_path" >&2
   exit 1
fi

cli-command-delete "$oldid"; # here we delete the old id which was generated past day

cli-command-create > "$id_path"

“如果 vm 重新啟動,是否會保存該值” - 否。

而是將其寫入文件。

id_file=$HOME/.local/data/cli-command.id

# delete the old one
cli-command-delete "$(<"$id_file")"

# save the new one
cli-command-create > "$id_file"

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