Besoin d'un EXPERT LINUX (script)
michelfavre38
2021-09-16 10:32:14
Les gars j'ai une question,
Je veux avec un seul script lancer deux commandes.
C'est à dire :
Je lance une premiere fois mon script sh /coin/coin.sh => ça me lance echo coucou
Je lance une deuxieme fois tjr le même script sh /coin/coin.sh => ça me lance echo coucou2
Et que ça tourne en boucle (troisieme fois echo coucou donc )
C'est possible ou pas ? 2H que je galère
LeGoutteux1
2021-09-16 10:34:52
mets une variable dans le script dans laquelle tu fais +1
ensuite tu fais une condition si la variable est paire tu exécutes le script 2, else le script 1
PSVitaBide
2021-09-16 10:35:14
Tu veux un script qui a une mémoire de combien de fois il a été appelé, et avoir un comportement différent à chaque fois ? A ma connaissance, c'est faisable de façon consistante qu'en stockant le nombre de passage dans un fichier tierce, en le lisant et modifiant à chaque appel.
Tu peux sans doute aussi le faire en exportant des variables, mais ça survit pas à ton shell.
michelfavre38
2021-09-16 10:39:57
Les gars j'ai oublié de préciser que je suis une vrai dob en script.
En tout cas merci à vous 2.
Mon script est le suivant
#!/bin/bash
# $1 est le code émis reçu en argument par le script
case $1 in
#Alarme Desactiver
11741730) sh /home/pi/scripts/gavance.sh
;;
#alarme Activer
11741730) sh /home/pi/scripts/gstop.sh
;;
esac
Pr résumer vite fait, j'appuie sur un bouton de ma télécommande, ça lance le script que j'ai mis au dessus. et donc la premiere commande sh /home/pi/scripts/gavance.sh
et donc si je rappuie sur le bouton il faut que ça lance la commande 'sh /home/pi/scripts/gstop.sh'
Est-ce que vous pouvez m'aider svp ?
HardCoffeeCream
2021-09-16 10:46:41
Le 16 septembre 2021 à 10:34:52 :
mets une variable dans le script dans laquelle tu fais +1
ensuite tu fais une condition si la variable est paire tu exécutes le script 2, else le script 1
il faut stocker une variable qui sera lu dans le script pour alterner
PSVitaBide
2021-09-16 10:48:14
Tu veux juste un compteur sur 1 bit, c'est vraiment loin d'être compliqué, je suis juste pas trop sûr de comment tu veux t'y prendre, tu veux faire quoi avec ton case ? Tes deux branches représentent le même cas, ça ne sert à rien.
Tu crée un fichier file1.txt dans le même répertoire, avec juste un 0 dedans, tu rajoutes dans ton script :
awk -F, '$2=$2+1' OFS=, file1.txt
et tu fais ton script 1 si $2%2 == 0, sinon ton script 2.
HardCoffeeCream
2021-09-16 10:49:56
tu peux faire un une variable globale $a, avec le code a=!a dans la boucle ( dans le langage que tu utilise ) dans le script principal avec a défini en boleen sur true
le script secondaire lira $a et alternera avec un case ou un simple if
PSVitaBide
2021-09-16 10:52:32
Le 16 septembre 2021 à 10:49:56 :
tu peux faire un une variable globale $a, avec le code a=!a dans la boucle ( dans le langage que tu utilise ) dans le script principal avec a défini en boleen sur true
le script secondaire lira $a et alternera avec un case ou un simple if
C'est pas mal mais ça dépend de si t'es dans une boucle, où sur un script appelé par un listener.
Si c'est juste un script appelé, t'as besoin d'un contexte permanent, et pas juste temporaire comme une variable.
michelfavre38
2021-09-16 10:55:23
Les gars vous faites exprès de me parler en chinois ?
Je comprends rien
Mon script est en haut, ou mettre cette variable que vous parler tous?
chaingy
2021-09-16 10:55:25
Un script est sans état donc tu ne peux pas ajouter +1 a chaque fois que tu le lance si tu quittes le script
michelfavre38
2021-09-16 10:58:29
Le 16 septembre 2021 à 10:55:25 :
Un script est sans état donc tu ne peux pas ajouter +1 a chaque fois que tu le lance si tu quittes le script
hm... bien sur
FoutuPseudo
2021-09-16 11:06:14
Les premières années de fac informatique on vous voit
PSVitaBide
2021-09-16 11:07:33
Le 16 septembre 2021 à 10:55:23 :
Les gars vous faites exprès de me parler en chinois ?
Je comprends rien
Mon script est en haut, ou mettre cette variable que vous parler tous?
En gros :
Ton script, en l'état actuel, il dit :
Si tu t'appelles 11741730, fais A
Si tu t'appelles 11741730, fais B
Donc ton script, il a un argument qui s'appelle 11741730, il va faire A et B.
Toi, ce que tu veux, c'est de dire :
Si tu t'appelles 11741730:
Regarde le nombre dans ce fichier, s'il est pair, fait A, sinon fait B.
C'est plus clair?
michelfavre38
2021-09-16 11:30:43
Le 16 septembre 2021 à 11:07:33 :
Le 16 septembre 2021 à 10:55:23 :
Les gars vous faites exprès de me parler en chinois ?
Je comprends rien
Mon script est en haut, ou mettre cette variable que vous parler tous?
En gros :
Ton script, en l'état actuel, il dit :
Si tu t'appelles 11741730, fais A
Si tu t'appelles 11741730, fais B
Donc ton script, il a un argument qui s'appelle 11741730, il va faire A et B.
Toi, ce que tu veux, c'est de dire :
Si tu t'appelles 11741730:
Regarde le nombre dans ce fichier, s'il est pair, fait A, sinon fait B.
C'est plus clair?
Laisse moi un peu de temps pour réfléchir merci
PSVitaBide
2021-09-16 11:33:26
Le 16 septembre 2021 à 11:30:43 :
Le 16 septembre 2021 à 11:07:33 :
Le 16 septembre 2021 à 10:55:23 :
Les gars vous faites exprès de me parler en chinois ?
Je comprends rien
Mon script est en haut, ou mettre cette variable que vous parler tous?
En gros :
Ton script, en l'état actuel, il dit :
Si tu t'appelles 11741730, fais A
Si tu t'appelles 11741730, fais B
Donc ton script, il a un argument qui s'appelle 11741730, il va faire A et B.
Toi, ce que tu veux, c'est de dire :
Si tu t'appelles 11741730:
Regarde le nombre dans ce fichier, s'il est pair, fait A, sinon fait B.
C'est plus clair?
Laisse moi un peu de temps pour réfléchir merci
Aucun soucis, écris moi si t'as encore besoin d'aide
michelfavre38
2021-09-16 11:50:10
Le 16 septembre 2021 à 11:07:33 :
Le 16 septembre 2021 à 10:55:23 :
Les gars vous faites exprès de me parler en chinois ?
Je comprends rien
Mon script est en haut, ou mettre cette variable que vous parler tous?
En gros :
Ton script, en l'état actuel, il dit :
Si tu t'appelles 11741730, fais A
Si tu t'appelles 11741730, fais B
Donc ton script, il a un argument qui s'appelle 11741730, il va faire A et B.
Toi, ce que tu veux, c'est de dire :
Si tu t'appelles 11741730:
Regarde le nombre dans ce fichier, s'il est pair, fait A, sinon fait B.
C'est plus clair?
J'ai compris quelque chose, j'ai compris quelque chose !!
Merci, maintenant la pratique