3. OS이야기/03. Shell Script

[UNIX/LINUX] Shell Script 기본 - 2.기본 문법 (1) 변수 할당, (2) 수치 계산

알 수 없는 사용자 2014. 4. 22. 13:22

2. 기본 문법

 

(1) 변수 선언 및 value 할당

 

Shell Script에서의 변수 선언 및 value 할당은 아주 간단합니다.

 

물론 Shell Script에서 사용하는 예약어(vi, ls, cd 등등)들은 변수로 사용하는 것을 가급적 피해야겠죠.

 

변수 선언 및 value 할당 방법은 다음과 같습니다.


변수명=value         (O)

 

변수명=  value         (X)

변수명  =value         (X)

변수명  =  value       (X)

 

ex.  idx=1



위 예시에서 보여드리는 것처럼 '변수명=value' 와 같은 식으로 변수 선언 및 할당을 해주면 되는데요.

 

주의하실 것은 '='(equal) 앞뒤로 공백이 없어야 한다는 것입니다..(제가 처음에 Shell Script를 짤 때 이 부분을 간과해서 엄청 고생했던 기억이..;;)

 

Java나 C같은 language에선 위와 같은 상황에서의 공백에 크게 구애받지 않죠.

 

MS PowerShell이나 VB Script 등에서도 그렇구요.

 

유독 UNIX나 LINUX에서 사용하는 Shell Script에서만 공백이 문제가 됩니다.

 

위와 같이 변수에 값을 할당한 후, 다른 라인에서 해당 변수를 사용하려면 '$'를 붙여서 버퍼에 저장된 변수값을 호출하여 사용하면 됩니다.


ex.  idx=1

      echo $idx



(2) 수치 계산

 

이렇게 변수를 선언하여 값을 할당하든, 외부로부터 매개변수를 받든, 변수에 할당된 산술값들을 계산해야 하는 경우가 생깁니다.

 

위와 같이 스크립트 내에서 산술값 계산을 위해 사용하는 것이 '(( ))'(이중 괄호) 입니다.


ex.  idx=$((idx * 10))

      sum=$((123 + 456))

      echo $idx $sum

      echo $((idx + 10))



위 예시에서처럼 산술식을 '(( ))'(이중 괄호)로 묶어주신 다음, 앞에 '$'를 붙여주면 계산된 결과값이 좌측의 변수에 할당이 되겠죠.

 

단, 한 가지 알아두셔야 할 것은 위와 같은 방식으로는 정수(.., -1, 0, 1, ..) 계산밖에는 할 수 없다는 것입니다.

 

소수점 계산 등의 더 복잡한 계산을 위해서는 'bc' shell command를 사용하셔야 합니다.