我知道如何在bash中做一个每次增加1的循环,但是说我的范围是1到773,我想从循环中输出一个范围,这样我在每次迭代中得到两个变量.第一个将是1,第二个将是19.在第二次迭代中,第一个将是20,第二个是39.
我一直在玩类似的东西:
for start in {1..773} do start=$(($start+20)) end=$(($start+20)) echo $start ## echo $end done
期望的循环结果:
1. $start = 1 and $end = 19 2. $start = 20 and $end = 39 3. $start = 40 and $end = 59 etc
但这不对.我想将这两个变量输出到一系列脚本以使R运行得更快,所以如果非bash(例如awk)解决方案更容易,那么如果简单的>那也很酷.将它发送给它.
谢谢!
如果要在773范围内打印范围,可以这样做
#!env bash start=1 end=19 for counter in {1..773} do echo $counter. "\$start = " $start " and \$end = " $end if [[ $start -eq 1 ]]; then start=0 fi start=$(($start+20)) end=$(($end+20)) if [[ $end -ge 773 ]]; then break fi done
产量
1. $start = 1 and $end = 19 2. $start = 20 and $end = 39 3. $start = 40 and $end = 59 4. $start = 60 and $end = 79 5. $start = 80 and $end = 99 6. $start = 100 and $end = 119 7. $start = 120 and $end = 139 8. $start = 140 and $end = 159 9. $start = 160 and $end = 179 10. $start = 180 and $end = 199 11. $start = 200 and $end = 219 12. $start = 220 and $end = 239 13. $start = 240 and $end = 259 14. $start = 260 and $end = 279 15. $start = 280 and $end = 299 16. $start = 300 and $end = 319 17. $start = 320 and $end = 339 18. $start = 340 and $end = 359 19. $start = 360 and $end = 379 20. $start = 380 and $end = 399 21. $start = 400 and $end = 419 22. $start = 420 and $end = 439 23. $start = 440 and $end = 459 24. $start = 460 and $end = 479 25. $start = 480 and $end = 499 26. $start = 500 and $end = 519 27. $start = 520 and $end = 539 28. $start = 540 and $end = 559 29. $start = 560 and $end = 579 30. $start = 580 and $end = 599 31. $start = 600 and $end = 619 32. $start = 620 and $end = 639 33. $start = 640 and $end = 659 34. $start = 660 and $end = 679 35. $start = 680 and $end = 699 36. $start = 700 and $end = 719 37. $start = 720 and $end = 739 38. $start = 740 and $end = 759