如何保存shell变量数据直到关闭?

如何保存shell变量数据直到关闭?

shell 变量由脚本创建。即使在关闭终端并启动另一个脚本并访问它之后也需要保留它。

我不想写入文件(在硬盘中)。如果可以将变量的内容写入文件(仅存储在RAM中),该怎么做?

数据需要经常更改,所以我不想对硬盘进行太多的I/O操作。

答案1

为了在重新启动和关闭终端后继续存在,您需要将变量值写入文件中。你可以这样写(例如)

echo "$VAR" >/path/to/file

您可以通过这种方式恢复它(例如)

VAR="`cat /path/to/file`"

并且您需要在每次值更改时将其存储在文件中

答案2

无法在父 shell 或其他(非子)shell 中访问在一个环境中设置的变量。以下将起作用:

export my_variable="testing..."
bash
echo $my_variable

$my_variable无法在另一个终端中访问,除非您将这些行放入某个文件中(例如.bashrc或由 执行的文件.bashrc

另一种选择是使用fishshell...

fish -c "set -u my_variable 'testing...'"

您可以阅读更多内容这里

来自fish 文档

-U 或 --universal 导致指定的 shell 变量被赋予通用范围。如果提供此选项,则该变量将在当前计算机上所有当前用户的 Fish 实例之间共享,并将在 shell 重新启动时保留。

不确定您的具体要求是什么,但只是出于好奇:如果您担心变量的内容可访问/可读,您可以将数据写入文件并将权限设置为--x------并将文件放入.bashrc.

答案3

1) 获取/生成一些 C/Shell 代码/程序来回显/计算它的 PID。

2)命名该文件,将其命名为“whatever”并编译/chmod +x“whatever”

3)./allocate $("./whatever --name='$(plugin)' ")

那应该可以了。

[PS]这需要在内存中引用它自己。破壳而出是有可能的

相关内容