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

时间:2017-11-21 18:39:32

标签: 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。这对于项目或其他任何事情都不是真的。实际上,对于朋友的电脑来说这是一种玩笑,但我真的很想知道这是否可行。如果有人有任何想法如何运作,我会很感激,因为我没有想法,也找不到任何其他类似的问题。

1 个答案:

答案 0 :(得分:1)

是的,你可以做这样的事情

import subprocess

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