Sub-comandos em bash [closed]

1

Eu quero criar um cli no bash que permita ao usuário obter uma lista de instâncias do banco de dados em nossa plataforma. Eu quero que eles possam digitar algo como:

$ dbinv instances show --environment=all

Da mesma forma, se eles quiserem ver os usuários de uma instância específica chamada db1, eles podem digitar:

$ dbinv instances users show --environment=production --instance=db1

Como alguém poderia desenvolver isso de uma perspectiva cli? O que devo pesquisar ou explorar?

Eu deveria estar olhando para algo como Ruby ou Python, em vez de bash?

    
por Molenpad 23.11.2018 / 11:34

1 resposta

1

Você pode usar todos os 3 idiomas. Eu recomendaria ver como svn, hg, git, docker o fazem.

Eles terão um comando wrapper: por exemplo, dbinv .
Ele examinará seu primeiro argumento e, em seguida, chamará um script auxiliar. por exemplo, dbinv show arg1 , chamará «directory-containing-dbinv-commands»/dbinv-show arg1 .

Esse wrapper pode ser feito facilmente no bash. Os subcomandos podem ser feitos em outros idiomas (use #! no topo de um script para especificar o idioma).

Para fazer o wrapper, pesquise "$1" , "$@" , shift e exec (não tão importante).

    
por 23.11.2018 / 12:08