将变量保存到环境中,直到它不被删除

将变量保存到环境中,直到它不被删除

我是 bash 脚本新手,所以如果我问任何愚蠢的问题,抱歉 xD

我正在制作一个每天运行 cli 命令的脚本。我从 cli 命令得到的输出是一个 ID,我第二天必须使用该 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.

现在我想保存新标识到旧标识,它将在第二天或下次脚本运行时使用。如何将其保存为环境变量并在创建新 id 后替换该值?如果虚拟机重新启动,该值会被保存吗?我在谷歌上看到使用导出,但我很困惑如何将其保存为其他名称

答案1

“如果虚拟机重新启动,该值是否会被保存”——否。

而是将其写入文件。

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"

答案2

您必须将其保存到某些永久存储(例如文件)中,并在脚本启动时读取它,最好检查是否可以读取。例如:

#!/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"

相关内容