Résolu le 15-11-18 Lancer un script à paramètres en toute simplicité (facile sous XFCE, petite complication sous Mate)

Questions concernant les lignes de commandes
Avatar du membre
Rémi123
Messages : 65
Enregistré le : dim. 19 mars 2017 13:25

Lancer un script à paramètres en toute simplicité (facile sous XFCE, petite complication sous Mate)

Message par Rémi123 »

Bonjour tout le monde,

Je voudrais lancer un script à deux paramètres a et b, disons numériques pour simplifier.

Mais je veux le faire avec la simplicité maximale, c'est à dire en réalisant successivement les opérations suivantes, et aucune autre opération:

1- Double-cliquer sur l'icône qui lance le script
2- taper le premier paramètre au clavier
3- taper entrée
4- taper le second paramètre au clavier
5- taper entrée
(6- et là le résultat de mon script se réalise)

Si vous avez une idée, vous pouvez simplement la décrire avec deux paramètres numériques a et b et un script qui calcule a+b. Mais il faut que le script crée une variable a et une variable b, puis que mon vrai script utilise des calculs sur a et sur b.
J'adapterai ensuite vos suggesions à mon vrai script (qui quant à lui aboutit à lancer un logiciel sous conditions dépendant de a et de b, mais c'est une autre question).

Adapté à la question de la somme, la solution permettrait d'obtenir la somme de a et de b avec strictement aucune autre action que:
1- Double-cliquer sur l'icône qui lance le script
2- taper la valeur de a
3- taper entrée
4- taper la valeur de b
5- taper entrée
(6- et là s'affiche la valeur de a+b)


Je suis sûr que c'est très simple... C'est à vous!
Modifié en dernier par Rémi123 le jeu. 31 mai 2018 09:48, modifié 3 fois.
Mint 19.3 Tricia Mate

Avatar du membre
alain
Administrateur du site
Messages : 14701
Enregistré le : dim. 11 oct. 2015 23:41
Localisation : Chelles
Contact :

Re: Lancer un script à paramètres en toute simplicité

Message par alain »

Bonjour Rémi.

Code : Tout sélectionner

10 rem addition
20 input "quelle est la valeur de a"; A$
30 input "quelle est la valeur de b"; B$
40 C$=A$+B$
50 print "l'addition de a+b est: "; C$
60 end
Désolé j'ai pas pu me retenir, ta question m'a fait revenir 35 ans en arrière, un petit coup de
nostalagie... C'est le 2 sd programe que j'ai fait le premier c'était: "quel est ton nom....Bonjour ton nom"
Trêve de plaisanterie. Dans quel language,? En bash je suppose vu qu'on est dans la rubrique "terminal".
Quelque soit ton choix, il y en a bien un (suivez mon regard) qui va te te pondre deux lignes pour te faire ça.
Bon Ok, en plus, suivant la valeur du résultat, tu auras un smiley content ou neutre ou qui fait la gueule,
Mais du momment que ça fonctionne, hein? :lol:
PC are like air conditioning, they becomes useless when you open Windows (L.T)
PC1 : CM : ASRock 990FX | CPU: AMD FX 8350-8 cores, 4 GHz | RAM: 16 Go DDR3 1600 MHz | CG: ATI RX 580-8 Go | OS : LM 20.3 Uma Xfce 4.16 | K: 5.4
PC2
:Core2 Quad Q9650 @ 3 GHz | CG: Nvidia GTX 650TI | OS: LM 21.3 Xfce 4.18| K: 6.5
PC3 :Core i7-2600 @ 3,5 GHz | CG: ATI HD 4650 | OS: Emmade5 Xfce 4.18.0 | K: 6.1
PC4 : AMD Ryzen 5 3500X 4GHz | CG: GTX 970 | Ram : 8GB |OS : Debian 10.5 | K: 5.10
In a world without walls and fences, who needs windows and gates?

Avatar du membre
arghlub
Administrateur du site
Messages : 10421
Enregistré le : dim. 21 mai 2017 08:19
Localisation : Provence
Contact :

Re: Lancer un script à paramètres en toute simplicité

Message par arghlub »

Salut,
alain a écrit :il y en a bien un (suivez mon regard) qui va te te pondre deux lignes pour te faire ça. Bon Ok, en plus, suivant la valeur du résultat, tu auras un smiley content ou neutre ou qui fait la gueule
Me sentirais-je visé ??? :l :lol: :lol:
En script Bash, rien de bien compliqué :

Code : Tout sélectionner

#!/bin/bash
# Saisies dans le terminal
read -p "Saisis ton premier paramètre : " a
read -p "Saisis ton second paramètre : " b

# Somme
c=$((a+b))
echo "Résultat : "$c
Tu pourrais aussi passer par "zenity" si tu veux faire ça dans une interface graphique et non dans le terminal :

Code : Tout sélectionner

#!/bin/bash
# Saisies avec zenity
a=$(zenity --entry --title="NOM DU SCRIPT" --text="Saisis ton premier paramètre")
b=$(zenity --entry --title="NOM DU SCRIPT" --text="Saisis ton second paramètre")
# Somme
c=$((a+b))
zenity --info --title="NOM DU SCRIPT" --text="Résultat :\n$c"
Pour faire ça bien il faudrait aussi que tu fasses des tests sur les valeurs saisies pour être sur qu'elle soient conformes aux valeurs attendues.
;)
Tour1 (custom)CM MSI Z270 M3 | CPU Intel I7-7700K | CG Nvidia GTX 1080 | RAM 16Go | tripleBoot : Debian 11 | MXlinux 21 | LMint 19.3 | XFCE
Tour2 (custom)CM Gigabyte | CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD 12.1 XFCE
Portable1 MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 20.2 | MXlinux 21 | XFCE
Portable2 MacBook Air A1466 (2015) | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MXlinux 21 XFCE
─────( pour une informatique libre ! -membre en stand-by de l' April.org────────────────

Avatar du membre
Rémi123
Messages : 65
Enregistré le : dim. 19 mars 2017 13:25

Re: Lancer un script à paramètres en toute simplicité

Message par Rémi123 »

Ah ah, on avance, les amis!

Spontanément, je pensais effectivement programmer en bash. Mais l'idée est juste d'arriver au résultat décrit dans mon premier post: si pour cela il vaut mieux passer par un autre langage, alors pourquoi pas.
Mais bien sûr en bash ce serait mieux.

Alors, vous avez presque bon. La syntaxe pour demander la valeur d'un paramètre fait bien partie des éléments que je recherchais.

Ceci dit, vous avez manqué ma question centrale: l'étape 1! Comment, une fois qu'on a écrit le programme, faire en sorte qu'il se lance par un simple double-clic sur une icône?

Deux remarques:

- Merci arghlub pour Zenity, mais je n'ai pas besoin de ça graphiquement. Entrer les valeurs directement dans le terminal me conviendrait mieux. Enfin si c'est possible (si ce n'est possible qu'en passant par Zenity alors ok).

- Car autre remarque: quand je copie-colle ton script dans un terminal, ça ne marche pas. Le programme s'arrête après la saisie du premier paramètre. C'est d'ailleurs précisément pour ce problème que j'ai précisé d'emblée que j'ai deux paramètres et non pas un seul. Et là effectivement ça marche mieux avec Zenity, dont par ailleurs j'aimerais pouvoir me passer si c'était possible.

Voilà voilà...
Alors?
Mint 19.3 Tricia Mate

Avatar du membre
cyrille
Administrateur du site
Messages : 12285
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Lancer un script à paramètres en toute simplicité

Message par cyrille »

dans le même style

Code : Tout sélectionner

#!/bin/sh

VAR1=$(whiptail --title "Test Free-form Input Box" --inputbox "What is your pet's name?" 10 60 VariableParDefaut1 3>&1 1>&2 2>&3)
VAR2=$(whiptail --title "Test Free-form Input Box" --inputbox "What is your pet's name?" 10 60 VariableParDefaut2 3>&1 1>&2 2>&3)


echo "Valeur de la variable 1" : $VAR1
echo "Valeur de la variable 2" : $VAR2
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
arghlub
Administrateur du site
Messages : 10421
Enregistré le : dim. 21 mai 2017 08:19
Localisation : Provence
Contact :

Re: Lancer un script à paramètres en toute simplicité

Message par arghlub »

Rémi123 a écrit : Ceci dit, vous avez manqué ma question centrale: l'étape 1! Comment, une fois qu'on a écrit le programme, faire en sorte qu'il se lance par un simple double-clic sur une icône?
Il faut que tu fasses un lanceur (raccourci) sur le bureau qui pointe vers ton script.
Capture d'écran (bureau XFCE) :
Image
Rémi123 a écrit : - Car autre remarque: quand je copie-colle ton script dans un terminal, ça ne marche pas. Le programme s'arrête après la saisie du premier paramètre.
Je viens de retester il n'y a aucun problème (je m'en serais voulu de m'être planté sur un script aussi simple).
Donc c'est très très très étrange....
Fais nous une capture d'écran du terminal après avoir lancer ces 2 commandes :

Code : Tout sélectionner

cat NOM_DU_SCRIPT.sh
./NOM_DU_SCRIPT.sh
Zenity n'est pas du tout obligatoire, c'était juste un plus si tu préfèrais une interface graphique.
;)
Tour1 (custom)CM MSI Z270 M3 | CPU Intel I7-7700K | CG Nvidia GTX 1080 | RAM 16Go | tripleBoot : Debian 11 | MXlinux 21 | LMint 19.3 | XFCE
Tour2 (custom)CM Gigabyte | CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD 12.1 XFCE
Portable1 MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 20.2 | MXlinux 21 | XFCE
Portable2 MacBook Air A1466 (2015) | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MXlinux 21 XFCE
─────( pour une informatique libre ! -membre en stand-by de l' April.org────────────────

Avatar du membre
cyrille
Administrateur du site
Messages : 12285
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Lancer un script à paramètres en toute simplicité

Message par cyrille »

pour le lancer par simple clic sur une icone
Sur ton bureau, clic DROIT puis choisir ton fichier et dans commande :

Code : Tout sélectionner

sh /home/TonUSER/Chemin/VERS/Ton/script
et penser à cocher l'option LANCER DANS UN TERMINAL

Edit : je me suis fait doublé ;)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
Rémi123
Messages : 65
Enregistré le : dim. 19 mars 2017 13:25

Re: Lancer un script à paramètres en toute simplicité

Message par Rémi123 »

Re,

Alors ma réponse en plusieurs temps.


0/ Merci Cyrille pour le script alternatif. Si tu veux bien, pour simplifier, je resterai pour l'instant sur le script d'arghlub.


1/ Tout d'abord le diagnostic quand je copie-colle le script d'arghlub dans un terminal:

Code : Tout sélectionner

r@r ~ $ #!/bin/bash
r@r ~ $ # Saisies dans le terminal
r@r ~ $ read -p "Saisis ton premier paramètre : " a
Saisis ton premier paramètre : 12
Et quand je tape entrée après avoir entré "12":

Code : Tout sélectionner

r@r ~ $ #!/bin/bash
r@r ~ $ # Saisies dans le terminal
r@r ~ $ read -p "Saisis ton premier paramètre : " a
Saisis ton premier paramètre : 12
r@r ~ $  
Donc ce que je disais: le programme s'arrête.


2/ Résultat de la manip que tu me proposes, arghlub

Code : Tout sélectionner

r@r ~/Bureau $ cat add.sh
#!/bin/bash
# Saisies dans le terminal
read -p "Saisis ton premier paramètre : " a
read -p "Saisis ton second paramètre : " b

# Somme
c=$((a+b))
echo "Résultat : "$c
r@r ~/Bureau $ ./add.sh
bash: ./add.sh: Permission non accordée
r@r ~/Bureau $ 
3/ Mais en fait ton lanceur ne marche pas, arghlub: ça me renvoie des erreurs de permissions.
Par contre, en ajoutant "sh" juste devant la commande, comme le propose Cyrille, ça marche!



Je marque donc "résolu", en pointant sur le script d'arghlub:

Code : Tout sélectionner

#!/bin/bash
# Saisies dans le terminal
read -p "Saisis ton premier paramètre : " a
read -p "Saisis ton second paramètre : " b

# Somme
c=$((a+b))
echo "Résultat : "$c
et sur le lanceur de Cyrille:
cyrille a écrit :pour le lancer par simple clic sur une icone
Sur ton bureau, clic DROIT puis choisir ton fichier et dans commande :

Code : Tout sélectionner

sh /home/TonUSER/Chemin/VERS/Ton/script
et penser à cocher l'option LANCER DANS UN TERMINAL
Thanks!!!

Je reviens vers vous au cas où ça ne marcherait pas sur mon "vrai script".

Rémi
Modifié en dernier par Rémi123 le jeu. 31 mai 2018 11:11, modifié 4 fois.
Mint 19.3 Tricia Mate

Avatar du membre
cyrille
Administrateur du site
Messages : 12285
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Lancer un script à paramètres en toute simplicité

Message par cyrille »

Si tu veux lancer le script sans le sh, faut le rendre executable

Code : Tout sélectionner

chmod +x ton-script.sh
Puis

Code : Tout sélectionner

 ./ton-script.sh
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
arghlub
Administrateur du site
Messages : 10421
Enregistré le : dim. 21 mai 2017 08:19
Localisation : Provence
Contact :

Re: Lancer un script à paramètres en toute simplicité

Message par arghlub »

Super si c'est ok 8-)

Pour éviter les erreurs de permissions, il faut que tu donnes à ton script les droits d'exécution (désolé de l'avoir oublié, pour moi ça coule de source :oops: ) :

Code : Tout sélectionner

chmod +x add.sh
EDIT : oups grillé par cyrille :)

──────────────────────────────
PS : Par contre, pour le [résolu] il faut éditer le premier message du sujet, puis :
  1. mettre un petit Image, comme suit : voir tuto ici
  2. mettre un [résolu] (entre crochets et à gauche) dans le titre de ce premier message
;)
Tour1 (custom)CM MSI Z270 M3 | CPU Intel I7-7700K | CG Nvidia GTX 1080 | RAM 16Go | tripleBoot : Debian 11 | MXlinux 21 | LMint 19.3 | XFCE
Tour2 (custom)CM Gigabyte | CPU AMD Athlon 5200+ | CG Nvidia GTX 560 | RAM 6Go | FreeBSD 12.1 XFCE
Portable1 MSI GF75 Thin 9SC | CPU Intel I7-9750H | CG Nvidia GTX 1650 | RAM 32Go | dualBoot : LMint 20.2 | MXlinux 21 | XFCE
Portable2 MacBook Air A1466 (2015) | CPU Intel I5-5250U | CG Intel HD Graphics 6000 | RAM 8Go | dualBoot : macOS Sierra | MXlinux 21 XFCE
─────( pour une informatique libre ! -membre en stand-by de l' April.org────────────────

Répondre