@maksachve

Как сделать перебор bash массива?

Здравствуйте. У меня есть код в bash для пересылки(Рассылки) сообщений через бота Telegram api, на данный момент я вношу в переменные ID чатов и вписываю несколько curl telegram api и переменную каждого ID чата.

Как мне сделать следующее:

1. ID пользователей в отдельном файле, как массив данных
2. Одна команда curl к api Телеграмм, с перебором ID пользователей из массива

Код сейчас:
646aa8e5315d6939923813.jpeg
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 2
i229194964
@i229194964
Веб разработчик
#!/bin/bash

# Определение массива ID пользователей из файла
mapfile -t chat_ids < users.txt

# Перебор ID пользователей
for chat_id in "${chat_ids[@]}"; do
    # Выполнение команды curl с использованием текущего ID чата
    curl -X POST -H "Content-Type: application/json" -d '{"chat_id": "'"${chat_id}"'", "text": "Ваше сообщение"}' https://api.telegram.org/bot<YOUR_BOT_TOKEN>/sendMessage
done
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
Как же это ужасно вставлять код картинкой, а не текстом. Ни выделить, ни вставить...

В вашем случае можно просто перечислить айдишники через пробел:

CHATS="123 234 345 567"
for ID in $CHATS; do
   echo $ID
done


Или даже так
for ID in 123 234 345 456; do
   echo $ID
done
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы