2017-03-03 78 views
0

我想要什麼:從echo到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 

的目標將是運行這個SIM同時(不同的初始條件很多情況下)使用echo創建命令&來分叉進程,然後bash運行它。一旦模擬完成,我想在一個圖中顯示所有的圖。例如:情節{0..100} .dat nolegend

+1

我不認爲真的有一個理智的方法來做到這一點。上次我嘗試過(多年前),我想我最終爲每次運行創建了一個here文件,並將其作爲腳本傳遞給Gnuplot,IIRC。 – tripleee

+1

如果你有Python,Matplotlib是更多功能,如果你只需要基本繪圖。 – tripleee

+1

@tripleee:之前沒有使用gnuplot,但在其中一個標誌內運行命令替換語法,'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也不同。