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
)
另一种选择是使用fish
shell...
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]这需要在内存中引用它自己。破壳而出是有可能的