web-dev-qa-db-fra.com

Le script shell ne s'exécute pas lorsque je double-clique

J'ai créé un script Shell (test.sh) sur le bureau de Lubuntu (15.04). Les autorisations sont les suivantes: Propriétaire unique (Afficher le contenu + Modifier le contenu + Exécuter).

Lorsque je double-clique sur test.sh, je choisis "Exécuter dans un terminal". Le terminal (LXTerminal) s'ouvre, mais le script n'est pas exécuté.

Lorsque je tape ./test.sh, le script est exécuté. Mais ce n'est pas ce que je veux. Solution à ce problème?

4
JohnDoe

On dirait que votre script manque d'une ligne Shebang. Assurez-vous que la toute première ligne du script se lit comme suit:

#!/usr/bin/env bash

ou

#!/bin/bash

Sur une note de côté, vous devriez éviter de mettre l'extension .sh sur un script bash, car bash n'est pas sh. De préférence, n'utilisez aucune extension.

3
geirha

Cela ressemble à un bogue existant connu: lubuntu-default-settings ne spécifie pas la commande à exécuter dans le terminal

Ce rapport de bogue suggère la solution de contournement suivante (en utilisant X-terminal à la place.)

SOLUTION DE CONTOURNEMENT:

Dans les préférences de pcmanfm, sous l'onglet Avancé, modifiez le terminal en "x-terminal-emulator -e %s". Vous pouvez également modifier la valeur "terminal" dans ~/.config/libfm/libfm.conf.

Une solution alternative que j'ai déjà utilisée consiste à créer un raccourci sur le bureau - mais vous ne pouvez alors que cliquer deux fois sur le bureau.

Pour créer un raccourci, vous pouvez exécuter la commande:

lxshortcut -o ~/Desktop/test.sh

(Où test.sh est le nom que vous voulez que le fichier ait sur le bureau.)

Cela ouvrira lxshortcut, ce qui créera un fichier .desktop à partir de vos réponses dans une interface graphique.

La création manuelle d'un fichier .desktop devrait également fonctionner .

1
drkokandy