Como obter o programa para enviar um comando para a linha de comando do ubuntu, como se eu tivesse digitado

0

Eu tenho um dbot de programa que funciona na linha de comando do ubuntu. Se do seu diretório chamado dbot eu digito na linha de comando do meu teclado "./dbot.sh any command" ele funciona e faz o que eu quero.

Então isso funciona ~ / dbot $ ./dbot.sh anycommand

Eu sou um iniciante e escrevi um programa python 3 tragic.py que está no mesmo diretório chamado dbot.

Se a partir da linha de comando do ubuntu rodar o tragic.py em segundo plano por ~ / dbot $ python3 tragic.py & então se eu copiar e colar ./dbot.sh anycommand, então ele funciona e o dbot faz o que eu quero. Tem que estar em segundo plano ou o comando não funcionará quando colado, então estou usando &.

No entanto, eu quero que meu programa python tragic.py seja impresso na linha de comando ./dbot.sh anycommand, para que o comando seja emitido para o dbot como se eu tivesse digitado ou colado. No entanto, não funciona em segundo plano nem em primeiro plano.

Eu tentei usar uma instrução print normal e sys.stdout.write () com e sem sys.stdout.flush (), mas sem sorte

Como posso fazer com que o dbot responda ao comando impresso por tragic.py na linha de comando do ubuntu? Eu não entendo porque quando eu o digito ou colo, então funciona, mas não quando o trágico.py imprime ou imprime com sys.stdout.write

    
por ethertec 18.03.2018 / 03:03

1 resposta

0

Você sempre pode usar xargs , ou seja,

echo '-l' | xargs ls

executará efetivamente ls -l . Portanto, no seu caso, algo como ./tragic.py | xargs ./dbot.sh , ou seja, a saída do comando ./tragic.py será usada como argumento de ./dbot.sh

    
por Jacek Herbrych 18.03.2018 / 06:57