温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Gnuplot: How to plot bash array without dumping it to a file
arrays bash gnuplot

其他 - Gnuplot:如何绘制bash数组而不将其转储到文件中

发布于 2020-04-12 11:31:19

我正在尝试使用gnuplot绘制bash数组,而不将其转储到临时文件中。

比方说:

myarray=$(seq 1 5)

我尝试了以下方法:


myarray=$(seq 1 5)
gnuplot -p  <<< "plot $myarray"

我收到以下错误:

         line 0: warning: Cannot find or open file "1"
         line 0: No data in plot


gnuplot> 2
         ^
         line 0: invalid command


gnuplot> 3
         ^
         line 0: invalid command


gnuplot> 4
         ^
         line 0: invalid command


gnuplot> 5''
         ^
         line 0: invalid command

为什么不将数组解释为数据块?

任何帮助表示赞赏。

查看更多

提问者
IamNotaMathematician
被浏览
60
KamilCuk 2019-11-30 06:47

bash数组

myarray = $(seq 1 5)

myarray一个bash阵列,它是一个正常的变量。

最简单的方法是将数据放入stdin并绘图<cat

seq 5 | gnuplot -p -e 'plot "<cat" w l'

或者使用您的变量并使用here-string:

<<<"$myarray" gnuplot -p -e 'plot "<cat" w l'

或与重定向你的变量echoprintf

printf "%s\n" "$myarray" | gnuplot -p -e 'plot "<cat" w l'

如果要绘制实际的数组,只需将其打印在单独的行上,然后通过管道传输到gnuplot

array=($(seq 5))
printf "%s\n" "${array[@]}" | gnuplot -p -e 'plot "<cat" w l'