在Windows Powershell脚本中通过WSL运行Bash脚本

3
我正在尝试运行一个脚本,它启动一个WSL(Ubuntu1804)终端,然后在该终端中运行一个bash脚本。
.\ubuntu1804.exe;
cd test_directory;
node server.js;

然而,在第一个命令之后,终端打开了,但是其他两个命令没有被执行。

1个回答

2

.\ubuntu1804.exe 单独打开一个交互式 shell,由 PowerShell 同步执行。

也就是说,在你提交 exit 以终止该交互式 shell 之前,控制权不会返回给 PowerShell,因此后续的命令 - cd test_directorynote server.js - 不仅没有被发送到 .\ubuntu1804.exe,正如你打算的那样,而且随后由 PowerShell 运行。

相反,你必须通过 run 子命令将要运行的命令传递给 .\ubuntu1804.exe

.\ubuntu1804.exe run 'cd test_directory; node server.js'

注意:一旦node退出,控制权将返回到PowerShell。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接