在Cheetah变量中分配bash命令结果

时间:2017-10-25 15:15:43

标签: bash cheetah

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

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

' $ input.element_identifier' 是(一种)指向前一个输入文件名称的链接(我尝试在xml包装器的部分中执行此操作Galaxy,一种生物信息学软件)

我的问题是猎豹不承认' $'在echo命令中......我尝试了很多其他语法,但问题仍然存在(所以我不知道命令的其余部分是否正确)

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

由于

1 个答案:

答案 0 :(得分:0)

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

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

  2. #echo没有返回结果,#echo将结果放入输出流(HTML或输出的任何内容)。

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

    类似的东西:

    #import subprocess
    #set $name = $subprocess.check_output($input.element_identifier + '.phy | cut -d _ -f 1', shell=True)