Pourquoi un script qui peut s'executer sous geany ne fonctionne t il pas en mode script ?

Post Reply
AlainX
Posts: 12
Joined: Thu Apr 25, 2024 11:15 am
Has thanked: 1 time
Been thanked: 1 time

Pourquoi un script qui peut s'executer sous geany ne fonctionne t il pas en mode script ?

Post by AlainX »

Pourquoi un script qui peut s'executer sous geany ne fonctionne t il pas en mode script ?

voici le contenu de mon fichier

#!/bin/bash
cd /mnt/home
# Demander à l'utilisateur de saisir le nom du répertoire
read -p "Entrez le nom du répertoire à créer : " nom_repertoire

# Vérifier si le répertoire existe déjà
if [ -d "$nom_repertoire" ]; then
echo "Le répertoire '$nom_repertoire' existe déjà."
else
# Créer le répertoire avec le nom saisi par l'utilisateur
mkdir "$nom_repertoire"
echo "Le répertoire '$nom_repertoire' a été créé avec succès."

# Créer le répertoire "lettres" à l'intérieur du répertoire principal
mkdir "$nom_repertoire/lettres"
echo "Le répertoire 'lettres' a été créé à l'intérieur de '$nom_repertoire'."
fi

# Copier le contenu du répertoire "lettres" (par exemple, des fichiers) dans le répertoire "lettres"
cp -r /root/my-documents/travail/lettres/* "$nom_repertoire/lettres/"
echo "Le contenu du répertoire 'lettres' a été copié avec succès."

cp -r /root/my-documents/travail/*.kml "$nom_repertoire/"

sous geany tout se passe bien quand on appuie sur le bouton execute
les droits d'execution ont été mis

quand je clique dessus en dehors de geany rien ne se passe ...
Le même script fonctionne sous ubuntu ...

Je ne comprends pas ...
Je suis sous triton 9.1 lancé à partir d'une clef usb générée par unetbootin et j'ai un fichier de sauvegarde avec 987 Mo de libres

Rantanplan
Posts: 114
Joined: Thu Jun 03, 2021 2:25 pm
Has thanked: 35 times
Been thanked: 24 times

Re: Pourquoi un script qui peut s'executer sous geany ne fonctionne t il pas en mode script ?

Post by Rantanplan »

Bonjour @AlainX

À la ligne 2 du script, je pense que

Code: Select all

cd /mnt/home

devrait être remplacé par

Code: Select all

cd /home

À la ligne 15, je complèterai la commande mkdir avec l'option -p pour que lettres soit bien créé sous le nom_repertoire demandé avec la commande read.

Ci-dessous, le résultat de ton script lancé depuis un terminal après les corrections proposées ci-dessus :

Code: Select all

# ./test.sh 
Entrez le nom du répertoire à créer : toto_second
Le répertoire 'toto_second' a été créé avec succès.
Le répertoire 'lettres' a été créé à l'intérieur de 'toto_second'.
cp: cannot stat '/root/my-documents/travail/lettres/*': No such file or directory
Le contenu du répertoire 'lettres' a été copié avec succès.
cp: cannot stat '/root/my-documents/travail/*.kml': No such file or directory
# 

Les erreurs sont normales, car je n'ai pas créé les dossiers travail et lettres.

Sinon, le fonctionnement est normal, me semble-t-il.

Pour répondre à ta question "qd je clique dessus rien ne se passe".
Le script est écrit pour être lancé depuis un terminal.
Si tu veux voir quelque chose, il faut utiliser soit yad, soit xdialog, soit dialog (tous présents dans Triton 9) pour ne pas à avoir à utiliser le terminal.

Pour une utilisation depuis un terminal :
tu connais la musique, depuis l'endroit où se trouve ton script tu ouvres un terminal et lances la commande :

Code: Select all

./[ton_script.sh]

puis pression sur la touche entrée.

Si je n'ai pas été clair, dis-moi.

Amitiés

AlainX
Posts: 12
Joined: Thu Apr 25, 2024 11:15 am
Has thanked: 1 time
Been thanked: 1 time

Re: Pourquoi un script qui peut s'executer sous geany ne fonctionne t il pas en mode script ?

Post by AlainX »

Un grand merci pour cette réponse
Avec Yad cela fonctionne !
Merci encore
Alain

Post Reply

Return to “Pour les francophones”