본문 바로가기
IT/프로그래밍

배쉬(Bash) 쉘 스크립트 프로그래밍 기초2 - 변수

by 미니송 2018. 7. 22.



프로그래밍에서 가장 중요한 것은 변수가 아닐까 생각합니다. 가장 기본적으로 사용할 뿐만 아니라 변수라는 것을 이용해야 프로그램을 만들 수 있기 때문이라고 보는데요. 변수에 대한 설명과 함께 배쉬 쉘 스크립트에서는 변수를 어떻게 사용하는지 알아보도록 하겠습니다.



변수 ( variable )


변수는 영어로 variable입니다. 변수는 컴퓨터 프로그래밍에 있어서 상징적인 의미를 가지고 있습니다. 데이터에 대한 상징성을 띄고 있으며 만약 사용할 변수가 점수라면 score라는 변수명을 사용할 수 있습니다. 수학에서 사용하는 변수와는 그 의미가 다를 수 있으며 컴퓨터 프로그래밍에서만의 의미를 가지고 있다고 생각하셔도 됩니다.



쉘 스크립트의 시작


쉘 스크립트의 시작은 #!/bin/bash 라고 했습니다. 이것은 C언어로 말하면 #include와 같은 의미를 가진다고 보시면 됩니다. 헤더파일과 같은 명령어를 추가해주는 것과 마찬가지입니다.


2018/07/21 - [IT/프로그래밍] - 리눅스(Linux) 배쉬,bash 쉘 스크립트 프로그래밍 기초




배쉬 쉘 스크립트 - 변수


배쉬 스크립트에서 변수를 사용하기 위해서는 "=" 등호를 사용해서 사용합니다. =, 기호 앞뒤로 공백이 없이 입력하는 것이 가장 중요합니다. 그리고 선언된 변수는 전역변수 (Gloval variable)이 됩니다. 프로그램 어디에서도 사용할 수 있는 변수가 된다는 의미입니다.


또한 함수 안에서 사용한다면 변수명 앞에 local 을 붙여 지역변수로 활용할 수 있습니다. 다음에 함수에 대한 설명을 할 때 부연설명을 하도록 하겠습니다. 또한 변수명 앞에 export 를 붙여주면 환경변수가 되어 자식 스크립트에서 사용가능한 변수가 됩니다.


test.sh (테스트)


#!/bin/bash


a=25

b=3

echo $a

echo $b


이러식으로 선언해서 사용하면 됩니다. = 앞뒤로 공백이 없다는 사실이 가장 중요하니 알아두시기 바랍니다. 바로 선언해서 사용할 수 있으며 변수명은 알아서 정하면 됩니다. 변수를 가져다 쓰기 위해서는 앞에 $를 붙여서 사용하면 됩니다.



예약변수( Reserved Variable )


배쉬 쉘 스크립트에서도 예약변수가 존재합니다. 이 예약변수의 이름은 변수명으로 사용할 수 없으며 이미 예약되어 있기 때문에 원래 기능을 가지고 있습니다.


HOME - 사용자 홈 디렉토리

PATH - 실행 파일의 경로

LANG - 프로그램 사용 시 기본 지원되는 언어

PWD - 사용자의 현재 작업중인 디렉토리

FUNCNAME - 현재 함수 이름

SECONDS - 스크립트가 실행된 초 단위 시간

SHLVL - 쉘 레벨

SHELL - 로그인해서 사용하는 쉘

PPID - 부모 프로세스의 PID

BASH - BASH 실행 파일 경로

BASH_ENV - 스크립트 실행시 BASH 시작 파일을 읽을 위치 변수

BASH_VERSION - BASH의 버전

BASH_VERSINFO - 배열로 BASH 버전의 상세정보 알려줌

MAIL - 메일 보관 경로

MAILCHECK - 메일 확인 시간

OSTYPE - 운영체제 종류

TERM - 로긴 터미널 타입

HOSTNAME - 호스트 이름

HOSTTYPE - 시스템 하드웨어 종류

MACHTYPE - 머신 종류

LOGNAME - 로그인 이름

UID - 사용자 UID

EUID - su 명령에서 사용하는 사용자의 유효 아아디 값

USER - 사용자의 이름

USERNAME - 사용자 이름

GROUPS - 사용자 그룹

HISTFILE - history 파일 경로

HISTFILESIZE - history 파일 크기 

HISTSIZE - history 저장 되는 개수

HISTCONTROL - 중복되는 명령에 대한 기록

DISPLAY - 디스플레이 이름

IFS - 입력 필드 구분자

VISUAL - VISUAL 편집기 이름

EDITOR - 기본 편집기 이름

COLUMNS - 현재 터미널이나 윈도우 터미널의 컬럼 수

LINES - 터미널의 라인 수

LS_COLORS - ls 명령 관련 옵션

PS1 - 기본 프롬프트 변수

PS2 - 보조 프롬프트 변수

PS3 - 쉘 스크립트에서 select 사용시 프롬프트 변수 

PS4 - 쉘 스크립트 디버깅 모드의 프롬프트 변수

TMOUT - 0이면 제한이 없으며 time 시간 지정시 지정한 시간 이후 로그아웃



댓글