sh 스크립트의 sleep 및 매개변수에서 오류가 발생했습니다. [닫기]

sh 스크립트의 sleep 및 매개변수에서 오류가 발생했습니다. [닫기]

나는 이런 일을하고있다

#!/bin/bash
END=3
time_w = 1
for ((i=1;i<=END;i++)); do
    # do something
    sleep time_w
done

하지만 난 얻었어

sleep: invalid time interval ‘time_w’

답변1

두 가지 실수를 저질렀습니다.

  • 에서는 bash변수 선언 주위에 공백이 없어야 하므로 =선언은 다음과 같아야 합니다.

    time_w=1
    
  • 명령에서는 변수 자체가 아닌 변수 sleep time_w의 값을 가져와야 합니다 .time_w"$time_w"

    sleep "$time_w"        
    

답변2

를 사용해야 합니다 . 변수가 산술식( ) 안에 없으면 변수 앞에 붙여야 $time_w합니다 .$bash((...))

#!/bin/bash
END=3
time_w=1
for ((i=1;i<=END;i++)); do
    # do something
    echo "$i sleeping for $time_w"
    sleep "$time_w"
done

관련 정보