IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Imposer un caractère dans une variable url après vérification


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2021
    Messages : 13
    Par défaut Imposer un caractère dans une variable url après vérification
    Bonjour,
    j'ai une variable $1 qui est un argument passé pendant l'exécution de mon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #./script.sh <a href="http://www.url.com" target="_blank">www.url.com</a> /
    je dois vérifier que $ est sous forme http ou https :// fqdn
    j'utilise une regex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if [[ "$1" =~ ^(http|https)://[a-z0-9\/]+* ]];then
    .

    j'aimerais imposer un "/" à la fin de $ = (url)
    j'ai tenté d'écrire ma regex différente manière notamment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if [[ "$1" =~ ^(http|https)://[a-z0-9\/]+* \/]];then
    ca ne marche pas auriez vous une idée ?

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    Salut,

    tu as des caractères inutiles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^(http|https)://[a-z0-9/]+
    pas besoin du * car tu utilises + et pas besoin d’échapper /

    EDIT : et tu ne prends pas en compte les . !!!
    il détecte juste que le début est vrai, tu veux tester toute l'expression pas simplement une partie, il faut utiliser $
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^(http|https)://[a-z0-9/.]+/$

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    "l'imposer", ça veut dire quoi ? Tu ajoutes toi-même l'oblique ? Ou alors tu rejettes un utilisateur qui n'a pas mis l'oblique ?

    Ensuite, si tu tapes la commande comme elle est dans le commentaire, cela ne marchera pas. Le premier argument ne sera même pas <a, car il sera pris pour une redirection. Il va falloir protéger tout ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./script.sh '<a href="http://www.url.com" target="_blank">www.url.com</a> /'
    Donc interdiction de mettre une apostrophe ' entre les 'simple quotes' de protection.

    Enfin, une proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ if [[ $1 =~ ^.*http(:|s:).* ]];then echo OK;fi
    OK

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2021
    Messages : 13
    Par défaut
    Bonjour merci pour vos réponses
    Non je veux que l'oblique soit mise à la fin
    Ma variable $1 est "l'argument" + Un composant numérique est généré le tout doit obligatoirement finir avec un ""/""
    le tout étant une URL => "$1=l'argument+code generé/"
    j'aimerais checker $1 pourqu'elle soit verifier comme cela: (http:// ou https :// fqdn + composant numerique et / à la fin )

  5. #5
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Ah! Au temps pour moi. J'avais oublié l'oblique de fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if [[ $1 =~ ^.*http(:|s:)//[^\ ]*/$ ]];then echo OK;fi

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2021
    Messages : 13
    Par défaut Merci
    Donc la [^\ ] impose le /finale ? Ou le */$?
    Je veux continuer le traitement de la variable
    Et mettre un écho si c'est pas bon

  7. #7
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    [^\ ] : Tout caractère autre qu'un espace
    [^\ ]* :Suite de caractère ne contenant pas d'espace
    /$ : Le dernier caractère est /

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 04/04/2011, 11h04
  2. recuperation un certain nombre de caractere dans une variable
    Par vince2005 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 22/12/2010, 15h12
  3. [MySQL] Récupérer une chaine de caractere dans une variable
    Par Mais.Ouais dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 26/05/2009, 11h41
  4. caractere "<" dans une variable
    Par libuma dans le forum Langage
    Réponses: 13
    Dernier message: 04/06/2008, 21h55
  5. stocker chaîne de caracteres dans une variable
    Par coachbob44 dans le forum Langage
    Réponses: 2
    Dernier message: 11/01/2007, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo