Linux
將變數保存到環境中,直到它不被擦除
我是 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"