2017-03-03 6 views
0

私が欲しい:エコーからgnuplot変数へのパイプ?

echo {0..2} | gnuplot --persist -e "f='{OUTPUT FROM ECHO}'" myplot.plg 
0 1 2 

FILEのmyplot.plg:

print f 
#plot for [fi in f] fi.".dat" using 1 w l title sprintf(fi) 

使用します。

echo "python sim.py > "{0..2}".dat &" | bash - 
echo "node sim.js > "{0..2}".dat &" | bash - 
echo {0..2} | gnuplot --persist -e {Stack Overflow Magic?} myplot.plg 

目標は(同時に異なる初期条件をこのシムの多くのインスタンスを実行することです)echoを使用してコマンドを作成し、&をプロセスをフォークし、bashを実行します。シミュレーションが完了したら、すべてのプロットを1つの図に表示します。例:plot {0..100} .dat nolegend

+1

私は本当にそれを行うための純粋な方法はないと思います。前回(私は何年も前に)試してみましたが、実行ごとにここのドキュメントを作成し、そのスクリプトをIIRCのGnuplotに渡したと思います。 – tripleee

+1

とにかくPythonがあれば、基本的なプロッティングが必要な場合はMatplotlibの方がはるかに汎用性があります。 – tripleee

+1

@tripleee:以前はgnuplotを使用していませんでしたが、フラグの1つの中でコマンド置換構文を実行していて、 'f'はここでは動作しませんか? – Inian

答えて

1

私はすべての希望が失われたと思ったとき、救助にxargs!

echo {0..2} | xargs -I{} gnuplot --persist -e "f='{}'" myplot.plg 

もっと楽しい:

alias sgp="xargs -I{} gnuplot --persist -e \"f='{}'\"" 
echo {0..2} | sgp plot_files.plg 

Credit to this youtube video

編集: はtcshのでは動作しません(別名SGPコマンド)。 xargsも異なっています。

関連する問題