이 `expr ... bc -l` 명령이 작동하지 않는 이유는 무엇입니까?

이 `expr ... bc -l` 명령이 작동하지 않는 이유는 무엇입니까?

오류가 발견되었습니다.

bash: 예상치 못한 마커 "-105.5*7+50*3" 근처에 구문 오류가 있습니다.

다음 스크립트/표현식을 실행할 때:

expr (-105.5*7+50*3)/20 + (19^2)/7 | bc -l

이러한 수학/부동 소수점 연산을 평가하는 다른 방법이 있습니까?

편집 #1

노트: echoin place는 expr문제를 해결하지만 이전에 사용해 본 적이 expr있고 bc일반적으로 부동 소수점을 잘 처리하는데 이 경우 문제가 해결되지 않는 이유가 지금 궁금합니다.

답변1

expr다음과 같이 이전에 매개변수 주위에 따옴표를 넣을 수 있습니까 ?

$ expr '(-105.5*7+50*3)/20 + (19^2)/7' | bc -l
22.14642857142857142857

?

이 경우 expr산술 연산은 수행되지 않으며 원래 표현식만 인쇄됩니다.

$ expr '(-105.5*7+50*3)/20 + (19^2)/7'        
(-105.5*7+50*3)/20 + (19^2)/7

모든 계산은 에서 이루어지며 bc -l전체 명령은 정답을 제공합니다( expr실제 작동 방식 에도 불구하고 echo).

관련 정보