때로는 한 숫자를 다른 숫자로 나누어야 할 때가 있습니다. 이를 위해 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"; }