Syntaxe lancement script dans terminal Linux

Syntaxe lancement script dans terminal Linux - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 23-05-2011 à 14:20:14    

Bonjour,
 

Code :
  1. . mon_script.sh


et

Code :
  1. ./mon_script.sh


 
Quelle est la différence entre ces 2 syntaxes pour lancer un script dans un terminal Linux ? Car apparemment au premier abord, ça a l'air de faire la même chose (exécuter le script), mais je ne sais pas expliquer pourquoi...
 
Merci d'avance.
 
PS : pourquoi il n'y a pas de catégorie Unix sur le forum ? C'est bien dommage, il y a tout sauf ça.


---------------
>> Culture-Info : La culture informatique pour tous (projet scolaire) <<
Reply

Marsh Posté le 23-05-2011 à 14:20:14   

Reply

Marsh Posté le 23-05-2011 à 15:15:58    

le deuxième exécute un script ou un exécutable binaire si les droits sont ok en 'standalone' dans un shell séparé.
Le premier exécute le contenu d'un script dans le shell actif.
par ex si dans le script tu as
export TOTO=485
dans le premier cas, ta variable sera définie dans les variables d'environnement du shell dans le deuxieme cas, non.

  

>>PS : pourquoi il n'y a pas de catégorie Unix sur le forum ? C'est bien dommage, il y a tout sauf ça.

 

bhen c'est dans osa ( y'a pas de cat linux ou bsd non plus)


Message édité par rengzehn le 23-05-2011 à 15:21:47
Reply

Marsh Posté le 23-05-2011 à 17:58:59    

Donc pour résumer :
Si je le fais de la seconde façon, la variable ne sera valable que dans le shell (terminal) ouvert, contrairement à la première façon où la variable sera valable durant toute la session, même si on ouvre un autre terminal ?
Qu'entends-tu par 'standalone' ?


---------------
>> Culture-Info : La culture informatique pour tous (projet scolaire) <<
Reply

Marsh Posté le 23-05-2011 à 18:59:52    

shaoling a écrit :

Donc pour résumer :
Si je le fais de la seconde façon, la variable ne sera valable que dans le shell (terminal) ouvert, contrairement à la première façon où la variable sera valable durant toute la session, même si on ouvre un autre terminal ?

 

non pas du tout. 1ere façon = variable activée dans l'environnment du shell. 2eme açon variable activée seulement pour le script dans lequelle elle est.

 

dans la premiere façon, ce qui est exécuté l'est dans l'environnement du shell ouvert et dans son langage. par exemple si tu as 10 commandes shell dans un script et que tu interromps l'execution à la 5eme alors tu n'interromps que la 5eme, ça reprend à la sixieme. c comme si tu avais tappé les 10 commandes successivement au prompt. 10 process auront été crées successivement.

 

dans la seconde c dans un shell alternatif. si tu fais un ctr+c à la 5eme commande, tu interromps tout le script. un seul process de crée.

 

de plus avec la seconde maniere tu peux executer tous types de langages. si en en-tete tu as du #!/usr/bin/perl, ça executera bien le script. on ne peut pas faire . ./test.pl

 
shaoling a écrit :

Qu'entends-tu par 'standalone' ?


2eme façon, si c un script en bash, un autre  bash shell est lançé


Message édité par rengzehn le 23-05-2011 à 19:16:21
Reply

Marsh Posté le 23-05-2011 à 22:45:08    

Ah ok c'est maintenant beaucoup plus clair :)
Merci beaucoup !!!


---------------
>> Culture-Info : La culture informatique pour tous (projet scolaire) <<
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed