본문 바로가기
클라우드 아키텍트 양성과정

쉘 프로그래밍시 사용되는 쉘 기능

by 종바깅 2021. 5. 12.

쉘 프로그래밍 시 사용되는 쉘 기능

Exit Status

  • 종료 상태
  • 명령어를 실행 하였을 때 명령의 실행결과를 숫자로 표기
  • 일반적으로 0이 정상 종료상태를 의미(반드시 그런것은 아님)
  • $? : 명령어 실행 시 종료 상태를 저장, 새로운 명령 실행시 덮어 씀

조건부 실행

  • 앞 명령의 실행 결과에 따라 뒤 명령의 실행여부를 결정
    • && : 앞 명령이 정상적으로 실행될 경우 뒤 명령을 실행, 앞 명령이 정상적으로 실행되지 않을 경우, 뒤 명령을 실행하지 않음
    • || : 앞 명령이 정상적으로 실행되지 않을 경우 뒤 명령을 실행,앞 명령이 정상적으로 실행될 경우, 뒤 명령을 실행하지 않음

변수

  • Variable, 변경 가능한 데이터가 저장되는 공간

  • 쉘 프로그래밍에서는 변수는 특정 유형이 없음

  • 쉘 내에서 자유롭게 선언 및 사용이 가능

  • 변수이름=변수값

  • 변수이름 = $변수이름

    ex) ES=$? //현재 종료상태에 저장된 값을 ES 변수에 저장

  • 모든 입력값을 문자열로 인식

  • 특수한 용도의 변수

  • $$ : 현재 실행중인 쉘의 PID

  • $? : 이전 작업의 Exit Status

  • $! : 백그라운드로 실행된 프로세스의PID

  • 스크립트 내에서 선언된 변수는 스크립트 내에서만 유효함(지역변수)

  • 전역변수 : env로 조회되는 변수는 쉘 내에서 호출한 쉘에서도 접근 가능

  • export [변수명] : 생성되어 있는 지역변수를 전역변수로 변경

  • export [변수명]=[값] : 변수를 전역변수로 선언

산술연산

  • expr : 산술연산 수식을 인자로 받아서 처리, 소수점 처리 불가능

ex) expr 10 + 3

  • bc : 산술연산 수식을 입력으로 받아서 처리, 소수점 처리 가능(scale)

  • ex) echo "scale=3;10/3" | bc

  • let

위치 매개변수 (Positional Parameter)

  • 명령어 내에서의 위치(인자, Argument)
  • 위치 매개변수의 유형
  • $0 : 현재 실행중인 쉘 스크립트의 이름
  • $1~ : 현재 스크립트 실행 시 사용된 인자
  • $# : 전체 위치매개변수의 갯수
  • $*, $@ : 위치매개변수 전체
  • 가장 마지막 위치 매개변수 접근
  • $# : 위치매개변수의 갯수 = 마지막 위치 매개변수의 위치
  • $$# : $$가 해석되어 사용 불가
  • \$$# : \에 의해 앞 $가 사용되지 않아 뒤 $#가 인식되지만 \에 의해 일반문자로 인식되어 지장된 위치의 위치매개변수를 가져올 수 없음
  • eval echo \$$# : eval에 의해 뒤쪽 $ 기호가 다시 인식되어 마지막 매개변수의 값을 가져올 수 있음

댓글