【发布时间】:2026-02-22 03:15:01
【问题描述】:
请参阅我之前关于组装特定字符串 here 的问题。
我得到了这个问题的答案,但不幸的是,这些信息实际上并没有帮助我完成我想要实现的目标。
使用该帖子中的信息,我已经能够组装以下字符串集:gnuplot -e "filename='output_N.csv'" 'plot.p' 其中 N 被替换为整数的字符串表示形式。
下面的循环会解释:(实际上,可能有更好的方法来做这个循环,你可能想指出——希望下面的代码不会让太多人感到不安......)
1 #!/bin/bash
2 n=0
3 for f in output_*.csv
4 do
5 FILE="\"filename='output_"$n".csv'\""
6 SCRIPT="'plot.p'"
7 COMMAND="gnuplot -e $FILE $SCRIPT"
8 $COMMAND
9 n=$(($n+1))
10 done
不幸的是,这不起作用... gnuplot 确实运行了,但给出了以下错误消息:
"filename='output_0.csv'"
^
line 0: invalid command
"filename='output_1.csv'"
^
line 0: invalid command
"filename='output_2.csv'"
^
line 0: invalid command
"filename='output_3.csv'"
^
line 0: invalid command
...
所以,正如我之前所说,我不是 bash 专家。我的猜测是某些东西没有被正确解释 - 或者某些东西被解释为不应该被解释为字符串,或者它没有被解释为应该被解释为字符串? (只是猜测?)
我该如何解决这个问题?
我的 gnuplot 脚本的前几行(相关)如下:
(注意变量filename的使用,它作为命令行参数输入。见link。)
30 fit f(x) filename using 1:4:9 via b,c,e
31
32 plot filename every N_STEPS using 1:4:9 with yerrorbars title "RK45 Data", f(x) title "Landau Model"
【问题讨论】:
标签: string bash gnuplot command-line-arguments