Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/04/2022, à 11:13

LouisV

Mon script ne se lance que dans un terminal

Bonjour,

J'ai un script pour faire mes sauvegardes (avec rsync) qui fonctionne sans soucis sur mon ordinateur

J'ai copié ce script sur l'ordinateur de mon frère (lui est Ubuntu 20.04) et ai juste changé les dossiers à sauvegarder.

Ce script fonctionne sans soucis dans un  terminal par ./Sauvegarde.sh
Mais quand je double-clique dessus il ne se passe rien. Normalement il devrait me proposer de le lancer dans un terminal, de l'ouvrir, de le lancer , ou d'annuler (avant que je l'ai rendu exécutable, un double-clic ouvrait bien l'éditeur).

Qu'ai-je oublié de faire ?

Merci de votre aide et bonne journée,
L.


(Ubuntu 18.04)

Hors ligne

#2 Le 26/04/2022, à 12:51

PowaBanga

Re : Mon script ne se lance que dans un terminal

renvois nous un peu le résultat de ces commandes stp

ls -l Saugegarde.sh
cat Sauvegarde.sh

Dernière modification par PowaBanga (Le 26/04/2022, à 12:53)

Hors ligne

#3 Le 26/04/2022, à 12:57

LouisV

Re : Mon script ne se lance que dans un terminal

Merci PowaBanga,

Je ne pourrai pas faire ça aujourd'hui car je n'ai plus l'ordinateur de mon frère.

Bonne journée,
L.


(Ubuntu 18.04)

Hors ligne

#4 Le 26/04/2022, à 12:58

PowaBanga

Re : Mon script ne se lance que dans un terminal

pas de soucis, on a tout notre temps smile

Hors ligne

#5 Le 26/04/2022, à 19:14

kholo

Re : Mon script ne se lance que dans un terminal

salut,
ton script a dû perdre les droits d'exécution à la copie...
depuis le dossier où il se trouve, tu fait un clic droit puis "ouvrir dans un terminal"
puis, un petit

chmod +x Saugegarde.sh

les lui rendra !

Hors ligne

#6 Le 26/04/2022, à 19:23

LouisV

Re : Mon script ne se lance que dans un terminal

Merci Kholo,

Mais c'est la première chose que j'ai vérifiée.
D'ailleurs, s'il s'exécute dans un terminal, c'est bien qu'il est exécutable.

Bonne soirée,
L.


(Ubuntu 18.04)

Hors ligne

#7 Le 26/04/2022, à 21:54

kholo

Re : Mon script ne se lance que dans un terminal

LouisV a écrit :

D'ailleurs, s'il s'exécute dans un terminal, c'est bien qu'il est exécutable.

on peut lancer un script sans les droits d'exécution en le préfixant avec le programme du langage

bash nom_du_programme

ou

python nom_du_programme

mais... oui... tu as précisé que tu utilisais

./Sauvegarde.sh

par contre, tu ne nous as pas parlé des spécifications du PC de ton frère...
Ubuntu ? version ? nautilus ? ...
si c'est nautilus, tu peux toujours regarder dans les préférences
et voir l'onglet "comportement" puis "Fichiers texte exécutable" pour voir ce qui est choisi.

... et donne toujours la réponse à PowaBanga

Hors ligne

#8 Le 26/04/2022, à 22:47

Tawal

Re : Mon script ne se lance que dans un terminal

Hello,

Je vois 2 cas :
   - le script s'exécute et tu ne t'en rends pas compte (pas de terminal, pas de fenêtre etc ...)
   - le script a besoin d'un shell interactif et ne l'obtient pas par "double-clic" dessus (normal).


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#9 Le 26/04/2022, à 23:57

kholo

Re : Mon script ne se lance que dans un terminal

Tawal a écrit :

   - le script s'exécute et tu ne t'en rends pas compte (pas de terminal, pas de fenêtre etc ...)

oui... je pensais aussi à ça... c'est pour ça que j'ai demandé d'aller voir dans les préférences de Nautilus... si c'est bien lui... pour voir si cela ne lance pas le script en aveugle...

Hors ligne

#10 Le 27/04/2022, à 00:04

nany

Re : Mon script ne se lance que dans un terminal

Bonjour,



kholo a écrit :

par contre, tu ne nous as pas parlé des spécifications du PC de ton frère...
Ubuntu ? version ? nautilus ? ...
si c'est nautilus, tu peux toujours regarder dans les préférences
et voir l'onglet "comportement" puis "Fichiers texte exécutable" pour voir ce qui est choisi.

+1

Au vu de la signature, il s’agirait d’Ubuntu 18.04 (qui n’a plus qu’un an à vivre) donc c’est bien nautilus (ou Fichiers).

Ci dessous la procédure en image pour 18.04.
1651010093.png

Hors ligne

#11 Le 27/04/2022, à 07:50

LouisV

Re : Mon script ne se lance que dans un terminal

Bonjour à tous et merci de vos réponses.

J'ai écrit que le PC de mon frère tournait sous Ubuntu 20.04 LTS. Ubuntu 18.04, c'est le mien.

La première chose que fait le script, c'est de demander de fermer les logiciels éventuellement actifs, puis de cliquer sur Entrée pour valider et lancer l'activité. Quand je double-clique dessus, rien ne se passe, et de plus aucune activité se n'affiche sur le disque dur externe. C'est pourquoi je présume que le script ne se lance pas.

Tawal : a écrit :

   - le script a besoin d'un shell interactif et ne l'obtient pas par "double-clic" dessus (normal).

Si je comprends ce que cela signifie, c'est bien le cas (voir ci-dessus), mais pourquoi ne l'obtient-il pas ?

Bonne journée,
L.


(Ubuntu 18.04)

Hors ligne

#12 Le 27/04/2022, à 09:35

Tawal

Re : Mon script ne se lance que dans un terminal

C'est normal de ne pas obtenir un shell interactif en "double-cliquant" sur un script exécutable.
Avec la méthode de nany au #10, tu auras le choix de lancer le script dans un terminal et donc obtenir un shell interactif.
Sinon, tu peux aussi créer un lanceur pour ton script avec une ligne ainsi (en plus des lignes requises pour le lanceur)  :

Terminal=true

Ainsi ton script sera lancé dans un terminal et tu pourras interagir avec lui.

Dernière modification par Tawal (Le 27/04/2022, à 09:36)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#13 Le 27/04/2022, à 13:24

LouisV

Re : Mon script ne se lance que dans un terminal

Merci Nany et Tawal.

Pour appliquer la méthode de Nany, comment obtenir les préférences de Nautilus ? En cliquant sur le bouton "hamburger" je n'ai pas cette possibilité. Je peux juste créer un nouveau dossier, un nouvel onglet, zoomer, et changer l'ordre de tri.

L.


(Ubuntu 18.04)

Hors ligne

#14 Le 05/05/2022, à 11:36

LouisV

Re : Mon script ne se lance que dans un terminal

Bonjour,

Je reviens vers vous puisque j'ai un peu de nouveau.

Réponse aux demandes de PowaBanga :

jean-francois@jeanfrancois-Extensa-2511:~/Bureau$ ls -l SauvegardeTout.sh
-rwxrwxrwx 1 jean-francois jean-francois 2709 avril 23 14:37 SauvegardeTout.sh

Contenu du script :

#! /bin/bash
#
# Il faut fermer tout ce qui peut être modifié en cours de sauvegarde :
echo 'Sauvegarde sur Verbatim n° 1'
echo '----------------------------'
echo ''
echo 'Prévoyez une bonne demi-heure.'
echo '' 
echo 'Fermez tous les programmes en cours, en particulier Firefox et Thunderbird.'
echo 'Faites "Entrée" pour commencer.'
read a
date
# 0 - On met la date et l'heure de début sur le fichier log
date >~/Bureau/PVSync/SaveTout_log.txt

# 1 - On sauvegarde tout mon home ; on met la date et l'heure de fin à la fin des fichiers d'erreur
echo 'Sauvegarde de /home (comptez env. 10 mn) : '
rsync -art --stats --exclude=lost+found --exclude=snap  ~/* /media/jean-francois/d290f0de-5b37-4502-829b-064f6ebdbe3d/Sauvegarde/	>>~/Bureau/PVSync/SaveTout_log.txt 2>~/Bureau/PVSync/home_err.txt
date >>~/Bureau/PVSync/home_err.txt
echo '                                 faite.'
date
# 2 - On sauvegarde les dossiers cachés importants de mon home ; on met la date et l'heure de fin à la fin des fichiers d'erreur
echo 'Sauvegarde des fichiers cachés à garder (comptez env. 10 mn) : '
echo '           .thunderbird (env. 1 mn) ' ; date
rsync -art --stats ~/.thunderbird /media/jean-francois/d290f0de-5b37-4502-829b-064f6ebdbe3d/Sauvegarde/	>>~/Bureau/PVSync/SaveTout_log.txt 2>~/Bureau/PVSync/caché_err.txt
date >>~/Bureau/PVSync/caché_err.txt
echo '           .mozilla (rapide) ' ; date
rsync -art --stats ~/.mozilla /media/jean-francois/d290f0de-5b37-4502-829b-064f6ebdbe3d/Sauvegarde/	>>~/Bureau/PVSync/SaveTout_log.txt 2>~/Bureau/PVSync/caché_err.txt
date >>~/Bureau/PVSync/caché_err.txt
echo ' Sauvegarde des fichiers cachés faite.'
#date
# 3 - On met la date et l'heure de fin à la fin du fichier log
date >>~/Bureau/PVSync/SaveTout_log.txt
date
echo 'Terminé.'
echo 'Faites "Entrée" pour quitter.'
read a
#
 

Par rapport à ce qui est proposé par nany : la case "Double-click pour ouvrir les éléments" était bien cochée sur l'ordinateur en question (sur le mien, en Ubuntu 18.04, elle n'existe pas, mais ce n'est pas le sujet).

Bonne journée,
L.


(Ubuntu 18.04)

Hors ligne

#15 Le 05/05/2022, à 12:09

Tawal

Re : Mon script ne se lance que dans un terminal

"Par rapport à ce qui est proposé par nany : la case "Double-click pour ouvrir les éléments" était bien cochée sur l'ordinateur en question"
Et la case "Demander quoi faire" est-elle aussi cochée ? (c'est la plus importante).


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#16 Le 05/05/2022, à 12:37

LouisV

Re : Mon script ne se lance que dans un terminal

Merci Tawal,

Je vais lui demander.

Bonne journée,
L.


(Ubuntu 18.04)

Hors ligne

#17 Le 15/05/2022, à 16:22

LouisV

Re : Mon script ne se lance que dans un terminal

En réponse à Rawal : La case "Demander quoi faire" est bien cochée.
Dans le propriétés du fichier, la case "Autoriser l'exécution du fichier comme un programme" est bien cochée elle aussi.
Pourtant, un double clic sur le fichier n'a aucun effet, pas plus que de choisir "Ouvrir" dans le menu du clic droit. Cliquer dans ce même menu sur "Ouvrir avec une autre application" ouvre directement le fichier dans l'éditeur de texte.

Bon dimanche à tous,
L.

Dernière modification par LouisV (Le 15/05/2022, à 16:22)


(Ubuntu 18.04)

Hors ligne

#18 Le 15/05/2022, à 17:07

MicP

Re : Mon script ne se lance que dans un terminal

Bonjour

Tout ce qui suit a été testé sur un système Ubuntu 20.04 LTS :

michel@ubu20043lts:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.4 LTS
Release:	20.04
Codename:	focal
michel@ubu20043lts:~$ 

=======
Si tu veux que, dans ton gestionnaire de fichiers Nautilus,
un double-click sur un nom de fichier script lance directement l'exécution de ce script,
alors, dans les clefs de registre concernant les préférences du navigateur de fichiers Nautilus,
il te faut paramétrer l'option executable-text-activation à launch
en lançant, depuis le compte utilisateur non privilégié concerné,
la ligne de commande suivante :

gsettings  set  org.gnome.nautilus.preferences  executable-text-activation  launch

EDIT : J'ai ajouté le n manquant à launch

Si tu veux que, dans ton gestionnaire de fichiers Nautilus,
un double-click sur un nom de fichier script fasse s'afficher une boîte de dialogue
dans laquelle tu pourras cliquer sur un des boutons dont les labels sont :
- Lancer dans un terminal
- Afficher
- Anuller
- Lancer
alors, dans les clefs de registre concernant les préférences du navigateur de fichiers Nautilus,
il te faut paramétrer l'option executable-text-activation à ask
en lançant, depuis le compte utilisateur non privilégié concerné,
la ligne de commande suivante :

gsettings  set  org.gnome.nautilus.preferences  executable-text-activation  ask

=======
En supposant que le script Sauvegarde.sh soit exécutable par le compte utilisateur qui va le lancer
et que son chemin absolu est ~/bin/Sauvegarde.sh
pour que ce script soit directement lancé dans une fenêtre de terminal et par un simple click
tu peux créer un lanceur qui serait nommé ~/.local/share/applications/maSauvegarde.desktop
et dont le contenu serait :

[Desktop Entry]
Name=Lancer la Sauvegarde
Comment=Lancera mon script bash de sauvegarde dans une fenêtre gnome-terminal
Exec=bash -c ~/bin/Sauvegarde.sh
Terminal=true
Type=Application

Une fois ce fichier lanceur créé tu pourras cliquer en haut et à gauche sur Activités
et, dans la boîte de saisie pour la recherche, entrer le nom affiché du lanceur : Lancer la Sauvegarde
afin de pouvoir faire glisser son icône dans la barre qui est à gauche (le dash du bureau Gnome)

Dernière modification par MicP (Le 23/05/2022, à 13:23)


Retour utilisable de commande
2.d  Le prompt final : - permet de s'assurer que la commande est allée à son terme,- permet de s'assurer que la réponse du système n'est pas coupée à la fin,- et fournit parfois d'autres informations, détaillées dans le message #42

Hors ligne

#19 Le 21/05/2022, à 19:35

LouisV

Re : Mon script ne se lance que dans un terminal

Merci MicP pour ces explications.

Je suis quand même étonné qu'il soit nécessaire de faire toutes ces manipulations particulièrement complexes. Jusqu'alors, j'ai toujours lancé mes scripts en les rendant exécutables (dans les propriétés ou par chmod) puis en double-cliquant dessus, sans rien faire d'autre. C'est d'ailleurs toujours le cas sur mon propre ordinateur sous Ubuntu 18.04.
Au double-clic, j'ai une fenêtre me proposant de le lancer dans un terminal, de l'afficher (en réalité de l'éditer), d'annuler, ou de lancer directement.
Vraiment déroutant cette "évolution" (si on peut appeler ça comme ça sad) sous Ubuntu 20.04 ...

Bonne soirée,
L.


(Ubuntu 18.04)

Hors ligne

#20 Le 23/05/2022, à 09:10

kholo

Re : Mon script ne se lance que dans un terminal

LouisV a écrit :

Au double-clic, j'ai une fenêtre me proposant de le lancer dans un terminal, de l'afficher (en réalité de l'éditer), d'annuler, ou de lancer directement.

... et bien sûr, tu fais celui de gauche, lancer dans un terminal !!?
les deux lignes que MicP t'a donné modifient ce choix:

gsettings  set  org.gnome.nautilus.preferences  executable-text-activation  ask

c'est ce que tu as

gsettings  set  org.gnome.nautilus.preferences  executable-text-activation  launch

lance directement ton script

Dernière modification par kholo (Le 24/05/2022, à 18:07)

Hors ligne

#21 Le 23/05/2022, à 11:16

LouisV

Re : Mon script ne se lance que dans un terminal

Oui Kholo, merci.

C'est ce que j'ai sur mon ordinateur (Ubuntu 18.04).

Mais, sur celui de mon frère (en 20.04) je n'ai pas cette fenêtre : il ne se passe rien au double-clic. Donc impossible de lancer le script.
Et je ne comprends pas que ce soit si simple sous Ubuntu 18.04, et qu'il faille faire ces manips complexes (que je n'ai pas encore faites, faute de disposer du PC) sous Ubuntu 20.04. Bizarre, bizarre ...

Bonne journée,
L.


(Ubuntu 18.04)

Hors ligne

#22 Le 23/05/2022, à 13:28

MicP

Re : Mon script ne se lance que dans un terminal

Bonjour

@kholo

J'ai ajouté dans mon message le n manquant à launch
Il te faudrait corriger le copié/collé de la même ligne de commande dans ton message

=======
il existe trois valeurs possibles pour la clef org.gnome.nautilus.preferences  executable-text-activation :

ask => affichage d'une boîte de dialogue
display => Visualise le contenu du fichier dans la fenêtre de l'éditeur de texte
launch => Lance l'exécution du script

On peut aussi modifier la valeur de cette clef depuis le navigateur de fichier nautilus (accessible par l'icône nommée Files qui est traduit en français : Fichiers)
en cliquant sur Préférences puis et en ouvrant l'onglet Comportement
et en choisissant une des options proposées dans le paragraphe Fichiers texte exécutables

Capture-d-cran-2022-05-23-13-42-29.png

Dernière modification par MicP (Le 23/05/2022, à 13:58)


Retour utilisable de commande
2.d  Le prompt final : - permet de s'assurer que la commande est allée à son terme,- permet de s'assurer que la réponse du système n'est pas coupée à la fin,- et fournit parfois d'autres informations, détaillées dans le message #42

Hors ligne

#23 Le 13/06/2022, à 22:12

linux600

Re : Mon script ne se lance que dans un terminal

il semblerait dans Ubuntu 22.04 que

executable-text-activation

ait été retirée

Dernière modification par linux600 (Le 13/06/2022, à 22:13)

Hors ligne

#24 Le 13/06/2022, à 22:26

MicP

Re : Mon script ne se lance que dans un terminal

Argh!!! effectivement, la clef executable-text-activation est absente dans la version 22.04 (jammy) d'Ubuntu.

=======
Mais sur la version 22.04, une fois que le fichier script a été rendu exécutable :
soit en utilisant la commande chmod :

chmod u+x monscript.sh

ou bien en cochant la case associée au label : Autoriser l'exécution du fichier comme un programme
Capture-d-cran-du-2022-06-13-22-50-17.png<- Cliquez sur la vignette pour voir l'image en taille réelle
toujours depuis le gestionnaire de fichiers et avec un click-droit sur le nom du script,
l'option Exécuter comme un programme est alors proposée dans le menu contextuel :
Capture-d-cran-du-2022-06-13-22-39-38.png<- Cliquez sur la vignette pour voir l'image en taille réelle

Dernière modification par MicP (Le 14/06/2022, à 07:50)


Retour utilisable de commande
2.d  Le prompt final : - permet de s'assurer que la commande est allée à son terme,- permet de s'assurer que la réponse du système n'est pas coupée à la fin,- et fournit parfois d'autres informations, détaillées dans le message #42

Hors ligne

#25 Le 15/06/2022, à 20:32

linux600

Re : Mon script ne se lance que dans un terminal

Ce n'est pas très pratique mais on s'en contentera, certainement pour des raisons de sécurité.

Hors ligne