2016-05-20 1 views
0

Я пытаюсь создать скрипт bash в сочетании с gnuplot. Я использую входной файл 'input.list', содержащий одноколоночный список файлов для анализа с помощью gnuplot. Я использую следующий Баш скрипт:Почему 'pause -1' Команда gnuplot не работает, пока выполняется некоторое время -r bash loop

#!/bin/bash 
     while read -r line 
     do 
... 
#Other operations on files 
... 
     gnupinp=$line 
     gnuplot -e "input='${gnupinp}'; plot input u 1:2; pause -1" 

     done < input.list 

Есть два вопроса, вероятно, связанные:

  1. Когда первый файл из списка анализируется создается сюжет, но pause -1 кажется можно пренебречь а pause 1 отлично работает.

  2. Независимо от того, если я использую pause -1 или pause 1 сценарий не удается, начиная с #Other operations on files части, когда второй файл из списка выполняется. Такое же поведение можно получить, когда я использую команду system 'sleep 1' в gnuplot. Когда я пренебрегаю командой pause, скрипты gnuplot предварительно сформированы для всех перечисленных файлов.

заранее спасибо за любую помощь

ответ

0

Вы используете стандартный ввод в двух конкурирующих способов: кормление данных в read и GNUPLOT-х pause -1.

Если вы хотите, чтобы пользователь мог взаимодействовать с gnuplot, нажав return после построения графика, вам нужно использовать другой способ, кроме stderr, для подачи вашего сценария данными, например. читать из файла.

+0

[SOLVED] Благодарим за то, что вы заставили меня копать глубже. По крайней мере, я знал, что мне нужно искать. Полезный ответ гленна Джекмана по [этому вопросу] (http://superuser.com/questions/421701/bash-reading-input-within-while-read-loop-doesnt-work). – tomtom

Смежные вопросы