Vous n'êtes pas identifié(e).
et je n'arrive pas à m'en sortir avec, je tourne en rond pour quelque-chose qui doit se trouver sous mon nez
voici mon fichier build.sh qui me sers à compiler mon main.c
Lorsque je compile directement en terminal avec cette même ligne
cela fonctionne très bien, donc mon erreur se trouve dans la condition..
Une idée ?
Dernière modification par doli8888 (03-04-2022 12:08:14)
Debian GNU/Linux 11 64-bit Noyau : 6.1.0-0.deb11.11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-4~bpo11+1 (2023-08-08) x86_64 GNU/Linux
KDE Plasma 5.20.5 Processeurs : 12 × AMD Ryzen 5 4600H with Radeon Graphics
KDE Frameworks : 5.78.0 Mémoire : 16 Gio de mémoire vive
Qt : 5.15.2
Hors ligne
Il vaut mieux montrer que raconter.
Hors ligne
Dernière modification par doli8888 (03-04-2022 12:07:54)
Debian GNU/Linux 11 64-bit Noyau : 6.1.0-0.deb11.11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-4~bpo11+1 (2023-08-08) x86_64 GNU/Linux
KDE Plasma 5.20.5 Processeurs : 12 × AMD Ryzen 5 4600H with Radeon Graphics
KDE Frameworks : 5.78.0 Mémoire : 16 Gio de mémoire vive
Qt : 5.15.2
Hors ligne
Si je ne me trompe pas $prog1 est une variable et prog1 un fichier exécutable
Bonjour
Au sens strict, c'est presque ça:
- "$prog1" est la valeur de la variable prog1
- "prog1", dans ton script, est le nom du fichier de sortie de ta commande gcc et sera donc bien un exécutable (binaire)
Utiliser le même nom pour ces 2 éléments dans un même script est source de confusion.
Ceci dit, ça n'a pas vraiment de sens dans ton script.
Ta variable prog1 n'est jamais définie. Tu testes donc l'existence d'un fichier/lien/dossier à nom vide ($prog1 correspond à '' tant que tu n'a pas attribué de valeur à la variable prog1).
Ce test sera toujours VRAI. Tu auras donc systématiquement le retour suivant pour ce test:
Etant donné que tu as décidé de supprimer le fichier si il existe et que ton nom de fichier de sortie sera toujours un fichier "prog1", tu peux réduire ton script à :
Le "set -e" fera que ton script stoppera avant de tenter d'exécuter ./prog1 si la compilation échoue (en fait, il te fait faire une sortie si une erreur se présente en ignorant ce qui doit suivre)
"rm -f" supprime le fichier ciblé si il existe mais ne tombe pas en erreur en cas d'inexistence du fichier ciblé, contrairement à "rm".
Dernière modification par choops (07-04-2022 14:58:17)
Hors ligne
Debian GNU/Linux 11 64-bit Noyau : 6.1.0-0.deb11.11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-4~bpo11+1 (2023-08-08) x86_64 GNU/Linux
KDE Plasma 5.20.5 Processeurs : 12 × AMD Ryzen 5 4600H with Radeon Graphics
KDE Frameworks : 5.78.0 Mémoire : 16 Gio de mémoire vive
Qt : 5.15.2
Hors ligne