Forums FUG-FR
https://forums.fug-fr.org/cgi-bin/yabb2/YaBB.pl
Divers et varié >> Programmation >> script sh "inexécutable" via le prompt
https://forums.fug-fr.org/cgi-bin/yabb2/YaBB.pl?num=1163513701

Message started by Marck on 14. Nov 2006 at 15:15

Title: script sh "inexécutable" via le prompt
Post by Marck on 14. Nov 2006 at 15:15
Bonjour

Allez encore une question pour mes bricolages...

Soit un script premier (un menu en fait) appelant des scripts seconds. Ces scripts seconds ne sont prévus que pour fonctionner de cette façon et ne doivent donc pas être lancés depuis le prompt. Commen procéder pour éviter cela de façon élégante ?

Pour l'instant j'ai mis ceci en début des scripts seconds (en réalité du seul que j'ai commencé à écrire):


Code (]# f61r_base
# Don't run this script ; use froggy61r_livecd.sh
# variables
VERSION="froggy61r"
VERS="f61r"
...
# condition
if [ $# != 1 ):

|| [ "$1" != "$VERS" ] ; then
       echo "Please don't run this script ; use "$VERSION"_livecd.sh"
       exit 1
fi


Et cela fonctionne.

[code]# sh f61r_base
Please don't run this script ; use froggy61r_livecd.sh[/code]

Mais j'aimerais savoir ce que vous pensez de la méthode et comment éventuellement vous procéderiez ; l'objectif n'étant pas de rendre cet "exécutable" totalement "inexécutable" via le prompt (d'ailleurs serait-ce possible ?) mais d'empêcher proprement son lancement de cette façon.

Merci, Marc

PS : Bien sûr il suffirait d'entrer "sh f61r_base f61r" pour que le script démarre et sans doute se plante (plus ou moins selon les circonstances ; pas envie d'essayer).

Title: Re: script sh "inexécutable" via le prompt
Post by francis on 14. Nov 2006 at 15:22
Tu pourrais convertir tous tes scripts secondaires pour qu'ils ne soient que des ensembles de définition de fonctions que tu appellerais depuis ton script principal (inclusion des scripts "bibliothèques" avec '.' en sh ou 'source' en csh en début de ton script principal).
Ainsi, en les appelant directement, rien ne se passe (enfin si: les fonctions sont définies dans le shell-fils mais il se termine sans avoir rien exécuté d'autre). Et tu gardes la modularité que tu recherches, je suppose.

Title: Re: script sh "inexécutable" via le prompt
Post by Marck on 14. Nov 2006 at 15:57
OK je pense avoir bien compris et ai fait un mini essai "d'inclusion" réussi... Je ne savait pas que l'on pouvait procéder ainsi avec sh cela me servira certainement (ici ou ailleurs).

Je vais voir ces prochains jours si j'opte pour cela.

Merci, Marc

Title: Re: script sh "inexécutable" via le prompt
Post by Marck on 14. Nov 2006 at 19:07
Encore une question...

Quote:
Et tu gardes la modularité que tu recherches,


Cela signifie-t-il que tu penses que cette modularité n'est vraiment pas nécessaire ? C'est vrai qu'en réfléchissant un peu il n'y a pas une grosse différence entre écrire des modules à part puis les "sourcer" ou tout écrire directement dans un seul script.

Je n'ai guère l'habitude d'écrire des scripts aussi long mais il est vrai que c'est peut-être dans un sens plus pratique d'avoir tout dans un script... Qu'en penses-tu  (ou qu'en pensez-vous) ?

Merci, Marc

Title: Re: script sh "inexécutable" via le prompt
Post by francis on 14. Nov 2006 at 21:07
Etant donné que tout éditeur "moderne" permet de travailler sur plusieurs fichiers facilement, pourquoi se priver d'éclater le programme en modules ? Ca permet de s'y retrouver facilement.

Et je ne vois pas d'avantage à la solution opposée. M'enfin... "I'm not a programmer" comme on dit :)

Title: Re: script sh "inexécutable" via le prompt
Post by Marck on 17. Nov 2006 at 19:29

Quote:
Je vais voir ces prochains jours si j'opte pour cela.


Proposition retenue, merci.

Forums FUG-FR » Powered by YaBB 2.5.2!
YaBB Forum Software © 2000-2025. All Rights Reserved.