위로 아래

Shell 확인

echo $0

echo $SHELL

 

 

 


Shebang

Shebang

#!/usr/bin/bash
  1. 쉘 선언문
  2. 어떤 쉘로 스크립트를 실행할지 정의
  3. 가장 첫 줄에 정의한다
  4. 종류
    1. sh (초기)
    2. ksh (sh 확장형)
    3. csh (c언어 기반)
    4. bash (sh와 대부분 호환)

 

 


실행

  1. bash로 실행하거나, 아니면 실행 권한이 필요
  2. bash [script.sh] : bash로 실행
  3. chmod 755 [script.sh] : script.sh 파일에 실행 가능 권한 부여

 

권한 부여 전

 

 

권한 부여 후

 

 

 

 

 

 


쉘 변수

변수 특징

  1. 대소문자 구별
  2. 문자로 시작
  3. 변수에는 모든 값이 문자열로 저장 (자료형 기입 X)
  4. 변수를 사용할 때에는 $를 붙인다
  5. 변수에 값을 대입할 때에는 $를 붙이지 않는다
  6. 변수 생성 시 = 앞 뒤로 공백이 없어야 한다

 

변수 관련 명령어

  1. set : 셸 변수를 출력
  2. env : 환경 변수를 출력
  3. unset : 선언된 변수 제거

 

 

전역 변수 (global variable)

  1. 기본적으로 전역변수 
  2. 그냥 쓰면 된다
  3. name=ohs (name이라는 변수에 ohs라는 문자열 삽입)

 

지역 변수 (local variable)

  1. 함수 안에서만 사용
  2. 변수명 앞에 local 붙이기
  3. local name=ohs 

 

환경 변수 (environment variable)

  1. 변수명 앞에 export 붙이기
  2. 환경 변수는 자식 스크립트에서도 사용 가능
  3. 예약 변수와 변수명이 겹치지 않아야 한다

 

예약 변수 (reserved variable)

  1. 시스템에 미리 정의되어 있는 변수

HOME : 사용자 홈 디렉토리
PATH : 실행 파일의 경로
LANG : 프로그램 실행 시 지원되는 언어
UID : 사용자의 UID
SHELL : 사용자가 로그인시 실행되는 쉘
USER : 사용자의 계정 이름
FUNCNAME : 현재 실행되고 있는 함수 이름
TERM : 로그인 터미널

 

 

매개 변수 (parameter)

$0 : 실행된 셸 스크립트명
$1 : 스크립트에 넘겨진 첫 번째 인자(argument)
$2 : 스크립트에 넘겨진 두 번째 인자
$숫자 : 그 이후 해당되는 인자
$# : 인자 개수 
$* : 스크립트에 전달된 인자 전체를 하나의 변수에 저장하면 IFS 변수의 첫 번째 문자로 구분
$@ : $*와 동일한데 다른 점은 IFS 환경 변수를 사용하지 않는다는 점. 
$! : 실행을 위해 백그라운드로 보내진 마지막 프로그램 프로세스 번호 
$$ : 셸 스크립트의 PID
$? : 실행한 뒤의 반환 값 (백그라운드로 실행된 것 제외)

 

 

 

 

 


쉘 산술 연산

종류 3가지

  1. expr
  2. let
  3. $(())

 

expr

      1. ` `로 감싸주기
      2. 연산자 사이에 공백 필요
      3. 괄호 및 곱셈 시 \로 이스케이프 문자 처리 필요

 

 

let

 

 

$(())

 

 

 

 

 

 


쉘 조건문

if문

  1. fi로 if문의 끝을 알려야 한다
  2. 조건식은 대괄호 [ ] 사이에 쓴다
  3. 대괄호 [ ] 와 조건식 사이엔 공백이 있어야 한다
  4. else if 대신 elif 사
# 방법 1
if [ $num1 == $num2 ]
then 
	echo $((num1+num2))
else
	echo $num1
fi


#방법 2
if [ $num1 == $num2 ]; then
	echo $((num1+num2))
else
	echo $num1
fi

 

 

비교 연산

  1. 문자1 == 문자2 : 문자1 과 문자2가 일치
  2. 문자1 != 문자2 : 문자1 과 문자2가 일치하지 않음
  3. -z 문자 : 문자가 null 이면 참
  4. -n 문자 : 문자가 null이 아니면 참
  5. 값1 -eq 값2 : 값이 같음(equal)
  6. 값1 -ne 값2 : 값이 같지 않음(not equal)
  7. 값1 -lt 값2 : 값1이 값2보다 작음(less than)
  8. 값1 -le 값2 : 값1이 값2보다 작거나 같음(less or equal)
  9. 값1 -gt 값2 : 값1이 값2보다 큼(greater than)
  10. 값1 -ge 값2 : 값1이 값2보다 크거나 같음(greater or equal)

 

 

 

 

 


shell command

command substitution

  1. command를 실행하고 결과값을 반환
  2. 사용 방법
    1. $()
    2. ` ` (백틱, 역따옴표)

 

 

 

 


쉘 주석

한 줄 주석 

#echo 10

 

한 블록 주석

: << "END"
echo 10
END

 

 

 

 

 


쉘 이스케이프 문자

쉘 이스케이프 문자

  1. \f : 앞 문자열만큼 열을 밀어서 이동
  2. \n : 줄바꿈
  3. \r : 앞 문자열의 앞부분부터 뒷문자열만큼 대체하고 반환
  4. \t : 탭

 

 

 

 

 

 

 

 

 

예시

 

 

 

 

 

 

참고

https://inpa.tistory.com/entry/LINUX-%EC%89%98-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%95%B5%EC%8B%AC-%EB%AC%B8%EB%B2%95-%EC%B4%9D%EC%A0%95%EB%A6%AC

 

🐧 BASH 쉘 프로그래밍 문법 마스터 💯 총정리

Shell Script 란 Shell Script는 Shell이나 command line 인터프리터에서 구동되도록 작성된 스크립트다. 윈도우에서는 batch(배치파일, .bat) 을 한번쯤은 본적이 있을 것이다. bat 파일을 실행하면 프로그램이

inpa.tistory.com