为什么 'pause -1' gnuplot 命令在 while -r bash 循环中执行时不起作用
Why 'pause -1' gnuplot command not working while executed in a while -r bash loop
我正在尝试结合 gnuplot 制作一个 bash 脚本。
我正在使用一个输入文件 'input.list',其中包含要使用 gnuplot 分析的单列文件列表。
我正在使用以下 bash 脚本:
#!/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
可能有两个问题:
当分析列表中的第一个文件时,绘图已创建,但 pause -1
似乎被忽略,而 pause 1
工作正常。
无论我使用 pause -1
还是 pause 1
,当执行列表中的第二个文件时,脚本从 #Other operations on files
部分开始失败。
当我在 gnuplot 中使用 system 'sleep 1'
命令时可以获得相同的行为。
当我忽略 pause
命令时,gnuplot 脚本会针对所有列出的文件正确执行。
提前感谢您的帮助
您正在以两种相互竞争的方式使用标准输入:将数据提供给 read
,以及提供给 gnuplot 的 pause -1
。
如果您希望用户能够在绘制图形后通过按 return 与 gnuplot 进行交互,则必须使用 stderr 以外的其他方式来为脚本提供数据,例如从文件中读取。
我正在尝试结合 gnuplot 制作一个 bash 脚本。 我正在使用一个输入文件 'input.list',其中包含要使用 gnuplot 分析的单列文件列表。 我正在使用以下 bash 脚本:
#!/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
可能有两个问题:
当分析列表中的第一个文件时,绘图已创建,但
pause -1
似乎被忽略,而pause 1
工作正常。无论我使用
pause -1
还是pause 1
,当执行列表中的第二个文件时,脚本从#Other operations on files
部分开始失败。 当我在 gnuplot 中使用system 'sleep 1'
命令时可以获得相同的行为。 当我忽略pause
命令时,gnuplot 脚本会针对所有列出的文件正确执行。
提前感谢您的帮助
您正在以两种相互竞争的方式使用标准输入:将数据提供给 read
,以及提供给 gnuplot 的 pause -1
。
如果您希望用户能够在绘制图形后通过按 return 与 gnuplot 进行交互,则必须使用 stderr 以外的其他方式来为脚本提供数据,例如从文件中读取。