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.
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
Respostas:
O prompt de comando aberto pelo Alt + F2 não tem necessariamente o mesmo
$PATH
que o seu shell de login que é executado em um terminal.Você pode ver o valor
$PATH
dissognome-shell
comSe
/usr/bin
não estiver nessa lista, você precisará modificar~/.profile
para incluir/usr/bin
em $ PATH`:Outra questão é que Alt + F2 não pode ser iniciado
bash
ou outros shells. Uma maneira de contornar isso é usar Alt + F2 para iniciargnome-terminal
e executar seu script. Então, depois de pressionar Alt + F2, digiteIsso terá o infeliz efeito colateral de abrir uma
gnome-terminal
janela, 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 ).
fonte
echo "Hello world"
, por exemplo, nada acontecerá.echo "test" > /home/me/test.txt
também não faz nada. Ele simplesmente não foi projetado para ser um substituto do terminal.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.
fonte