変数が削除されないまで環境に保存

変数が削除されないまで環境に保存

私は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.

今保存したい新しいロゴから既存のロゴへ、次の日、または次回スクリプトが実行されるときに使用されます。環境変数として保存し、新しいIDを作成して値を変更するにはどうすればよいですか?仮想マシンを再起動すると、この値は保存されますか?エクスポートを使用することをGoogleで見ましたが、別の名前で保存する方法が気になります。

答え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"

関連情報