在 Windows 上使用批处理文件在 WSL 中自动化 Ubuntu

在 Windows 上使用批处理文件在 WSL 中自动化 Ubuntu

我想通过 Windows 中的单击批处理文件来自动化 Ubuntu。

我可以只执行start ubuntu,但如果我添加/k cd "path",它就不会执行任何操作。它会退出且没有任何错误。

我想做一个自动化,以便我可以单击 Windows 中的批处理文件并:

  • 在 WSL 中打开 Ubuntu
  • cd 到路径
  • 激活环境
  • cargo run
  • ...然后让 Ubuntu 在同一个实例中运行

...但 WSL 的表现似乎并不像我预期的那样。我不明白。

这个问题真的很接近,但是我尝试过了,却无法让它工作。

答案1

本质上,这听起来就像您想在 WSL/Ubuntu 中编写一系列命令,但在完成后保持 shell 保持打开状态。

关键步骤如下:

  • 使用wsl命令,而不是ubuntu.exe命令。
  • 启动您要在其中运行命令的 shell -lic,这将使其成为登录 shell(用于解析您的~/.bash_profile)和交互式 shell(用于解析您的~/.bashrc)。
  • 用分号分隔参数中的命令wsl
  • 为了保持 shell 运行,请执行最后一条命令exec bash

例如:

wsl -e bash -lic "cd /home/myhome/src/project ; source /home/myhome/src/myproject/bin/activate ; cargo run ; exec bash"

相关内容