【问题标题】:conemu pass env var to WSL bash terminalconemu 将 env var 传递给 WSL bash 终端
【发布时间】:2018-10-17 14:20:05
【问题描述】:

我正在尝试获取在 ConEmu 中定义的任务,以使用 Windows 10 的 WSL 层运行多个 Ubuntu bash 实例。

我按照示例设置了一个任务以按照我想要的方式拆分 UI,这部分效果很好。我的问题是我正在尝试使用环境变量来传递命令以在登录后运行,并且我希望在每个面板中运行不同的东西。

这是我正在使用的任务命令:

set "STARTUP_CMD='gfp && make server'" & set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:p -cur_console :d:C:\xxx\yyy

在 Linux 方面,我的 ~/.bash_aliases 文件中有代码,用于查找 STARTUP_CMD 环境变量并尝试执行它。我找到了可以从 Windows 端提取环境变量的代码,这是“set”命令似乎存储东西的地方。问题是,Windows 不知道如何处理这些,并且在读取它们时会尝试扩展它们,所以一切都崩溃了。

我之前有这个工作,但最近不得不擦除并重建我的机器,不幸的是没有在任何地方备份工作命令。

我认为这是使用 WSL 运行 bash 的推荐方法,但我宁愿有一种方法可以将内容作为 env vars 直接发送到 Linux 层(或者如果有人有更好的方法来为每个窗格排列不同的命令,我也赞成)。任何帮助将非常感激。

谢谢!

【问题讨论】:

    标签: environment-variables windows-subsystem-for-linux conemu


    【解决方案1】:

    哦,当然,我在发布问题后立即找到了答案......在这里发布以帮助遇到相同问题的其他人(或者如果我忘记并且必须再次擦拭我的机器,或者我未来的自己)。

    设置 "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -eSTARTUP_CMD="gfp && make server" -cur_console :p -cur_console:d:C:\xxx\yyy

    你只需要在你想要的环境变量前面加上 -e 并将它作为参数传递给 conemu-cyg。它在 Windows 端无需任何修改即可通过,您可以像在 Linux 端的任何其他 env var 一样阅读它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多