cygwin에서 csh 스크립트 관련 while 문 오류질문!! 정중히 부탁드립니다ㅜㅜ
안녕하세요
유닉스 초보입니다.
중요한 일 처리를 해야하는데
set 에서 처리할 파일을 지정하고 while 문을 이용해 set $iang 에서 돌릴 각도의 간격을 설정하는데
360도까지 돌리는데 1도씩은 돌아가는데
소수점으로 0.1 이나 0.01 단위로 돌릴 때는 자꾸 오류가 뜨네요
set iang=`echo $iang | awk '{print $1+1}'` 이부분에서 1도씩 더하면서 각도가 증가됩니다.
뭐가 잘못된 걸까요?
전체스크립트가 아니고 일부인데
다른 부분은 생략하시고 저 부분만 주목해서 봐주세요 ㅠㅠ
혹시 원인을 아시는 분 계시면 해결책좀 제시해 주세요 !! ㅜㅜ 부탁드립니다
#!/bin/csh
set KOHGnfile=KOH.KS..HGN.2009.313.SAC
set KOHGefile=KOH.KS..HGE.2009.313.SAC
set KOHBGnfile=KOHB.KS..HGN.2009.313.SAC
set KOHBGefile=KOHB.KS..HGE.2009.313.SAC
set KOHBHnfile=KOHB.KS..HHN.2009.313.SAC
set KOHBHefile=KOHB.KS..HHE.2009.313.SAC
set acut=39600
while ( $acut <= 46800 )
set iang=1
set maxval=-10
set maxang=-10
while ( $iang <= 360 )
set HHNF=./BB/$acut/N
echo "r $HHNF/$acut.$KOHBHnfile $HHNF/$acut.$KOHBHefile" > cmd3.txt
echo "rot to $iang" >> cmd3.txt
echo "w $HHNF/nn$iang.sac $HHNF/ee$iang.sac" >> cmd3.txt
echo "q" >> cmd3.txt
sac < cmd3.txt >> error1.txt
set iang=`echo $iang | awk '{print $1+1}'`
end
echo N $acut $maxang $maxval >> resultBB_313N.txt
set acut=`echo $acut | awk '{print $1+120}'`
end
음 ..
아마도 iang 이 실수로 바뀌면서.. while ( $iang <= 360 ) 에서 에러가 나지 않았을까 생각되는데..
쉘 변수들의 산술 연산이나 대소 비교는 일단 정수만 가능하다고 보시면 될겁니다.
미리 적당한 값을 곱해서 정수로 만들어 놓은 걸로 연산을 하거나..
그게 아니면 연산하는 부분은 bc 나 awk 등을 써서 계산을 하도록 조건을 변경해야 할 것 같네요.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
댓글 달기