我希望运行一个命令(例如ls -lrt)49次,并且每次运行前20毫秒。我在bash文件中写的是:
for i in `seq 1 49`;
do
v=6.$((i*20)
sleep $v && ls -lrt
done
但它显然没有区分像i等于4的情况和i等于40的情况,因为两者都导致v = 6.8。我需要的是等待6.080为i = 4和6.800为i = 40。
答案 0 :(得分:2)
您可以使用printf
格式化数字:
printf -v v '6.%03d' $((i*20))
-v v
指定变量$v
应保存结果。
答案 1 :(得分:1)
v=$(echo "scale=2;6+$i*0.02"|bc)
如果结果大于7
,这将继续增加,但在49
之前不会发生。但我个人认为它比字符串连接更好。