【问题标题】:problem with bash script for loop with rest apibash脚本与rest api的循环问题
【发布时间】:2023-01-20 08:26:15
【问题描述】:

我正在尝试编写一个 bash 循环以使用 cURL 检索一系列数字,但我无法理解如何执行此操作。下面的代码是我如何尝试检索 pi 的前百万位数字的示例,其中 API 一次只能接受 1000 位数字。

for i in {0..1000000..1000}
    do
    curl 'https://api.pi.delivery/v1/pi?start=$i&numberOfDigits=1000'
    echo $i
    done

此外,我想将返回值写入一个名为 pi.txt 的文件,而不是在终端中显示它们。我应该在终端还是在脚本中使用 >>pi.txt 命令?有人可以帮我更正这个 bash 脚本吗?

我遇到的另一个问题是,当我的范围值更高时,例如第一个十亿而不是百万,我得到一个“无效请求:开始”如何解决这个问题

我尝试了一些帮助,但仍然出错

【问题讨论】:

    标签: bash shell


    【解决方案1】:

    试试这个:

    #!/bin/bash
    
    FILE_PATH="path/to/pi.txt"
    
    for i in {0..1000000..1000}
    do
        curl 'https://api.pi.delivery/v1/pi?start='"$i"'&numberOfDigits=1000'
        echo $i
    done > $FILE_PATH
    

    当您在字符串周围使用单引号时,它会保留其文字值,与双引号的区别在于对字符 $ 的例外。

    这个post对这件事的描述比较深入,参考了Bash手册。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      • 1970-01-01
      • 2018-08-01
      相关资源
      最近更新 更多