쉘 스크립트를 사용하여 두 개의 부동 소수점 숫자를 추가하려고 합니다. 나는 이것을 시도했습니다 :
#!/bin/bash
if [ $# != 2 ]; then
echo "2 arguments are required "
exit
else
x=$1
y=$2
sum = $x + $y
echo ` sum = $sum | bc `
fi
예를 들어 명령줄에 두 개의 매개변수를 제공하면 다음과 같습니다.
bash filename.sh 2.4 5
...오류가 발생합니다.[ 2 != 2 ] command not found
답변1
else
echo -n "sum = "
echo "$1 + $2" | bc
fi
해결되지 않은 문제의 후반부를 해결해 드립니다. 첫 번째 질문은 미스터리입니다. " [
"는 내장 명령이므로 따옴표가 없으면 표시되지 않습니다. [ $# != 2 ]
단어로 작동하는 방식을 이해할 수 없습니다.
답변2
사용 bc
:
#!/bin/bash
n="$@"
bc <<< "${n// /+}"
스크립트가 호출된다고 가정 add
하거나, 코드를 쉽게 붙여넣기를 원하는 사람들을 위해 다음 셸 유사 함수를 사용해 보세요 add() { n="$@"; bc <<< "${n// /+}"; }
. 함수와 스크립트는 다음과 같이 작동합니다.
add 3.2 5.5
add 3.2 5.5 8.9
add {1..51}.{12..89}
사용된 교정기bash
버팀대 확장bc
다음 범위의 십진수로 해석되는 약 4000개의 문자열을 생성합니다.1.12도착하다51.89.
산출:
8.7
17.6
105436.89
두 매개변수를 모두 확인할 필요는 없습니다.
그것은 추가될 수 있다하나또는 그 이상의 인수,
인수가 없으면 출력이 반환되지 않습니다.
일반 문자열을 무시하므로
add 5 6.7 abc edf 9
를 반환합니다20.7
.숫자가 올바르지 않으면 구문 오류를 반환합니다.예를 들어:
9z
,5.6.7
,8..
,등.
답변3
두 개의 부동 소수점 숫자를 추가하는 데 사용합니다.
echo 12.8 12.2 | awk '{print $1 + $2}'
Result:- 25
숫자를 변수로 바꾸십시오.
당신은 그것을 사용할 수 있습니다
awk "BEGIN {print 12.8+12.2; exit}"
답변4
if [ "$#" != 2 ]; then
echo "2 arguments are required"; exit 1
else
x=$1 y=$2
sum="[sum=]n $x $y + 2k p"
echo "$sum" | dc
fi
결과:
sum=7.4
설명하다:
We use the `dc` calculator by placing the two operands on the stack and
adding the two top of stack elements. And prior to adding, we place a
string `sum=` on the stack, and immediately print it which as a side effect
also removes it from the stack. The precision of the results is set to 2.