Forum Programmation.shell Insérer une variable dans un lien sur shell

Posté par . Licence CC by-sa.
Tags : aucun
0
16
jan.
2019

Bonjour…

je veux créer un script pour télécharger un fichier bin oscam et le mettre dans usr/bin/oscam
chmod 755 /usr/bin/oscam machine vu+ solo4k system linux enigma2 OE 2.0

    #!/bin/sh

    HTTPSERV74="http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k"

    HTTPSERV75="http://oscam.dreamosat.net/index.php?action=downloadfile&filename=oscam-svn11466-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz&directory=1.20_TRUNK/arm_dm900-solo4k&"  

sed -ne '/border:/ p' $FreeServertmpa74 > $FreeServertmpb74
sed -i 's/<font color="Green" size="3"> svn//' $FreeServertmpb74 
sed -i 's|</font>||' $FreeServertmpb74 > 
variable = cp freeservrb74


cd /tmp
tar   xzvf   /tmp/*.tar.gz 
rm -f oscam.tar.gz > /dev/null 2>&1 
cat /tmp/o*  >> /usr/bin/oscam 
#cp /tmp/o* /usr/bin/oscam 
#mv /usr/bin/svn* /usr/bin/oscam

mais malheureusement le deuxieme lien change quand il ya une mise a jour
la seule variable c'est le numero de la version actuellement c'est "11466"
comme le deuxième lien l'indique j'ai pu extraire le numero de la version
a l'aide de la page source du premier lien dans un fihier qui s'appelle

freeservrb74 /tmp/freeservrb74
11466

ma question est la suivante :
comment faire pour ajouter une variable sur le lien de téléchargement si la variable correspond au numero de la version

freeservrb74= $variable  

HTTPSERV75="http://oscam.dreamosat.net/index.php?action=downloadfile&filename=oscam-svn'echo $variable'-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz&directory=1.20_TRUNK/arm_dm900-solo4k&"
  • # insérer une variable

    Posté par . Évalué à 3 (+2/-0). Dernière modification le 16/01/19 à 03:46.

    Bonjour

    Je n'ai peut-être pas bien compris le problème, mais au cas où,
    voilà comment j'assigne la valeur 11466 à la variable freeservrb74
    puis comment j'insère la variable freeservrb74 dans la chaîne de caractères
    que j'assigne à la variable HTTPSERV75

    michel@debg53sw:~$ freeservrb74=11466
    
    michel@debg53sw:~$ HTTPSERV75="http://oscam.dreamosat.net/index.php?action=downloadfile&filename=oscam-svn$freeservrb74-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz&directory=1.20_TRUNK/arm_dm900-solo4k&"
    
    michel@debg53sw:~$ echo $HTTPSERV75 
    http://oscam.dreamosat.net/index.php?action=downloadfile&filename=oscam-svn11466-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz&directory=1.20_TRUNK/arm_dm900-solo4k&
    
  • # Ou alors…

    Posté par . Évalué à 3 (+2/-0). Dernière modification le 16/01/19 à 22:59.

    En récupérant le nom du premier fichier à télécharger dans la page web :
    http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k

    et en l'assignant à la variable nomFichier :

    michel@debg53sw:~$ nomFichier=`wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | grep -Pom1 '.*?href="index.php\?action=downloadfile\&amp;filename=\K.*?(?=&amp)'`
    
    michel@debg53sw:~$ echo $nomFichier 
    oscam-svn11466-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz
    

    Pour ensuite insérer la variable nomFichier dans le texte du lien de téléchargement
    en assignant ce texte à la variable HTTPSERV75 :

    michel@debg53sw:~$ HTTPSERV75="http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&"
    
    michel@debg53sw:~$ echo $HTTPSERV75
    http://oscam.dreamosat.net/index.php?action=downloadfile&filename=oscam-svn11466-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz&directory=1.20_TRUNK/arm_dm900-solo4k&
    
  • # Finalement peut-être…

    Posté par . Évalué à 1 (+0/-0). Dernière modification le 16/01/19 à 23:02.

    En récupérant le nom du premier fichier à télécharger dans la page web :

    http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k
    

    et en l'assignant à la variable nomFichier,

    pour ensuite télécharger ce fichier et renommer le fichier extrait en /usr/bin/oscam

    nomFichier=`wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | grep -Pom1 '.*?href="index.php\?action=downloadfile\&amp;filename=\K.*?(?=&amp)'`
    
    wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /usr/bin/oscam
    
    • [^] # Re: Finalement peut-être…

      Posté par . Évalué à 1 (+0/-0). Dernière modification le 16/01/19 à 14:15.

      j ai utilisé ta commande mais j ai une erreurs comme l'image 'indique
      (freeservra74= contien tout la page source freeservra74=num de la version comme 11466)

      nomFichier=freeservra74
      nomFichier=`wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | grep -Pom1 '.*?href="index.php\?action=downloadfile\&amp;filename=\K.*?(?=&amp)'`
      
      wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /usr/bin/oscam
      
      cd /tmp
      

      https://i.imgur.com/6noCF1z.jpg

      • [^] # Re: Finalement peut-être…

        Posté par . Évalué à 1 (+0/-0). Dernière modification le 16/01/19 à 14:59.

        J'ai remplacé la commande grep par une commande sed,
        ce qui fait que, si l'environnement le permet,
        l'exécution successive des deux lignes de commandes suivantes
        devraient suffire pour créer ton nouveau fichier /usr/bin/oscam

        nomFichier=wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | sed -n '0,/.*downloadfile/s/.*filename=\(oscam-svn.*tar.gz\)&.*/\1/p'
        
        wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /usr/bin/oscam
        • [^] # Re: Finalement peut-être…

          Posté par . Évalué à 1 (+0/-0).

          Grrrr!!!!

          J'ai oublié deux caractères.

          Je reprends le message précédent en y apportant la correction :

          nomFichier=`wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | sed -n '0,/.*downloadfile/s/.*filename=\(oscam-svn.*tar.gz\)&.*/\1/p'`
          
          wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /usr/bin/oscam
          

          Désolé…

          • [^] # Re: Finalement peut-être…

            Posté par . Évalué à 1 (+0/-0). Dernière modification le 16/01/19 à 22:55.

            Il n'y a pas de quoi être désolé… on ne peut pas faire ce quand veux dans un clin d'ouiel

            erreur
            tar: invalid magic
            tar: short read

            https://i.imgur.com/JZN834P.png?1

            par contre si je met a la place de $nomFichier oscam-svn11469-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz
            le fihier oscam et ben sur /usr/bin avec chmood 755

            nomFichier=wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | sed -n '0,/.*downloadfile/s/.*filename=\(oscam-svn.*tar.gz\)&.*/\1/p'

            wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /usr/bin/oscam

            freeserverb=11469 (image*)

            la derniere vetsion oscam ce trouve a l'en tête de la page de telehargement
            hier c'est etait 11466 aujourd'hui c'est la version 11669

            image:
            https://i.imgur.com/UTshvJu.png?1
            https://i.imgur.com/nekmk6w.png?1
            https://ia800702.us.archive.org/26/items/dreamosat/FreeServer.txt

            • [^] # Re: Finalement peut-être…

              Posté par . Évalué à 1 (+0/-0). Dernière modification le 17/01/19 à 01:41.

              tu peut faire ça comme test

              nomFichier=wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | sed -n '0,/.*downloadfile/s/.*filename=\(oscam-svn.*tar.gz\)&.*/\1/p'
              
              wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /tmp/oscam
              

              https://i.imgur.com/jr8bxlX.png?1

              • [^] # Re: Finalement peut-être…

                Posté par . Évalué à 1 (+0/-0). Dernière modification le 17/01/19 à 17:15.

                J'ai trouvé la solution à mon probleme !!..

                freeservra74 contient tout la page source du premier lien
                freeservrb74 contient juste le numéro de la dernière version oscam extrait de fichier freeserera74 avec la commande sed ( le numéro de la derniere version oscam ce trouve a l'en tête de la page de telehargement )

                cd /tmp
                freeservrb74=/tmp/freeservrb74

                wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=oscam-svn$(<freeservrb74)-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /usr/bin/oscam

                a=$(<freeservrb74) actuellement a=11471

                une autre question comment faire pour que le fichier freeservrb74 contient la derniere version oscam comme ça par exemple :
                freeservrb74 :
                oscam-svn11471-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz

                • [^] # Re: Finalement peut-être…

                  Posté par . Évalué à 1 (+0/-0). Dernière modification le 18/01/19 à 02:23.

                  c'est bizarre ca ne fonctionne pas !!!..
                  après plusieurs essaies je n'arrive pas a comprendre comment j'ai obtenu un resultat
                  avec succès par cette commmande

                  cd /tmp
                  freeservra74=/tmp/freeservrb74 (freeservra74 contient tout la page source freeservrb74 contient juste le numéro de la version oscam)

                  wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=oscam-svn$(<freeservrb74)-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /usr/bin/oscam
                  comment faire si le fichier teleharger aix on archive zip

                  ...solo4k&" | unzip .zip* > /usr/bin/oscam
                  ca ne fontionne pas.

                  • [^] # Re: Finalement peut-être…

                    Posté par . Évalué à 1 (+0/-0). Dernière modification le 18/01/19 à 04:06.

                    J'ai réussie avec la commande cat

                    cd /tmp
                    freeservra74=freeservrb73

                    wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=ncam-(<freeservrb73).cortexa9hf-vfp-neon.zip&directory=1.20_NCAM-EMU/arm_dm900-solo4k&" > /tmp/ncam.zip
                    unzip /tmp/ncam.zip -d /tmp | cat /tmp/ncam.cortexa9hf* > /usr/bin/ncam
                    chmod 755 /usr/bin/ncam

                    • [^] # Re: Finalement peut-être…

                      Posté par . Évalué à 1 (+0/-0).

                      mais le fichier copier avec cat contient des erreurs il n'est pas complet

                      • [^] # Re: Finalement peut-être…

                        Posté par . Évalué à 2 (+0/-0).

                        parce que le | entre unzip et cat passe la sortie du premier sur le 2e

                        ta commande devrait etre un enchainement basique suivant :

                        wget xxxxx -O /tmp/oscam-new.zip
                        unzip /tmp/oscam-new.zip
                        cp oscam-new.sh /usr/bin/oscam

                        l'option -O doit permettre à wget de connaitre le nom que tu veux utiliser comme nom de sortie

                        • [^] # Re: Finalement peut-être…

                          Posté par . Évalué à 1 (+0/-0).

                          J'ai une erreur avec cette commande par ce que le non du fihier et :
                          ncam.cortexa9hf-fp-neon-82

                          wget xxxxx -O > /tmp/oscam-new.zip
                          root@vusolo4k:/tmp# unzip /tmp/oscam-new.zip
                          inflating: ncam.cortexa9hf-fp-neon-82
                          root@vusolo4k:/tmp#

                          • [^] # Re: Finalement peut-être…

                            Posté par . Évalué à 1 (+0/-0). Dernière modification le 18/01/19 à 21:09.

                            j'ai réussi avec cette commande

                            
                            wget xxxxx -O > /tmp/ncam.cor.zip 
                            unzip /tmp/ncam.cor.zip 
                            cat /tmp/ncam.cortexa9hf* > /usr/bin/ncam
                            
          • [^] # Re: Finalement peut-être…

            Posté par . Évalué à 1 (+0/-0). Dernière modification le 19/01/19 à 15:27.

            J'ai une erreur de script

            tar: invalid magic
            tar: short read

            des fois ça marche des fois ça marche pas mait sur Telnet seulement

                nomFichier=`wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | sed -n '0,/.*downloadfile/s/.*filename=\(oscam-svn.*tar.gz\)&.*/\1/p'`
            
            wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /usr/bin/oscam

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.