0

我目前正在尝试将 bash 命令的结果放入 Cheetah 变量中:

#set $name = #echo '$input.element_identifier' + ".phy" | cut -d _ -f 1

'$input.element_identifier'作为(某种意义上)指向先前输入文件名称的链接(我尝试在生物信息学软件 Galaxy 的 xml 包装器部分中这样做)

我的问题是 Cheetah 无法识别 echo 命令中的“$”...我尝试了很多其他语法但问题仍然存在(所以我不知道命令的其余部分是否正确)

这是一个相当具体的问题(与 Galaxy 软件的管理和使用有关),我希望我很清楚。

谢谢

4

1 回答 1

1

您当前的方法有两个错误:

  1. #echo不执行操作系统命令,#echo执行 Python 表达式。

  2. #echo不返回结果,#echo将结果放入输出流(HTML 或任何输出)。

要执行操作系统命令,您需要os.system()subprocess.Popen(). 要分配命令的结果,您当然需要捕获命令的标准输出,Popen以更好地适应任务。

像这样的东西:

#import subprocess
#set $name = $subprocess.check_output($input.element_identifier + '.phy | cut -d _ -f 1', shell=True)
于 2017-10-25T21:27:15.840 回答