我有一个文本文件,其中包含curl调用。它们之间都用换行符隔开,这在逐行读取文件时有帮助。我的问题是我不确定如何触发curl调用执行。现在,它的行为是像打印另一个字符串一样在屏幕上打印?

data.txt的示例:

curl -X GET "https://www.google.com"
curl -X GET "https://www.facebook.com"

我的剧本:
#!/bin/sh
IFS=$'\n'
while read -r line
do
    echo $line
    makingCurlCall=$(echo "$line")
    echo "$makingCurlCall"
done < "data.txt"

它只会提供行的输出,而不会实际进行curl调用。

输出:
curl -X GET "https://www.google.com"
curl -X GET "https://www.google.com"
curl -X GET "https://www.facebook.com"
curl -X GET "https://www.facebook.com"

最佳答案

您没有执行从输入文件读取的行中包含的curl命令。您可以通过更改以下行来做到这一点:

makingCurlCall=$(echo "$line") => this simply displays the command and not execute it


makingCurlCall=$(eval "$line")

要么
makingCurlCall=$("$line")

如果字符串中包含的命令具有任何需要由 shell 程序解释的元字符,则eval更合适。例如,><$

关于linux - 执行从文件读取的curl命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41688381/

10-16 20:25