首页 > 解决方案 > 如何在变量中插入多个值并通过 CURL 为每个值发出请求?

问题描述

我是sh新手,如果这是一个非常愚蠢的问题,我深表歉意。我正在尝试开发一个脚本来与 SMS 发送 API 进行通信。

代码如下:

#!/bin/bash
TEXTO='MENSAGEM'
NUM="41999999999"
url="https://api.smsdev.com.br/v1/send?key=KEY&type=9&number"

curl -G --data-urlencode "msg=$TEXTO" --request GET --url "$url=$NUM"

参数(NUM)中只有一个数字,它可以正常工作。但是我想插入更多数字。API 每次请求只接受一个数字,是否可以让脚本为每个数字发出请求?

非常感谢您!:)

标签: bashvariablescurlsh

解决方案


假设您想向多个号码发送相同的消息,您可以这样做:

#!/bin/bash
TEXTO="MENSAGEM"
URL="https://api.smsdev.com.br/v1/send?key=KEY&type=9&number"
NUMBERS=("41999999999", "1234567890", "84737562823")

for number in "${NUMBERS[@]}"; do
    curl -G --data-urlencode "msg=$TEXTO" --request GET --url "$URL=$number"
done

推荐阅读