1

下面粘贴的脚本会导致以下错误:

cat:无法打开'/tmp/drive/P0.RAW':没有这样的文件或目录

看起来脚本没有正确评估$N文件名。如何$N评估文件名类似于 P01L.RAW、P02L.RAW 等?

N=1
until [ $N -ge 10 ]; do
    cat bmpheader.bmp /tmp/drive/P0$NL.RAW > ./P0$NL.bmp
    ./quality_metric_test ./P0$NL.bmp
    N=$((N + 1))
done
4

1 回答 1

2

您的问题是 bash 默认将所有大写字符解释为变量的一部分,因此它正在寻找$NL而不是$N. 这就是为什么它只返回P0.RAW,因为它$NL是一个不存在的变量。您可以通过轻微的语法调整轻松避免这种情况,使用大括号 ( {and }) 调用变量。替换这个:

cat bmpheader.bmp /tmp/drive/P0$NL.RAW > ./P0$NL.bmp
./quality_metric_test ./P0$NL.bmp

有了这个:

cat bmpheader.bmp /tmp/drive/P0${N}L.RAW > ./P0${N}L.bmp
./quality_metric_test ./P0${N}L.bmp

这应该够了吧。

于 2012-07-30T21:20:49.097 回答