hug*_*omg 4 bash xfce environment-variables fish xfce4-terminal
如果我fish
从bash
提示符运行,它将继承我在我的.bashrc
和.profile
文件中设置的环境变量,包括重要$PATH
变量。到现在为止还挺好。
现在,我想要xfce4-terminal
,我的终端模拟器,使用 fish 而不是 bash。我发现它支持一个-e
命令行参数,但是如果我xfce4-terminal -e fish
从 GUI 应用程序启动器1运行,那么我不会从 bash 获取环境变量。是什么赋予了?
1从交互式 bash 提示符启动 xfce4-terminal 也不起作用,但具有类似命令行开关的 gnome-terminal 起作用了。但是,从 GUI 快捷方式启动时, gnome-terminal 也没有获得变量。
编辑:从那以后,我就咬紧牙关,用chsh --shell /usr/bin/fish
. 它比我之前尝试做的要简单得多,并且避免了在 bash 中运行 fish 的一些不良影响(例如将$SHELL
环境变量设置为 bash)
当 bash 作为非交互式 shell 运行时,它不会获取.bashrc
文件,如果您使用图形显示管理器,那么用于运行 GUI 启动程序命令的登录 shell可能不会获取.profile
文件。因此,使用 GUI 启动器运行的命令在运行时可能没有设置所需的环境变量。
我发现的一种解决方法是告诉终端模拟器以交互模式运行 bash(使用 -i 标志),然后立即在其中运行 fish:
xfce4-terminal -e 'bash -i -c fish'
Run Code Online (Sandbox Code Playgroud)