나는 그것이해야 할 일을하고 있지 않은 if 루프를 가지고있다. if 루프가 특정 파일을 찾으려면 "if (-f JUN * [0-9] .acc $ RUN.nc)"를 찾고 찾으면 들여 쓰기를 계속하십시오. 그렇지 않으면 endif를 뛰어 넘어 스크립트를 계속 읽어야합니다.이상한 동작 if 문에서 (t) csh
지금은 파일 ok를 찾고 있습니다 (첫 번째 "if"문을 통과하고 첫 번째 파일을 찾을 때 올바른 작업을 수행 할 수 있음). 그러나 찾지 못하면 찾고자하는 것은 전체 스크립트를 멈추고 오류를 반환합니다 :
DEC * [0-9] .accE01Ccek0kA.nc : 일치하지 않습니다.
다음과 같은 다양한 조합을 시도했습니다. ... else : 패스 및 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
또는 터미널에'info bash '를 입력하십시오. – devnull
BTW : "if 루프"같은 것이 없습니다. 'if' 문은 반복하지 않습니다. 루프를 원하면'while'을 사용하십시오. – Uwe
@Mat Claire는 스크립트를 실행하기 위해 bash 대신 csh를 사용합니다 (bash는'setenv' 행을 만나면 이미 실패합니다). "bash"태그가 잘못되었습니다. – Uwe