Bash에서 문자열을 정수로 변환

Abdul Mateen 2023년6월20일
  1. 문자열에 대한 수학 연산
  2. expr 명령을 사용하여 문자열을 정수로 변환
  3. 이중 괄호 ((...)) 구성을 사용하여 문자열을 정수로 변환
  4. 기본 계산기(bc) 명령을 사용하여 문자열을 정수로 변환
  5. awk 명령을 사용하여 문자열을 정수로 변환
  6. perl...print 또는 perl...say를 사용하여 문자열을 정수로 변환
  7. Python을 사용하여 문자열을 정수로 변환
Bash에서 문자열을 정수로 변환

이 튜토리얼에서는 Bash 스크립트에서 문자열을 정수로 변환하는 방법에 대해 설명합니다. 먼저 문자열에 대한 수학 연산 문제를 논의한 다음 문자열을 정수로 변환하는 방법을 살펴봅니다.

문자열에 대한 수학 연산

이 간단한 코드로 토론을 시작하겠습니다.

x_value=1000
y_value=20
echo $x_value+$y_value

이 코드의 출력은 예상치 못한 것일 수 있습니다. 출력 참조:

1000+20

echo 명령은 변수 x_value 값을 더하기 기호 및 변수 y_value와 연결합니다. 아마도 당신은 이 결과를 얻는 데 관심이 없었을 것입니다. 오히려 출력으로 1020을 예상했습니다.

문제를 논의한 후 문제를 피하고 원하는 결과를 얻을 수 있는 방법을 살펴보겠습니다.

expr 명령을 사용하여 문자열을 정수로 변환

이 명령은 표현식을 평가하고 결과를 얻는 데 사용됩니다. 예를 들어:

$ expr 12 - 8

이 명령의 출력은 4입니다. 이 명령을 사용하여 필요한 결과를 얻을 수 있습니다.

x_value=1000
y_value=20
expr $x_value + $y_value

이 스크립트의 출력은 1020입니다. 그러나 변수와 연산자 사이에는 공백이 필요합니다. 그렇지 않으면 이 명령도 연결을 수행하며 결과는 동일합니다.

참고: 피연산자와 연산자 사이에 적절한 간격을 추가해야 합니다. expr이 각 토큰을 개별적으로 인식하는 것이 더 쉬워집니다.

이중 괄호 ((...)) 구성을 사용하여 문자열을 정수로 변환

이중 괄호 생성자 (( ... ))는 산술 확장 및 평가를 허용합니다. 예를 들어 x_value=$(( 6 - 2 ))x_value4로 설정합니다. 이 구성을 사용하여 필요한 결과를 얻을 수 있습니다.

예제 스크립트를 살펴보겠습니다.

x_value=1000
y_value=20
echo $(( x_value * y_value ))

이 스크립트의 출력은 20000입니다.

기본 계산기(bc) 명령을 사용하여 문자열을 정수로 변환

Bash에서 기본 계산기(bc)는 Bash 명령 인터페이스에서 직접 기본 산술 계산을 수행하는 데 사용됩니다.

예를 들어 다음과 같이 작성할 수 있습니다.

$ echo "12-4" | bc

출력은 8입니다. 이 기본 계산기를 사용하여 필요한 결과를 얻을 수 있습니다.

bc를 사용하여 원래 문제를 해결하는 코드는 다음과 같습니다.

x_value=1000
y_value=20
echo $x_value-$y_value | bc

출력은 980입니다. 이 식에서는 expr 명령에서 필수였던 것처럼 공백이 필요하지 않습니다.

awk 명령을 사용하여 문자열을 정수로 변환

awk는 사용자가 변수, 숫자 함수, 문자열 함수 및 논리 연산자를 포함하는 형식이 지정된 표현식을 인쇄할 수 있도록 하는 미리 컴파일된 명령입니다. 이 명령을 다양한 방법으로 사용할 수 있습니다.

예를 들어, 형식이 지정된 숫자 계산으로 일부 메시지를 인쇄하려는 경우 다음과 같이 awk 명령과 함께 echo 명령을 사용할 수 있습니다.

$ echo salary= 40000 10 | awk '{print $1 $2+$2*$3/100}'

이 명령에서는 급여에 10%의 보너스가 포함된 급여를 인쇄하려고 합니다. 여기서 salary=는 첫 번째 매개변수입니다. $1을 작성하여 사용했습니다.

마찬가지로 40000$2를 작성하여 사용되는 두 번째 매개변수입니다. 유사하게 $3은 세 번째 매개변수(예: 10)의 자리 표시자입니다.

이 명령의 출력은 다음과 같습니다.

salary=44000

awk 명령을 사용하여 원래 문제를 다음과 같이 해결할 수 있습니다.

x_value=1000
y_value=20
echo $x_value $y_value | awk '{print $1 + $2}'

출력은 1020이며 xyawk 명령에서 수신한 두 개의 매개변수입니다. 그에 따라 계산이 수행됩니다.

perl...print 또는 perl...say를 사용하여 문자열을 정수로 변환

perl 명령에는 print 또는 say 옵션이 있습니다. printsay의 차이점은 print가 줄을 공급하지 않고 다음 출력이 같은 줄에 나오는 반면 say 명령은 줄을 공급한다는 것입니다.

예를 들어:

x_value = 5
perl -E "print $x_value"
echo "*"
perl -E "say $x_value"
echo "*"

출력은 다음과 같습니다.

5*5
*

두 번째 별표는 print 대신 say에 의한 줄 바꿈으로 인해 다음 줄에 인쇄됩니다.

따라서 perlprint 또는 say와 함께 사용하여 필요한 출력을 얻을 수 있습니다.

x_value=1000
y_value=20
perl -E "print $x_value+$y_value"

출력은 1020입니다.

Python을 사용하여 문자열을 정수로 변환

Python에는 표현식을 평가하고 인쇄할 수 있는 print 문이 있습니다.

예를 들어:

python -c "print 5 * 4"

출력은 20입니다. 이를 사용하여 필요한 결과를 얻을 수 있습니다.

코드는 다음과 같습니다.

x_value=1000
y_value=20
python -c "print $x_value * $y_value"

출력은 20000입니다.

문자열을 정수 변수로 변환하여 수학 연산을 수행하는 다양한 방법이 있습니다. 여기에서는 여섯 가지 방법을 제시했으며 원하는 대로 사용할 수 있습니다.

관련 문장 - Bash String