Puncte:0

Cum pot face un script bash care citește o linie după fiecare solicitare http

drapel ng

Am 700 de linii (șir) și mă întrebam cum pot face un script bash care trimite o solicitare HTTP folosind răsuci când rulează prima dată astfel încât va trimite prima cerere cu prima linie, apoi când trimite a doua cerere va folosi a doua linie, a treia cerere, va folosi a treia linie, ..., a 700-a cerere va folosi utilizați a 700-a linie apoi repetați.

De asemenea, ce crezi că este mai bun? Folosind un .csv fișier din care să citească șirurile, de exemplu:

în timp ce IFS=, citiți exemplul -r
do
   ...
terminat < filename.csv

Sau folosind o buclă for în interiorul scriptului, de exemplu:

arr=( "șir1" "șir2" "șir3" .."șir700" )
pentru i în „${arr[@]}”
do
  eco $i
Terminat
Tilman avatar
drapel cn
Vă rugăm să clarificați cum arată fișierul dvs. Este o adresă URL pe rând, după cum spune textul dvs. sau este separată prin virgulă, după cum pare să sugereze fragmentul dvs. de script.
waltinator avatar
drapel it
Ubuntu 14.04 a depășit data de sfârșit de viață și nu mai este acceptat pe AskUbuntu.
drapel in
De ce este etichetat PHP? Această întrebare pare să dorească un script bash mai degrabă decât un script PHP
Abdalaziz Alharthi avatar
drapel ng
@Tilman este lista de agenți de utilizator: https://gist.github.com/pzb/b4b6f57144aea7827ae4, dar voi salva fișierul cu extensia csv, da, este o singură adresă URL.
Abdalaziz Alharthi avatar
drapel ng
@bac0n, așa că ar trebui să folosesc mai întâi: while IFS=, citiți exemplul -r do FileName="2021-03-13-data_export.csv" Linii=$(cat $FileName)
Tilman avatar
drapel cn
Deci, fișierul text nu conține deloc URL-uri, ci șiruri User-Agent. Și nu este deloc separat prin virgulă, chiar dacă îi dați extensia `.csv`. `IFS=,` nu are sens dacă fișierul nu este cu adevărat separat prin virgulă. Dar văd că ai un răspuns valid, așa că mă opresc aici.
Abdalaziz Alharthi avatar
drapel ng
Multumesc mult @Tilman
Puncte:2
drapel cn

Dacă doriți să faceți bucla listă furnizat în comentariu, un fișier separat de linie nouă va funcționa bine ca user-agenti nu va conține nicio linie nouă.

#!/bin/bash

mapfile -t < user-agents.txt
in timp ce :; do
    pentru agent în „${MAPFILE[@]}”; do
        curl -A „$agent” http://localhost/
        somn 0,2
    Terminat
Terminat

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.