我正在运行Windows 10,并且正在看着有人在运行Linux。
他正在教授subprocess
模块,并演示如何通过终端(在Linux中)调用命令。
我的问题是Linux的命令与Windows中的命令不同,例如对于ifconfig
,您需要在Windows中调用ipconfig /all
。
所以我去了Microsoft Store,下载了一个名为Kali Linux的产品。
我的问题是如何在Visual Studio中使用bash代替cmd?
示例:
import subprocess
# Linux command
subprocess.call('ifconfig', shell=True)
# Windows command
subprocess.call('ipconfig /all', shell=True)
Python终端或cmd无法识别ifconfig
命令。
答案 0 :(得分:0)
我假设您安装了Windows Linux子系统(WSL)。使用WSL,您可以在Windows的cmd
中执行bash。您只需使用其bash
选项将要在bash中执行的命令传递给-c
命令:
subprocess.call('bash -c ifconfig', shell=True)
请注意,整个命令必须作为单个参数传递给bash
。也就是说,如果要执行ls -l
,则必须使用bash -c "ls -l"
。
如果要对多个subprocess.call
执行多个命令,则必须在每个调用中使用bash -c
或更改默认外壳程序(请参见python's manual):
在具有
shell=True
的Windows上,COMSPEC
环境变量指定默认的shell。
cmd
命令where bash
揭示了您必须在COMPSPEC
中指定的路径才能将默认外壳程序更改为bash
。在我的Windows 10系统上,它是C:\Windows\System32\bash.exe
。