리눅스는 끝난 게 끝난 것이 아니다...
예고 없이 시험볼 예정이고
오라클도 중간중간에 쪽지시험 많이 본다고 하심...
오라클을 설치를 해보자.
구글에 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 |