Chaîne contient une *

Résolu
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   -  
Lapourax Messages postés 3014 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 ! =)
A voir également:

4 réponses

snipp Messages postés 75 Date d'inscription   Statut Membre Dernière intervention   17
 
Salutations,

* est repris comme une wildcard.

voir : https://fr.wikipedia.org/wiki/M%C3%A9tacaract%C3%A8re

* représente un ou plusieur caractère.
1
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
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
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   334
 
Ok merci à vous deux ! J'ai pu bidouiller pour faire ceque j'avais à faire autrement du coup =)
Encore merci et à bientôt !
0
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   334
 
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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Salut,

$ echo ${var}
/home/toto/rep/exemple

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