Posted in Intégration Jenkins Programmation

Utiliser les caractères d’échappement (\)

Utiliser les caractères d’échappement (\) Rédigé par - Posted on Le 6 avril 2018Laisser un commentaire
Utiliser les caractères d’échappement (\)
Voter pour cet article

Cet article n’a pas pour objectif de traiter tous les caractères qui sont interprétés comme une instruction de langage dans un pipeline sous Jenkins, mais de donner une solution pour utiliser des caractères comme des backslashs (\) ou des dollars ($) dans une chaine de caractères ou dans un script sh ou batch.

Il arrive parfois qu’on ait besoin d’usiliser un backslash (\) ou un dollar ($), par exemple dans une expression régulière. Sans le caractère d’échappement un backslash indique un début d’instruction (par exemple \t pour une tabulation) et un dollar une variable.

Ainsi sous Jenkins pour initialiser une variable String avec ceci : ^[-+]?[0-9]*\.?[0-9]+$, il faudra ajouter le caractère d’échappement backslash devant le \ et le $.

1) Double quotes
Ce qui donnera

def version_regex = “^[-+]?[0-9]*\\.?[0-9]+\$”;

Jenkins Double quotes - caractères d'échappement.
Jenkins Double quotes – caractères d’échappement.

2) Simple quotes
On peut également utiliser les simples quotes pour le $:

def version_regex = ‘^[-+]?[0-9]*\\.?[0-9]+$’;

Jenkins Simple quotes - caractères d'échappement.
Jenkins Simple quotes – caractères d’échappement.

A savoir que le backslash est toujours “échappé” car dans ce cas-ci cette expression régulière sera utilisée dans un script shell. Sans quoi Jenkins pourrait interpréter le point (.) comme une instruction.

Je conseille vivement l’utilisation des doubles quotes et du caractère d’échappement ceci pour avoir une homogénéïté dans l’écriture des caractères et instructions, mais aussi pour pouvoir utiliser des variables pour construire une variable.

Par exemple:

def part1 = “[0-9]”;
def version_regex = “^[-+]?[0-9]*\\.?$part1+\$”;

En l’absence de ce caractère backslash Jenkins nous retournera deux erreurs:
1: Unexpected char \

Jenkins Unexpected char \
Jenkins Unexpected char \

2: Illegal string body character after dollar sign;
solution: either escape a literal dollar sign “\$5” or bracket the value expression “${5}”

Jenkins Illegal string body character after dollar sign;
Jenkins Illegal string body character after dollar sign;
Partager cet article :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *