bash 스크립트에서 변수 재할당(구체적으로 증분)

bash 스크립트에서 변수 재할당(구체적으로 증분)

가능한 중복:
bash 또는 사용 가능한 다른 언어에서 명령줄 정수 및 부동 소수점 계산을 어떻게 수행할 수 있습니까?

0.050bash 스크립트에서 변수를 다시 할당하고 싶습니다(구체적으로는 씩 증가 ). 내가 작성한 다음 스크립트에서 는 i(정수) 인덱스이고 mytime10진수/이중/부동 소수점 숫자입니다. "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

두 가지 문제:

  1. 공백을 사용하지 마십시오. 할당은 VAR=value, not VAR = value또는 VAR =value입니다 VAR= value. 두 개 또는 세 개가 아닌 하나의 쉘 공백으로 구분된 토큰이어야 합니다.
  2. 쉘은 그런 산술을 수행하지 않습니다. 정수 수학의 경우 다음과 같이 말할 수 있습니다. VAR=$(($VAR+1))또는 수많은 다른 방법(정수, 부동 소수점, 중위, 접미사, 접두사, 임의 정밀도 및 부엌 싱크대)에 대한 이 훌륭한 질문을 읽을 수 있습니다.bash 또는 사용 가능한 다른 언어에서 명령줄 정수 및 부동 소수점 계산을 어떻게 수행할 수 있나요?

관련 정보