[Linux] Chapter 10 : Bash 쉘 스크립트

Lern-Backup·2021년 12월 13일
0

Linux

목록 보기
8/9

📗 10.1 Bash 쉘 소개

Bash 쉘의 시작 과정

  • Bash 쉘에서는 사용자 고유의 로그인 시작 파일들을 편집하여 사용자가 자신의 환경을 정의 가능
  • /etc/profile : 전체 사용자에게 적용되는 환경을 설정하고 시작 프로그램 정할 수 있음
  • /etc/bashrc : 전체 사용자에게 적용되는 별명과 함수들을 정의 가능
  • ~/.bash_profile : 각 사용자를 위한 환경을 설정하고 시작 프로그램 정할 수 있음
  • ~/.bashrc : 각 사용자를 위한 별명과 함수들 정의

  • 홈 디렉터리에 위치한 .bashrc 파일이 있으면 이를 불러와서 실행
  • 사용자 환경변수 설정
  • USERNAME 변수값 설정, export를 사용해 설정한 변수들을 어느 상황에서도 사용할 수 있도록 환경변수로 지정, PATH의 지정은 지정하고자 하는 디렉터리 사이를 ':'를 이용해 구분

📗 10.2 별명 및 히스토리 기능

별명

  • $ alias 이름=문자열 : 문자열이 나타내는 기존 명령에 대해 새로운 이름을 별명으로 정의
  • $ alias dir="ls -aF" : ls -aF 명령을 dir이라는 새로운 이름으로 정의해 사용
  • $ alias : 현재까지 정의된 별명들 확인
  • $ unalias : 이름으로 정의된 별명 해제

히스토리

  • $ history [-rh] [번호] : 지금까지 입력된 명령들(히스토리) 리스트


📗 10.3 변수

단순 변수

  • $ 변수이름=문자열 : 새로운 이름으로 변수를 생성하고 문자열을 값으로 대입, 이 이름의 변수가 이미 있으면 기존 변수에 대입

리스트 변수

  • $ 변수이름=( 문자열리스트 ) : 새로운 이름으로 리스트 변수를 생성하고 여러 개의 문자열을 값으로 대입, 이 이름의 변수가 이미 있으면 기존 변수에 대입
  • $ cities=(서울 부산 목포)
  • $ echo ${#cities[*]} : 리스트 크기

표준입력 읽기

  • $ read 변수, ..., 변수 n : 표준입력에서 한 줄을 읽어서 이 줄의 단어들을 변수들에 순서대로 저장

📗 10.4 지역변수와 환경변수

  • 크게 환경변수지역변수 두 종류로 나뉨
  • 자식 쉘은 부모 쉘의 모든 변수를 상속받는데 환경변수는 자식 쉘이 생성될 때 부모의 환경변수 값을 그대로 상속받음
  • $ exprt 변수이름 : 지정한 지역변수를 환경변수로 만듬
  • 모든 쉘은 이미 그 의미가 미리 정해진 사전 정의 환경변수들을 가지고 있음
  • 또한 쉘은 사전 정의 지역 변수들을 내장하고 있으며 이러한 변수들은 주로 쉘 스크립트 내에서 사용

📗 10.5 Bash 쉘 스크립트

Bash 쉘 스크립트 작성 및 실행 과정

  1. 에디터를 사용해 Bash 스크립트 파일 작성
  2. $ chmod +x state.bash : chmod를 이용해 실행 모드로 변경
  3. 스크립트 이름을 입력해 실행

📗 10.6 수식

비교 연산


파일 관련 연산

부울 연산

let 명령어를 이용한 산술 수식

  • Bash 쉘에서는 산술 연산을 하기 위해 let 명령어를 사용할 수 있음
  • $ let 변수=수식 : 수식 값을 계산하고 이 값을 변수에 저장

변수 타입 선언


📗 10.7 조건문

if 문

if 문의 조건식

  • 연산자 우선순위

중첩 if 문

case 문


📗 10.8 반복문

for 문

for 문을 이용한 명령줄 인수에 대한 반복 처리

  • for 구문과 $를 이용하면 명령줄 인수들의 리스트를 나타내므로 다음과 같이 for 구문과 $를 이용하면 명령줄 인수로 받은 각 파일에 대해 원하는 명령을 반복적으로 실행할 수 있음

while 문

  • while문은 조건이 만족되는 동안 명령들을 반복적으로 실행하는 데 사용

📗 10.9 고급 기능

함수

  • Bash 쉘에서는 일반 프로그래밍 언어처럼 함수를 정의하고 호출하여 사용할 수 있음
  • 함수이름 [매개변수들]

디버깅

  • $ bash -vx 스크립트 [명령줄 인수] : 스크립트를 실행하고 실행과정을 추적
  • -v : 쉘 스크립트의 줄을 읽을 때 그 줄을 보여줌
  • -x : 스크립트의 실행과정을 한 줄씩 보여줌

shift

  • shift [리스트변수]

디렉터리 내의 모든 파일 처리

리커전

  • C 언어는 리커전을 제공 -> 필요하면 함수가 자신을 호출할 수 있음

터미널에서 실행

  • 스크립트 없이 터미널에서 while 혹은 for문 실행 가능
  • 위와 같이 실행하면 현재 디렉터리 내의 모든 파일 이름들 출력
profile
공부 백업용

0개의 댓글