가능한 중복:
bash 또는 사용 가능한 다른 언어에서 명령줄 정수 및 부동 소수점 계산을 어떻게 수행할 수 있습니까?
0.050
bash 스크립트에서 변수를 다시 할당하고 싶습니다(구체적으로는 씩 증가 ). 내가 작성한 다음 스크립트에서 는 i
(정수) 인덱스이고 mytime
10진수/이중/부동 소수점 숫자입니다. "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
, notVAR = value
또는VAR =value
입니다VAR= value
. 두 개 또는 세 개가 아닌 하나의 쉘 공백으로 구분된 토큰이어야 합니다. - 쉘은 그런 산술을 수행하지 않습니다. 정수 수학의 경우 다음과 같이 말할 수 있습니다.
VAR=$(($VAR+1))
또는 수많은 다른 방법(정수, 부동 소수점, 중위, 접미사, 접두사, 임의 정밀도 및 부엌 싱크대)에 대한 이 훌륭한 질문을 읽을 수 있습니다.bash 또는 사용 가능한 다른 언어에서 명령줄 정수 및 부동 소수점 계산을 어떻게 수행할 수 있나요?