Hello,
Débutant en Shell, j'ai un exo à faire.
une "simple" calculatrice.
sur le terminal on tape par exemple nonfichier sh puis \( 3 + 4\) * \( 4 - 2 \) ( les "\" pour que le terminal prends en compte les parenthèses )
l'idée du prof est de rajouter 0 + dans le codage comme ça le programme detecte directement un entier (d'après ce que j'ai compris )
voici mon code
et voici le message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 #!/bin/bash function op_valide() { if test "$1" = "$2" || test "$1" = "nop" -a "$2" = "op" then exit 0 ; fi return 1; } op_valide $1 $2 function somme() { result=$(($1+$2)) return 1; } function sous() { sous_globale=$(($1-$2)) return 1; } function mult() { mult_globale=$(($1*$2)) return 1; } function div() { div_globale=$(($1/$2)) return 1; } somme $1 $2 sous $1 $2 mult $1 $2 div $1 $2 function calcul() { local trouve=2; result=0; op="somme" for I in $* do echo -n "parametre:" $I " " case $I in "(") op_valide "nop" $op par= $(par+1) resultat_prec=$resultat resultat=0 op_prec=$op op="somme" ;; "-") op_valide "op" $op op= "sous" $op $result $I ;; "+") op_valide "op" $op op= "somme" $op $result $I ;; "x") op_valide "op" $op op= "mult" $op $result $I ;; "/") op_valide "op" $op op="div" $op $result $I ;; ")") ;; *) op_valide "ent" $op op= "ent" ;; esac done return 1; } calcul $*
vous trouvez en piece jointe l'enoncé de l'exo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 hamza@hamza-VirtualBox:~/Téléchargements$ ./question2_calculette.sh 3 + 2 ./question2_calculette.sh: ligne 15: 3++ : erreur de syntaxe : opérande attendue (le symbole erroné est "+") ./question2_calculette.sh: ligne 24: 3-+ : erreur de syntaxe : opérande attendue (le symbole erroné est "+") ./question2_calculette.sh: ligne 33: 3*+ : erreur de syntaxe : opérande attendue (le symbole erroné est "+") ./question2_calculette.sh: ligne 42: 3/+ : erreur de syntaxe : opérande attendue (le symbole erroné est "+") parametre: 3 ./question2_calculette.sh: ligne 97: ent : commande introuvable parametre: + ./question2_calculette.sh: ligne 15: + : erreur de syntaxe : opérande attendue (le symbole erroné est "+")
J'aimerai bien avoir votre aide et merci !
Partager