J'ai une chaîne
$VAR="I-UAT";
dans mon code de script Shell. J'ai besoin d'une instruction conditionnelle pour vérifier si "UAT"
est présent dans cette chaîne.
Quelle commande dois-je utiliser pour obtenir un booléen vrai ou faux en sortie? Ou existe-t-il un autre moyen de le vérifier?
Quelle coquille? Utilisation de bash:
if [[ "$VAR" =~ "UAT" ]]; then
echo "matched"
else
echo "didn't match"
fi
Vous pouvez le faire de cette façon:
case "$VAR" in
*UAT*)
# code when var has UAT
;;
esac
La méthode classique, si vous savez à l'avance quelle chaîne vous recherchez, est une instruction case
:
case "$VAR" in
*UAT*) : OK;;
*) : Oops;;
esac
Vous pouvez utiliser une commande appropriée à la place de :
commande. Cela fonctionnera aussi avec les obus Bourne et Korn, pas seulement avec Bash.
found=`echo $VAR | grep -c UAT`
Ensuite, testez $ non différent de zéro.
Dans le script bash
que vous pourriez utiliser
if [ "$VAR" != "${VAR/UAT/}" ]; then
# UAT present in $VAR
fi
essayez avec grep:
$ echo I\-UAT | grep UAT
$ echo $?
0
$ echo I\-UAT | grep UAX
$ echo $?
1
donc tester
if [ $? -ne 0 ]; then
# not found
else
# found
fi