Welcome, Guest. Please Login or Register
FUG-FR logo
 
  HomeHelpSearchLoginRegister  
 
script sh "inexécutable" via le prompt (Read 3825 times)
Marck
God Member
*****
Offline


I Love New YaBB

Posts: 1113
script sh "inexécutable" via le prompt
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 



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).
Back to top
 
WWW WWW  
IP Logged
 
fgudin
Global Moderator
*****
Offline


PouetPouetBSD roul3z

Posts: 1552
Thonon (74)
Gender: male
Re: script sh "inexécutable" via le prompt
Reply #1 - 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.
Back to top
 
 
IP Logged
 
Marck
God Member
*****
Offline


I Love New YaBB

Posts: 1113
Re: script sh "inexécutable" via le prompt
Reply #2 - 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
Back to top
 
WWW WWW  
IP Logged
 
Marck
God Member
*****
Offline


I Love New YaBB

Posts: 1113
Re: script sh "inexécutable" via le prompt
Reply #3 - 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
Back to top
 
WWW WWW  
IP Logged
 
fgudin
Global Moderator
*****
Offline


PouetPouetBSD roul3z

Posts: 1552
Thonon (74)
Gender: male
Re: script sh "inexécutable" via le prompt
Reply #4 - 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 Smiley
Back to top
 
 
IP Logged
 
Marck
God Member
*****
Offline


I Love New YaBB

Posts: 1113
Re: script sh "inexécutable" via le prompt
Reply #5 - 17. Nov 2006 at 19:29
 
Quote:
Je vais voir ces prochains jours si j'opte pour cela.


Proposition retenue, merci.
Back to top
 
WWW WWW  
IP Logged