首页 > 解决方案 > 在 shell 脚本中使用 for 循环

问题描述

我编写了一个 shell 脚本来尝试运行gnuplot.

运行脚本.sh

#!/bin/bash

echo "Script to generate the graph "

date 

shopt -s extglob
rm -rf *.png

gnuplot /localtemp/$USER/video_project/build/../plot_graph/display_file0.gpl
gnuplot /localtemp/$USER/video_project/build/../plot_graph/display_file1.gpl
gnuplot /localtemp/$USER/video_project/build/../plot_graph/display_file2.gpl
gnuplot /localtemp/$USER/video_project/build/../plot_graph/display_file3.gpl
gnuplot /localtemp/$USER/video_project/build/../plot_graph/display_file4.gpl
gnuplot /localtemp/$USER/video_project/build/../plot_graph/display_file5.gpl
gnuplot /localtemp/$USER/video_project/build/../plot_graph/display_file6.gpl
gnuplot /localtemp/$USER/video_project/build/../plot_graph/display_file7.gpl

但是当我想从脚本中替换这个 gnu plot 语句并for loop在脚本中使用它时,我得到了路径错误。

#!/bin/bash

echo "Script to generate the graph "

date 

shopt -s extglob
rm -rf *.png

FILES=/path/to//localtemp/$USER/video_project/build/../plot_graph/*gpl
for f in $FILES
do
    gnuplot $f
done

错误:"/path/to//localtemp/$USER/video_project/build/../plot_graph/*gpl", line 0: Cannot open script file '/path/to//localtemp/$USER/video_project/build/../plot_graph/*gpl'

注意:这些 *.gpl 文件存在于plot_graph.

标签: shellgnuplot

解决方案


我不确定那里/path/to在做什么;这看起来更像是人们为通用示例编写的伪代码。您的问题已经有了使用的确切路径:

for f in /localtemp/$USER/video_project/build/../plot_graph/*.gpl; do
    gnuplot "$f"
done

推荐阅读