我想在我的 shell 脚本中创建等待语法,直到完成其他操作。
我想让它尽可能灵活,这样如果我再次需要它做其他事情,我只需要更改数字即可。
到目前为止我所得到的是:
#! /bin/sh
for i in $(seq 1 20); do sleep 0.2; [ $i = 19 ] && echo "19" || echo $i; done
我的目标结果应该是这样的:
for i=0 iStart=1 iEnd=20 iGoal=19 iDuration=2 in $(seq $iStart $iEnd); do sleep $(echo "scale=3; $iDuration / $iEnd" | bc ); [ $i = $iGoal ] && echo "${iGoal} !!!" || echo $i; done
问题我有/描述:
也许我也可以将计算放在初始定义中以获得一点性能增益,但我不太关心 atm。
您可以将变量赋值放在命令的开头。
iStart=1 iEnd=20 iGoal=19 iDuration=2 iSleep=$(bc <<<"scale = 3; "$iDuration" / ("$iEnd" - "$iStart" - 1)" \
for i in $(seq "$iStart" "$iEnd"); do
sleep "$iSleep"
[ "$i" = "$iGoal" ] && echo "$iGoal" || echo "$i"
done