[bash] boucle wget

Bonjour

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

  1. j'ai remplacé par : let i=$((i++))
    ca a l'air de faire le taff

    Merci à tous !
    0
    1. J'ai l'erreur :

      ./test.sh: ligne 3: erreur de syntaxe près du symbole inattendu « $'\r' »
      '/test.sh: ligne 3: `((i++))
      0
      1. 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 "
        0
        1. Contributeur
          #!/bin/bash./
          i=1; while read -p "ID:" var && [[ -n $var ]];
          do mkdir dossier$i;
          wget -i http://url/$var;
          ((i++))
          done
          0
      2. Contributeur
        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 que
        wget
        ;-)

        $ 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



        ;-))

        0
        1. Merci pour ton aide gnu je testerais ca soir
          0
          1. 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
            0
            1. 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.
              0
          2. 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
            0
            1. Contributeur
              hello
              exemple de boucle, on termine avec une réponse vide
              i=1; while read -p "ENTRER le sufixe de l'URL : " var && [[ -n "$var" ]]; do wget -O fichier$((i++)) http:/xxx/$var; done
              0
              1. 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
                0