Décomposition, termes simples :
[[ and ]]
... signifie qu'un test de véracité est en cours.
$?
... est une variable contenant le code de sortie de la dernière commande exécutée.
-ne 0
... vérifie que la chose à gauche ($?
) est "non égal" à "zéro". Sous UNIX, une commande qui sort avec zéro a réussi, alors qu'une sortie avec n'importe quelle autre valeur (1, 2, 3... jusqu'à 255) est un échec.
if [[ $? -ne 0 ]];
Vérifie le code de retour de la condition if immédiatement précédente.
$?
signifie code de retour$? -ne 0
signifie que la commande précédente a renvoyé une erreur puisque 0 est considéré comme un succès