【发布时间】:2017-03-10 08:53:02
【问题描述】:
我有一个 python 脚本正在运行 linux 命令来检查文件是否存在:
>>> p = subprocess.Popen([ 'sudo', 'test', '-f', '/root/some_file', '&&', 'echo', 'True', '||', 'echo', 'False' ])
它会产生错误:
>>> test: extra argument `&&'
如果将命令作为单个传递,则它会成功执行:
>>> p = subprocess.Popen('sudo test -f /root/some_file && echo True || echo False' ], shell=True)
>>> True
如果将命令作为列表传递,为什么会失败?
我必须同时使用 && 和 ||检查根文件是否存在,因此我无法将其转换为建议的单独命令链here
【问题讨论】:
-
是的,它很相似。但我的主要音乐会是同时使用 && 和 ||检查根文件是否存在,因此我无法将其转换为单独的命令链