2

我正在使用 TeamForge 的 CLI 在缺陷跟踪器部分创建工件。CLI 文件/可执行文件称为“ctf”,没有扩展名。我想使用 python 脚本来创建工件,但最多只能执行一个命令。我想一次性创建一个错误。这是我到目前为止的代码:

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 tracker1234 create这是合二为一的

4

2 回答 2

1

您可以尝试将您的论点引用到 ctf; 看看这个:

>>> os.system("echo hi; echo again;")
hi
again

相对:

>>> os.system("echo 'hi; echo again;'")
hi; echo again;

分号终止 shell 中的命令。如果你的参数包含分号,你必须引用它们,这样它们就不会破坏你的参数列表。

但是,根据CTF 指南,他们使用多个命令处理这种情况的方式似乎是将它们放入脚本并执行:

./ctf script.txt
于 2015-01-16T15:31:27.497 回答
1

要在标准输入上将信息传递给您的程序,请使用

或者,您的程序可能有一些“批处理模式”,允许您在命令行或文件中提供您的命令集,但是,查看CTFCLI 手册页,这似乎不太可能。

于 2015-01-16T16:46:12.960 回答