본문 바로가기

Linux/Linux Shell

[Shell] 쉘이란 / 쉘의 변수

shell이란

  • 사용자가 입력한 명령을 해석
  • 시스템과의 대화를 shell 프로그램을 통해 이루어짐 (user interface)

 

 

shell 변수

  • 변수명 = 값 // 지역변수로 선언됨 
  • export 변수명 = 값 // 환경변수로 선언됨
  • 변수규칙 : 공백허용 안함, 숫자 맨앞 불가, . - 사용 불가
  • = 앞뒤로 띄어쓰기 하면 안됨

 

shell 변수 다른변수와 함께 선언

변수명 선언시 다른 변수와 함께 사용하면 오류 발생-> 

쉘에서 변수에 값을 할당할 때 = 연산자 오른쪽의 표현식이 먼저 실행됨 ->

Hello가 VAR2에 할당되고 World는 단순한 문자열로 인식되어 변수에 할당되지 않음

 

<안되는 경우>

VAR1="Hello"
VAR2=$VAR1 World
echo $VAR2

 

<되는 경우>

VAR1="Hello"
VAR2="${VAR1} World"
echo $VAR2

a=100
export VAR$a=300
echo $VAR100

 

변수 제어

$ 변수 값 대체
local 함수 안에서 사용하는 지역변수
env 환경변수 출력
set 지역변수와 환경변수 출력, 함수 출력
unset 변수명 변수 해지
compgen -A variable 현재 쉘에 정의된 모든 변수명 출력
export 변수명
export -n 변수명
export -p
export -f 함수명
환경 변수 선언
export 취소
export된 모든 변수를 출력
환경 함수 선언

 

 

PATH 변수

명령어 실행 시 참조되는 값으로 디렉토리 리스트임

경로는 왼쪽에서 오른쪽으로 검색

경로에 없는 명령어 실행시 not found 나옴

 

HOME 변수

사용자의 홈 디렉토리를 값으로 가진 변수

 

PS1 변수

쉘의 주 프롬포트를 값으로 가진 변수

 

PWD 변수

현재 작업 디렉토리를 값으로 가진 변수

 

 

예시

1. 변수 선언 및 해지

a=100 b=200 //변수 선언
echo $a X $b 
echo $aX $b //변수 aX로 인식함
echo ${a}X $b //변수 a로 인식함
unset a //변수 해지

 

 

2. 환경변수 선언

export AA=100 //환경변수 선언
export -p | grep AA //환경변수 출력
export -n AA //환경변수 취소
set | grep AA //지역변수화됨

 

 

변수 타입 지정

declare / typeset -r 변수명 읽기전용
declare / typeset -i 변수명 정수 (var1=var1+1 정수선언시 let 생략가능)
declare -a 변수명 배열
declare / typeset -x 변수명 export 선언
declare -f 함수목록 출력

 

 

예시

declare –r a=100
echo $a
a=200
unset a

 

declare -i b=200
b=b+1
echo $b
b=test //정수선언된 b에 숫자를 넣으면 0값으로 셋팅됨

c=300
declare -p c // -x가 표시되면 환경변수, 아니면 지역변수
declare -x c // 환경변수 선언

 

'Linux > Linux Shell' 카테고리의 다른 글

[kdump] kdump란?  (0) 2024.07.28
[Shell]스크립트 실행 종류 및 방법  (1) 2023.12.29