在 Konsole 启动时将可选的额外环境设置传递给 shell

在 Konsole 启动时将可选的额外环境设置传递给 shell

我的电脑上有一堆不同的“帽子”,包括多个正在进行的项目(例如,$work、github 上的几个项目、Sourceforge 上的一些项目、我参与的一些项目、我只是关注的一些项目等)。每个帽子都有自己的伪主目录(例如,~/hat/$projectname)。有些帽子有自己特定的环境设置(例如,DB2 实例环境)。

因此,我有一个 shell 工具可以从一个切换到另一个(“hat $projectname”)。它会找到正确的主目录,然后 cd 到该目录(“hat”是“.hat.sh”的别名,所以我可以这样做),设置环境等。因为我很懒。

现在我想偷懒一点。我想设置一个热键来启动 konsole,并使用我最常戴的一顶帽子的正确参数:$work。我想有效地在窗口中预先输入“hat work”。但我完全不确定如何通过 konsole 将其传递到 bash 到我的 .profile (?)并让 shell 继续运行之后。同时没有对我已经拥有的可以正常启动 konsole 的热键执行任何上述操作。

答案1

Konsole 及其执行的 shell 将继承 Konsole 执行时设置的任何环境变量。以下命令(您可以将其放入脚本并为其分配热键)将导致FOO在 shell 中设置变量:

$ FOO=bar konsole

另一个选择是为您的 shell 创建不同的启动脚本(我在下面假设是 bash),并修改 Konsole 执行的命令:

$ konsole -e "bash --rcfile ~/.bashrc-$projectname"

答案2

我最终为 Konsole 创建了一个新的配置文件“Work”。我将其设置为与正常情况下一样运行,但它可以设置特定的环境变量,因此我告诉它将 HAT_PROJECT=work 设置为附加环境变量。然后,在我的 .bashrc 底部,. hat.sh $HAT_PROJECT如果已设置,我只需运行“”,并取消设置,这样它就不会存在。

这与 mgorvan 的第二种选择并没有什么太大的区别,因为它最终产生了一堆我希望避免的额外麻烦。

感谢 IRC 上的 #kde 解释为什么第一个选项不起作用。

相关内容