Chaîne contient une *

Résolu
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. Contributeur
    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 ?
    1. Contributeur
      Salut,

      $ echo ${var}
      /home/toto/rep/exemple
      
      $ echo ${var%/*}
      /home/toto/rep
      
    2. Contributeur
      Sa marche super =)
      Merci !
  2. Contributeur
    Ok merci à vous deux ! J'ai pu bidouiller pour faire ceque j'avais à faire autrement du coup =)
    Encore merci et à bientôt !
    1. Modérateur
      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