배시에서의 산술

Bash 스크립트에 계산을 추가하는 방법

Bash는 스크립트 언어이지만 범용 프로그래밍 언어의 모든 기능을 갖추고 있습니다. 여기에는 산술 기능이 포함됩니다. 표현식의 산술 계산을 유발하는 데 사용할 수있는 여러 가지 구문 옵션이 있습니다. 아마도 가장 읽기 쉬운 명령은 let 명령입니다. 예를 들어

"m = 4 * 1024"

1024를 4 배 계산하고 결과를 변수 "m"에 할당합니다.

echo 문을 추가하여 결과를 인쇄 할 수 있습니다.

"m = 4 * 1024"라고하자. echo m

다음 코드를 입력하여 명령 줄에서이를 테스트 할 수 있습니다.

"m = 4 * 1024"라고합시다. echo $ m

Bash 명령이 포함 된 파일을 만들 수도 있습니다.이 경우 코드를 실행하는 프로그램을 지정하는 파일의 맨 위에 줄을 추가해야합니다. 예 :

#! / bin / bash let "m = 4 * 1024"echo $ m

Bash 실행 파일이 / bin / bash 에 있다고 가정합니다. 또한 실행 가능하도록 스크립트 파일의 권한을 설정해야합니다. 스크립트 파일 이름이 script1.sh 라고 가정하면 다음 명령을 사용하여 파일을 실행 가능하게 설정할 수 있습니다.

chmod 777 script1.sh

그 후 다음 명령을 사용하여 실행할 수 있습니다.

./script1.sh

사용 가능한 산술 연산은 Java 및 C와 같은 표준 프로그래밍 언어의 산술 연산과 유사합니다. 위에서 설명한대로 곱셈 외에 덧셈을 사용합니다.

"m = a + 7"

또는 빼기 :

"m = a - 7"

또는 부서 :

"m = a / 2"

또는 모듈로 (정수로 나눈 나머지 값) :

"m = a % 100"이라고합시다.

결과가 지정된 동일한 변수에 연산이 적용되면 복합 할당 연산자라고도하는 표준 산술 속기 대입 연산자를 사용할 수 있습니다. 예를 들어, 추가를 위해 우리는 다음과 같은 것들을 가지고 있습니다 :

"m + = 15"

이는 "m = m + 15"와 동일합니다. 빼기를 위해 우리는 :

"m - = 3"

이는 "m = m - 3"과 동일합니다. 나누기 위해 우리는 :

"m / = 5"

이는 "m = m / 5"와 동일합니다. 그리고 모듈로, 우리는 :

"m % = 10"

이는 "m = m % 10"과 동일합니다.

또한 증가감소 연산자를 사용할 수 있습니다.

"m ++"하자.

"m = m + 1"과 동일합니다. 과

"m--"하자.

"m = m - 1"과 동일합니다.

그런 다음 지정된 조건이 true인지 false인지에 따라 두 값 중 하나를 반환하는 3 자 물음표 콜론 연산자가 있습니다. 예를 들어

"k = (m <9)? 0 : 1"

변수 "m"이 9보다 작 으면이 할당 문에서 오른쪽이 "0"으로 평가됩니다. 그렇지 않으면 1로 평가됩니다. "m"이 적 으면 변수 "k"에 "0"이 할당됨을 의미합니다 그렇지 않으면 9 이상이고 "1"입니다.

물음표 - 콜론 연산자의 일반적인 형식은 다음과 같습니다.

조건? value-if-true : false 일 경우 값

Bash에서의 부동 소수점 산술

let 연산자는 정수 연산에만 작동합니다. 부동 소수점 연산의 경우 다음 예에서와 같이 GNU bc 계산기를 사용할 수 있습니다.

에코 "32.0 + 1.4"| 기원전

"파이프"연산자 "|" "32.0 + 1.4"라는 산술 표현식을 bc 계산기로 전달합니다. bc 계산기는 실수를 반환합니다. echo 명령은 결과를 표준 출력에 인쇄합니다.

산술을위한 대체 구문

역 인용 부호 (back 작은 따옴표)는 다음 예제와 같이 산술 표현식을 평가하는 데 사용할 수 있습니다.

echo`expr $ m + 18`

변수 "m"의 값에 18을 더한 다음 결과를 인쇄합니다.

변수에 계산 값을 할당하려면 등호를 공백없이 사용할 수 있습니다.

m =`expr $ m + 18`

산술 표현식을 평가하는 또 다른 방법은 이중 괄호를 사용하는 것입니다. 예 :

((m * = 4))

이것은 변수 "m"의 값을 4 배로 만듭니다.

산술 평가 외에도 Bash 쉘은 for-loops , while-loop , 조건문함수와 서브 루틴 과 같은 다른 프로그래밍 구조를 제공합니다.