web-dev-qa-db-ja.com

デスクトップランチャーは、URLからターミナルでBashスクリプトを実行します

私の設定では、bashスクリプトをwww.example.com/location/of/bash/script.txtにアップロードしたWebサイト(www.example.com)があります

ターミナルを開いてウェブサイトからスクリプトを実行するために使用できる デスクトップランチャー (.desktop)ファイルが必要になりました。これまで、ターミナルを開くことはできますが、URLからスクリプトを正常に実行できない.desktopファイルを作成しました。

.desktopファイル内の私のコマンドは

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

.desktopファイルをクリックすると、それが開き、スクリプトを実行しようとし、「no such file or directory」というエラーが表示されます。これに関するヘルプは大歓迎です。

2
KrewTahn

また、単純で危険です:

デスクトップファイルを次のようにします。

[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

これはサブシェルを生成し、「curl」を実行してファイルを読み取り、それをbashにパイプします。

6
user323419

シンプルで危険。危険な?はい、以下を参照してください...

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

またはと

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

またはwget/curlbashの別の組み合わせ。


警告:

おそらく、それはあなた自身のスクリプトのための素晴らしいアイデアですが、他の人々のためではありません:

スクリプトの内容を確認しますbefore実行中neverbash <(curl -s URL)または_wget -q -O - URL | bash_の方法でスクリプトを実行します。

0
A.B.

元のスクリプトをダウンロードしてからローカルで実行するという2つのステップですべてを実行するスクリプトをまとめることをお勧めします。

このようなもの :

#!/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"
0