Como agrupar a conclusão do Bash com um programa e fazer com que ele funcione no shell atual?

StackOverflow https://stackoverflow.com/questions/2616316

  •  26-09-2019
  •  | 
  •  

Pergunta

Eu suei sobre a pergunta acima. A resposta que vou fornecer demorei um pouco, mas ainda parece irremediavelmente primitiva e hacky em comparação com o que se poderia fazer, foi a conclusão para ser redesenhada para ser menos estatal. Tenho quase medo de perguntar se há uma boa razão para que a lógica de conclusão parece estar completamente divorciada do programa para o qual está concluindo.

Foi útil?

Solução

Eu escrevi uma biblioteca de linha de comando (pode ser visto no tronco de Scala) que permite que você vira uma opção para ter uma opção "--bash". Se você correr

./program --bash

Ele calcula o arquivo de conclusão, grava -o em um tempfile e ecos

. /path/to/temp/file

para o console. O resultado é que você pode usar backticks como assim:

`./program --bash`

E você terá a conclusão para o "programa" no shell atual, pois ele obterá o TempFile.

Para um exemplo concreto: confira o tronco do Scala e execute o teste/parestre.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top