Search

변수 다루기

변수

Shell 환경에서의 변수의 특징
선언할 필요가 없다. 사용 시 자동 선언
대소문자 구별 있음
문자열로 데이터 저장.
계산이 필요할 경우 자동으로 수치로 변환하여 계산후 다시 문자열로 저장
값 사용시 $ 사용
값 대입시 $ 사용 안함
타입이 존재하지않기 때문에 어떤 값이든 넣을 수 있다.

환경변수

쉘을 기동하고 나면 기본적으로 셋팅되어 있는 변수들이다.
$0 : 실행된 쉘 스크립트의 이름
$# : 스크립트에 넙겨진 인자의 갯수
$$ : 쉘 스크립트의 프로세스 ID

인자 변수

쉘 스크립트에 인자를 넘겨줄 때 그 인자들에 대한 정보를 가지고 있는 변수들.
$1 ~ $nnn : 넘겨진 인자들 순서대로 1 ~ nnn 의 정수값의 이름을 가짐
$* : 스크립트에 전달된 인자를 모두 모아놓은 하나의 문자열 변수.
IFS 환경변수의 첫번째 문자로 구분된다.
$@ : $* 와 동일하나 구분자가 IFS 변수의 영향을 받지 않는다.

일반 변수

특별한 제약이 존재하지 않는다. 대소문자 구별만 잘해주자.
중괄호 {} 를 활용하면 변수이름의 혼란을 피할 수 있다.

IFS Internal Field Seperator

IFS 환경변수를 조작해주면
띄어쓰기로 구분된 입력을 분할하는 것이아닌
구분자를 커스터마이징하여 사용자 입력을 분할할 수 있다.

초기값 설정

초기값을 설정하는 데에는 두가지 방법이 있다.
1.
if 문 활용
-z 연산자를 활용하여 변수에 값이 존재하지 않는지 확인 존재하지 않는 다면 이 변수에 초기값을 할당해주 면 된다.
2.
${변수이름:-초기값}
- 연산자를 활용하면 변수 값이 할당되어있지 않을 때 연산자 뒤에오는내용을 변수에 바로 할당하여 사용한다.