Os atalhos de teclado do GNOME3 não executam meu script

2

Eu tenho um script caseiro que tira uma captura de tela e a carrega para puush, e coloquei o script em / usr / bin. Se eu abrir um terminal e escrever o nome do script, ele funcionará perfeitamente. Eu uso o Debian Instável (Sid) com o Gnome3.

O que estou tentando fazer é colocar o script em um atalho de teclado ou pelo menos executá-lo sem abrir um terminal. Tentei usar o Alt + F2 para abrir um prompt de comando, mas por algum motivo meu script não é executado, mesmo que eu tente invocá-lo dessa maneira. A mesma coisa se eu colocar o script em um atalho de teclado.
Também examinei as permissões para o arquivo, e todos têm permissão para ler ou executar o script, que pertence ao root e está no grupo raiz, assim como outros programas.

Link para o script

O objetivo é executar o script caseiro usando um atalho de teclado e usando o prompt de comando como opção secundária, se o atalho de teclado não funcionar. Estou perplexo sobre o que fazer embora.

Coisas testadas até o momento:
usando o caminho inteiro para executar o script.
Abra o gnome-terminal e passe o script como um parâmetro "gnome-terminal -e script",
adicione #! / Bin / bash no início do script

Wertilq
fonte
O seu script tem um shebang?
FSMaxB
Aliás, você realmente deve alterar o título da sua pergunta, porque sabe como criar um atalho de teclado e o título faz com que você pense que não!
FSMaxB
@FSMaxB O que é um shebang? Alguma sugestão para um título melhor?
Wertilq #
Um shebang é o '#! / Bin / qualquer que seja o shell' no início do script. Você já tentou chamar o script pelo caminho completo (/ usr / bin / script) em vez de apenas o nome? Quanto ao título: por exemplo "atalho de teclado do GNOME3 não executa script".
FSMaxB
@FSMaxB Sinto que ele encontra o script, pois fecha imediatamente o prompt ALT + F2 quando digito corretamente. Se eu digitar o nome errado do script, ele diz que não existe esse arquivo. O que eu devo colocar no início do script?
Wertilq 19/09/09

Respostas:

2

O prompt de comando aberto pelo Alt + F2 não tem necessariamente o mesmo $PATHque o seu shell de login que é executado em um terminal.

Você pode ver o valor $PATHdisso gnome-shellcom

strings /proc/`pidof gnome-shell`/environ | grep PATH

Se /usr/binnão estiver nessa lista, você precisará modificar ~/.profilepara incluir /usr/binem $ PATH`:

PATH="/usr/bin:$PATH"

Outra questão é que Alt + F2 não pode ser iniciado bashou outros shells. Uma maneira de contornar isso é usar Alt + F2 para iniciar gnome-terminale executar seu script. Então, depois de pressionar Alt + F2, digite

gnome-terminal -e my-script.sh

Isso terá o infeliz efeito colateral de abrir uma gnome-terminaljanela, que será fechada após a execução do script.

Parece que você pode ser melhor atendido com algo como o Guake , que permite que você desça um terminal completo com o pressionar de um botão ( capturas de tela ).

tbekolay
fonte
/ usr / bin estava nessa lista. PATH = / usr / local / bin: / usr / bin: / bin: / usr / local / jogos: / usr / games
Wertilq
ALT + F2 encontra o script, mas falho em executá-lo, eu acho. Se eu digitar o nome do script errado, como chamá-lo de jklgf ou puuush, em vez de puush, então ele diz que não existe esse arquivo ou diretório. Se eu digitá-lo direito, ele simplesmente fecha o prompt immeditately
Wertilq
O que seu script faz? Alt + F2 foi projetado para iniciar aplicativos gráficos e acesso rápido a pastas. Mas não é um emulador de terminal completo; se você digitar echo "Hello world", por exemplo, nada acontecerá. echo "test" > /home/me/test.txttambém não faz nada. Ele simplesmente não foi projetado para ser um substituto do terminal.
precisa saber é o seguinte
Há um link para pastebin para o script na pergunta.
Wertilq
OK eu vejo. Sim, você não pode executar o bash com Alt + F2. Adicionei algumas soluções alternativas à minha resposta.
precisa saber é o seguinte
0

Problema resolvido. Aparentemente, eu tinha indentação no #! / Bin / bash, removi isso para garantir que não houvesse espaços em branco, linhas finais ou qualquer coisa assim antes do #. O script agora é executado a partir das teclas Alt + F2 e também do atalho de teclado, embora com um tempo de resposta um pouco ruim, e não sempre que clico.

Obrigado @FSMaxB por me fazer procurar mais detalhes sobre o shebang e obrigado a tbekolay por algumas dicas sólidas.

Wertilq
fonte
É bom saber que está funcionando agora!
FSMaxB