J'ai fais un regex pour voir si la variable testée ne contient que des caractère alpha :
if [[ "$test" =~ [^a-zA-Z]+ ]];then
echo "autre"
else
echo "que des alpha"
fi
Cela fonctionne pour 'a', '1' mais pas '8a'.
EDIT : Je pense avoir compris, les nombres ne sont pas interprété comme des nombre, j'utilise ${test} et ça fonction. J'ai juste une erreur "opérateur binaire attendu" lorsqu'il y un espace entre deux caractères
il est préférable de mettre la regex dans une variable; certains caractères spéciaux pouvant la polluer, et le shell mettra les protections nécessaires au moment de l'exécution.
PS: les guillemets dans un test amélioré ([[ ]]) sont facultatifs.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Regex dans un script bash
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
<< On n'apprend bien qu'à force de se tromper. >>
<< On n'apprend bien qu'à force de se tromper. >>
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique