셸 스크립트 변수명
본문 바로가기
IT 이야기/Linux 셸 스크립트

셸 스크립트 변수명

by 찬찬이 아빠 2021. 2. 19.
반응형
  1. 대문자와 소문자

셸 스크립트는 변수명에 대문자, 소문자 어느 쪽도 사용할 수 있습니다.

 

문법적으로 정해진 것은 아니지만 보통은 다른 프로그래밍 언어와 마찬가지로 상수는 대문자변수는 소문자로 작성하는 것이 좋습니다. 또한, 환경 변수는 대문자로 적는것이 보통입니다.

# 정의 파일명은 상수이므로 대문자
CONFIGFILE="myapp.conf"

# 반복 카운터는 변수이므로 소문자
i=0

# 환경 변수는 대문자
MY_TMDIR="/var/tmp"
export MY_TMPDIR

 

하지만 모든 변수명을 대문자로 적고 소문자는 전혀 사용하지 않는 사람도 있습니다. 프로젝트에 따라서는 코딩 규약 등으로 모두 대문자 변수를 사용하기도 하므로 그런 스크립트를 보더라도 놀라지 말기 바랍니다.

 

그리고 셸 스크립트에서 변수명이나 함수명이 길어지면 낙타 표기법(Camel Case)보다는 스네이크 표기법(Snake Case)이 더 자주 사용됩니다.

 

낙타 표기법은 여러 단어로 이루어진 이름일 때 각깍의 단어 첫 글자를 대문자로 쓰는데 특히 자바에서 자주 사용합니다. 예를 들어 자바의 File 클래스에서 신규 파일을 작성하는 메소드명은 createNewFile입니다. 한편, 스네이크 표기법은 각각의 단어를 _(언더바_로 이어서 작성하는 표기법으로 예전부터 여러 언어에서 사용해왔습니다.

 

  • 낙타 표기법 : sampleDataIndex (자바에서 자주 사용)
  • 스네이크 표기법 : sample_data_index (셸 스크립트에서 자주 사용)

낙타 표기법은 대문자, 소문자가 교대로 나타나는 모양이 낙타 혹에 올라갔다 내려갔다하는 모양과 비슷하다고 해서 붙은 이름입니다.

 

 

  2. 변수 자료형

셸 스크립트는 변수 자료형이 없습니다.

같은 변수에 문자열을 넣을 수도 있고, 숫자를 넣을 수도 있습니다.

하지만 그런 프로그래밍 스타일은 버그가 생길 수 있기에 문자열을 넣는 변수와 숫자를 넣는 변수를 구분해서 써야 합니다.

 

또한 변수에는 자료형이 없으므로 가능한 내용을 이해하기 쉽도록 변수에 일므을 붙이는 것이 좋습니다. 예를 들어 셸 변수를 var1이라고 이름을 지으면 임시로 쓰는 어떤 문자열인지 아니면 일시적인 스테이터스 값을 저장하는지 전혀 추측할 수 없습니다. user_score라는 셸 변수는 어떤 사용자가 득점을 저장하는 숫자 변수라는 걸 알 수 있습니다.

 

 

  3. 경로와 마지막 슬래시

디렉터리명을 저장하는 변수 끝에 /(슬래시)를 넣는가는 선호가 갈립니다.

하지만 보통은 슬래시를 넣지 않는 편입니다. 그럴 때는 전체 경로를 조합하려면 스스로 슬래시를 집어 넣어야 합니다. 

 

예를 들어 다음 예는 셸 변수 filepath에 디렉터리명이 들어가는데 마지막에 슬래시를 넣지 않으므로 파일명과 연결해서 전체 경로를 조합하려면 중간에 /(슬래시)를 넣습니다.

filepath="${filepath}/${filename}"

 

슬래시르르 넣는 걸 잊어서 전체 경로가 이상해지는 것은 자주 겪는 실수입니다. 물론 스크립트 안에서 마지막에 슬래시를 넣기도 하고 안 하기도 하는 식으로 섞어서 작성하는 것은 금물입니다.

반응형

댓글