중복 가능성:
Bash 또는 사용 가능한 언어에서 명령줄 정수 및 부동 소수점 계산을 수행하는 방법은 무엇입니까?
0.050
bash 스크립트에서 단순히 변수를 재할당(구체적으로는 증가)시키고 싶습니다. 내가 작성한 다음 스크립트에서는 10진수/이중/부동 소수점인 i
(정수) 인덱스입니다 . mytime
"ps"(피코초)는 계산에 사용하는 시간 단위입니다.
#!/bin/bash
mytime = 0.000
for i in {1..3}
do
echo "$i: $mytime ps"
mytime = mytime + 0.050
done
그러나 다음을 사용하여 스크립트를 실행하면 bash test.sh
다음과 같은 오류 메시지가 나타납니다.
test.sh: line 2: mytime: command not found
1: ps
test.sh: line 6: mytime: command not found
2: ps
test.sh: line 6: mytime: command not found
3: ps
test.sh: line 6: mytime: command not found
mytime
왜 변수가 아닌 명령이나 함수로 해석되는 것 같나요 ? 이 문제를 해결하도록 도와주실 수 있나요?
답변1
for i in $(seq 1 0.05 3); do
# loop body
echo i equals $i
done
답변2
두 가지 질문:
- 공백을 사용하지 마세요. 할당은
VAR=value
, 가 아닙니다VAR = value
또는VAR =value
입니다VAR= value
. 두 개 또는 세 개가 아닌 하나의 쉘 공간으로 구분된 토큰이어야 합니다. - 쉘은 그러한 산술을 수행하지 않습니다. 정수 수학의 경우 이라고 말할 수도
VAR=$(($VAR+1))
있고, 이 훌륭한 질문을 수많은 다른 방법(정수, 부동 소수점, 중위어, 후위어, 어쩌면 접두어, 임의 정밀도 및 부엌 싱크대)으로 읽을 수도 있습니다.Bash 또는 사용 가능한 언어에서 명령줄 정수 및 부동 소수점 계산을 수행하는 방법은 무엇입니까?