我有一个文本文件,其中包含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/