이유모를 shell script fi 에러 ㅠㅠ
제가 simplescalar와 spec2000을 이용하여 테스트를 하고 있습니다.
그런데 cygwin이나 ubuntu를 이용하여 테스트를 하려고 하고있습니다 제 shell script는
#!/bin/sh
if [ $# -eq 1 ]
then
#RESULT_DIR=result/`date '+%Y%m%d_%H%M%S'`
RESULT_DIR=result/$1
SPEC_GZIP_DIR=spec2k/gzip
SPEC_GZIP=${SPEC_GZIP_DIR}/gzip
SPEC_GZIP_INPUT="source graphic random program"
SPEC_GCC_DIR=spec2k/gcc
SPEC_GCC=${SPEC_GCC_DIR}/cc1
SPEC_GCC_INPUT="166 200 expr integrate scilab"
SS_OO=simplesim-3.0/sim-outorder
SS_OO_CONFIG="-config $1"
mkdir $RESULT_DIR
cp $1 $RESULT_DIR/config.cfg
for filename in $SPEC_GCC_INPUT; do
input=$SPEC_GCC_DIR/input/$filename
$SS_OO $SS_OO_CONFIG $SPEC_GCC $input.i -o $RESULT_DIR/$filename.s > $RESULT_DIR/$filename.out 2> $RESULT_DIR/$filename.err
done
for filename in ${SPEC_GZIP_INPUT};
do
input=$SPEC_GZIP_DIR/input/input.$filename
$SS_OO $SS_OO_CONFIG $SPEC_GZIP $input 60 > $RESULT_DIR/$filename.out 2> $RESULT_DIR/$filename.err
done
else
echo "Usage: ./run.sh config_name"
fi
입니다 여기서 자꾸만 fi 에러가 뜹니다 ㅠㅠ 정확히는 syntax error near unexpected token 'fi' 무한정 뜨네요
각종검색결과 thenㅇㄹ 줄바꿈해줘야한다. 괄호안에 한칸씩 띄어쓰기 ㄷㅇ 다해봤지만 안됩니다. 그래서 if else문을 벗겼더니
이제는 end이상 에러 ㅠㅠ 미치겠습니다 아얘 안되네요. 폴더 정확하고 이상하게 아무 sh 예제갖다 써도 if else문에서 에러가ㄸ는 엄청난일도 발생합니다. 이유가 뭘까요?ㅠㅠ
도움 부탁드립니다.(__)
그대로 복사해서 실행하니까 잘
그대로 복사해서 실행하니까 잘 되는데요?
/bin/sh 대신에 /bin/bash 로 해보시는 건 어떨까요, 보통 최근에는 sh 가 bash 의 심볼릭링크일 뿐인 걸로 압니다만 혹시 정말 오리지날 쉘이라면...
좋은 하루 되세요!
차근 차근 해보세요.
잘 모르지만. ㅡ_ㅡ... 한번 해봅니다.;;;
페도라 13에서 Virtual Box로 테스트 해봐습니다.
1. 한줄씩 적으면서 값을 디버깅 해보세요
2. {} 와 주석. 특수 기호. 문자 간격. 문장 구분등을 확인 해야 할거 같습니다. if 문이나 + 다음 한칸 띄우라고도 합니다.
3. 변수의 초기화 및 변수가 아닌데. $가 붙어있는지 등을 확인
4. bash guide 문서와 도서등을 참고 해보시면 좋습니다.
5. 문서를 보면. for문에 ;나 {}가 없지만. 페도라13에서는 상관 없는거 같습니다.
6. PATH 나 bash 관련 파일 등의 경로 지정 확인.
7. 유니코드 ANSI 윈도우 유닉스 파일 저장 설정 확인
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기