[Shell Script] 2. Bash shell과 변수
오늘은 따배님의 shell script 강의 제 2강, bash shell과 변수를 작성해본다.
따배님이 강의를 잘하시니 꼭 유튜브를 보기를 바란다.
오늘의 목차는 다음과 같다
- Shell의 변수
- Sehll의 환경 변수
1. Shell의 변수
Shell의 변수는 무엇일까? 데이터를 넣는 그릇이다. 즉 어떤 데이터를 넣어두고 그 데이터를 편하게 사용하기 위한 것이다.
변수명에는 문자와 숫자 그리고 _ 를 사용할 수 있지만, 시작은 반드시 문자나 _ 를 사용한다. (그냥 문자를 사용하자)
변수 선언은 아래와 같은 방식으로 한다.
변수=값
이렇게 되면 그 변수 안에 값을 넣게 된다.
score=90
이라고 변수를 선언한다면 앞으로 나는 score 라는 변수를 사용할 때 90이라는 값을 출력할 것이다.
백문이 불여일견이니 예제로 보자
score 라는 그릇에 90 이라는 내용물을 담았다.
그럼 score라는 그릇에 뭐가 있어? 라고 물어보면 리눅스는 90이라고 알려주는 것이다.
만약 내가 선언한 특정 변수를 알고 싶으면 "$"를 붙여야 한다.
echo $변수명
이라고 하면 된다.
echo $score
다른 방법으로는 "set"을 사용하는 방법이 있다.
다만 그냥 set을 사용하면 뭐가 엄청 많이 나온다.
이것은 이 컴퓨터에 선언된 모든 변수를 확인하는 것이기 때문에 특정 변수만 확인하려면 "grep"을 함께 사용한다.
set | grep [변수명]
만약에 내가 선언한 변수를 지우고 싶으면 "unset"이란 명령어를 사용하면 된다.
unset [변수명]
보다시피 unset으로 score에 들어있는 값을 없애버리니 score 변수에 있는 값을 요청해도 아무것도 나오지 않는다.
2. Shell의 환경변수
환경변수를 들어봤을 수도 있는데 환경변수란 동작되는 프로그램에 영향을 주는 변수이다.
환경변수는 일반 변수랑은 다르게 취급되는데 이것을 가장 잘 이해할 수가 있으려면 PATH 환경변수를 살펴보면 된다.
만약에 우리가 "date" 라는 명령어를 사용한다고 해보자.
실제로 date라는 명령어는 /usr/bin 파일에 들어있다.
만약 PATH 환경변수를 임의로 변경해보면 어떻게 될까?
이렇게 되면 date라는 명령을 사용할 수가 없다. 그러나 환경변수 PATH에 다시 원래의 값을 넣으면
다시 사용할수가 있게 된다.
즉 이게 무슨 말이냐하면 PATH라는 환경변수에 특정 경로가 있으면 그 경로에 있는 명령어들은 굳이 그 경로 안에 들어가지 않아도 실행이 가능하게 한다는 것이다.
이 환경변수를 사용하려면 우리는 "export 변수명=변수"로 사용하게 된다. (여기서 변수명은 통상적으로 구분을 위하여 전부 대문자로 작성한다.)
export BYUNSU=123
이렇게 하면 환경변수, 즉 전체 환경에서 사용이 가능한 변수로 저장이 된다.
잘 모르겠다면 영상을 참고하자.
중요한 환경변수로는 PATH, HOME, USER, SHELL등등이 있다. 자세한 사용법 또한 영상을 참고하면된다.