Bonjour

Je me trouve confronter à problème de syntaxe/incompréhension. le code ci-dessous fonctionne mais pas exactement comme je le veux. Dans la déclaration du if, je cherche a faire un &&. Cela marche mais le shell fait comme si "&& $i != $expr" était quelque chose a éxéctuer et me retourne un message du type : valeur de $i : Permission denied ...

A ce stade, $i est un chemin. Je veux simplement qu'il vérifie si $i est différents de $expr. Mais il m'écoute pas, il fait ce que je lui dit, pas ce que je veux ... ^^

Quelqu'un pourrait m'aider à comprendre cette $$@#! de syntaxe ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 if ( ! echo ${tab_exeption[*]} | grep -q $i &&  $i != $expr ) ; then
    gpg --verify $i $strmod"Release" &>/dev/null
    if [ $? != 0 ] ; then
      error=1
      tab_error[$vartab]=$i
      ((vartab++))
    fi
  fi