Variable du shell dans un script

Bonjour,

man grep indique que la variable GREP_COLORS contient le code couleur utilisé par grep.

Je veux modifier cette couleur localement dans un script, et j’ai tenté ceci:

#!/bin/bash --
...
Colorinit="$GREP_COLORS"
GREP_COLORS='\e[;40;32;1m'
mount | grep --color=auto   seagateUSB4T\[_-\]...    || echo "Erreur: ..."
GREP_COLORS="$Colorinit"
...

Mais je constate que la variable $GREP_COLORS n’est pas importée dans le script, et que sa nouvelle valeur (vert au lieu de rouge) n’est pas non plus prise en compte.

PS
en réalité j’ai écrit:

GREP_COLORS="$vert"

La variable «vert» contenant la chaine «\e[;40;32;1m» , importée d’une bibliothèque personnelle de codes couleurs utilisée couramment sans problème:

# 1 FOND NOIR:
  rose='\e[;40;31m'
 rouge='\e[;40;31;1m'
 vertm='\e[;40;32m'
  vert='\e[;40;32;1m'
 jaune='\e[;40;33;1m'
...

Pour en vérifier la syntaxe, je ne sais d’ailleurs pas comment l’afficher en ligne de commande:
echo "$GREP_COLORS"
affiche une ligne vide.

Bonjour

Il y a un S à GREP_COLORS => plusieurs couleurs, et chacune en fonction d’un contexte défini.


Un peu de lecture : gnu.org → grep → 2.2 Environment Variables

Grand merci MicP pour cette remarque et ce lien.

Ce lien indique:

Instead of GREP_COLOR='color', you can use GREP_COLORS='mt=color'.

j’ai donc tenté:

GREP_COLORS='mt=01;32'

puis :

declare -A GREP_COLORS='mt=01;32'

de même avec:

GREP_COLORS='\033[32m'

mais en vain.

Capture d’écran_2023-09-17_16-03-52

2 J'aime

Encore merci MicP