我正在做这样的事情
#!/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