写一个非常简单的Python脚本ls
我的项目目录的内容作为测试后:subprocess.Popen返回命令没有找到
from subprocess import *
p = Popen(['ls /Users/Nelson/Projects'], stdout=PIPE, shell=True)
print(p.communicate()[0].decode())
它踢出错误:
/bin/bash: ls: command not found
我做了一些测试,发现基本命令pwd
,echo
和cd
所有单词都很好,但不是ls
。我尝试使用选项executable='/bin/bash'
,因为它默认为/bin/sh
,但没有做任何事情。
此脚本已经在Ubuntu 14.04 LTS和Ubuntu 16.04 LTS上测试过,两者都正常工作。
我使用的是Mac OSX 10.12.3塞拉利昂如果这意味着在这种情况下
任何响应都非常感谢什么!
根据记录,'pwd','echo'和' cd'都是'bash'内建的,而'ls'是一个独立的可执行程序,而不是内建的。这可能是行为差异的根源。 – ShadowRanger