次のコードは完全に実行されます。
do for [i=1:$M_Orbs]{
set table 'L_z_'.i.'.dat'
plot [0:250] "L_z_expectation.dat" u 1:2+2*((i-1)*$M_Orbs+i) smooth cspline w l
unset table
set table 'Nocc_'.i.'.dat'
plot [0:250] "NO_PR.out" u 1:2+$M_Orbs-i smooth cspline t 'M='.i w l
unset table
}
しかし、貼り付けコマンドを使用してこれらのファイルをループで結合しようとすると、問題が発生します。
plot for [i=1:$M_Orbs] '< paste 'L_z_'.i.'.dat' 'Nocc_'.i.'.dat'' u 1:(\$2*\$5)
この行はエラーを表示します。
plot for [i=1:2] '< paste 'L_z_'.i.'.dat' 'Nocc_'.i.'.dat'' u 1:($2*$5)
^
line 0: x range is invalid
gnuplot は for ループの値に i を代入する前に paste コマンドを実行しようとするため、エラーが発生したと確信しています。i をエスケープする別の方法、または少なくとも同じアイデアを別の方法で実装する方法はありますか?