Au lieu de vous dire comment faire, je vous dirai que vous ne devriez pas faire ça.
TL; DR - Ne changez pas votre script. Configurez plutôt votre gestionnaire de fichiers ou découvrez pourquoi vos utilisateurs l'exécutent accidentellement.
EDIT: Vous semblez traiter votre script comme quelque chose de spécial, comme si les paramètres généraux n'étaient pas assez bons et que votre script avait besoin d'une confirmation spéciale de l'utilisateur. Double-cliquer dessus est la confirmation. Si vous constatez que vos utilisateurs l'exécutent par accident, vous devez comprendre pourquoi ils le font et le résoudre à la place. Ensuite, votre vrai problème n'est pas de savoir comment exiger une confirmation mais comment empêcher vos utilisateurs de l'exécuter accidentellement.
D'après la façon dont vous exposez votre problème, il semble que vous vous attendiez à ce que votre programme (script) soit exécuté en naviguant jusqu'à l'emplacement du fichier, puis en cliquant dessus depuis le gestionnaire de fichiers. Pensez à tous les autres programmes de votre système. Combien commencez-vous comme ça? Naviguez-vous au /usr/local/bin
démarrage de Firefox? Bien sûr que non. Vous cliquez dessus dans le menu des applications. (gnome tweak est un script python, c'est peut-être un meilleur exemple)
J'espère que vous ne considérerez pas que cliquer dessus dans le menu des applications soit un accident. Votre problème est donc de savoir comment faire apparaître votre script au lieu d'utiliser le gestionnaire de fichiers. Pour ce faire, vous procédez comme suit:
placez votre script loin des autres fichiers où l'utilisateur peut cliquer dessus par accident (l'endroit typique est /usr/local/bin/
pour une installation à l'échelle du système ou ~/.local/bin/
pour une installation utilisateur)
créer un fichier d'entrée de bureau (lire les spécifications standard ). Voici un cas minimal:
[Desktop Entry]
Name=Your script name
Exec=path/for/your/script
Icon=path/for/your/icon/can/be/svg
Terminal=false
Type=Application
et le pousser dans /usr/local/share/applications/your-script.xml
ou ~/.local/share/your-script.xml
.
Enfin, exécutez update-desktop-database
.
Puisque vous double-cliquez sur le script, c'est le travail de votre gestionnaire de fichiers de le confirmer. Il n'appartient pas au script de confirmer s'il doit s'exécuter. Poussez cela à l'extrême. Pouvez-vous imaginer à quel point il serait ridicule que chaque fois que vous appeliez un programme, vous deviez le confirmer?
La seule fois où un programme doit demander une confirmation, c'est quand il est sur le point de faire quelque chose de dangereux et irréversible. Par exemple, remplacer un fichier ou contourner la corbeille. Et notez que même ces exemples visent à faire un programme faire quelque chose de spécifique. Il ne s'agit pas de lancer de tels programmes. Si un programme n'a pour but que de faire une chose aussi dangereuse, il ne devrait pas non plus demander de confirmation.
En effet, Nautilus (gestionnaire de fichiers Gnome) vous demandera déjà par défaut de confirmer si vous souhaitez exécuter un script (ou simplement l'ouvrir dans un éditeur de texte).
Et bien sûr, ce comportement est configurable, donnant à l'utilisateur la possibilité de le désactiver (entrée de note sur les fichiers texte exécutables ).
N'ajoutez donc pas une boîte de dialogue de confirmation ennuyeuse à votre script. Configurez correctement votre gestionnaire de fichiers. Et laissez vos utilisateurs faire de même.
if zenity...
ouzenity... || exit