【发布时间】:2017-09-18 20:49:00
【问题描述】:
我正在尝试为 Bash 设置环境变量。但是,我需要在任何 shell 的启动脚本(包括 /etc/profile)之前设置它之前,因为 /etc/profile 的行为会根据此变量的值而有所不同。
具体来说,我想创建一个类似于git-bash 的 MinTTy 快捷方式,但我需要在 shell 启动之前设置 MSYSTEM 环境变量,或者至少在它开始处理任何启动脚本之前设置。
在启动 shell 之前让 MinTTy 设置环境变量的解决方案也将被接受。
编辑:
我真正想要的是 BASH 的一种命令行选项,它将设置一个环境变量,有点类似于大多数 C(和其他)编译器的 -D 选项。这将是一个“一般情况”解决方案。或者,与 MinTTy 类似的选项(命令行或配置)也可以完成这项工作。
针对我的特定需求,我有一个可能的解决方法的想法:运行一个 BASH 脚本 - 没有启动脚本 - 设置我所需的变量和 execs 另一个 shell 作为登录 shell。
【问题讨论】:
-
不确定这是否适用于您的情况,但尝试创建一个设置环境变量的包装脚本,然后执行 =>>"source /etc/profile"。加上在启动/登录时执行的任何其他脚本。
-
@zee 我考虑过。但是接下来我必须完全复制整个启动过程:登录/交互、正确的
profile和bashrc文件等。 -
我可以尝试在没有启动文件的情况下启动 shell,但只执行一个设置环境变量的 shell 脚本,然后
execs 一个登录或交互式 shell。 -
您为什么担心启动过程?他们会重写你的环境变量吗?还是只是一种偏好?
标签: bash shell git-bash mintty git-for-windows