Chaîne contient une *

Résolu
Lapourax Messages postés 2970 Date d'inscription   Statut Contributeur Dernière intervention   -  
Lapourax Messages postés 2970 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut !

Je fais du script shel et je cherche à savoir comment déterminer si une chaîne de caractères contient une *

Pour remettre dans le contexte, ma chaîne contient un path de dossier

je dois tester si le dossier existe mais si 'ai une * ( ex /home/* ) le test me renvoie une erreur et sa même si un dossier ( pour garder mon exemple /home/root ) existe

Et vu que * est un caractère un peu spécial je me demande comment gérer sa...

Merci d'avance ! =)

--
Cordialement,
Lapourax ;)

4 réponses

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    Et par conséquent sous les shell bash-like (liste non exhaustive), un nom de fichier ou de répertoire contenant un joker '*' ou '*' doit être protégé:
    johand@osiris: ~/tmp $ cd joker/
    johand@osiris: ~/tmp/joker $ touch brol
    johand@osiris: ~/tmp/joker $ touch 'truc*1'
    johand@osiris: ~/tmp/joker $ ls -l
    total 0
    -rw-r--r-- 1 johand johand 0 mai 21 16:12 brol
    -rw-r--r-- 1 johand johand 0 mai 21 16:13 truc*1
    johand@osiris: ~/tmp/joker $ ls -l *\**
    -rw-r--r-- 1 johand johand 0 mai 21 16:13 truc*1

    1
  2. Lapourax Messages postés 2970 Date d'inscription   Statut Contributeur Dernière intervention   336
     
    Ok merci à vous deux ! J'ai pu bidouiller pour faire ceque j'avais à faire autrement du coup =)
    Encore merci et à bientôt !
    0
  3. Lapourax Messages postés 2970 Date d'inscription   Statut Contributeur Dernière intervention   336
     
    Par contre du coup j'ai un autre problème !
    Sa doit être tout con mais je dois couper ma variable (toujours le path) pour obtenir le dossier parent (supprimer le dernier /exemple)

    jai essayé avec cut mais vu que le dosser à un nom variable sa marche pas à tous les coups
    sa doit se faire avec awk non ?
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

      $ echo ${var}
      /home/toto/rep/exemple
      
      $ echo ${var%/*}
      /home/toto/rep
      
      0
    2. Lapourax Messages postés 2970 Date d'inscription   Statut Contributeur Dernière intervention   336
       
      Sa marche super =)
      Merci !
      0