아래 스크립트를 실행하려고합니다. 내가 겪고있는 문제는 do 루프 이후에 아무 것도 실행하지 않는다는 것입니다. 루프 이후에 내가 겪은 일은 중요하지 않습니다. 그래서 절대 실행하지 않습니다. 그래서 나는 어딘가에서 뭔가를 놓치고 있습니다.do 루프 이후에 스크립트가 너무 일찍 종료됩니다. 마지막 "echo"는 실행되지 않습니다.
더 효율적인 방법이나 스크립트 작성에 대한 제안 사항이 있습니까? 나는 스크립팅 환경에 아주 익숙하며, 사물에 대해 더 나은 방향으로 나아가는 데 매우 개방적이다.
#!/bin/bash
# mcidas environment
PATH=$HOME/bin:
PATH=$PATH:/usr/sww/bin:/usr/local/bin:$HOME/mcidas/bin
PATH=$PATH:/home/mcidas/bin:/bin:/usr/bin:/etc:/usr/ucb
PATH=$PATH:/usr/bin/X11:/common/tool/bin:.
export PATH
MCPATH=$HOME/mcidas/data
MCPATH=$MCPATH:/home/mcidas/data
export MCPATH
#variables
basedir1="ftp://ladsweb.nascom.nasa.gov/allData/6/MOD02QKM" #TERRA
basedir2="ftp://ladsweb.nascom.nasa.gov/allData/6/MYD02QKM" #AQUA
day=`date +%j`
day1=`date +"%j" -d "-1 day"`
hour=`date -u +"%H"`
min=`date -u +"%m"`
year=`date -u +"%Y"`
segment=1
count=$(ls /satellite/modis_processed/ | grep -v ^d | wc -l)
count_max=25
files=(/satellite/modis_processed/*)
if [ $hour -ge "17" ]; then
workinghour="16"
echo "Searching for hour $workinghour"
url="${basedir2}/${year}/${day1}/MYD02QKM.A${year}${day1}.${workinghour}*.006.${year}*"
wget -r -nd --no-parent -nc -e robots=off -R 'index.*' -P /satellitemodis/ $url
#find /satellite/modis/ -type f -mmin -30 -exec cp "{}" /satellite/modis_processed/ \;
for files in /satellite/modis_processed/*
do
echo "The number used for the data file is ${count}"
echo "The number used for the image file is ${segment}"
export segment
export count
#Run McIDAS
mcenv <<- 'EOF'
imgcopy.k MODISD.${count} MODISI.${segment} BAND=1 SIZE=SAME
imgremap.k MODISD.${segment} MODISI.${segment} BAND=1 SIZE=ALL PRO=MERC
imgcha.k MODISI.${segment} CTYPE=BRIT
exit
EOF
segment=`expr ${segment} + 1`
count=`expr ${count} - 1`
#Reset Counter if equal or greater than 25
if [[ $segment -ge $count_max ]]; then
segment=1
fi
find /satellite/awips -type f -name "AREA62*" -exec mv "{}" /awips2/edex/data/manual/ \;
done;
echo "We have exported ${segment} converted modis files to EDEX."
fi
오류 메시지가 있습니까? 당신은 너무 많은 'fi'를 가지고있는 것처럼 보입니다. –
필자는 bash ('/ bin/sh'로 표시됨, 촬영 공격을 받아야 함)라고 생각합니다. 그러나'files'는 결코 수정되지 않기 때문에 루프를 종료시키는 것은 아무것도 보지 못합니다. – dhke
@ that-other-guy 나는 그것을 stackoverflow에 추가 할 때 실수를했다. 닫는 'fi'중 하나를 제거했습니다. 나는 어떤 오류도 받고 있지 않다. 나는 if 문을 잘못 선언했는지 확신 할 수 없었지만 구문 상으로는 잘못된 것이 전혀 없습니다. – WxJack