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 01/02/2018, à 11: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, à 11: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, à 11: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, à 11:59)

Hors ligne

#4 Le 01/02/2018, à 12:07

enebre

Re : Touche qui va effectuer une commande quand je lance le script.

1517479630.pngIl faut changer les paramètres de cette touche, avec la commande pour éteindre l'ordinateur

Hors ligne

#5 Le 01/02/2018, à 12: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, à 14: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, à 14: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, à 14:36)

Hors ligne

#8 Le 01/02/2018, à 14: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, à 14: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, à 14:58

Warline

Re : Touche qui va effectuer une commande quand je lance le script.

enebre a écrit :

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, à 15: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, à 15:23

Warline

Re : Touche qui va effectuer une commande quand je lance le script.

enebre a écrit :

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, à 15: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, à 15:58)

Hors ligne

#14 Le 01/02/2018, à 19:47

Sciensous

Re : Touche qui va effectuer une commande quand je lance le script.

Warline a écrit :

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, à 19:49)


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

Hors ligne

#15 Le 01/02/2018, à 22: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, à 12: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, à 13: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, à 19:24

Brice Jeunieaux

Re : Touche qui va effectuer une commande quand je lance le script.

Hizoka a écrit :

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 smile )

Dernière modification par Brice Jeunieaux (Le 04/02/2018, à 19:29)

Hors ligne

#19 Le 04/02/2018, à 19: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