Atalho de teclado para script de shell em 15.10

0

Por um tempo agora eu tenho atribuído alguns dos meus scripts de shell pessoais para atalhos de teclado no Ubuntu (passando por Configurações > Teclado > Atalhos e atribuindo-os sob Custom).

Após a atualização para o 15.10, no entanto, não consigo mais executar scripts de shell a partir de atalhos do keybaord dessa maneira. A sintaxe mudou ou há novos requisitos? Anteriormente, havia sido suficiente para eu definir o comando como ~/myscript.sh , mas isso não funciona mais.

Meu script tem permissões executáveis e executá-lo a partir da linha de comando não é problema. Eu tentei:

./myscript.sh
/home/me/myscript.sh
bash /home/me/myscript.sh
sh /home/me/myscript.sh

Entre muitas outras combinações de caminhos e comandos. Nenhum deles tem resposta e todos funcionam bem quando colados diretamente no terminal. Também tentei atribuir o script a outras combinações de teclas, mas nenhuma delas tem resposta (embora as combinações de teclas funcionem bem se eu atribuir outro comando que não seja um shell script).

A execução de scripts é uma parte crucial do meu fluxo de trabalho diário, portanto, qualquer sugestão seria bem-vinda. Obrigada!

    
por elethan 01.11.2015 / 21:36

1 resposta

0

Depois de muita experimentação com as etapas sugeridas nos comentários, entre outras coisas, descobri que posso executar scripts shell e posso até executar o script desejado, é apenas uma linha específica do script que foi falhando.

A parte mais importante do meu script de shell é, na verdade, a invocação de um script python. O script python precisa de acesso aos módulos fora do meu normal PATH . Por esse motivo, no meu .bashrc , adiciono os caminhos apropriados ao meu PYTHONPATH . No entanto, parece que os comandos que são executados a partir de atalhos de teclado desta forma ignoram o conteúdo do meu .bashrc . Estou curioso para saber onde / como esses comandos são executados sob o capô, mas vou postar outra pergunta para isso.

A solução foi adicionar caminhos necessários ao meu PYTHONPATH no próprio script shell com a seguinte linha, para que eles sejam acessíveis ao script python:

 export PYTHONPATH="/path/to/crucial/python/library"
    
por elethan 04.11.2015 / 04:24