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 |