Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/03/2017, à 23:09

calixtus06

[RESOLU] Que signifie "tester" ?

Hello, je connais deux trois lignes de commande, la complétion etc..J'ai voulu m'intéresser au script bash, j'ai parcouru des sites, revue, bouquin..

Malgré mes lectures,  je ne comprends pas clairement ce que signifie "tester" (tester une variable je crois) d'autant que je ne sais pas si cette variable provient du "programme" ou que  l'utilisateur a entré dans le terminal côté ligne de commande. Un exemple de là où j'en suis

#! /bin/bash

# j'essaie de comprendre d'où vient la variable, du terminal ou du programme
echo "multiplier"
read $1 $2
[ $1 * $2 ] | bc
nicolasmintkde-desktop nicolasmintkde # ./essai2.sh 
multiplier
8.5 6
./essai2.sh: ligne 6 : [: trop d'arguments
nicolasmintkde-desktop nicolasmintkde # 

A priori je ne teste rien puisque je n'utilise pas if then else et fi.

Avez vous des exemples simples écris en français puis en programme ? Parce que même les commentaires restent parfois obscurs.

Merci de votre indulgence

Nico

Dernière modification par calixtus06 (Le 30/03/2017, à 23:15)

Hors ligne

#2 Le 29/03/2017, à 23:30

aurelien88

Re : [RESOLU] Que signifie "tester" ?

Premièrement, le bash est vieux, super limité (pas de gestion de tableaux, dommage pour faire des boucles), et pertinent en 2017 seulement pour des commandes simples (lancer un logiciel depuis la console) ou des scripts de configuration ou d'installation.

Si tu veux apprendre à programmer, peut-être vaudrait-il mieux te tourner vers des langages plus complets et puissants comme le Go ou le Python, qui permettent de faire la même chose en beaucoup moins d'instructions (je parle d'expérience).

Quand on teste, c'est surtout un programme, ou une fonction. On ne teste pas des variables, on teste avec des variables.

Le principe du test, c'est de vérifier que le programme se comporte comme prévu en l'éxecutant successivement avec des variables d'entrée prenant toutes les valeurs attendues et/ou possibles. Typiquement, tu fais une liste de valeurs d'entrées, puis tu fais une boucle FOR qui va lancer le programme à tester avec en entrée chaque élément de la liste. Voir https://fr.wikipedia.org/wiki/Test_unitaire

Hors ligne

#3 Le 29/03/2017, à 23:33

J5012

Re : [RESOLU] Que signifie "tester" ?

as-tu le contexte où le terme est employé ?

normalement on teste avec des valeurs pour verifier que le programme marche comme on s'y attend ...
dans le script que tu as donné, le programme attend que tu donnes des valeurs, valeurs qui sont ensuite utilisees avec la commande bc ...

Hors ligne

#4 Le 29/03/2017, à 23:51

calixtus06

Re : [RESOLU] Que signifie "tester" ?

J5012 a écrit :

as-tu le contexte où le terme est employé ?

normalement on teste avec des valeurs pour verifier que le programme marche comme on s'y attend ...
dans le script que tu as donné, le programme attend que tu donnes des valeurs, valeurs qui sont ensuite utilisees avec la commande bc ...

$1 et $2 ne sont pas des valeurs écrites dans le terminal par l'utilisateur  ? j'ai oublié de mettre l'option -n après echo ?

#! /bin/bash

# j'essaie de comprendre d'où vient la variable, du terminal ou du programme
echo -n "multiplier:"
read $1 $2
echo "$1 * $2" | bc

Dernière modification par calixtus06 (Le 30/03/2017, à 00:03)

Hors ligne

#5 Le 30/03/2017, à 00:26

J5012

Re : [RESOLU] Que signifie "tester" ?

$1 et $2 ne correspondent pas à une prise d'arguments par readline mais à une prise d'arguments sur la ligne de commande du script executable , $0 etant le nom du programme script ...

pour la prise d'arguments par read pendant l'execution d'un script, tu utilise les variables qui sied à ton programme ex avec ton code :

#! /bin/bash
# j'essaie de comprendre d'où vient la variable, du terminal ou du programme
echo "multiplier"
read v1 v2
echo $v1*$v2|bc

mon test :

user@ordi:~/Bureau$ ./appsh
multiplier
2 3
6

Hors ligne

#6 Le 30/03/2017, à 00:46

Watael

Re : [RESOLU] Que signifie "tester" ?

salut,

je sens que je vais encore me faire un copain. roll

aurelien88 a écrit :

Premièrement, le bash est vieux, super limité (pas de gestion de tableaux, dommage pour faire des boucles), et pertinent en 2017 seulement pour des commandes simples (lancer un logiciel depuis la console) ou des scripts de configuration ou d'installation.

Si tu veux apprendre à programmer, peut-être vaudrait-il mieux te tourner vers des langages plus complets et puissants comme le Go ou le Python, qui permettent de faire la même chose en beaucoup moins d'instructions (je parle d'expérience).

Quand on teste, c'est surtout un programme, ou une fonction. On ne teste pas des variables, on teste avec des variables.

Le principe du test, c'est de vérifier que le programme se comporte comme prévu en l'éxecutant successivement avec des variables d'entrée prenant toutes les valeurs attendues et/ou possibles. Typiquement, tu fais une liste de valeurs d'entrées, puis tu fais une boucle FOR qui va lancer le programme à tester avec en entrée chaque élément de la liste. Voir https://fr.wikipedia.org/wiki/Test_unitaire

ce que tu dis est péremptoire, voire fallacieux.

bash est un programme créé il y a longtemps, mais il est maintenu activement, donc il n'est pas "vieux".
bash supporte les tableaux (indexés et associatifs).
il a été créé pour interagir avec un système d'exploitation, donc, effectivement, essentiellement, pour permettre de créer/modifier les configurations d'un système, et exécuter des programmes, mais on s'initie très bien à la programmation avec bash; comme on s'initie à la mécanique avec une mobylette. À un moment, il faut voir plus grand, mais on peut aller très loin en mobylette.
-
on teste des conditions, pas des programmes, mais leur (code de) retour, et effectivement pas des variables, mais qu'elles remplissent telle ou telle condition :
-n existe
-z n'existe pas
etc. (cf. help test)
c'est pour ça qu'il existe une commande test !

@calixtus : avant de coder, décris textuellement ce que tu veux faire, comment tu vas le faire. fais un schéma des opérations à réaliser pour obtenir ce que tu souhaites.

tu dois lire l'ABS !

Dernière modification par Watael (Le 30/03/2017, à 03:53)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#7 Le 30/03/2017, à 03:07

aurelien88

Re : [RESOLU] Que signifie "tester" ?

Watael a écrit :

salut,

je sens que je vais encore me faire un copain. roll
ce que tu dis est péremptoire, voire fallacieux.

bash est un programme créé il y a longtemps, mais il est maintenu activement, donc il n'est pas "vieux".
bash supporte les tableaux (indexés et associatifs).
il a été créé pour interagir avec un système d'exploitation, donc, effectivement, essentiellement, pour permettre de créer/modifier les configurations d'un système, et exécuter des programmes, mais on s'initie très bien à la programmation avec bash; comme on s'initie à la mécanique avec une mobylette. À un moment, il faut voir plus grand, mais on peut aller très loin en mobylette.
-
on teste des conditions, pas des programmes, mais leur (code de) retour, et effectivement pas des variables, mais qu'elles remplissent telle ou telle condition :
-n existe
-z n'existe pas
etc. (cf. help test)
c'est pour ça qu'il existe une commande test !

J'ai dit vieux, pas obsolète. La syntaxe est lourde et laborieuse (for - do - done, if - then - fi, case - ;; - esac), elle emploie en excès des caractères spéciaux qui la rendent difficile à lire $[]@, et quand tu as goûté à des langages plus récents, c'est juste de la frustration pure (tout est plus rapide avec autre chose). Je ne sais plus pourquoi j'avais été emmerdé avec les tableaux quand j'avais développé Scan2Thunderbird, mais je me souviens que j'avais dû biaiser avec contournements pas très propres.

Et vu que Calixtus n'a pas l'air d'en être à écrire un makefile, je me permets juste de signaler que ce n'est peut-être pas le moyen le plus convivial de commencer à coder (ni le plus sécuritaire pour le système : chmod, rm etc.). Si tu veux la mobilette, il y a toujours l'assembleur : ils sont allés sur la Lune avec.

Pour ce qui est du test, il faut se mettre d'accord pour savoir si on parle de test unitaire (étape de développement logiciel au cours de laquelle on valide le code, dans ce cas on teste une fonction ou un programme) ou du test de condition (structure logique IF, dans ce cas on compare une variable avec une référence). Moi en général, le IF, j'appelle ça une condition, et le test c'est l'étape de validation logiciel. En effet, ce que réalise l'ordinateur, physiquement, dans une structure IF, c'est une comparaison entre deux signaux électriques dont l'issue valide ou invalide une condition logique. Appeler ça « test », à mes yeux, n'a pas de sens parce que le test n'implique pas la variable de référence (on sous-entend qu'on teste un truc isolé). Mais bon, c'est surtout une question de background électrique.

Pour en revenir au sujet de base, les variables $1, $2, etc. doivent être données dans l'ordre à l'appel du script, alors que l'instruction read v1 v2 permet d'entrer les variables de façon interactive dans l'exécution du script. J5012 a donné un exemple avec read, sinon l'autre option est :

#! /bin/bash

echo "multiplier:"
echo "$1 * $2" | bc

qu'on appelle comme suit :

./essai2.sh 5 3

Cette façon d'entrer les variables est pertinente à chaque fois qu'on effectue des opérations qui ne demandent pas d'intervention de l'utilisateur, dans le cadre d'une série de commandes automatisées. En pratique, tu vois ça souvent avec des noms de fichiers : regarde les commandes cp, mv, rm, etc.

Dernière modification par aurelien88 (Le 30/03/2017, à 03:33)

Hors ligne

#8 Le 30/03/2017, à 07:27

jplemoine

Re : [RESOLU] Que signifie "tester" ?

Perso, pour les scripts, j'utilise perl plutôt que bash dès que je veux un truc "un peu chiadé".
C'est peut-être plus accessible dans un premier temps que python (ou que Go : je ne connais pas du tout).


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

En ligne

#9 Le 30/03/2017, à 08:18

ar barzh paour

Re : [RESOLU] Que signifie "tester" ?

hello je ferai une réponse plus prosaïque

un programme utilise très souvent l'analyse d'un résultat
si xxxxx alors xxxxx sinon

en bash toute commande renvoie un résultat , (ou une erreur)
ce résultat peut être lu et en fonction de ce résultat
on engagera une action ou une autre

par exemple si tu tapes dans un terminal

[ "" ] 

tu "verras" (en fait tu ne verras pas) qu'il ne se passe rien

sauf que en tapant cette commande tu as généré un résultat

recommence avec

if [ "" ] ; then  echo "est-ce une blague ?" ; fi

mince encore rien !!!!

if [ " " ] ; then  echo "non non" ; fi

tiens maintennat je vois un résultat !!!
pourquoi?
tout simplement la commande [ ..... ] est un commande de test et cette commande renvoie un résultat 0 ou 1 si le test est vrai ou non

évidemment l'exemple semble ne pas faire grand chose et pourtant

ce que j'ai fait ci dessus : j'ai testé si la chaine qui était à l'intérieur des crochets est vide ou non

"" est vide donc je ne n'exécute pas la commande then echo xxx (qui est affichage de xxx)

" " n'est pas vide ( contient espace ) donc j'exécute le then echo xxxxx 

avec [ ] on peut tester plein de choses (voir help test)

if [ "si tout le monde avait linux" ]
then
echo "tout irait mieux"
else
echo "tartempion"
fi
if [ -s "/boot" ]
then
echo ; echo "OUF c'est bon"
fi

on ne peut pas faire n'importe quoi

if [ a < 0 ]
then
echo " mince ERREUR"
fi
if [ a -ne 0 ]
then
echo "encore une erreur"
fi
if [ 10 -ne 0 ]
then 
echo ; echo "cette fois c'est bon"
fi

et pour multiplier deux nombres ce n'est pas * qu'il faut utiliser !!!!
expr 2 \* 3
EDIT : je suis allé trop vite en écrivant ça

attention aux caractères spéciaux * < > & | ( [ ] ) etc

exemple

echo *

bon maintenant il n'y a pas que if then else
bonne découverte !!!!!

Dernière modification par ar barzh paour (Le 31/03/2017, à 05:00)


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#10 Le 30/03/2017, à 15:02

Watael

Re : [RESOLU] Que signifie "tester" ?

expr est un programme externe inutile quand on utilise un shell compatible POSIX.

il existe une commande interne (let), et l'Évaluation arithmétique qui s'effectue entre double-parenthèses :

$ let "v = 3 * 2"
$ echo $v
6
$ vv=$((3*2))
$ echo $vv
6

le shell n'effectue pas de calculs sur les nombres décimaux, et ne retourne que des entiers.

$ echo $((3/2))
1

au delà, il faut utiliser une calculatrice, telle que bc.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#11 Le 30/03/2017, à 17:08

Sciensous

Re : [RESOLU] Que signifie "tester" ?

ou

echo "2/3"|bc -l

antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#12 Le 30/03/2017, à 19:02

erresse

Re : [RESOLU] Que signifie "tester" ?

aurelien88 a écrit :

Pour ce qui est du test, il faut se mettre d'accord pour savoir si on parle de test unitaire (étape de développement logiciel au cours de laquelle on valide le code, dans ce cas on teste une fonction ou un programme) ou du test de condition (structure logique IF, dans ce cas on compare une variable avec une référence). Moi en général, le IF, j'appelle ça une condition, et le test c'est l'étape de validation logiciel. En effet, ce que réalise l'ordinateur, physiquement, dans une structure IF, c'est une comparaison entre deux signaux électriques dont l'issue valide ou invalide une condition logique. Appeler ça « test », à mes yeux, n'a pas de sens parce que le test n'implique pas la variable de référence (on sous-entend qu'on teste un truc isolé). Mais bon, c'est surtout une question de background électrique.

1) Hé bien moi, j'appelle ça un essai, pas un test.
2) Non, pour moi, une condition, c'est le résultat d'un test, et un test c'est ce qui permet d'évaluer le résultat d'une comparaison.
3) À mes yeux à moi, appeler un test "test", ça a beaucoup de sens parce-que ça dit bien ce que ça veut dire depuis des décennies.
Tu peux toujours refaire le glossaire de l'informatique pour ton usage personnel, mais tes avis péremptoires risquent surtout de perturber les "gens simples" pour qui un chat reste un chat !
En cinquante ans d'informatique, je n'ai jamais appelé autrement le fait de tester le résultat d'une comparaison pour déterminer une condition... mais peut-être que je suis "vieux" ou "obsolète", comme le bash...
lol


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#13 Le 30/03/2017, à 19:20

aurelien88

Re : [RESOLU] Que signifie "tester" ?

https://fr.wikipedia.org/wiki/Test_(informatique)

http://www.cise.ufl.edu/~pjd/courses/32 … ments.html

Rien à ajouter.

Dernière modification par aurelien88 (Le 30/03/2017, à 19:23)

Hors ligne

#14 Le 30/03/2017, à 19:48

ar barzh paour

Re : [RESOLU] Que signifie "tester" ?

moi si calixtus es-tu satisfait des réponses ou a-t-on répondu à côté ?


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#15 Le 30/03/2017, à 20:03

calixtus06

Re : [RESOLU] Que signifie "tester" ?

aurelien88 a écrit :

Le principe du test, c'est de vérifier que le programme se comporte comme prévu en l'éxecutant successivement avec des variables d'entrée prenant toutes les valeurs attendues et/ou possibles. Typiquement, tu fais une liste de valeurs d'entrées, puis tu fais une boucle FOR qui va lancer le programme à tester avec en entrée chaque élément de la liste. Voir https://fr.wikipedia.org/wiki/Test_unitaire

qu'est ce que des variables d'entrée ? des chiffres entrés par l'utilisateur dans le terminal en face de 

multiplier:

provenant du script

echo -n "multiplier:"

Du coup je ne comprends pas ce que tu appelle "une liste de valeurs d'entrée" encore moins une " boucle FOR"

Je débute sorry

Hors ligne

#16 Le 30/03/2017, à 20:07

calixtus06

Re : [RESOLU] Que signifie "tester" ?

J5012 a écrit :

$1 et $2 ne correspondent pas à une prise d'arguments par readline mais à une prise d'arguments sur la ligne de commande du script executable , $0 etant le nom du programme script ...

pour la prise d'arguments par read pendant l'execution d'un script, tu utilise les variables qui sied à ton programme ex avec ton code :

#! /bin/bash
# j'essaie de comprendre d'où vient la variable, du terminal ou du programme
echo "multiplier"
read v1 v2
echo $v1*$v2|bc

mon test :

user@ordi:~/Bureau$ ./appsh
multiplier
2 3
6

Si je traduis ça veut dire que les valeurs entrées par l'utilisateur, côté terminal et non en script  seront récupérées par le script sous forme de variable ??

Hors ligne

#17 Le 30/03/2017, à 20:23

calixtus06

Re : [RESOLU] Que signifie "tester" ?

aurelien88 a écrit :

@calixtus : avant de coder, décris textuellement ce que tu veux faire, comment tu vas le faire. fais un schéma des opérations à réaliser pour obtenir ce que tu souhaites.

tu dois lire l'ABS !

Salut : oui je crois que écrire en français vous aiderait à m'aider

#écrire un script qui sera exécutable dans le terminal par un utilisateur, appelons le Lucien
#Lucien sait écrire la commande qui permet de faire agir le script
#le scrip s'appelle multiplication.sh et Lucien écrit donc dans le terminal ./ multiplication.sh
#l'invite de commande répond sans les guillemets "multiplier:" et laisse un espace ensuite pour mettre plusieurs valeurs numériques décimales
#Lucien entre deux valeurs numériques décimales et appuie sur entrée
#ces valeurs sont récupérées dans une formule écrites dans le script utilisant commande bc
#l'invite de commande donne le résultat de la multiplication ou retourne un message d'erreur

voili voilou

Je vous renouvelle encore toute ma gratitude pour votre aide précieuse et votre patience

Dernière modification par calixtus06 (Le 30/03/2017, à 20:28)

Hors ligne

#18 Le 30/03/2017, à 20:28

J5012

Re : [RESOLU] Que signifie "tester" ?

non ... ta phrase est mal ecrite :
- le script est toujours executé "coté terminal" meme sans fenetre de terminal ouverte, les valeurs de variables seront donc toujours entrees "coté terminal" qu'elles soient inscrites dans le code ou entrees depuis la ligne de commande...

traduction :
- si tu utilises l'instruction read pour prendre des valeurs, leurs variables ne peuvent etre precedees de $, $var voulant dire dans ce contexte : contenu de la variable var , or read ne connait pas encore les valeurs definies !

- les variables $1 et $2 sont des variables predefinies donc, par le langage bash

aurelien88 a donné une utilisation correcte en #7 de $1 et $2 avec un code derivé du tien :

#! /bin/bash
echo "multiplier:"
echo "$1 * $2" | bc

l'instruction echo demande les variables $1 et $2 , que l'interpreteur bash sait qu'il s'agit des valeurs disponibles en argument de la ligne de commande d'execution du script

./essai2.sh 5 3

→ $1 = 5
→ $2 = 3
→ pour info $0 = essai2.sh

Hors ligne

#19 Le 30/03/2017, à 20:29

Watael

Re : [RESOLU] Que signifie "tester" ?

il y a plusieurs manières d'assigner des variables dans un script shell :
- les donner sur la ligne de commande (à la suite de l'appel du script : ./script parm1 parm2). ce sont des paramètres positionnels. ils sont développés, dans le script, en les appelant par le numéro d'ordre : $1 (vaudra parm1), $2 (vaudra parm2).
- faire lire (read) les données depuis le script sur l'entrée standard : la ligne de commande, la redirection d'un fichier, un pipe..
- les définir dans le script (var1="$1", var2="bla bla").

tu dois lire l'ABS ! ! !

--
l'instruction echo ne demande rien ! elle affiche des données.

Dernière modification par Watael (Le 30/03/2017, à 20:31)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#20 Le 30/03/2017, à 20:46

calixtus06

Re : [RESOLU] Que signifie "tester" ?

Salut à toi,

Si j'ai bien compris, une variable est écrite dans le script et le $ dévoile son contenu
alors qu'une valeur entrée dans le terminal après l'invitation "multiplier:" est reprise dans la formule du $1*$2 . L'interpréteur aura compris que derrière $1 et $2 sont cachées les valeurs entrées précédemment dans le terminal.

C'est ça ?
Peux tu corriger du coup ce script:

#! /bin/bash

#écrire un script qui sera exécutable dans le terminal par un utilisateur, appelons le Lucien
#Lucien sait écrire la commande qui permet de faire agir le script
#le scrip s'appelle 30mars.sh et Lucien écrit donc dans le terminal ./30mars.sh
#l'invite de commande répond sans les guillemets "multiplier:" et laisse un espace ensuite pour mettre plusieurs valeurs numériques décimales

echo -n "multiplier:"

#Lucien entre deux valeurs numériques décimales et appuie sur entrée
#ces valeurs sont récupérées dans une formule écrites dans le script utilisant commande bc
#l'invite de commande donne le résultat de la multiplication ou retourne un message d'erreur

echo $v1 * $v2 | bc

exit 0

Dernière modification par calixtus06 (Le 30/03/2017, à 20:49)

Hors ligne

#21 Le 30/03/2017, à 20:54

Watael

Re : [RESOLU] Que signifie "tester" ?

Watael a écrit :

tu dois lire l'ABS ! ! !


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#22 Le 30/03/2017, à 21:00

J5012

Re : [RESOLU] Que signifie "tester" ?

#! /bin/bash

#écrire un script qui sera exécutable dans le terminal par un utilisateur, appelons le Lucien
#Lucien sait écrire la commande qui permet de faire agir le script
#le scrip s'appelle 30mars.sh et Lucien écrit donc dans le terminal ./30mars.sh
#l'invite de commande répond sans les guillemets "multiplier:" et laisse un espace ensuite pour mettre plusieurs valeurs numériques décimales

echo -n "multiplier:"

#Lucien entre deux valeurs numériques décimales et appuie sur entrée
#ces valeurs sont récupérées dans une formule écrites dans le script utilisant commande bc
#l'invite de commande donne le résultat de la multiplication ou retourne un message d'erreur

echo "$1 * $2" | bc

exit 0

./30mars.sh 3 2

multiplier:6

tu n'as pas bien lu ...

Hors ligne

#23 Le 30/03/2017, à 21:15

calixtus06

Re : [RESOLU] Que signifie "tester" ?

#! /bin/bash

#écrire un script qui sera exécutable dans le terminal par un utilisateur, appelons le Lucien
#Lucien sait écrire la commande qui permet de faire agir le script
#le scrip s'appelle 30mars.sh et Lucien écrit donc dans le terminal ./30mars.sh
#l'invite de commande répond sans les guillemets "multiplier:" et laisse un espace ensuite pour mettre plusieurs valeurs numériques décimales

echo -n "multiplier:"

#Lucien entre deux valeurs numériques décimales et appuie sur entrée
#ces valeurs sont récupérées dans une formule écrites dans le script utilisant commande bc
#l'invite de commande donne le résultat de la multiplication ou retourne un message d'erreur

echo "v1 * v2" |  bc

exit 0
nicolasmintkde-desktop nicolasmintkde # ./30mars.sh 
multiplier:0

??

Dernière modification par calixtus06 (Le 30/03/2017, à 21:16)

Hors ligne

#24 Le 30/03/2017, à 21:56

Watael

Re : [RESOLU] Que signifie "tester" ?

personne ne sait lire ici ?

#l'invite de commande répond sans les guillemets "multiplier:" et laisse un espace ensuite pour mettre plusieurs valeurs numériques décimales
read -p "multiplier : " var1 var2 #Lucien entre deux valeurs numériques décimales et appuie sur entrée
#ces valeurs sont récupérées dans une formule écrites dans le script utilisant commande bc
echo "$var1 * $var2" | bc
#l'invite de commande donne le résultat de la multiplication ou retourne un message d'erreur
$ ./leScript
multiplier : 2 6
12

# appel du script
# Lucien entre deux valeurs (2 et 6) après l'invite, puis appuie sur "Entrée"
# le script affiche le résultat

Dernière modification par Watael (Le 30/03/2017, à 21:58)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#25 Le 30/03/2017, à 22:32

calixtus06

Re : [RESOLU] Que signifie "tester" ?

#! /bin/bash

#écrire un script qui sera exécutable dans le terminal par un utilisateur, appelons le Lucien
#Lucien sait écrire la commande qui permet de faire agir le script
#le scrip s'appelle 30mars.sh et Lucien écrit donc dans le terminal ./30mars.sh
#l'invite de commande répond sans les guillemets "multiplier:" et laisse un espace ensuite pour mettre plusieurs valeurs numériques décimales

echo -n "multiplier:" 

#Lucien entre deux valeurs numériques décimales et appuie sur entrée
#ces valeurs sont récupérées dans une formule écrites dans le script utilisant commande bc
#l'invite de commande donne le résultat de la multiplication ou retourne un message d'erreur

echo "$1 * $2" | bc

exit 0

conclusion les variables numérique ne peuvent s'appeler autrement que var1= et var2= ? et dans la formule $var1 et $var2 et non f1, f2, v1 v2 ? La confusion vient que read ne lit pas $1,$2 mais f1 et f2...

J'avais attaqué l'ABS, mais il n'est pas interactif et dès que j'ai un problème de compréhension, ben je suis un peu tout seul surtout quand on n'a pas de correction ou mieux des retours sur mes conneries:

#! /bin/bash
echo "multiplier:" 

if [ "var1 = f1" ] && [ "var2 = f2" ]  
#f1 et f2 sont  la représentation symbolique des valeurs entrées par l'usager
then
echo "$f1 * $f2" | bc 
fi
#! /bin/bash
echo "multiplier:" 

if [ "var1 = f1" ] && [ "var2 = f2" ]
then
echo "$var1 * $var2" | bc 
fi

Dernière modification par calixtus06 (Le 31/03/2017, à 09:26)

Hors ligne