Bash 스크립트를 작성할 때 가장 일반적인 산술 연산 중 하나는 변수 증분 및 감소입니다. 이는 루프에서 카운터로 가장 많이 사용되지만 스크립트의 다른 위치에서도 발생할 수 있습니다.
증분 및 감소는 각각 숫자 변수 값에서 값(일반적으로 1)을 추가하거나 빼는 것을 의미합니다. 산술 확장은 이중 괄호((...) 및 $(...) 또는 let-built-in 명령을 사용하여 수행할 수 있습니다.
Bash에서는 변수를 증가/감소하는 여러 가지 방법이 있습니다. 이 글에서는 그 중 몇 가지를 설명합니다.
+ 및 - 연산자를 사용
변수를 증가/감소하는 가장 간단한 방법은 + 및 - 연산자를 사용하는 것입니다.
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의 변수 증가 및 감소는 여러 가지 방법으로 수행할 수 있습니다. 어떤 방법을 사용하든 결과는 같습니다.
'SW > 리눅스' 카테고리의 다른 글
CentOS : Sudoers에 User를 추가 방법, 예제, 명령 (0) | 2021.11.28 |
---|---|
Linux : 파일의 문자열을 sed 검색, 변경 방법, 예제, 명령어 (0) | 2021.11.27 |
Linux : Hostname 변경, 설정 방법, 예제, 명령어 (0) | 2021.11.25 |
Linux : IP Address 조회, 얻는 방법, 예제, 명령어 (0) | 2021.11.24 |
SSH 터널링 설정 방법, 예제 , 명령어 (포트 포워딩) (0) | 2021.11.23 |