Bonjour ,
J'essaye de completer une commande , par commande .
Exemple : Completer un simple echo par commande .
J'ai essayé ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part complete -c ech
Bonjour ,
J'essaye de completer une commande , par commande .
Exemple : Completer un simple echo par commande .
J'ai essayé ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part complete -c ech
J'écris un(e) script/commande qui va tuer un processus après completion de son nom.
Donc , il faudrait une commande qui permet de simuler le [tab] en bash , aprés le préfix du processus .
Bonjour,
En bash (built-in) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $ compgen -c prin printf print printafm printenv printf printerbanner
Cordialement.
Ça fonctionne pas pour completer le nom d'un processus avec killall .
Bin si, chez moi ça fonctionne. Je connaissais pas alors j'ai essayé.
Je lance 2 process xpat2 et je les tue avec la commande "killall `compgen -c xpat`".
Mais je trouve ça dangereux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ~$ ps -ef | grep xpat2 raph 7676 1 0 01:33 ? 00:00:00 /usr/games/xpat2 raph 7683 1 0 01:33 ? 00:00:00 /usr/games/xpat2 raph 7696 7168 0 01:33 pts/0 00:00:00 grep xpat2 ~$ killall `compgen -c xpat` ~$ echo $? 0 ~$ ps -ef | grep xpat2 raph 7715 7168 0 01:34 pts/0 00:00:00 grep xpat2 ~$ killall `compgen -c xpat` xpat2: no process found ~$ echo $? 1 ~$
IMHO, you should RTFM ASAP. IHTH.
Pourrais-tu être plus explicite sur ton besoin ?
Tu voudrais que derrière la commande killall on puisse appuyer sur [TAB] pour que cela complète une liste possible de commande en cours ?
Si c'est le cas, les configurations existe déjà sous ubuntu par exemple...
Voici ce que donne par exemple:
Ici, _killall est une fonction et pour voir sa définition, il suffit d'utiliser la commande type _killall.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ complete -p | grep killall complete -F _killall killall
Cordialement.
Ici, vaut mieux faire quelque chose du genre:
Dans ce cas, on ne filtre que les process en cours, et non pas toutes les commandes possibles, mais je suis de ton avis, c'est une façon de faire dangereuse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part killall `compgen -X '<default>' -W "$(ps -eo comm | sort -u)" xpat`
Cordialement.
+1 pour pkill.
La commande est plus courte à taper mais en plus c'est plus universel.
compgen, c'est un bashisme qui n'existe pas si on utilise un autre shell.
Par exemple sous Debian, /bin/sh est un lien symbolique vers le Debian Almquist shell que j'aime bien utiliser à l'intérieur de mes shell-scrips. Ca me rappelle ma jeunesse où il fallait écrire en Bourne shell et pis c'est tout.
Et là, sous dash, compgen n'existe pas.
Je vous rassure; dans mes sessions interactives, j'utilise bash : complétion, historique, toussa...
IMHO, you should RTFM ASAP. IHTH.
Pour l'instant j'utilise pgrep.
----------
La commande suivante est censée afficher la xsession active.
( il y a d'autres approches mais pas pour toute xsession )
La boucle voulue c'est: "tant que la fin de fichier n'est pas rencontrée , affiche la session active par pgrep."
Pourtant, ça boucle infiniment et affiche des processus qui n'ont rien a voir avec le contenu du fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ls /usr/share/xsessions/>all_xsessions;while [ "$var" != "EOF" ]; do let x=x+1; var=$(sed "${x}q;d" all_xsessions); pgrep -lu $(whoami) $var; done
En fait, je ne comprends même plus le sujet, on passe d'un problème initial sur la complétion à la mode readline à un problème de "kill"...
Que veux-tu faire au juste ?
Cordialement.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager