62 votes

Expressions régulières dans une instruction de cas Bash

J’utilise le script suivant, qui utilise l’instruction de cas pour trouver le serveur.

Mais cela ne fonctionne pas. Regex travaille avec egrep mais pas avec case. échantillon O/P

Une idée ?

65voto

che Points 6899

La casse Bash n’utilise pas d’expressions régulières, mais uniquement la correspondance de modèle de shell.

Par conséquent, au lieu de regex, vous devriez utiliser pattern (ou , mais cela semble `` un peu avancé et je n’ai jamais essayé cela :-)

18voto

syjust Points 11

Si vous voulez affirmer que correspond vraiment les chiffres dans et que vous voulez utiliser au lieu `` de , , `````` ... vous pouvez utiliser quelque chose comme ça:

Mais cela ne fonctionne pas pour plus de 999 serveurs.

Si je devais faire un script pour ce cas d’utilisation, j’écris probablement quelque chose comme ça (parce que j’adore les regex et la syntaxe de cas ;)) :

13voto

ne peut utiliser que des globs. Si vous souhaitez faire de la correspondance regex, vous devrez utiliser une série d’instructions, avec `` .

8voto

AnthonyK Points 116

Je sais que c’est une question assez ancienne et que ma solution n’est pas très différente de ce que @syjust a déjà fourni, mais je voulais montrer que vous pouvez faire à peu près n’importe quoi à l’étape de l’appariement dans une `` déclaration.

7voto

mlowry Points 129

Voici un exemple d’utilisation de la construction elif.

Je trouve qu’il est plus fiable de stocker les expressions régulières dans leurs propres variables.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X