我正在尝试编写一个 BASH 脚本,用 cURL 下载一些播客的成绩单。所有转录文件的名称仅相差三位数:filename[three-digits].txt
filename001.txtfilename440.txt。我将三位数作为数字存储在变量中,并在 while 循环中递增变量。如何在不丢失前导零的情况下增加数字?
#!/bin/bash
clear
# [...] code for handling storage
episode=001
last=440
secnow_transcript_url="https://www.grc.com/sn/sn-"
last_token=".txt"
while [ $episode -le $last ]; do
curl -X GET $secnow_transcript_url$episode$last_token > # storage location
episode=$[$episode+001];
sleep 60 # Don't stress the server too much!
done
Run Code Online (Sandbox Code Playgroud)
我搜索了很多并发现了其他人的好方法,这确实解决了我的问题,但出于好奇,我很想知道是否有解决我的问题的方法可以保持 while 循环,尽管 for 循环更适合在首先,因为我知道范围,但总有一天,我需要一个 while 循环!:-)
#!/bin/bash
for episode in $(seq -w 01 05); do
curl -X GET $secnow_transcript_url$episode$last_token > # ...
done …Run Code Online (Sandbox Code Playgroud) 为什么.next()返回7而不是8,就像我预期的那样?
List<Integer> intList = new ArrayList<>();
IntStream.range(0, 10)
.forEach(i -> intList.add(i));
int value = intList.stream()
.filter(number -> number == 7)
.iterator()
.next(); // returns 7, not 8.
Run Code Online (Sandbox Code Playgroud)