linux - shell中的环境变量更改但不会导出
问题描述
我在 shell 中设置永久环境变量时遇到问题。例如
HISTSIZE=0
export HISTSIZE
echo $HISTSIZE
变量将在 shell 中更改。但是,如果我打开另一个选项卡或关闭并重新打开 shell,变量将恢复到其原始值 1000。
我还尝试使用用 ~/.bash_profile 编写的脚本来获取变量。但它只在该特定外壳中留下相同的变量问题。如何创建永久更改?
解决方案
如果您打开一个新选项卡,则新 shell 的父进程不是您当前的 shell,而是您的终端模拟器,因此导出HISTSIZE
不会影响新 shell 的环境。
由于HISTSIZE
仅由外壳本身使用,因此根本不需要导出它。设置它的值,.bashrc
以便任何新的交互式 shell 都可以初始化该值。
HISTSIZE=0
如果您的终端仿真器配置为启动登录 shell(在 macOS 上很常见,我认为在 Linux 中则更少),.bashrc
则不会使用。在这种情况下,我建议添加. .bashrc
到您的最后.bash_profile
,以便交互式登录 shell 的初始化与交互式非登录 shell 相同。
推荐阅读
- git - github 支持 git Wire 协议 v2 吗?
- javascript - 使用 React 从 Node 部署到 Heroku
- css - 如何使用 Bulma 在列内垂直堆叠元素?
- c# - 迁移到 Azure Web 应用程序后无法使用 C# 7 功能
- amazon-web-services - AWS 将服务保留在域中,而不是公开
- java - 无法在 Elastic Beanstalk 中获取 JDBC 连接
- c# - RawRabbit 订阅者在 ASP.NET Core 中不起作用
- loops - 尝试在 kotlin 中迭代链接的 hashedMap 但我需要一种方法来将当前元素和下一个元素与某个值进行比较
- woocommerce - 当 Woocommerce 中没有可用的运输方式时隐藏付款区域
- python - 如何使用 Midiutil 在一个时间点添加多个音符(或如何添加和弦)