子进程无法分析do语句后的分号?

2024-10-04 11:23:55 发布

您现在位置:Python中文网/ 问答频道 /正文

正在尝试运行以下内容:

command = "for i in `/bin/generateItems` ; do ; echo $i ; /bin/somecommand $i; done"
p = subprocess(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()

我得到以下错误: 没有这样的文件或目录

但是,当我在do removed之后使用分号运行完全相同的代码时,它可以工作:

command = "for i in `/bin/generateItems` ; do ; echo $i ; /bin/somecommand $i; done"
p = subprocess(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()

有人能解释一下为什么会这样吗?我能做些什么让命令在do之后使用分号吗?在


Tags: inechotrueforbinstderrstdoutshell