LINUX.ORG.RU

Bash script

 ,


0

4

Добрый день.

Появилась следующая необходимость:

Есть команда обращения на API http://host:port/command('sessionID','ХХХ','20',?init status) при запуске данной команды через curl обращение производится к ХХХ и она принимает значение 20

curl 'http://host:port/command('sessionID','ХХХ','20',?init status)' мне необходимо, чтоб переменная ХХХ бралась построчно с txt файла и выполнялась вышеуказанная команда.

Пример в файле ХХХ.txt следующие значения:

1259
2658
7859

Нужна автоматическая подстановка и выполнение последовательно

curl 'http://host:port/command('sessionID','1259','20',?init status)'
curl 'http://host:port/command('sessionID','2658','20',?init status)'
curl 'http://host:port/command('sessionID','7859','20',?init status)'

Буду благодарен за помощь.

Могу на питоне накидать недорого Но сначала надо LORCODE

Goury ★★★★★ ()
Последнее исправление: Goury (всего исправлений: 1)
$ cat file.1 curl.sh
 123
345
567 

777
#!/bin/sh
File="./file.1"

[ -f "$File" ] || echo "No such file: $File"

while read line
do
var=$(echo "$line" | tr -d '[[:space:]]')
[ -z "$var" ] && continue
curl http://192.168.5.1:80/command\(\'sessionID\',\'"$var"\',\'20\',?init status\)
done < "$File"
nerve ★★ ()
Ответ на: комментарий от dexpl

Dexpl, большое спасибо за помощь. Скриптик работает как часики. Только есть 1 нюанс, он выполняет эти команды последовательно, можно ли выставить ограничение на количество команд в секунду?

Binster ()
Ответ на: комментарий от Binster

можно ли выставить ограничение на количество команд в секунду?

Замени xargs -I % на xargs -I % -P нужное_число — получишь не больше, чем нужное_число процессов с секунду.

dexpl ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.