본문 바로가기
CS/Shell scripts

[csh] c shell 에서 덧셈 구현 방법

by Warehaus 2021. 6. 16.

업무를 하다보면 Shell script 에서도 사칙연산이 필요한 경우가 있다.

나는 보통 원하는 로그를 출력하고 싶다거나,

shell script를 이용해서 간단한 monitoring tool 을 만들고 싶을 때 필요했는데

cshell에서 이런 연산들이 어떻게 구현되는지 정리해 봤다.

우선 의식의 흐름대로 작성해 봤다.

#!/usr/bin/csh

set i = 1
echo $i

# i 더해보면 2가 될 것 같다.
set i = i + 1
echo $i

다음과 같은 결과를 얻었다.

1
set: Variable name must begin with a letter.

그러고보니 i 에 1을 더하려면 $ expression을 사용해서 더해야하는데 이걸 놓쳤다.

아래처럼 코드를 바꿔 다시한번 실행해보자.

#!/usr/bin/csh

set i = 1
echo $i

set i = $i + 1
echo $i

여전하다.

1
set: Variable name must begin with a letter.

사실 이런 결과를 얻는 이유는 c shell 에서는 사칙연산 시 set을 통한 대입이 아닌
@ expression을 사용해야 하기 때문이다.

코드를 다음과 같이 바꾸면 원하는 결과를 얻을 수 있다.

#!/usr/bin/csh

set i = 1
echo $i

@ i = $i + 1
echo $i

결과는 다음과 같다.

1
2