我一直在创建一个快速bash脚本,它将生成一些资源编号并通过gnuplot显示它们。我遇到了一个问题,第二次我更改了gnuplot命令中的文件名,以反映我的脚本为文件位置设置的变量。示例代码如下。 知道我为什么遇到这个问题吗?我猜gnuplot没有扩展我的变量我设置,我只是无法弄清楚我需要改变什么。谢谢。
testFile=/var/log/testing.log
testFileTwo=/var/log/testingTwo.log
gnuplot -persist -e 'set xlabel "TIME"; set ylabel "PERCENT" ; set yrange [0:100]' -e 'plot ${testFile} smooth bezier, ${testFileTwo} smooth bezier'
一旦我运行此脚本,就会收到以下错误。
plot ${testFile} smooth bezeri, ${testFileTwo} smooth bezier
^
line 0: invalid complex constant
答案 0 :(得分:3)
Bash不会在'
单引号内扩展变量。如果您在第二个"
之后使用-e
双引号,则bash会在将结果字符串传递给gnuplot之前展开${testFile}
和${testFileTwo}
。
编辑:使用-e "plot '${testFile}' ..."
,以确保地图在引号内收到名称。