Postez ici vos trucs & astuces.
Répondre

ZSH et les caractères génériques dans vos commandes

#1Messageil y a 1 an

Quand vous installez le shell Unix ZSH, il tient compte des caractères génériques pour chercher une correspondance et met l'erreur suivante s’il ne trouve pas de correspondance :

zsh: no matches found: 
.
Ce n'est pas un problème si vous n'utilisez pas de caractères génériques dans vos commandes, mais ça le devient si vous le faites.
Vous n'aviez pas cette erreur avec BASH car lui, est configuré pour transmettre les caractères génériques d'une commande telle quelle s’il ne trouve pas de correspondance.
Pour résoudre ce problème insérez une des deux lignes suivantes à votre .zshrc :

setopt no_nomatch
ou

setopt nonomatch
Dernière modification par ignace72il y a 1 an, modifié au total 3 fois.

ZSH et les caractères génériques dans vos commandes

#2Messageil y a 1 an

Tu aimes la difficulté toi.!!
ZSH est compatible a 99% au BASH.
Donc essaye la solution que je te proposerai pour le BASH.
Mais pas sur que cela fonctionnera.

Dans ton terminal tu frappes le commande 'shopt' et là, tu dois avoir une variable 'extglob' qui sert a la désactivation du développement des noms de fichiers.
Donc, 'extglob' doit être sur 'ON'.
Si elle est sur 'OFF', lance la commande 'shopt -s extglob'.

Si non, 'man zsh'.

ZSH et les caractères génériques dans vos commandes

#3Messageil y a 1 an

Bonjour, fifi19.
Comment ça, j'aime la difficulté ?
Quand j'utilise un logiciel, je veux qu'il fonctionne comme j'ai envie. S’il n'en est pas capable, je ne l'utilise pas.
Là, pour ZSH, il y a cette option que j'ai décrit qui fonctionne.
C'est simple et efficace.
Je ne vois pas où est le problème.
Ignace.

ZSH et les caractères génériques dans vos commandes

#4Messageil y a 1 an

Salut,
fifi19 a écrit : il y a 1 an ZSH est compatible a 99% au BASH.
Dans ce cas précis, il ne l'est pas, du moins pas avec les options par défaut.
D'après une discussion trouvée ici : https://stackoverflow.com/questions/200 ... h-does-not
Pour que zsh se comporte comme bash il faut l'option "nonomatch", et inversement, si on veut que bash se comporte comme zsh, il faut l'option "failglob".

gerald ~ echo foo*
zsh: no matches found: foo*                                                0,00s
 gerald ~ setopt nonomatch                                                 0,00s
 gerald ~ echo foo*       
foo*                                                                       0,00s
 gerald ~ exec bash
[gerald@linux-PC ~]$ echo foo*
foo*
[gerald@linux-PC ~]$ shopt -s failglob
[gerald@linux-PC ~]$ echo foo*
bash: pas de correspondance : foo*

ZSH et les caractères génériques dans vos commandes

#5Messageil y a 1 an

Bonjour, Smurf.
Que ça soit setopt no_nomatch ou setopt nonomatch, les deux fonctionnent.
Ignace.

ZSH et les caractères génériques dans vos commandes

#6Messageil y a 1 an

Oui, je sais, ça peut aussi s'écrire en majuscule.

ZSH et les caractères génériques dans vos commandes

#7Messageil y a 1 an

Ok, merci pour l'info.
Ignace.
Répondre