我正在编写一个需要存储变量值的脚本。该值将在下次运行脚本时使用。首先我想到将它存储在一个文件中。然后这个疯狂的想法就出现在我的脑海里。我可以创建一个变量,如果我在其中存储一个值,关闭终端并打开另一个终端,该值仍然存在吗?
我可以使一个 shell 变量完全全局化,就像在任何地方都可以访问一样吗?
我正在编写一个需要存储变量值的脚本。该值将在下次运行脚本时使用。首先我想到将它存储在一个文件中。然后这个疯狂的想法就出现在我的脑海里。我可以创建一个变量,如果我在其中存储一个值,关闭终端并打开另一个终端,该值仍然存在吗?
我可以使一个 shell 变量完全全局化,就像在任何地方都可以访问一样吗?
没有“全局环境变量空间”。如果你想让你的数据持久化,那么你需要将它存储在一些文件中。例子:
如果你想让每个新进程都可以使用一个变量,那么你可以把它放在
/etc/environment
(需要 root 权限)或~/.profile
. 一旦将其放入这些变量中,您通常必须重新登录。除非绝对必要,否则我建议不要使用这种方法。它将内容放在每个(新)进程的内存中,因此不适合存储密码或大值。好吧,如果您只想将值公开给交互式 shell 会话,那么您可以将它放在您的
~/.bashrc
. 试试看,附加echo "Hello $USER"
到文件。每次打开新的 shell 时都会执行它。由于以下行,它不会针对图形登录等执行: