2013-05-11 16 views
3

Je ne connais pas encore les scripts TCL et les scripts shell. Je veux appeler un script TCL à partir du script shell. J'ai essayé comme ci-dessous.Comment exécuter un script TCL à partir d'un script shell?

#!/bin/sh 

for i in {1..5} 
do 
    my_script 
    test_script 
done 

Si je lance le script, il est de lancer erreur comme suit,

./sample.sh: line 5: my_script: command not found 
./sample.sh: line 5: test_script: command not found 

Quelqu'un peut-il me aider avec ça?

Merci d'avance.

Répondre

6

Si elles ne peuvent pas être trouvés dans votre $PATH, vous devez fournir un chemin à vos scripts, par exemple:

./my_myscript   # current directory 
/path/to/test_script # absolute path 
+0

Merci pour la solution :) – Dinesh

4

Si vous ne l'avez pas fait votre script exécutable (avec chmod +x), vous devez utiliser:

tclsh my_script.tcl 

Ou peut-être tclsh8.5 /path/to/script.tcl ou de nombreuses variantes à ce sujet.

Si vous avez fait le script exécutable, vérifiez que le répertoire contenant le script est sur votre PATH (sinon, utilisez le nom complet du script ou d'ajuster votre PATH) et que vous avez un #! approprié ligne. Celui habituellement recommandée est:

#!/usr/bin/env tclsh8.5 

comme qui va chercher votre chemin pour l'exécutable tclsh8.5 au lieu de coder en dur il.

+0

Merci pour votre contribution Donal :) – Dinesh

0

De man tclsh. Je suppose que le deuxième bloc répond à votre question.

Si vous créez un script Tcl dans un fichier dont la première ligne est #!/usr/local/bin/tclsh alors vous pouvez appeler le fichier script directement à partir de votre shell si vous marquez le fichier comme exécutable. [...]

Une approche encore mieux est de commencer vos fichiers de script avec les trois lignes suivantes:

#!/bin/sh 
# the next line restarts using tclsh \ 
exec tclsh "$0" ${1+"[email protected]"} 

Cette approche présente trois avantages par rapport à l'approche dans le paragraphe précédent [...]

Vous devriez noter qu'il est également courant d'installer tclsh avec son numéro de version dans le nom. Cela a l'avantage de permettre à plusieurs versions de Tcl d'exister sur le même système à la fois, mais aussi l'inconvénient de Il est donc plus difficile d'écrire des scripts qui démarrent uniformément sur différentes versions de Tcl.

Questions connexes