gnuplot, aqui-documentos e argumentos da linha de comandos

0

Posso usar um documento aqui para passar um script do gnuplot para o gnuplot e também ter argumentos de linha de linha de comando passados para o gnuplot?

No meu arquivo bash, eu normalmente escrevia:

#!/bin/bash
#set up code in here...
gnuplot -c script.gp $first $second

Mas eu quero ter tudo em um arquivo bash, então eu fiz

#!/bin/bash
#set up code in here...
gnuplot -c <<- EOF
do for [j=0:ARG1] {
   do for [i=4:ARG2] {
      plot '${data}' index j using 2:i with lp
   }
}
EOF $first $second

mas recebo o erro infame warning: here-document at line 87 delimited by end-of-file (wanted EOF ')' '. $data , $first e $second são definidos anteriormente no script bash.

Se eu colocar os argumentos da linha de comando na próxima linha, para deixar o EOF sozinho, recebo erros de comando não encontrados associados ao valor de $first .

Meu documento aqui é recuado apenas com guias. Não há espaços em branco à direita.

    
por masher 08.08.2018 / 08:29

2 respostas

1

Você poderia tentar algo como:

gnuplot -c /dev/stdin "$first" "$second" <<-EOF
do for [j=0:ARG1] {
   do for [i=4:ARG2] {
      plot '${data}' index j using 2:i with lp
   }
}
EOF

O Gnuplot reclama

line 4: No previous filename

mas depois recebo o mesmo erro ao usar um arquivo de script, provavelmente é algo a ver com o código estar incompleto.

    
por 08.08.2018 / 09:21
0

Esta é uma solução: livrar-se dos argumentos e fazer a substituição manualmente.

#!/bin/bash
#set up code in here...
gnuplot <<- EOF
do for [j=0:${first}] {
   do for [i=4:${second}] {
      plot '${data}' index j using 2:i with lp
   }
}
EOF
    
por 08.08.2018 / 08:55