업무를 하다보면 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
'CS > Shell scripts' 카테고리의 다른 글
[Bash] 쉘 스크립트 출력 시 개행이 안되는 경우 해결방법 (0) | 2021.06.24 |
---|---|
Linux 명령어 'awk' 로 원하는 부분만 출력하기 - 1 (0) | 2021.06.24 |
Bash script 에서 사칙연산 구현하기 (0) | 2021.06.14 |
Bash script for loop 반복문 사용하기 (0) | 2021.06.14 |
[csh] cshell 에서의 for문 ( 반복문 ) 사용 방법 (0) | 2021.06.11 |