1
私はCheetahを実行しているスクリプトで作業しています。ある時点でいくつかのbashコマンドがあり、構文エラーが発生します(「Cheetahがこのテンプレートに対して生成したPythonコードのエラー」)。
関与行は次のとおりです。
&& name=$(echo '\$another_variable'".phy" | cut -d _ -f 1)
構文エラー非常に最初の「$」記号上にあります。
あなたが画面に持って<command><![CDATA[
ln -s '$input' '$input.element_identifier' &&
BlastAlign -i '$input.element_identifier'
-m $advanced_option.m
#if $advanced_option.r != ""
-r $advanced_option.r
#end if
#if $advanced_option.x != ""
-x $advanced_option.x
#end if
-n $advanced_option.n
#if $advanced_option.s != 0
-s $advanced_option.s
#end if
&& mkdir outputs
&& name=$(echo '\$input.element_identifier'".phy" | cut -d _ -f 1)
&& number=$(grep '/' '\$input.element_identifier'".phy" | wc -l)
&& new_file=$name"_sp"$number".phy"
&& mv '\$input.element_identifier'".phy" '$new_file'
&& new_file2=$name"_sp"$number".nxs"
&& mv '\$input.element_identifier'".nxs" '$new_file2'
&& cp '$new_file' outputs/
&& cp '$new_file2' outputs/
#if $fasta_out.value == True
&& python $__tool_directory__/scripts/S01_phylip2fasta.py /outputs/'$new_file' outputs/$name"_sp"$number".fasta"
#end if
]]></command>
私はあなたが求めているのかわからないんだけど。しかし、これをやろうとしているようです: 'name = $ {another_variable %% _ *}'、 'echo'と' cut'は必要ありません。 – janos
それは本当にうまくいくようです!もうエラーはありません。しかし、2番目のコマンドは、最初の '$': '&& number = $(grep'/'' \ $ input.element_identifier '"。phy" | wc -l) 'とまったく同じエラーを返します。それはCheetahの問題です、私はなぜそれが起こっているのか分かりません。単純なbahsコマンドのようにうまく動作するからです。 – Micawber
'$(...)'の '$'にエラーがありますか?それで、それはサブシェルを実行することができないようです。あなたは '$(...)'の代わりに '\' ... \ ''を使うことができます。 – janos