与此问题相关:ducttape sometimes-skip task: cross-product error
说我有这样的计划:
task map_lexicon
< in_lexicon=$pron_lex
> out_lexicon=lex
> out_w2p=lex.w2p
> out_p2w=lex.p2w
{
cp $in_lexicon $out_lexicon
echo "" > $out_w2p
echo "" > $out_p2w
}
task prune_lexicon
# Prunes a lexicon
< in_lexicon=$pron_lex
> out_lex_pruned=lex.pruned
> out_w2p_pruned=lex.w2p.pruned
> out_p2w_pruned=lex.p2w.pruned
{
cp $in_lexicon $out_lex_pruned
echo "" > $out_w2p_pruned
echo "" > $out_p2w_pruned
}
global {
lex1=/path/to/foo
pron_lex=(PronLex: Lex1=$lex1)
}
在管道的下方,我想创建一个以map_lexicon
或prune_lexicon
作为依赖关系的分支。但是,每个任务都有3个输出我需要使用。例如:
global {
lex_type=(LexType: raw=$out_lexicon@map_lexicon pruned=$out_lex_pruned@prune_lexicon)
}
task foo
< in_lex=$in_lex@map_lexicon
< in_w2p=$out_w2p@map_lexicon
< in_p2w=$out_p2w@map_lexicon
> bar
{
echo $in_lex $in_w2p $in_p2w > bar
}
有没有办法设置有时跳过的任务来管理单个分支点内的三个变量?
答案 0 :(得分:1)
结果证明,所有必要的是用相同的分支点定义附加变量。
global {
lex=(LexType: raw=$out_lexicon@map_lexicon pruned=$out_lex_pruned@prune_lexicon)
w2p=(LexType: raw=$out_w2p@map_lexicon pruned=$out_w2p_pruned@prune_lexicon)
p2w=(LexType: raw=$out_p2w@map_lexicon pruned=$out_p2w_pruned@prune_lexicon)
}
然后将foo定义为:
task foo
< in_lex=$lex
< in_w2p=$w2p
< in_p2w=$p2w
> bar
{
echo $in_lex $in_w2p $in_p2w > bar
}