web-dev-qa-db-fra.com

Exécuter un script shell sur un raccourci clavier

Je voudrais exécuter un script Shell sur la pression d'un bouton. Le script fonctionne si je le lance comme d'habitude: sh script.sh. Mais assigner un raccourci à cela ne fonctionne pas.

Screenshot of shortcut menu

Comment feriez-vous cela dans Xubuntu 14.10?

3
TomTom

Je suis presque sûr que le problème est le ~. Il s’agit d’une fonctionnalité Shell (ligne de commande) et les raccourcis clavier sont gérés par le shell graphique. Je ne pense pas que ~ ou $HOME soit développé correctement ici. Donc, au lieu de ~/path/to/script, utilisez

/home/username/Documents/Various/SyncStuff.sh

Cela suppose que vous avez rendu le script exécutable. Si non, utilisez

sh /home/username/Documents/Various/SyncStuff.sh

La sh devrait suffire car le $PATH est également lu par les interpréteurs graphiques, pour autant que je sache. Si cela échoue aussi, essayez avec le chemin complet mais je doute que ce soit nécessaire:

/bin/sh /home/username/Documents/Various/SyncStuff.sh
7
terdon

Super post. Je cherchais un moyen de faire cela depuis les dernières versions d'ubuntu (actuellement sur 19.04)

Utiliser le chemin complet est ce qui l’a fait. Je vous remercie. Ce qui a fonctionné pour moi a été le suivant ...

Je cherchais un moyen de définir un raccourci clavier pour insérer la date et l'heure dans le document que j'avais ouvert.

J'ai trouvé un script en ligne et apporté quelques modifications mineures (principalement l'association de raccourcis clavier parce que je n'aimais pas leur choix car il s'agissait d'un combo clé déjà utilisé par Ubuntu) en un script que je souhaitais et qui était également disponible.

Créé un fichier appelé 'insertTimestamp.sh' dans mon répertoire racine.

J'ai ensuite collé (et légèrement modifié) le code à mon goût ...

-------- Copier/coller le code entre les lignes ----------

!/bin/sh

xdotool keyup "super + t"; # nécessaire pour actualiser le statut de la demande. simule le relâchement des touches de raccourci clavier super + t, sinon il interfère avec la date de la fonction de collage ctrl-v '+% Y-% m-% d% H:% M:% S' | tr -d "\ n" | xsel -i -b; # ajoute la date/heure à la touche xdotool du presse-papiers "ctrl + v"; # simule un ctrl-v

xdotool keydown "super"; #unpretend l'utilisateur lâche la super clé


Une fois que j'ai collé ce qui précède dans le fichier et que je l’ai sauvegardé, il était nécessaire de modifier les autorisations du fichier.

chmod u+x ~/insertTimestamp.sh

Une fois cela fait, il vous suffit de rechercher "keyboard" => choisissez Keyboard => Aller à l’onglet Raccourcis d’application => Ajouter => Pour "Commande" tapez "sh the/full/path/insertTimestamp.sh" (sans guillemets et votre chemin complet), => Définissez les clés comme super + t.

J'espère que cela fournit un exemple décent de la façon de mettre cela en place.

entrez la description de l'image ici

1
Paul Johnston