IT

명령 줄 터미널에서 곱하기

lottoking 2020. 8. 9. 09:18
반응형

명령 줄 터미널에서 곱하기


실험실 실험에 입력을 제공하기 위해 위해 터미널을 사용하고 있습니다. 나는

$ echo "5X5"

패키지를 반환합니다 "5X5". 곱하기 연산을 실행하는 명령이 있습니까?


예, bash의 내장 산술 확장$(( )) 을 사용하여 간단한 수학을 수행 할 수 있습니다.

$ echo "$((5 * 5))"
25

전체 연산자 목록은 Bash Reference ManualShell Arithmetic 섹션을 확인하십시오 .

완전성을 위해 다른 사람이 지적했듯이 임의의 것이 필요 하거나 더 좋을 것입니다.bcdc


보다 고급 더 정확한 수학을 위해 bc (1) 사용을 고려하십시오.

echo "3 * 2.19" | bc -l 
6.57

내부 방법

배시 지원 연산 확장 과이 $(( expression )). 예를 들면 :

$ echo $(( 5 * 5 ))
25

외부 방법

많은 유틸리티가 bcexpr을 포함 하여 산술을 제공합니다 .

$ echo '5 * 5' | /usr/bin/bc
25

$ /usr/bin/expr 5 \* 5
25

고전적인 솔루션은 다음과 가변합니다.

 expr 5 \* 5

또 다른 좋은 옵션은

 echo 5 5\*p | dc

이 두 솔루션은 정수 피연산자에서만 작동합니다.


간단한 쉘 함수 (sed 필요 없음)는 '5X5'를 해석하는 트릭을 수행해야합니다.

$ function calc { bc -l <<< ${@//[xX]/*}; };
$ calc 5X5
25
$ calc 5x5
25
$ calc '5*5'
25

bc부동 소수점 계산 을 사용 하고 지원 하는이 함수를 사용 합니다.

c () { 
    local a
    (( $# > 0 )) && a="$@" || read -r -p "calc: " a
    bc -l <<< "$a"
}

예 :

$ c '5*5'
25
$ c 5/5
1.00000000000000000000
$ c 3.4/7.9
.43037974683544303797

Bash의 산술 확장은 float를 지원하지 않습니다 (그러나 Korn 쉘과 zsh는 지원합니다).

예 :

$ ksh -c 'echo "$((3.0 / 4))"'
0.75

간단한 사용 방법을 제공합니다.

me@mycomputer:~$ cat /usr/local/bin/c

#!/bin/sh

echo "$*" | sed 's/x/\*/g' | bc -l

의 특수 문자 셸 이기 때문에 변경 x됩니다 . 다음과 같이 사용하십시오.**

  • c 5x5
  • c 5-4.2 + 1
  • c '(5 + 5) * 30' (식에 괄호가 있고 여전히 따옴표를 사용합니다).

파이썬을 좋아하고 패키지를 설치할 수있는 옵션이 있다면 내가 만든 유틸리티사용할 수 있습니다 .

# install pythonp
python -m pip install pythonp

pythonp "5*5"
25

pythonp "1 / (1+math.exp(0.5))"
0.3775406687981454

# define a custom function and pass it to another higher-order function
pythonp "n=10;functools.reduce(lambda x,y:x*y, range(1,n+1))"     
3628800

참고 URL : https://stackoverflow.com/questions/11039876/multiplication-on-command-line-terminal

반응형