Il y a cette ligne dans un script shell que j'ai vu :
grep -e ERROR ${LOG_DIR_PATH}/${LOG_NAME} > /dev/null
if [ $? -eq 0 ]
Il y a cette ligne dans un script shell que j'ai vu :
grep -e ERROR ${LOG_DIR_PATH}/${LOG_NAME} > /dev/null
if [ $? -eq 0 ]
Il vérifie la valeur de retour ( $?
) de grep
. Dans ce cas, il le compare à 0 (succès).
Habituellement, lorsque vous voyez quelque chose comme ça (en vérifiant la valeur de retour de grep), il vérifie si la chaîne particulière a été détectée. Bien que la redirection vers /dev/null
ne soit pas nécessaire, la même chose peut être accomplie en utilisant -q
.
C'est un moyen extrêmement galvaudé de vérifier le succès/l'échec d'une commande. En règle générale, l'extrait de code que vous fournissez sera remanié comme suit :
if grep -e ERROR ${LOG_DIR_PATH}/${LOG_NAME} > /dev/null; then
...
fi
(Bien que vous puissiez utiliser 'grep -q' dans certains cas au lieu de rediriger vers /dev/null, cela n'est pas portable. De nombreuses implémentations de grep ne prennent pas en charge l'option -q, donc votre script peut échouer si vous l'utilisez. )
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.