SW/리눅스

Linux : Bash : Variable 증가, 감소 방법, 예제, 명령어 (카운터)

얇은생각 2021. 11. 26. 07:30
반응형

Bash 스크립트를 작성할 때 가장 일반적인 산술 연산 중 하나는 변수 증분 및 감소입니다. 이는 루프에서 카운터로 가장 많이 사용되지만 스크립트의 다른 위치에서도 발생할 수 있습니다.

증분 및 감소는 각각 숫자 변수 값에서 값(일반적으로 1)을 추가하거나 빼는 것을 의미합니다. 산술 확장은 이중 괄호((...) 및 $(...) 또는 let-built-in 명령을 사용하여 수행할 수 있습니다.

Bash에서는 변수를 증가/감소하는 여러 가지 방법이 있습니다. 이 글에서는 그 중 몇 가지를 설명합니다.

 

 

Linux : Bash : Variable 증가, 감소 방법, 예제, 명령어 (카운터)

 

 

+ 및 - 연산자를 사용

변수를 증가/감소하는 가장 간단한 방법은 + 및 - 연산자를 사용하는 것입니다.

i=$((i+1))
((i=i+1))
let "i=i+1"

 

i=$((i-1))
((i=i-1))
let "i=i-1"

 

 

이 방법을 사용하면 원하는 값을 기준으로 변수를 증가/감소할 수 있습니다.

다음은 ~ 루프 내에서 변수를 증분하는 예입니다.

i=0

until [ $i -gt 3 ]
do
  echo i: $i
  ((i=i+1))
done

# i: 0
# i: 1
# i: 2
# i: 3

 

 

 

+= 및 -= 연산자

위에서 설명한 기본 연산자 외에 bash는 할당 연산자 += 및 -=도 제공합니다. 이 연산자는 연산자 다음에 지정된 값으로 왼쪽 피연산자 값을 증가/감소하는 데 사용됩니다.

((i+=1))
let "i+=1"

 

((i-=1))
let "i-=1"

 

 

다음 while 루프에서는 i 변수 값을 5만큼 줄입니다.

i=20

while [ $i -ge 5 ]
do
  echo Number: $i
  let "i-=5" 
done

# Number: 20
# Number: 15
# Number: 10
# Number: 5

 

 

++ 및 -- 연산자를 사용

++ 및 -- 연산자는 각각 연산자를 1씩 증가시키고 값을 반환합니다.

((i++))
((++i))
let "i++"
let "++i"

 

((i--))
((--i))
let "i--"
let "--i"

 

 

연산자는 피연산자 전후에 사용할 수 있습니다. 다음이라고도 합니다.

 prefix 증분: ++i

prefix 감소: --i

postfix 증분: i++

postfix 감소: i--

 

접두사 연산자는 연산자를 먼저 1씩 증가/감소시킨 다음 연산자의 새 값을 반환합니다. 반면, 포스트픽스 연산자는 연산자의 값이 증가/감소되기 전에 값을 반환합니다. 

변수만 증분/감소하려는 경우 접두사 또는 사후 수정 연산자를 사용해도 차이가 없습니다. 연산자의 결과가 다른 작업에 사용되거나 다른 변수에 할당된 경우에만 차이가 발생합니다.

 다음 예제는 ++ 연산자가 연산자 전후에 사용될 때 어떻게 작동하는지 보여줍니다.

x=5
y=$((x++))
echo x: $x
echo y: $y

# x: 6
# y: 5

 

x=5
y=$((++x))
echo x: $x
echo y: $y

# x: 6
# y: 6

 

 

다음은 bash 스크립트에서 포스트픽스 증분 또는 사용 방법에 대한 예입니다.

#!/bin/bash
i=0
while true; do
  if [[ "$i" -gt 3 ]]; then
       exit 1
  fi
  echo i: $i
  ((i++))
done

 

 

이러한 연산자를 사용할 때의 단점은 변수를 1만 증가하거나 감소시킬 수 있다는 것입니다.

Bash의 변수 증가 및 감소는 여러 가지 방법으로 수행할 수 있습니다. 어떤 방법을 사용하든 결과는 같습니다.

반응형