변수는 컴퓨터 메모리에 존재
할당된 메모리 공간은 정보를 저장하기 위해 사용된다
정보가 저장된 공간을 찾기 위해 이름을 붙여 사용
변수의 할당된 값은 숫자, 텍스트파일, 파일이름, 장치 또는 다른 유형의 데이터
할당된 메모리의 주소를 나타내는 포인터이기 때문에 변수를 생성, 할당, 삭제가 가능
쉘에서 변수 이름을 지칭하는 규칙
- 변수 안에 들어갈 수 있는 글자는 a ~ z 와 A ~ Z
- 변수 안에 들어갈 수 있는 숫자는 0 ~ 9
- 서로 다른 변수 이름을 이어서 사용하려면 _ 를 사용
- 쉘 변수의 이름은 대문자를 사용한다(스칼라 변수)
올바른 변수 선언
- _ALL
- NAME
- VAR_1
잘못된 변수 선언
- 2_VAR 숫자가 첫글자로 올 수 없다
- -VAR
- VAR-1 - ! * 과 같은 특수문자는 쉘 자체에서 사용하는 의미가 따로 있기때문에 변수명에 넣을 수 없다
- VAR_A!
변수 사용하는 방법
#!/bin/bash
NAME="김치"
echo "이건 $NAME야"
-----------------------------
이건 김치야
변수를 사용할때 변수명 앞에 $ 를 붙여서 사용한다
unset
#!/bin/bash
NAME="김치"
unset NAME
echo "이건 $NAME야"
-------------------------------
이건 야
변수에 unset 을 해주면 변수 안에 내용을 비워준다
readonly
#!/bin/bash
NAME="김치"
readonly NAME
NAME="참치"
unset NAME
echo "난 $NAME야"
-------------------------------
./unset.sh: line 4: NAME2: readonly variable
./unset.sh: line 5: unset: NAME2: cannot unset: readonly variable
난 김치야
readonly 를 사용하면 해당 변수는 바꾸거나 unset 할 수 없게 된다
변수 종류
- 지역변수 : 여타 언어처럼 함수 안에 들어있으면 그 함수 안에서만 존재하는 변수
- 전역변수 : 위 코드들처럼 선언하는 변수들은 전역변수가 된다
- 환경변수
- 예약변수 : shell 자체에서 설정된 변수들
예약변수들
- HOME : 사용자 홈 디렉토리
- PATH : 실행 파일을 찾을 경로
- LANG : 프로그램 사용시 기본 지원되는 언어
- FUNCNAME : 현재 함수 이름
- SECONDS : 스크립트가 실행된 시간 (초 단위)
- SHLVL : 중첩된 쉘 레벨 (현재 실행중인 쉘 레벨 수이며, 리눅스 배포판에 따라 다름)
- SHELL : 로그인해서 사용하고 있는 쉘
- PPID : 부모 프로세스의 PID
- BASH : BASH 실행 파일 경로
- BASH_ENV : 스크립트 실행시 BASH 시작파일을 읽을 위치 변수
- BASH_VERSION : 현재 설치된 BASH 버전
- BASH_VERSINFO : 배열로 상세정보 출력
- MAIL : 메일 보관 경로
- MAILCHECK : 메일 확인 시간
- OSTYPE : 운영체제 종류
- TERM : 터미널의 종류
- HOSTNAME : 호스트 이름
- HOSTTYPE : 시스템 하드웨어 종류
- MACHTYPE : 머신 종류
- LOGNAME : 로그인 이름
'리눅스 (Linux)' 카테고리의 다른 글
특수 변수 (0) | 2021.12.19 |
---|---|
특수 권한 (0) | 2021.12.19 |
리눅스 - Shell Script (0) | 2021.12.16 |
리눅스 - shell script .sh 파일 실행하기 (0) | 2021.12.16 |
리눅스 - curl (0) | 2021.12.16 |
댓글