Desktop Launcher Executa Bash Script no Terminal a partir do URL

2

Minha configuração é que tenho um website (www.example.com) que enviei scripts bash para www.example.com/location/of/bash/script.txt

Eu gostaria agora de um arquivo Desktop Launcher (.desktop) que eu possa usar para abrir o terminal, em seguida, continue a executar o script no site. Até agora, criei um arquivo .desktop que pode abrir o terminal, mas não executar com êxito o script a partir do URL.

Meu comando dentro do arquivo .desktop é

  

gnome-terminal --execute bash -c "http: www.example.com/location/of/bash/script.txt"; bash

Quando eu clico no arquivo .desktop que ele abre, tenta executar o script e fornece o erro "nenhum arquivo ou diretório" qualquer ajuda sobre isso é muito apreciada.

    
por KrewTahn 08.12.2015 / 20:32

3 respostas

6

Também é simples e perigoso:

Faça com que seu arquivo da área de trabalho fique assim:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Sample Application Name
Comment=A sample application
Exec=sh -c 'curl -s http://www.example.com/path/to/script.sh | bash'
Icon=application.png
Terminal=true

Isso gerará um sub-shell, rodará 'curl' para ler o arquivo e depois canalizará para o bash.

    
por user323419 09.12.2015 / 19:53
0

Sugiro que você crie um script que faça tudo em duas etapas: faça o download do script original e execute-o localmente.

Algo parecido com isto:

#!/bin/bash

#download , save as /tmp/script
wget -O /tmp/script.sh www.example.com/location/of/bash/script.txt
#give executable permissions
chmod +x /tmp/script.sh
# run it
gnome-terminal --execute bash -c "/tmp/script.sh; bash"
    
por Sergiy Kolodyazhnyy 08.12.2015 / 22:12
0

Simples e perigoso . Perigoso? Sim, veja abaixo ...

wget -q -O - http://www.example.com/location/of/bash/runhello | bash

ou com

bash <(curl -s http://www.example.com/location/of/bash/runhello)

ou outra combinação de wget / curl e bash .

Aviso:

Talvez seja uma boa ideia para seus próprios scripts, mas não para os outros:

Verifique o conteúdo do script antes de executar e nunca execute um script no caminho bash <(curl -s URL) ou wget -q -O - URL | bash .

    
por A.B. 09.12.2015 / 19:45