WSL - 在新终端中从 Powershell 启动 bash 并向其传递命令
WSL - Launch bash from Powershell in new terminal and pass a command to it
我正在尝试制作一个简单的 Powershell 脚本来快速设置我的开发环境。为此,我需要一些 WSL 程序实例 运行ning 在 bash 终端上。
从 Powershell,我正在尝试:
- 打开一个新终端window
- 开始bash
- 运行 带有 bash 的命令 - 在我的用例中,我只想 运行 bash.[=46= 中的一个简单
npm start
]
一个优点是我可以在一个脚本行中完成所有这些。
我想我很接近。如果我使用 start powershell
我可以启动一个新终端。这会立即打开一个新的 PowerShell 终端。
然后,我可以像这样将 PowersShell 命令传递给它:
start powershell{bash}
这将打开一个新终端 window 并立即打开 bash。
在 PowerShell 中将命令传递给 bash 的方法如下:
bash -c "npm start"
这很好用。它在同一个终端中打开 bash,然后 运行s 我传递给它的命令。 npm start
就像我直接从 bash 调用它一样工作。当我想将 npm start
传递给新终端时,问题就来了。这就是我正在尝试的:
start powershell{ bash -c "npm start"; Read-host}
这将打开新的 powershell 终端,它似乎正在打开 bash。添加 ; Read-host
以便终端不会立即关闭。但是,它不是 运行 执行 npm 命令,而是通过向我显示有关 npm 命令的信息而不是实际 运行 执行它来做出反应。
是否有解决方法,以便我可以在打开 bash 后在新终端 window 中实际获取到 运行 的命令?
我认为在 WSL 环境中启动命令的推荐方式是现在使用 wsl.exe
。 (https://docs.microsoft.com/en-us/windows/wsl/reference#wslexe)
尝试start powershell{wsl -- npm start; Read-Host}
我正在尝试制作一个简单的 Powershell 脚本来快速设置我的开发环境。为此,我需要一些 WSL 程序实例 运行ning 在 bash 终端上。
从 Powershell,我正在尝试:
- 打开一个新终端window
- 开始bash
- 运行 带有 bash 的命令 - 在我的用例中,我只想 运行 bash.[=46= 中的一个简单
npm start
]
一个优点是我可以在一个脚本行中完成所有这些。
我想我很接近。如果我使用 start powershell
我可以启动一个新终端。这会立即打开一个新的 PowerShell 终端。
然后,我可以像这样将 PowersShell 命令传递给它:
start powershell{bash}
这将打开一个新终端 window 并立即打开 bash。
在 PowerShell 中将命令传递给 bash 的方法如下:
bash -c "npm start"
这很好用。它在同一个终端中打开 bash,然后 运行s 我传递给它的命令。 npm start
就像我直接从 bash 调用它一样工作。当我想将 npm start
传递给新终端时,问题就来了。这就是我正在尝试的:
start powershell{ bash -c "npm start"; Read-host}
这将打开新的 powershell 终端,它似乎正在打开 bash。添加 ; Read-host
以便终端不会立即关闭。但是,它不是 运行 执行 npm 命令,而是通过向我显示有关 npm 命令的信息而不是实际 运行 执行它来做出反应。
是否有解决方法,以便我可以在打开 bash 后在新终端 window 中实际获取到 运行 的命令?
我认为在 WSL 环境中启动命令的推荐方式是现在使用 wsl.exe
。 (https://docs.microsoft.com/en-us/windows/wsl/reference#wslexe)
尝试start powershell{wsl -- npm start; Read-Host}