쉘 스크립트 6

[Linux] bash 쉘 스크립트 함수 사용법

bash 쉘 스크립트 함수 사용법 함수 선언 및 사용 #!/bin/bash # 함수 선언 function 함수명() { 함수 내용 } # 함수 사용 함수명 주의 사항 function은 생략해도 된다. 함수명을 쓰는 것만으로 함수 호출이 된다. 소괄호()를 쓰지 않아도 된다. 함수 선언보다 함수를 먼저 호출하면 안 된다. 예시 #!/bin/bash func_echo() { echo "Test function" } func_echo [출력 결과] Test function 지역변수 사용 방법 쉘 스크립트에서 변수는 기본적으로 전역 변수이다. 하지만 변수명 앞에 local을 붙여주면 해당 함수에서만 사용 가능한 지역 변수가 선언된다. 예시 #!/bin/bash var="abc" echo ${var} func_l..

Back-End/Linux 2021.07.19

[Linux] bash 쉘 스크립트 함수 반환 값(리턴) 받기

bash 쉘 스크립트 함수 반환 값 전달(return) 개발바닥 유튜브에서 기술면접 질문에 대한 영상에서 향로님이 쉘 스크립트에서의 리턴은 일반 프로그래밍 언어와 다르다고 하는데, 질문을 듣고 정답이 바로 떠오르지 않았다. 그래서 찾아보고 정리해보기로 했다. 쉘 스크립트에서 반환 값 쉘 스크립트에서는 일반적인 프로그래밍 언어에서의 return 반환 값이 없다. 쉘 스크립트에서는 함수의 return값이 EXIT_STATUS로 전달되며 $?로 확인할 수 있다. EXIT_STATUS는 일반적으로 0 은 성공을 의미하며 1~255는 에러를 의미한다. $와 () 안에 [명령어 or 쉘 스크립트 or 쉘 스크립트 함수]를 넣으면 sub shell이 호출되어 [명령어 or 쉘 스크립트 or 쉘 스크립트 함수]가 실행..

Back-End/Linux 2021.07.13

[Linux] bash 쉘 스크립트 if elif else 조건문 사용법

Github 에서 보시는게 더 보기 편합니다. bash 쉘 스크립트 if elif else 조건문 사용법 if elif else 조건문이란? 어떤 조건에 대해서 True(참)이 될 때 주어진 명령문(코드)을 실행하며, False(거짓)이면 실행하지 않는다. 종류 if if 의 조건식이 참일 때 코드가 실행됨 if / elseif 의 조건식이 거짓이면 if 아래의 코드는 실행되지 않고 else 아래 코드가 실행됨 if 의 조건식이 참이면 if 아래 코드가 실행되고 else 아래 코드는 실행되지 않음 if / elif / else if 의 조건식이 참이면 if 아래 코드가 실행되고 elif, else 아래 코드는 실행되지 않음 (elif도 참이더라도 if 가 실행됨) 구분 조건식 실행 여부 if 참 O el..

Back-End/Linux 2021.07.08

[Linux] bash 쉘 스크립트 변수 사용 시 주의사항(중괄호)

bash 쉘 스크립트 변수 사용 시 주의사항(중괄호) 변수명을 중괄호({,})로 묶는 습관 들이기 왜? 변수를 활용할 때, $를 변수명 앞에 두어서 변수임을 알 수 있다. 이때, 변수명을 중괄호({,})로 묶어도 정상 동작을 하는데, 만약 중괄호로 묶지 않는다면 아래와 같은 비정상 동작이 발생할 수 있다. #!bin/bash var="def" echo "abc$varghi" 원하는 출력 결과 abcdefghi 실제 출력 abc 이러한 동작이 발생하는 이유는, 중괄호로 묶지 않았기 때문에 var 라는 변수를 쉘 입장에서는 varghi 라는 변수로 인식하게 되었고, varghi 라는 변수는 선언되어있지 않기 때문에 공백으로 치환되어버린 것이다. 해결 방법은? #!bin/bash var="def" echo "..

Back-End/Linux 2021.07.05

[Linux] 쉘 스크립트 무한 루프 반복문 돌리기 (for, while)

bash 쉘 스크립트 무한 루프 반복문 돌리기 (for, while) 무한 루프 기본 원리 기본적으로, 무한루프는 반복문 안의 조건을 항상 참(true)으로 설정해서 무한정 반복문을 돌게 한다. for 반복문 예시 #!/usr/bin/env bash for (( ; ; )) # 항상 참 do echo "PRESS [Ctrl+c] TO STOP" sleep 1 done while 반복문 예시 #!/usr/bin/env bash while true : # 항상 참, true 는 생략해도 된다. do echo "PRESS [Ctrl+c] TO STOP" sleep 1 done 주의 사항 무한 루프 내부에 sleep과 같은 지연 시간을 주지 않는다면 CPU 사용량이 엄청나게 치솟을 가능성이 있고, break와 ..

Back-End/Linux 2021.06.27

[Linux] Bash 쉘 스크립트 정수형 변수 증가/감소 하는 법

bash 쉘 스크립트 정수형 변수 증가/감소시키기 (++ 연산하기) bash 쉘 스크립트 변수 선언 쉘 스크립트의 경우, 특별한 변수 타입을 지정해주지 않아도 된다. 나중에 기본 문법을 정리할 때 다시 설명하겠지만 선언하는 방법은 아래와 같다. 변수명=값 (o)올바른 예시 encoding="UTF-8" -> encoding 이라는 변수에 UTF-8 이라는 값이 지정됨 여기서 _주의_해야 할 사항은 다른 프로그래밍 언어처럼 간격 조절을 위해 _공백_을 사이에 두면 변수 선언이 정상적으로 되지 않는다. (x) 틀린 예시, 공백이 있으면 안 됨 encoding = "UTF-8" 이런 식으로 선언하면 안 된다. 정수형 변수 증가/감소시키는 방법 기본적인 정수 계산의 형태는 아래와 같다. $((계산식)) 이중 괄..

Back-End/Linux 2021.06.25
728x90
반응형