我在Mac OS X Sierra上使用python 3.5
以下代码按预期工作,打印'hello world'
5次:
for _ in range(5):
print(subprocess.check_output(['/bin/bash', '-i', '-c', 'echo hell world']))
虽然这一个导致脚本停止,但只打印一次目录列表。
for _ in range(5):
print(subprocess.check_output(['/bin/bash', '-i', '-c', 'ls']))
显示
... my directory listing ...
[2]+ Stopped python demo.py
我将ls
中的~/.bashrc
别名为ls -alf
。如果我删除别名,该程序似乎工作正常。在交互模式下启动bash有什么问题吗?
编辑:
有趣的是,我可以通过破解命令来强制执行正确的行为:
for _ in range(5):
print(subprocess.check_output(['/bin/bash', '-i', '-c', 'echo; ls']))
现在ls
不会再杀死脚本,无论它是否有别名。有什么想法吗?