如何在python脚本中执行多个CLI命令?
我正在使用TeamForge的CLI在缺陷跟踪部分创建工件。CLI文件/可执行文件称为“ctf”,没有扩展名。我想使用python脚本创建工件,但最多只能执行一个命令。我想一次性创建一个bug。这是我目前掌握的代码:如何在python脚本中执行多个CLI命令?,python,linux,ubuntu,command-line-interface,teamforge,Python,Linux,Ubuntu,Command Line Interface,Teamforge,我正在使用TeamForge的CLI在缺陷跟踪部分创建工件。CLI文件/可执行文件称为“ctf”,没有扩展名。我想使用python脚本创建工件,但最多只能执行一个命令。我想一次性创建一个bug。这是我目前掌握的代码: import os os.system("./ctf go tracker1234; # going to Defects section create; # creati
import os
os.system("./ctf go tracker1234; # going to Defects section
create; # creating an artifact
set title This Is A Title; # setting artifact's fields
set description desc123;
set Product [Product 23];
set build_number Not known;
set Severity Catastrophic;
set steps_to_reproduce 1st comment;
set Component [component 4];
set Version [version 19];
commit) # saving the artifact on TeamForge
以下是我不断遇到的错误:
sh: 1: create: not found
sh: 1: commit: not found
因此,我相信这些命令不是按顺序执行的,也不是按我指定的顺序执行的。这意味着每个命令都是单独执行的。有什么建议可以让这些命令按照我指定的顺序运行吗
如果需要进一步解释,请告诉我
更新
我刚刚发现您可以这样做:
go tracker 1234 create
,这是一个两步合一的过程您可以尝试向ctf引用您的参数;看看这个:
>>> os.system("echo hi; echo again;")
hi
again
与:
>>> os.system("echo 'hi; echo again;'")
hi; echo again;
分号终止shell中的命令。如果你的参数包含分号,你必须引用它们,这样它们就不会破坏你的参数列表
但是,根据,他们使用多个命令处理这种情况的方式似乎是将它们放入脚本中,并使用以下命令执行:
./ctf script.txt
要通过标准输入将信息传递给程序,请使用
- shell的工具,如或,在指定的命令行中,或
- Python的设施,例如根据
或者,您的程序可能有一些“批处理模式”,允许您在命令行或文件中提供您的命令集,但是,看看,这似乎不太可能。可能重复@ivan_pozdeev我没有使用awk、grep等。。这是一个独立的CLI。它不遵循与awk相同的格式。grept问题不是特定于awk的,相同的规则适用于任何命令。若要
shell=True
/os.system
,您需要准确地传递在shell提示符处键入的内容。请稍候。。。您需要在标准输入上而不是在命令行上传递命令吗@ivan_pozdeev是的,我没有使用linux shell,我正在将CLI命令传递给一个独立的客户端。CLI命令的格式/语法与bash、awk、grep等不同。这些单引号不起作用。谢谢你的帮助!好的,我明白了!那么,把你的命令放到”/ctf script.txt“
”中执行怎么样?你能把上面的注释放在你的答案中吗。这对我有用!谢谢你,也谢谢你!完成;我希望我的编辑正确地表达了您采取的解决方案?是的,我将所有要执行的命令都写入script.txt,然后使用您提供的命令执行CLI