VMware 실습/ㄴ Linux

6월 3일 (Linux 셸 스크립트)

깜자왕 2022. 6. 3. 18:18
반응형

while 문

- 조건식이 참인 동안 계속 반복하는 특성을 가짐

 

무한반복됨. Ctrl + C 로 멈춤가능

 

이번은 1에서 10까지 합계를 출력하는 forin1.sh와 동일한 while문을 만들어보자

- 누적할 hap 변수를 초기화한다

- 1에서 10까지 증가할 i변수 선언

- i가 10보다 작거나 같으면 6~7행을 실행

 

이번은 비밀번호가 맞을때까지 계속 입력받는 스크립트를 작성해보자

 

until 문

- while문과 용도가 거의 같지만, until문은 조건식이 참일 때까지(거짓인 동안) 계속 반복한다.

- while2.sh를 until문으로 바꿔보자

 

 

break, continue, exit, return

- break는 주로 반복문을 종료할 때, continue는 반복문의 조건식으로 돌아가게 함

- exit는 해당 프로그램을 완전 종료, return은 함수 안에서 사용할 수 있으며 함수를 호출한 곳으로 돌아가게 한다

 


vmware mylearn 등록 과정

- 개인이메일 -> hanmail 빼고 gmail이나 naver이용

- 회사명 : 학교 명칭 - 학교주소


for문 구구단 출력 (셸 스크립트)

 

1. 화면에서 단수(ex 5단) 5 입력

2. for문 사용

3. 출력 형식은 아래

================

    구구단 5단 출력

================

5 * 1 = 5

5 * 2 = 10

5 * 3 = 15

. . .

- gugudan으로 입력값 받음

- hap을 0으로 초기화

- for문으로 1~9까지의 반복을 생성

- hap은 gugudan * i 의 결과값으로 정의

- echo로 gugudan * i = hap 형식 반복 정의


while문으로 비밀번호가 3번이상 틀렸을 시 메세지 출력되게 작성


사용자 정의 함수

 

함수의 파라미터 사용

- hap 10 20으로 파라미터 지정

 

eval

- 문자열을 명령문으로 인식하고 실행함

- eval 로 str 변수 값인 ls -l 명령을 실행시킨다

 

export

- 외부 변수로 선언한다. 즉 선언한 변수를 다른 프로그램에서도 사용할 수 있게 한다

- exp1 의 var1과 exp2의 var1은 이름만 같고 다른 변수인 셈

- exp2에서는 var2를 외부변수로 선언하고 값을 넣는다. 외부 프로그램(exp1.sh)에서도 사용 가능

 


문제

- 소수점 나타내기 위한 awk 기능 사용

- printf "%.1f"를 통해 $1 / $2의 값을 소수점 뒤 1자리까지 나타내기를 함 (2.5의 값을 나타내기 위해)


printf

- %5.2는 총 5자리이며 소수점 아래 2자리까지 출력하라는 의미

 

set과 $(명령)

- 리눅스 명령을 결과로 사용하려면 '$명령' 형식을 사용해야 한다. 또 결과를 파라미터로 사용하고자 할 때는 set 명령과 함께 사용한다.

 

- $(date)는 date명령을 실행한 결과를 보여줌

- set $(date) -> 결과가 $1 $2 $3 등의 파라미터 변수에 저장됨

- 파라미터 값에 따라 (금) 이라는 값이 출력됨

 

shift

파라미터 변수를 왼쪽으로 한 단계씩 아래로 이동시킨다

 

BBB부터 EEE까지 $1값으로 밀린 것을 볼 수 있음

 

- 결과를 누적할 str 변수를 초기화하고

- $1 파라미터가 비어있지 않은 동안에 반복 실행한다 (처음 $1은 AAA고, 한번 반복하면 $1이 BBB가 된다)

- str변수에 $1을 추가한다

- 전체 파라미터를 왼쪽으로 옮긴다. 즉 $2 -> $1, $3 -> $2, $4 -> $3 ...