我有一个 if 循环并没有完全按照它应该做的。我希望 if 循环查找特定文件“if (-f JUN*[0-9].acc$RUN.nc)”,如果找到,则继续执行缩进的操作。如果没有,它应该跳过 endif 并继续阅读脚本。
目前,它正在寻找文件 ok(它已经能够通过第一个“if”语句并在找到第一个文件时做正确的事情),但是一旦它没有找到它正在寻找的东西,它会停止整个脚本并返回错误:
DEC*[0-9].accE01Ccek0kA.nc:不匹配。
我已经尝试了 if: ... else: pass 和 if ... then ... endif 的各种组合,在不同的地方使用冒号等,但我仍然无法让它工作。
谢谢你的帮助!
setenv RUN $1 # Run number
setenv BDIR /discover/nobackup/cekrause
setenv MONDATA $BDIR/$RUN/data_files # Target directory
setenv DATADIR $BDIR/$RUN # Run directory
setenv EXECDIR /discover/nobackup/projects/giss/exec
cd $DATADIR
#### pdE JUN and DEC files ####
if (-f JUN*[0-9].acc$RUN.nc) then
mkdir tempplot
cp JUN*[0-9].acc$RUN.nc tempplot
cd tempplot
pdE JUN*[0-9].acc$RUN.nc
endif
cd $DATADIR
if (-f DEC*[0-9].acc$RUN.nc) then
mkdir tempplot
cp DEC*[0-9].acc$RUN.nc tempplot
cd tempplot
pdE DEC*[0-9].acc$RUN.nc
endif
(do some other things)
exit