bash 기능을 사용하여 명령줄에서 간단한 계산을 수행합니다. $1 나누기 $2(아마도 bc 사용)

bash 기능을 사용하여 명령줄에서 간단한 계산을 수행합니다. $1 나누기 $2(아마도 bc 사용)

때로는 한 숫자를 다른 숫자로 나누어야 할 때가 있습니다. 이를 위해 bash 함수를 정의할 수 있다면 좋을 것입니다. 지금까지 이런 표현을 쓸 수밖에 없었어요

echo 'scale=25;65320/670' | bc

하지만 다음과 같은 .bashrc 함수를 정의할 수 있다면 좋을 것 같습니다.

divide () {
  bc -d $1 / $2
}

답변1

다음과 같은 편리한 bash 기능이 있습니다 calc.

calc () {
    bc -l <<< "$@"
}

사용 예:

$ calc 65320/670
97.49253731343283582089

$ calc 65320*670
43764400

이 설정은 자신에게 맞게 변경할 수 있습니다. 예를 들어:

divide() {
    bc -l <<< "$1/$2"
}

노트: <<<여기에 있는 문자열이는 표준 입력으로 공급됩니다 bc. 전화할 필요는 없습니다 echo.

답변2

Bash는 어느 정도 자체적으로 수학을 수행할 수 있습니다. 하지만 반올림되어 있기 때문에 정확성에는 유용하지 않습니다.

[user]$ echo $(( 10/5 ))
2

하지만 당신 말이 맞습니다. bash 기능은 간단한 지름길이며 귀하의 예는 기본적으로 작동합니다.

divide() {
  echo "scale=25;$1/$2" | bc
}

.bashrc에 넣으면 다음을 수행할 수 있습니다.

[user]$ divide 10 5
2.0000000000000000000000000

답변3

Bash 내장 "expr"이 다음과 같다는 것을 알 수 있습니다.

$ expr 60 / 5
12

정수로 제한되며 인수 사이에 공백이 필요합니다.

이미 사용하고 있는 에코 표현식의 관점에서 함수를 정의하는 것을 방해하는 것은 무엇입니까? 즉

 divide () {
   echo $1/$2 | bc
 }

답변4

시스템에 설치 되어 있고 calc반올림이 마음에 들지 않으면 다음을 수행할 수 있습니다.

div() { calc "$1 / $2"; }

관련 정보