Saltar al contenido

¿Cómo ejecutar comandos en gnuplot usando un script de shell?

Solución:

Una forma es con -persist:

#!/usr/bin/gnuplot -persist
set title "Walt pedometer" font ",14" textcolor rgbcolor "royalblue"
set timefmt "%y/%m/%d"
set xdata time
set pointsize 1
set terminal wxt  enhanced title "Walt's steps " persist raise
plot "/home/walt/var/Pedometer" using 1:2 with linespoints

otra forma, si necesita preprocesar datos, es con un Bash Here Document (ver man bash):

#!/bin/bash
minval=0    # the result of some (omitted) calculation
maxval=4219   # ditto
gnuplot -persist <<-EOFMarker
    set title "Walt pedometer" font ",14" textcolor rgbcolor "royalblue"
    set timefmt "%y/%m/%d"
    set yrange $minval:$maxval
    set xdata time
    set pointsize 1
    set terminal wxt  enhanced title "Walt's steps " persist raise
    plot "/home/walt/var/Pedometer" using 1:2 with linespoints
EOFMarker
# rest of script, after gnuplot exits

De man gnuplot o su página de manual en línea:

   -p,  --persist  lets  plot  windows  survive after main gnuplot program
   exits.

   -e "command list" executes the requested commands  before  loading  the
   next input file.

Entonces, lo que probablemente quieras ejecutar es el siguiente comando:

gnuplot -e "plot sin(x); pause -1"

Otras variantes que propuse pero que no son tan útiles fueron:

gnuplot -p -e "plot sin(x); pause -1"
gnuplot -e "plot sin(x)"
gnuplot -p -e "plot sin(x)"


Como se explica en el man páginas gnuplot espera la entrada de un archivo de comando en lo que se llama un sesión por lotes. Puede, por ejemplo, escribir la línea plot sin(x) a un archivo myplot y luego ejecutar gnuplot myplot.

Si omite el archivo de comando, como lo hace su secuencia de comandos, obtendrá un sesión interactiva.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *