왜
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