Problème script bash & lirc

Problème script bash & lirc - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 21-01-2014 à 17:23:42    

Salut,
J'en appelle aux connaisseurs pour un problème de script bash avec Lirc, le topo :
- Raspberry Pi avec distribution Raspbian à jour
- Lirc à jour, configuré pour ma télécommande PC RC6 et fonctionnel
- Irexec, module de lirc, configuré pour lancer des scripts bash quand il reçoit tel ou tel code infrarouge
 
Jusque là j'ai utilisé des scripts bash assez simple, pour renvoyer un code infrarouge ou faire un curl et ça fonctionne bien.
Mon problème c'est que par soucis d'optimisation des touches de ma télécommande, plutôt que d'avoir une touche ON et une OFF pour un appareil X (mon ampli dans ce cas) je veux une touche qui fasse ON et OFF.
 
Voilà donc une première solution basique, fonctionnelle et pas très propre :
 

Code :
  1. #!/bin/bash
  2. if [ -f ~/1.txt ]
  3. then
  4.         echo the file exists
  5.  irsend send_once onkyo1 KEY_GAMES # allumage ampli
  6.         rm -rf 1.txt
  7. else
  8.         echo the file does not exist
  9.  irsend send_once onkyo1 KEY_POWER2 # exctinction ampli
  10.         cat > 1.txt &
  11. fi


 
Ce script fonctionne quand je le lance en ssh mais pas quand il est lancé par Irexec à la réception d'un code infrarouge.
Il se passe quand même quelque chose, le code d'exctinction ampli est envoyé (j'ai un retour visuel) mais pas de création ou suppression du fichier 1.txt qui me sert de "variable".
Les droits pour mon script sont les mêmes qu'avant et les mêmes que les autres qui sont fonctionnels alors je n'ai aucune idée de ce qui merde.
 
Question bonus et facultative, pour faire plus propre, comme je vais avoir plusieurs script ON/OFF j'ai pensé faire un fichier unique avec à chaque ligne 0 ou 1 pour l'état de chaque interrupteur.
J'ai ça comme code, la lecture fonctionne bien, l'écriture me renvoie un résultat correct si je tappe la commande en ssh mais en fait ne modifie pas mon fichier :/
 
Merci à ceux qui prendront le temps de répondre  :jap:

Reply

Marsh Posté le 21-01-2014 à 17:23:42   

Reply

Marsh Posté le 21-01-2014 à 21:44:37    

Tu devrais essayer en précisant le chemin absolu vers le fichier 1.txt. (ex : /tmp/1.txt)
 
Car tu n'as pas renseigné le même chemin partout :

  • ~/1.txt  = /home-de-l'utilisateur-courant/1.txt
  • 1.txt = emplacement-duquel-le-script-est-lancé/1.txt

Reply

Marsh Posté le 22-01-2014 à 11:20:40    

Niquel, merci c'était bien ça. J'ai cherché longtemps pour un problème tout con.
:jap:

Reply

Marsh Posté le 22-01-2014 à 14:58:30    

J'arrive à la bourre mais l'allais dire la même chose. ;)


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 22-01-2014 à 16:24:40    

:jap:  
 
Sinon, ton "cat > 1.txt &" pourrait plus simplement être remplacé par "touch 1.txt"

Reply

Marsh Posté le 22-01-2014 à 19:19:13    

Je vais tester ça alors, merci pour l'optimisation.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed