Criando um shell interativo para um comando

2

Eu tenho um servidor executando uma aplicação (fantoche) e a administração do servidor é feita quase exclusivamente com os comandos específicos do programa.

Seria interessante configurar o servidor como um appliance dedicado, semelhante ao modo como o Cisco IOS funciona com o comando puppet.

O comando fantoche tem muitos argumentos, muitos dos quais também requerem elevação, de modo que eu estou frequentemente digitando "sudo fantoche comando subcomando subcomando argumento".

Eu quero poder digitar "sudo puppet" e então entrar no contexto "puppet", onde eu só tenho que digitar os comandos de nível superior sem ter que digitar "sudo puppet command".

Então, depois de inserir o comando, estou no contexto de comandos e só preciso digitar o comando sub e o argumento para o subcomando.

Está claro o que estou tentando realizar? Isso é possível?

    
por user1028270 05.12.2015 / 16:19

1 resposta

4

Isso é realmente fácil de realizar, você pode usar um script como este:

#!/bin/bash
while [ 1 ]; do
    echo -n "puppet> "
    read input
    puppet $input
done

Salve com um nome como foo.sh e, em seguida, apenas execute sudo bash foo.sh (ou sudo ./foo.sh se você definir o sinalizador de executável).

    
por 05.12.2015 / 17:56

Tags