J'ai transpiré sur la question ci-dessus. La réponse que je vais fournir m'a pris un certain temps à rassembler, mais il semble toujours désespérément primitif et hacky par rapport à ce que l'on pouvait faire étaient l'achèvement d'être redessiné pour être moins statique. J'ai presque peur de demander s'il y a une bonne raison pour laquelle la logique d'achèvement semble être complètement séparée du programme pour lequel elle se termine.Comment regrouper bash achèvement avec un programme et le faire fonctionner dans le shell en cours?
Q
Comment regrouper bash achèvement avec un programme et le faire fonctionner dans le shell en cours?
7
A
Répondre
8
J'ai écrit une bibliothèque de ligne de commande (peut être vu in scala trunk) qui vous permet de retourner un commutateur pour avoir une option "--bash". Si vous exécutez
./program --bash
Il calcule le fichier d'achèvement, l'écrit sur un tempfile, et fait écho à
. /path/to/temp/file
à la console. Le résultat est que vous pouvez utiliser comme si les apostrophes inverses:
`./program --bash`
et vous aurez terminé pour « programme » dans le shell courant car elle la source du tempfile.
Pour un exemple concret: vérifiez le coffre de scala et exécutez test/partest.
Questions connexes
- 1. Bash Achèvement
- 2. programme shell bash
- 3. Répertoire du script en cours d'exécution dans le shell Fish
- 4. Bash Achèvement: Que pouvons-nous faire avec, ce qui se trouve dans le futur
- 5. comportement bizarre avec optparse et onglet bash achèvement
- 6. Interaction avec le programme et test via le script bash
- 7. Comment faire pour étendre shell bash?
- 8. Temps d'incrémentation (minutes et secondes) dans le script bash/shell
- 9. Comment faire fonctionner un programme chronomètre?
- 10. Comment créer un programme CLI avec "shell prompt"?
- 11. bash: Exécuter un autre programme dans le répertoire courant en cours d'exécution à partir du chemin
- 12. Comment créer un shell avec l'historique dans mon programme Perl?
- 13. Qu'est-ce que '$$' dans le shell bash?
- 14. Comment le faire fonctionner dans O (n)?
- 15. Achèvement de Bash pour faire avec des cibles génériques dans un Makefile
- 16. Caret rechercher et remplacer dans shell Bash
- 17. Génération de nombres aléatoires avec awk dans le shell BASH
- 18. sélectionner échouer avec le programme C mais pas le shell
- 19. S'assurer que le script shell est en cours d'exécution par BASH (pas csh, ksh, sh etc.)
- 20. Eclipse: Comment faire fonctionner Ctrl + F11 quel que soit le fichier en cours d'édition?
- 21. Comment faire fonctionner virtualenvwrapper et cygwin?
- 22. Comment abandonner un shell bash depuis Python?
- 23. Achèvement automatique de l'onglet dans bash en utilisant php
- 24. Comment enregistrer la sortie de l'exécutable en cours d'exécution avec le script bash et l'entrée standard?
- 25. Comment regrouper du code C/C++ avec C-shell-script?
- 26. Comment créer un nouveau lanceur avec shell bash?
- 27. Comment faire exponentiation en bash
- 28. Comment faire un fichier dans un script shell et l'exécuter?
- 29. Comment utiliser la même variable bash entre un shell parent et l'enfant shell
- 30. Utilisation de bash (cygwin) dans le programme C#
Vous pouvez vous débarrasser de fichier temprary en utilisant ici chaînes: Source/dev/stdin <<< "$ (programme --bash ./)" –
Oui, je l'avais rencontré, mais dans la formulation j'ai vu cela n'a pas fonctionné sur OSX. Le vôtre! Merci beaucoup. – extempore
En date du 2017-10-06 le lien est mort – Morgen