리눅스 쉘 프로그래밍 구구단 작성..도와주세요..ㅠㅠ
글쓴이: frangkero / 작성시간: 금, 2006/10/27 - 2:24오전
제가 학교 숙제로 vi편집기를 이용한 1~9까지의 구구단을
작성하는데요...지금까지 아무리 해도 막히는 부분이 있어서 이렇게 도움을 청해요..ㅠㅠ
해커스쿨로 guest아이디로 작업했구요..
그냥 답만 바라고 하는것 아니에요..새벽까지 끙끙거리는데 도저히 모르겠어요..ㅠㅠ
제가 작성한걸 그림으로 올리려고 했는데 그림이 안올려지네요..ㅠㅠ
그래서 제가 편집기에서 보이는 내용을 그대로 타이핑 하겠습니다...
#!/bin/sh
i=1
while [ $i -le 9 ]
do
j=1
while [ $j -le 9 ]
do
echo "$i*$j = 'expr $i \* $j'"
j='expr $j+1'
done
i='expr $i+1'
done
~
~
~
~
~
~
~
~
"work.sh" 12L, 158C written (저장)
-bash-2.05b$ chmod 777 work.sh (실행 권한)
-bash-2.05b$ ./work.sh (파일읽기)
1*1 = 'expr 1 \* 1'
./work.sh: line 6: [: too many arguments
./work.sh: line 3: [: too many arguments
-bash-2.05b$
위와같이 나오는데 도대체 뭐가 잘못됐는지 모르겠습니다..
제발 도움을 주세요..ㅠㅠㅠㅠㅠ
Forums:
에러메세지를 보면
에러메세지를 보면 3,6행에 에러가 발생했다는걸 알수 있고 while과 do사이지요. bash문법에서 while문 관련예제나 설명을 잘읽어보세요.
저도 아직 문법책 옆에 끼고 삽니다. ^^;
그럼 이만 총총...[竹]
http://elflord.egloos.com
===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com
흠...심심해서 저도 한번..ㅋㅋㅋ
for i in `seq 2 9`;do for j in `seq 1 9` ;do echo $i" *"$j = $[$i * $j] ;done;done
연산 해줄때 $[$i * $j] 이것도 좋지요.
msys
msys 에서 돌려보면 위 스크립트 잘 실행 됩니다.
'대신 `를 써주시고
'대신 `를 써주시고 `expr a + b`에서 덧셈 앞뒤로 공백을 끼워주세요.
[스머프]제가 만든 구구단입니다
for a in 1 2 3 4 5 6 7 8 9
do
for b in 1 2 3 4 5 6 7 8 9
do
R=`expr $a \* $b`
echo $a "x" $b "=" $R
continue
done
done
댓글 달기