#1 Le 27/03/2017, à 20:00
- e101mk2
[Résolu](problème) Création de script Shell
Bonjour, pour des besoins personnel, je doit créer un script SH, pas de problème je me dit, sa doit être plutôt simple, erreur de ma part!
Je suis confronter à une erreur, et je vais aussi en profiter pour demander ce que je comprend pas.
Je donnerais le code fonctionnel puis le code erronés
On commence par l'erreur.
function getNum(){
usg_return=$(($1/(10*$2)))
usg_return=$(($usg_return/10))
}
Sa fonctionne mais sa seconde versions:
function getNum(){
if [ "$2" -gt 0 ]; then
usg_return=$(($1/(10*$2)))
fi
usg_return=$(($usg_return/10))
}
M'envoie dans les roses avec "erreur de syntaxe : opérande attendue (le symbole erroné est "/10")"
Pourquoi?
J'en profite pour vous demandée l'utilités des parenthèse:
usg_return=$(($usg_return/10))
Fonctionne
usg_return=$($usg_return/10)
Fonctionne pas, pourquoi? Que signifie ces double parenthèses? Une transformations? Un type attendu par le shell?
Merci de votre aide.
Dernière modification par e101mk2 (Le 27/03/2017, à 20:52)
Hors ligne
#2 Le 27/03/2017, à 20:11
- e101mk2
Re : [Résolu](problème) Création de script Shell
Evidemment, je pinnaille depuis 1h, je poste sur le forum, et je trouve la solution tous seul, c'est juste que j'ai pas déclarer la variable si $2==0. Je ne passe pas le sujet sur résolut car je veux savoir ce que signifie les doubles parenthèse. Encore merci (même si vous avez pas eu le temps de répondre )
Hors ligne
#3 Le 27/03/2017, à 20:37
- Watael
Re : [Résolu](problème) Création de script Shell
salut,
les doubles parenthèses effectuent une évaluation arithmétique.
function et () sont redondants : c'est l'un ou l'autre, mais les deux ensembles sont inutiles.
Dernière modification par Watael (Le 27/03/2017, à 20:38)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 27/03/2017, à 20:51
- e101mk2
Re : [Résolu](problème) Création de script Shell
Merci d'avoir partager un peu de ton savoir. Je passe le sujet en résolut. Pour les fonctions, je vais modifier sa, (virer le mot clef function, les parenthèse me semble plus explicite ^^)
Hors ligne