Por que não posso chamar este programa usando o caminho completo?

3

Estou tentando criar um wrapper de linha de comando no Python 3 para uma ferramenta de linha de comando chamada spooky e estou tendo dificuldades para entender um comportamento estranho. Se eu digito spooky na linha de comando, ele traz a man page para spooky. Se eu digitar o caminho para a ferramenta assustadora ( /path/to/spooky ) na linha de comando, isso também fará com que a página man seja assustadora.

Eu posso executar o programa assustador com sucesso se colocar spooky no meu caminho e, em seguida, inserir os argumentos necessários como este:

$ spooky -a 50 -b .97

No entanto, se eu não colocar spooky no meu caminho e digitar o comando a seguir, ele não será executado.

$ /path/to/spooky -a 50 -b .97

Por que esse programa não é executado quando eu entro no caminho do programa e depois nos argumentos necessários?

    
por dr.bunsen 26.08.2011 / 17:35

3 respostas

4

Na sua pergunta, "spooky" se refere ao comando existente ou ao wrapper do python 3 que você está escrevendo?

Além disso, você disse que, se digitar spooky na linha de comando, será exibida a man page. Isso está correto? Apenas "assustador" por si só - e não "man spooky" - invoca uma página man?

ADIÇÃO:

Baseado no que você disse, parece que o comando "assustador" está inspecionando seus próprios argumentos - incluindo o nome pelo qual foi invocado - e reclamando se o nome é diferente de "assustador", o que acontece quando você o executa com o nome completo do caminho.

Uma solução simples seria executar o comando como "assustador" em seu wrapper e verificar se ele está no caminho.

    
por 26.08.2011 / 20:24
1

Qualquer mensagem de erro seria realmente útil em vez de "não ser executada".

No entanto, tente adicionar

  #!/usb/bin/python 

(ou #! / usb / bin / python3.2 ou qualquer outro interpretador Python que seu sistema usa) como a primeira linha do script Python.

Além disso, use o comando unix chmod para marcar o arquivo como executável

 chmod u+x /path/to/spooky 
    
por 26.08.2011 / 17:40
1

Parece que 'spooky' está fazendo um péssimo trabalho ao analisar seus argumentos (por que e como isso depende da linguagem em que o spooky está escrito).

Uma solução simples seria alterar o diretório de trabalho para spooky antes de invocá-lo com os.chdir .

    
por 26.08.2011 / 17:51

Tags