#1 Le 01/02/2018, à 10:49
- Warline
Touche qui va effectuer une commande quand je lance le script.
Bonjour,
J'ai un petit soucis, depuis 2 heures je cherche comment faire pour qu'avec une touche je puisse effectuer une commande. Je m'explique.
Exemple : Je souhaite arrêter mon ordinateur mais pour cela je dois appuyer sur un touche spécifique (qui serait pour moi F1 mais je peux choisir autre chose).
Je suis sous Lubuntu et je suis un débutant depuis 2 jours.
Et il faut que la commande se fasse dans le terminal car c'est que je vais l'exécuter
Cordialement,
Hors ligne
#2 Le 01/02/2018, à 10:56
- enebre
Re : Touche qui va effectuer une commande quand je lance le script.
Salut !
Arrêter Ubuntu en ligne de commande
Taper la commande suivante pour arrêter immédiatement un système Ubuntu :
sudo shutdown -P 0
L’option « 0 » (zéro) signifie qu’il faut attendre 0 minute avant l’extinction. Cet argument remplace le now.
ubuntu shutdown
Redémarrer Ubuntu en ligne de commande
Cette commande va redémarrer le système Ubuntu :
sudo shutdown -r 0
L’argument « r » veut dire « reboot » et « 0 » pour un redémarrage immédiat.
Hors ligne
#3 Le 01/02/2018, à 10:57
- Warline
Re : Touche qui va effectuer une commande quand je lance le script.
Merci de t'a réponse, mais ce que je voulais dire c'est qu'est-ce que je dois mettre pour que quand j'appuie sur F2 sa fonctionne.
Je me suis sûrement mal exprimé, mais c'est à dire qu'il faut que je trouve comment faire la commande F2.
En gros un raccourci pour faire plus simple.
Dernière modification par Warline (Le 01/02/2018, à 10:59)
Hors ligne
#5 Le 01/02/2018, à 11:18
- Warline
Re : Touche qui va effectuer une commande quand je lance le script.
Oui, mais il faut que cela soit dans le terminal.
Mais je crois que j'ai trouvé ici : https://abs.traduc.org/abs-5.3-fr/ch04s02.html
Merci quand même.
Bonne Journée
Hors ligne
#6 Le 01/02/2018, à 13:26
- Warline
Re : Touche qui va effectuer une commande quand je lance le script.
J'ai un petit peut honte, mais enfaîte je n'ai pas tout à fait trouvé.
Il faut que je fasse ce qu'on appelle : "Affectation de variable" et je souhaite ainsi pouvoir choisir la touche que je souhaite pour y faire exécuter une commande que je souhaite.
Exemple : Code => R (m'a touche d'exemple) R => Éteindre ordinateur. Donc en faite il faut que j'arrive à faire fonctionner la touche "R" pour qu'elle éteigne mon ordinateur.
Ce qui veut dire que je dois créer un "case" mais je ne sais pas quoi mettre à l'intérieur. Donc en gros créer un raccourcis mais tout sa dans le terminal.
Sans oublier qu'il faut aussi que seulement la touche R puisse l’éteindre, pas une autre touche.
J'espère m'être mieux exprimais. Je vous souhaites une bonne après-midi.
Cordialement,
Hors ligne
#7 Le 01/02/2018, à 13:33
- enebre
Re : Touche qui va effectuer une commande quand je lance le script.
Ca fait que lorsque tu commence à écrire 'r'ouge ou 'r'obert le pc va s'éteindre !!!
Dernière modification par enebre (Le 01/02/2018, à 13:36)
Hors ligne
#8 Le 01/02/2018, à 13:41
- Warline
Re : Touche qui va effectuer une commande quand je lance le script.
Exactement, j'ai trouvé le début sur un site (j'ai testé) :
echo -n "Entrez \"[b]R[/b]\" "
read R
echo "La valeur de \"R\" est maintenant $R."
Donc ce qui faudrait réussir à faire c'est d'empêcher qu'une autre touche fonctionne. C'est à dire que quand y'a écrit : "Entrez "R" et que j'écris "R" Y'a marqué : La valeur de R est maintenant R. Mais même si j'essaye avec une autre touche sa marque toujours la même chose.
Et je ne sais pas ce que je dois rajouter pour que le code fonctionne parfaitement.
Je ferais les modifications que je dois rajouter dans mon code, mais la le soucis c'est que les autres touches fonctionnent alors que j'ai marqué je souhaitais juste que la touche R fonctionne.
Cordialement,
Hors ligne
#9 Le 01/02/2018, à 13:57
- enebre
Re : Touche qui va effectuer une commande quand je lance le script.
Et si tu allais simplement dans "Paramètres" > Clavier > Raccourcis d'applications, et y entrer la commande shutdown -r 0 Pour la touche de ton choix, mais il faudra donner les droits à l'utilisateur pour que ça fonctionne, mais tu peux essayer.
Hors ligne
#10 Le 01/02/2018, à 13:58
- Warline
Re : Touche qui va effectuer une commande quand je lance le script.
Et si tu allais simplement dans "Paramètres" > Clavier > Raccourcis d'applications, et y entrer la commande shutdown -r 0 Pour la touche de ton choix, mais il faudra donner les droits à l'utilisateur pour que ça fonctionne, mais tu peux essayer.
J'ai oublié de préciser que c'est un Script que je suis en train d'essayer de faire...
Hors ligne
#11 Le 01/02/2018, à 14:21
- enebre
Re : Touche qui va effectuer une commande quand je lance le script.
Je ne peux pas t'aider, de plus je pense que pour une lettre du clavier ce n'est pas possible ni souhaitable.
Hors ligne
#12 Le 01/02/2018, à 14:23
- Warline
Re : Touche qui va effectuer une commande quand je lance le script.
Je ne peux pas t'aider, de plus je pense que pour une lettre du clavier ce n'est pas possible ni souhaitable.
Si ! Trouvé :
read -n 1 KEY
echo $KEY
Par contre je ne sais toujours pas ce que je dois mettre, pour que une autre touche ne le fasse pas fonctionner.
Hors ligne
#13 Le 01/02/2018, à 14:57
- enebre
Re : Touche qui va effectuer une commande quand je lance le script.
je ne sais pas...
si tu y comprend vois ici
Dernière modification par enebre (Le 01/02/2018, à 14:58)
Hors ligne
#14 Le 01/02/2018, à 18:47
- Sciensous
Re : Touche qui va effectuer une commande quand je lance le script.
Si ! Trouvé :
read -n 1 KEY echo $KEY
Par contre je ne sais toujours pas ce que je dois mettre, pour que une autre touche ne le fasse pas fonctionner.
ajoute:
if [ $KEY = "r" ]; then poweroff; fi;
(respecte bien les espaces quand il y en a)
$ indique au système que KEY est une variable, la condition est if <test>; then <commande>; fi;
cerise: à la fin du script, mettre un exit 0; pour indiquer la fin
Dernière modification par Sciensous (Le 01/02/2018, à 18:49)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#15 Le 01/02/2018, à 21:43
- Hizoka
Re : Touche qui va effectuer une commande quand je lance le script.
en effet, il faut faire suivre le PRINTpar un IF ou un CASE.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#16 Le 04/02/2018, à 11:45
- Brice Jeunieaux
Re : Touche qui va effectuer une commande quand je lance le script.
Bonjour / bonsoir ,
je suis tombé sur ce topic, et l'utilisation de ce code m'intéresse de par sa simplicité, mais ma question est : n'y aurait-il pas un moyen de remplacer la détection du caractère 'r' par la détection d'une touche fléchée du clavier ? Si oui, quelle serait la syntaxe à utiliser ?
Merci beaucoup.
Hors ligne
#17 Le 04/02/2018, à 12:17
- Hizoka
Re : Touche qui va effectuer une commande quand je lance le script.
Pour les fléches c'est plus galere, car ça fait 3 bytes, mais j'ai trouvé ça https://stackoverflow.com/questions/106 … ys-in-bash
function fleches
{
escape_char=$(printf "\u1b")
read -rsn1 mode # get 1 character
if [[ $mode == $escape_char ]]; then
read -rsn2 mode # read 2 more chars
fi
case $mode in
'q') echo QUITTING ; exit ;;
'[A') echo UP ;;
'[B') echo DN ;;
'[D') echo LEFT ;;
'[C') echo RIGHT ;;
*) >&2 echo 'ERR bad input'; return ;;
esac
}
fleches
=> UP
fleches
=> DN
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#18 Le 04/02/2018, à 18:24
- Brice Jeunieaux
Re : Touche qui va effectuer une commande quand je lance le script.
Pour les fléches c'est plus galere, car ça fait 3 bytes, mais j'ai trouvé ça https://stackoverflow.com/questions/106 … ys-in-bash
function fleches { escape_char=$(printf "\u1b") read -rsn1 mode # get 1 character if [[ $mode == $escape_char ]]; then read -rsn2 mode # read 2 more chars fi case $mode in 'q') echo QUITTING ; exit ;; '[A') echo UP ;; '[B') echo DN ;; '[D') echo LEFT ;; '[C') echo RIGHT ;; *) >&2 echo 'ERR bad input'; return ;; esac } fleches => UP fleches => DN
Merci à toi, c'est exactement cela qu'il me fallait, j'ai juste dû retirer le petit bout de code à la fin, car il ne voulait pas fonctionner à cause du '=' :
=> UP
fleches
=> DN
Et en parlant de ce tout ce code, que fait-il exactement ?
(Si tu as le temps et l'envie de me l'apprendre, merci d'avance, c'est honorable )
Dernière modification par Brice Jeunieaux (Le 04/02/2018, à 18:29)
Hors ligne
#19 Le 04/02/2018, à 18:28
- Watael
Re : Touche qui va effectuer une commande quand je lance le script.
c'est les appels à la fonction et leur résultat.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne