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

相关内容