web-dev-qa-db-ja.com

ダブルクリックするとシェルスクリプトが実行されません

Lubuntu(15.04)デスクトップでシェルスクリプト(test.sh)を作成しました。権限は次のとおりです。所有者のみ(コンテンツの表示+コンテンツの変更+実行)。

Test.shをダブルクリックすると、「ターミナルで実行」を選択します。ターミナル(LXTerminal)は開きますが、スクリプトは実行されません。

./test.shと入力すると、スクリプトが実行されます。しかし、それは私が望むものではありません。この問題の解決策は?

4
JohnDoe

あなたのスクリプトにはシバンのラインが欠けているように聞こえます。スクリプトの最初の行が次のようになっていることを確認してください。

#!/usr/bin/env bash

または

#!/bin/bash

補足説明として、bashはshではないため、bashスクリプトに.sh拡張を追加しないでください。拡張子をまったく使用しないことをお勧めします。

3
geirha

これは既知の既存のバグのように聞こえます: lubuntu-default-settingsは端末で実行する適切なコマンドを指定しません

そのバグレポートでは、次の回避策が提案されています(代わりにX端末を使用します)。

回避策:

Pcmanfm設定の[詳細設定]タブで、ターミナルを"x-terminal-emulator -e %s"に変更します。 〜/ .config/libfm/libfm.confの「ターミナル」値を変更することもできます。

以前に使用した別の回避策は、デスクトップショートカットを作成することですが、デスクトップをダブルクリックすることしかできません。

ショートカットを作成するには、次のコマンドを実行できます。

lxshortcut -o ~/Desktop/test.sh

(test.shは、ファイルをデスクトップ上に配置する名前です。)

これによりlxshortcutが開き、GUIの応答から.desktopファイルが作成されます。

手動で.desktopファイルを作成することもできます

1
drkokandy