상세 컨텐츠

본문 제목

2023년 12월 7일 1교시 QUESTION.

오라클 아키텍처

by 병아리 엔지니어 2023. 12. 11. 07:36

본문

리눅스는 끝난 게 끝난 것이 아니다...
예고 없이 시험볼 예정이고
오라클도 중간중간에 쪽지시험 많이 본다고 하심...


오라클을 설치를 해보자.


구글에 oracle linux download 이라고 검색하고

 


검색하면 나오는 첫번째 사이트로 들어가기

 


사이트로 들어가서

맨 위에 보이는

ISO images: Oracle Linux Installation Media for x86_64 and Arm 클릭

 




다음 화면에서 스크롤바를 아래로 내리다 보면

7.9 버전의 Full ISO 가 있다.

(7.9 OracleLinux-R7-U9-Server-x86_64-dvd.iso)

 

 

클릭해서 다운로드

(1시간 정도 걸린다...)

그리고 선생님이 공유 폴더에 파일을 2개 올려주셨는데

2개 모두 다운받기

시간이 한참 걸림...
그동안 우리는 셸 프로그램을 짜 보자.

sh hap.sh 10
hap.sh 을 실행하면서 10이라는 수를 입력하면
1부터 10까지의 합 55가 출력되도록
while loop 문을 만들어 보자.


↓ 아래는 어제 했던 while loop 문 내용

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

★ while loop 문
- while loop: 조건이 True 일 경우에만 수행됨

while [ 조건식 ]
do
실행문
done

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

---------------------------------------------------------------------------------------------

vi test9.sh

#!/bin/bash
i=1

while [ $i -le 10 ]
do
echo $i
i=`expr $i + 1`
done


10 보다 작거나 같으면 반복

---------------------------------------------------------------------------------------------

[풀이]

vi hap.sh

#!/bin/bash
hap=0
for i in {1..10}

while [ $i != 10 ]
do
hap=`$hap + $i`
done

이렇게 하면 되지 않을까...?
... 안되네...?

[user1@centos ~]$ . hap.sh
-bash: hap.sh: line 5: syntax error near unexpected token `while'
-bash: hap.sh: line 5: `while [ $i != 0 ]'
[user1@centos ~]$

while [ $i != 10 ] : 얘를 while [ $i -le 10 ] 으로 고쳐봤는데도 안됨.
뭐가 문제일까...

---------------------------------------------------------------------------------------------

[정답]

#!/bin/bash
i=1
num=0
while [ $i -le $1 ]
do
num=`expr $num + $i`
i=`expr $i + 1`
done
echo $num


$1 은 10을 받겠다는 의도 (???)
QUESTION. 이게 뭔 소리여?

ANSWER. 

근데 이거 결과가 이상한데?...
변수를 입력 안했으니까 그렇지...

[user1@centos ~]$ . hap.sh 10
55

이렇게 해야 결과가 제대로 수행된다.

i=1
num=0
while [ $i -le $1 ]
do
num=`expr $num + $i`
i=`expr $i + 1`
done
echo $num


---------------------------------------------------------------------------------------------

그런데 expr 을 쓰는 게 너무 귀찮을 경우
똑같은 기능이 있는데

vi hap2.sh

#!/bin/bash
i=1
num=0
while [ $i -le $1 ]
do
num=$((num+i))
i=$((i+1))
done
echo $num

로컬변수들을 이용한 계산을 할 때 $(()) 이 괄호 안에 넣어서 할 수 있다.
이렇게 하고 변수 입력하면

[user1@centos ~]$ vi hap2.sh
[user1@centos ~]$ . hap2.sh 10
55

결과가 제대로 나온다.

'오라클 아키텍처' 카테고리의 다른 글

2023년 12월 7일 6교시  (0) 2023.12.11
2023년 12월 7일 5교시  (0) 2023.12.11
2023년 12월 7일 4교시  (0) 2023.12.11
2023년 12월 7일 3교시  (0) 2023.12.11
2023년 12월 7일 2교시 QUESTION.  (0) 2023.12.11

관련글 더보기