re-bonjour tout le monde!
J'ai un truc bizarre qui se passe avec un while.
J'ai le code suivant :
#!/bin/bash
stty erase ^H
sH=1,9
sB=1,6
while ((test $ans != Q)&&(test $ans != q)); do
clear
echo -e "Which parameter do you want to change?\n\n"
echo -e "\t[1]\tsH (current value is $sH)"
echo -e "\t[2]\tsB (current value is $sB)"
echo -e "\t[Q]\tQuit menu and run script"
read ans
case "$ans" in
1) echo -n "sH = "
read sH;;
2) echo -n "sB = "
read sB;;
esac
done
echo "sH: $sH"
echo "sB: $sB"
exit 0;
quand je l'execute, ça me met le message suivant :
line 7: test: !=: unary operator expected
Est-ce que ça vient du fait que le "et" logique ne s'ecrit pas comme ça?
J'ai trouvé un moyen de contourner le problème avec la ligne
while !((test $ans = Q)||(test $ans = q)); do
Et là ça marche sans problème. Le truc c'est que j'aimerai bien comprendre pourquoi avec le & ça marche pas.
Si qqn peut m'eclairer, ça serait sympa.
Voiloute
Partager