[bash] boucle wget
Laurane85
Messages postés
7
Statut
Membre
-
Laurane85 Messages postés 7 Statut Membre -
Laurane85 Messages postés 7 Statut Membre -
Bonjour
J'ai fait un script qui permet de télécharger un fichier via une variable $var en faisant
Cela fonctionne bien mais je voudrais améliorer le truc en permettant de rentrer plusieurs fois un suffixe pour télécharger a la suite et mettre le premier suffixe télechargé dans le dossier caca/, le second suffixe dans un dossier caca2/ etc
Et en disant au bout d'un certain nombre de téléchargements de dire STOP pour que le script fasse le travail
Quelqu'un aurait une idée?
Merci de votre aide
J'ai fait un script qui permet de télécharger un fichier via une variable $var en faisant
#!/bin/bash echo -e "ENTRER le sufixe de l'URL : " read var wget -i [http://127.0.0.1/]$var mkdir caca mv $var caca/
Cela fonctionne bien mais je voudrais améliorer le truc en permettant de rentrer plusieurs fois un suffixe pour télécharger a la suite et mettre le premier suffixe télechargé dans le dossier caca/, le second suffixe dans un dossier caca2/ etc
Et en disant au bout d'un certain nombre de téléchargements de dire STOP pour que le script fasse le travail
Quelqu'un aurait une idée?
Merci de votre aide
10 réponses
-
Bonjour,
Il me paraît plus simple d'utiliser l'option -O pour dire à wget où écrire le fichier une fois le répertoire de destination créé.
Ensuite pour répondre à ton problème, il suffit d'écrire un script shell capable de lire n paramètres d'entrées :
https://forums.commentcamarche.net/forum/affich-37619992-bash-les-arguments-parametres
Bonne chance -
Ok merci pour ta réponse
Pour le wget -O pas de problème par contre pour la boucle je galère si vous avez une idée je suis preneur -
hello
exemple de boucle, on termine avec une réponse videi=1; while read -p "ENTRER le sufixe de l'URL : " var && [[ -n "$var" ]]; do wget -O fichier$((i++)) http:/xxx/$var; done
-
ou encore :
#!/bin/bash
while [ "$#" -gt 0 ];do echo "wget http://$1"; shift; done
$./sc.sh placard maison singe
wget http://placard
wget http://maison
wget http://singe -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci pour l'aide les gars
Mais comment je peux intégrer une boucle sur la creation de plusieurs dossiers après avoir telecharger mes fichiers des differentes urls
Exemple : fichier1 telechargé va dans le dossier1
Fichier dans dossier2
Etc
Merci pour l'aide-
En reprenant le code de dubcek et en ajoutant un mkdir dossier
i=1;
while read -p "ENTRER le suffixe de l'URL : " var && [[ -n "$var" ]];
do
mkdir dossier$i
wget -O dossier$i/fichier$i "http:/xxx/$var"
i=$((i++))
done
Problèmes éventuels : les téléchargements vont s'effectuer un à un, l'un après l'autre ; pas de test si problème de création du dossier et/ou du fichier, rien de prévu si le wget échoue ; etc.
-
-
-
Salut,
Parfois il existe des outils tout en un, il suffit juste de se pencher dans les pages de man.cURL
peut faire bien mieux quewget
;-)
$ ls
$ curl -n ftp://xxxxxx.fr/Test/[1-3].png --create-dirs -o "rep#1/#1.png"
[1/3]: ftp://xxxxxx.fr/Test/1.png --> rep1/1.png
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 209k 100 209k 0 0 507k 0 --:--:-- --:--:-- --:--:-- 506k
[2/3]: ftp://xxxxxx.fr/Test/2.png --> rep2/2.png
100 124k 100 124k 0 0 342k 0 --:--:-- --:--:-- --:--:-- 342k
[3/3]: ftp://xxxxxx.fr/Test/3.png --> rep3/3.png
100 202k 100 202k 0 0 500k 0 --:--:-- --:--:-- --:--:-- 500k
$ tree
.
|-- rep1
| `-- 1.png
|-- rep2
| `-- 2.png
`-- rep3
`-- 3.png
3 directories, 3 files
;-))
-
malgré ton script gnu- j'ai toujours pas réussi.
#!/bin/bash./
i=1; while read -p ID: var && [[ -n $var ]]; do mkdir dossier$i; wget -i http://url/$var; i=$((i++))
done
Au bout du second téléchargement j'ai le message :
") erreur de syntaxe : opérateur arithmétique non valable (le symbole erroné est " -
J'ai l'erreur :
./test.sh: ligne 3: erreur de syntaxe près du symbole inattendu « $'\r' »
'/test.sh: ligne 3: `((i++)) -
j'ai remplacé par : let i=$((i++))
ca a l'air de faire le taff
Merci à tous !