본문 바로가기
Linux

[Linux] C Shell Script - Operator

by RTLog 2024. 3. 26.
728x90
반응형

안녕하세요. RTLog입니다. 

 

오늘은 C Shell Script에서 Operator를 사용하는 방법에 대해 작성해보겠습니다. 

C Shell Script - Operator

C Shell에서는 산술/논리/비트/문자열 연산을 수행할 수 있습니다.

 

C Shell에서는 변수 값을 string으로 저장하고, 연산 시에 숫자로 변환하는 과정을 반복하기 때문에 시간 소요가 크고, 실수 연산도 불가능한 단점이 있습니다. 연산이 빈번하게 일어나는 Script를 작성해야 하는 경우, 다른 언어를 사용하는 것이 좋을 수 있습니다. 

산술 연산자

사용법:  @ variable_name operator expression

주의 사항
- @와 variable_name 사이에는 반드시 "공백"을 넣어야 한다.

-  =,+,-,+=,-=,*=,/= 의 앞 뒤에는 반드시 "공백"이 있어야 한다.
- 변수 이름과 ++ 또는 -- 사이에는 "공백"이 있어서는 안된다.
-  @ variable_name[index] = expression 과 같이 목록 변수를 사용할 수 있다
-  @ 연산자를 문자열 데이터와 함께 사용할 수 없다.

  1 #!/bin/csh
  2
  3 set num=3  # @ num = 3
  4
  5 @ num += 6
  6 echo $num
  7 @ num -= 5
  8 echo $num
  9 @ num *= 8
 10 echo $num
 11 @ num /= 5
 12 echo $num
 13 @ num %= 4
 14 echo $num
 15 @ num++
 16 echo $num
 17 @ num--
 18 echo $num
 19
 20 echo " "
 21 @ num = 20
 22 @ r = $num + 6
 23 echo $r
 24 @ r = $num - 3
 25 echo $r
 26 @ r = $num * 5
 27 echo $r
 28 @ r = $num / 6
 29 echo $r
 30 @ r = $num % 6
 31 echo $r
 32
 33 echo " "
 34
 35 set int_set = (1 2 3)
 36
 37 echo $int_set[1]
 38
 39 @ int1 = $int_set[1] + 1
 40 echo $int1
 41
 42 @ int2 = $int_set[2] + 1
 43 echo $int2
 44
 45 @ int3 = $int_set[3] + 1
 46 echo $int3

output

비트 & 논리 연산자

1. bit 연산에서 빈자리는 "0"으로 채워진다.
2. >>, <<, &, |, ^ 연산자를 포함하는 식은 반드시 "괄호"로 묶어야 한다.
* 연산자가 아닌 입출력 재지정, 후위 작업, 파이프 등의 부호로 인식될 수 있기 때문

Bitwise shift operator   : >> (shift right), << (shift left)
Bitwise unary operator : ~ (1's complement), ! (logic negation)
Bitwise logic operator  : | (OR), ^ (XOR), & (AND)
Logical operator          : || (logic OR), && (logic AND)

  1 @ aa = 20
  2 @ bb = (~ $aa)
  3 echo $bb
  4
  5 @ aa = 25
  6 @ bb = (! $aa)
  7 echo $bb
  8
  9 @ bb = (! (! $aa))
 10 echo $bb
 11
 12 @ aa = 5
 13 @ bb = ($aa << 1)
 14 echo $bb
 15
 16 @ bb = ($aa << 4)
 17 echo $bb

bit operation output

비교 연산자

C Shell에는 숫자, 문자열, pattern의 세 가지 형태의 자료에 대한 비교 연산이 가능합니다. 

 

 1. 숫자 비교 연산자 : ==, !=, >, >=, <, <=
 2. 문자열 비교 연산자 : ==, !=
 3. Pattern matching 연산자 : =~, !~

    - 확장을 적용한 비교  2024.03.13 - [Linux] - [Linux] Wild Card 

    - *  : Match any string(including null)
    - [ ] : Define a character set
    - ?  : Match a single character

 

* 연산자를 포함하는 식은 반드시 "괄호"로 묶어야 한다.

  1 set num = 5
  2
  3 @ result = ($num == 5)
  4 echo $result
  5 @ result = ($num != 5)
  6 echo $result
  7 @ result = ($num > 3)
  8 echo $result
  9 @ result = ($num >= 3)
 10 echo $result
 11 @ result = ($num < 3)
 12 echo $result
 13 @ result = ($num <= 3)
 14 echo $result
 15
 16 set str = xyz
 17 @ result = ($str == xyz)
 18 echo $result
 19
 20 set pat = abc
 21 @ result = ($str != abc)
 22 echo $result
 23 @ result = ($pat =~ [abc]*)
 24 echo $result
 25 @ result = ($pat !~ *c)
 26 echo $result

Comparison Result

Reference

http://coffeenix.net/doc/shell_programming/shell346.html#3.4

 

2. C Shell 환경 및 사용 방법

  C Shell은 산술 연산, 문자열 비교, bit 연산 그리고 논리연산을 할 수 있다. C Shell의 연산자도 C언어와 동일한 문법과 연산 우선 순위를 갖는다.   C Shell의 약점은 이 연산 부분이다. C Shell은 내

coffeenix.net

 

728x90
반응형

'Linux' 카테고리의 다른 글

[Linux] Process  (0) 2024.03.26
[Linux] C Shell Script - 제어문(1)  (0) 2024.03.26
[Linux] C Shell Script - 사용자 입력, 인자  (0) 2024.03.26
[Linux] C Shell Script - 변수  (0) 2024.03.26
[Linux] Permission  (0) 2024.03.15

let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });