Bash 스크립트에서 부동 소수점 표현식을 표현하는 방법

Bash 스크립트에서 부동 소수점 표현식을 표현하는 방법

a2=100.    
echo 1.1*$a2|bc   

터미널에서는 작동하지만 다음 스크립트의 세 가지 변형은 작동하지 않습니다.

a2=100.  
echo "  
1.1*$a2|bc  
$(1.1*$a2|bc)  
$((1.1*$a2|bc))  
">x.sh    

답변1

echo파이프로 연결한 스크립트 코드에 명령문을 넣지 않았기 때문입니다 x.sh. 두 번째 변형에는 추가 echo하위 쉘 명령이 필요합니다 $(...). 세 번째 변형 $((...))은 산술 확장이 부동 소수점 숫자에서는 작동하지 않기 때문에 효과가 없습니다 .

a2=100.  
echo "  
echo 1.1*$a2|bc;  
echo $(echo 1.1*$a2|bc);
">x.sh    

결과:

# sh x.sh
110.0
110.0

관련 정보