Supere la pregunta anterior. La respuesta que voy a proporcionarme me llevó un tiempo para reconstruirla, pero todavía parece irremediablemente primitiva y hacky en comparación con lo que se podría hacer si la terminación se rediseñara para ser menos estática. Casi me da miedo preguntar si hay alguna buena razón para que la lógica de finalización parezca estar completamente divorciada del programa que está completando.¿Cómo agrupar la finalización de bash con un programa y hacer que funcione en el shell actual?
7
A
Respuesta
8
Escribí una biblioteca de línea de comandos (se puede ver in scala trunk) que le permite activar un interruptor para tener una opción "--bash". Si ejecuta
./program --bash
Se calcula el archivo de finalización, lo escribe en un archivo temporal, y se hace eco de
. /path/to/temp/file
a la consola. El resultado es que se puede usar acentos abiertos de este modo:
`./program --bash`
y usted tendrá la finalización de "programa" en el shell actual, ya que se usa como fuente el archivo temporal.
Para un ejemplo concreto: echa un vistazo a scala trunk y ejecuta test/partest.
Cuestiones relacionadas
- 1. ¿Es posible hacer que un script bash shell interactúe con otro programa de línea de comando?
- 2. cómo hacer que $ (eval $ (shell ...)) funcione en GNU make
- 3. ¿Cómo implemento la finalización de pestañas en el shell node.js?
- 4. Python argparse y finalización de bash
- 5. Iniciando un nuevo shell bash desde un shell bash
- 6. DateTime.Parse y hacer que funcione con un formato específico
- 7. ¿Cómo hacer que HTML5 funcione con DOMDocument?
- 8. ¿Cómo hacer que file_get_contents() funcione con HTTPS?
- 9. ¿Cómo puedo hacer que un hipervínculo funcione en un RichTextBox?
- 10. ¿Cómo hacer que SVG funcione con IE?
- 11. Cómo ejecuto un programa dentro de un script de shell y hago que el script de shell continúe, aunque el programa permanezca abierto
- 12. Cómo almacenar en caché una variable utilizada dentro de un script de finalización de bash para la sesión actual
- 13. Cómo hacer que funcione PREPARE TRANSACTION
- 14. Cómo evitar que la finalización de bash reemplace un carácter cuando se completa la pestaña
- 15. ¿Cómo funciona la finalización de la pestaña bash?
- 16. Finalización de pestañas en adb shell
- 17. ¿Cómo hacer que CDT/Eclipse funcione con C + + 11 hilos?
- 18. shell interactivo de JavaScript con finalización
- 19. ¿Cómo hacer que lxml funcione en IronPython?
- 20. ¿Cómo hacer que = NULL funcione en SQLite?
- 21. Hacer que el paquete R funcione en Windows y Linux
- 22. Linux: escriba un programa en C que 'controla' un shell
- 23. "[]" vs. "[[]]" en el shell Bash
- 24. ¿Cómo puedo hacer que la finalización de la pestaña bash se comporte como la finalización de la pestaña vim y recorrer las coincidencias coincidentes?
- 25. ¿Cómo hacer que la traducción funcione fuera de la clase?
- 26. cakephp: cómo hacer que NOW() funcione en condiciones de búsqueda?
- 27. ¿Cómo hacer que eclipse lance un programa en el eclipse workbench desde la línea de comando?
- 28. Cómo hacer que mi función de 'clic' funcione con iOS
- 29. Hacer que un miembro funcione como amigo
- 30. ¿Cómo hacer que Java funcione con SQL Server?
Usted puede deshacerse de archivo temprary aquí mediante el uso de cadenas: fuente/dev/stdin <<< "$ (./ --bash programa)" –
Sí, me había encontrado con eso, sino que en la formulación vi no funcionó en OSX. ¡Lo tuyo! Muchas gracias – extempore
A partir del 2017-10-06 el enlace está muerto – Morgen