【发布时间】:2021-02-05 11:06:00
【问题描述】:
我们有一个 Windows NodeJS 进程,它必须通过 WSL 调用一些 Linux 命令。在正常的 WSL bash 会话中,我们只需一个接一个地执行这些命令:
user@pc:/mnt/c/Users/user$ command1 args1
user@pc:/mnt/c/Users/user$ command2 args2
但是,当通过wsl command1 args1 然后wsl command2 args2 调用 WSL 时,第一次调用的结果不会影响第二次调用。这是两个会话,而不是一个。
我是这样试的:第一个命令是virtualenvactivate调用,第二个是Python脚本的执行:
import { child_process } from 'mz';
child_process.spawn('wsl', ['source /path/to/virtualenv/env/bin/activate', 'which python'])
不起作用,因为这两个参数分别被解释为一个命令 (source /path/to/virtualenv/env/bin/activate: No such file or directory)。
我也试过
child_process.spawn('wsl', ['source /path/to/virtualenv/env/bin/activate && which python'])
和
child_process.spawn('wsl', ['source /path/to/virtualenv/env/bin/activate `&`& which python'])
也不行。
我如何批处理这两个命令,以便 WSL 和 bash 了解哪些命令属于一起?
【问题讨论】:
标签: node.js bash windows-subsystem-for-linux