python - 脚本是否可以打开 WSL bash shell 并向其发送命令?

标签 python windows bash batch-file windows-subsystem-for-linux

我想要的是有一个可以运行脚本的桌面快捷方式。我一直在尝试使用批处理和Python,但我并不真正关心它是否有效。我需要该脚本来打开 bash shell(适用于 Linux 的 Windows 子系统)并在保持 shell 打开的同时执行简单的命令。起初,我认为这很简单,但现在我怀疑这是否可能。我制作了一个简单的批处理文件,可以打开 bash 并保持打开状态,但是我输入的测试命令没有进入 shell。 (我真的没想到会这样,但我想不出一个好方法来做到这一点,所以我只是在尝试随机的东西)。这是我使用的批处理文件:

bash
cowsay test
PAUSE

此后,我尝试使用 Python 脚本打开 bash 并运行 shell 脚本,该脚本将保持 shell 打开并执行命令。这是 Python 脚本:

import os
import time

os.system("start /wait bash /c {./test.sh}")
while 1:
    time.sleep(2) 

由于某种原因,这会给出一个错误,指出找不到 bash。这实际上并不是为了一个项目或任何东西。这实际上是针对 friend 的计算机的一个玩笑,但我真的很想知道这是否可能。如果有人有任何想法如何运作,我将不胜感激,因为我没有想法,也找不到任何其他类似的问题。

最佳答案

是的,你可以这样做

import subprocess

from subprocess import Popen
p = Popen("batch.bat", cwd=r"C:\Path\to\batchfolder")
stdout, stderr = p.communicate()

关于python - 脚本是否可以打开 WSL bash shell 并向其发送命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47420369/

相关文章:

linux - 如何列出目录及其所有子目录中的所有文件?

bash - 连接多个文件跳过第一行

Python:记录到多个日志文件

Windows 上的 Python 3 : extend stdin. readline() 行缓冲区大小

python - 为什么 NumPy 在 Ubuntu 12.10 64 位上的空闲 3.30 中不导入

c# - 适用于 Windows 8 的简单数据库

windows - Windows 内部的 OpenGL

python - 使用 xml.dom.minidom 时在 xml 中转义 '<' 和 '>'

java - Java中自定义文件的自定义图标

linux - 文件中每一行的 bash 脚本 : how to move a string before . <dot>