windows-subsystem-for-linux - 使用 wsl 运行多个命令
问题描述
我的主文件夹中有一些脚本,我想从命令行运行,实际上是从任务调度程序运行,但我找不到这样做的方法。
我努力了
wsl -u Ubuntu -u jlanza "cd /home/jlanza/bin && ./myscript && ./myotherscript"
但它不起作用。
如何在同一会话下连接多个命令的执行?
解决方案
您需要将这些命令不带引号传递给 WSL,以便 bash 将它们正确解释为一系列链接在一起的命令,而不是单个长命令。不幸的是,当你这样做时,'&&' 运算符会被 Windows 命令行解释器解释,并且下面的命令不会传递给 WSL。
我发现的工作是将'&&'(仅当前面的命令成功退出时才运行命令)运算符替换为简单的';' (无论前面的命令如何退出,都运行命令)。那么,在你的情况下,这样的事情应该可以工作:
cmd /c "wsl -u Ubuntu -u jlanza cd /home/jlanza/bin; ./myscript; ./myotherscript"
但是,如果您的用例需要使用“&&”运算符,我会尝试将您正在运行的命令保存为 WSL 中的脚本或 shell 别名。调用它可以省去通过 Windows 命令行解释器传递 '&&' 的需要。
推荐阅读
- jquery - 我需要对我的 jquery 进行什么更改才能执行过渡效果
- react-native - React Native react-native-sound 在运行时更改声音文件会出现错误“尝试分配给只读属性”
- html - 如何跳过 HTML 列表中的级别?
- r - eval 中的错误(predvars,data,env):找不到对象“值”
- jenkins - 如何仅在 github 版本上构建 jenkins 管道
- sql - MySQL - 使用 MIN 分组未按预期工作
- python - ValueError:使用序列设置数组元素。Python
- python - 如何防止 django 运行一个命令的多个实例?
- reactjs - Material UI:嵌套菜单项无法显示
- javascript - CSS3 内容中的 HTML 值