2013-05-11 4 views
3

Я новичок в написании сценариев TCL и сценариев оболочки. Я хочу вызвать скрипт TCL из сценария оболочки. Я пробовал, как показано ниже.Как запустить скрипт TCL из сценария оболочки?

#!/bin/sh 

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

Если я запускаю сценарий, он бросает ошибку следующим образом,

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

Может кто-нибудь помочь мне с этим?

Заранее спасибо.

ответ

6

Если они не могут быть найдены в вашем $PATH вы должны указать путь к скриптам, например:

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

Спасибо за решение :) – Dinesh

4

Если вы еще не сделали свой скрипт исполняемым (с chmod +x), то вам нужно использовать:

tclsh my_script.tcl 

Или, может быть, tclsh8.5 /path/to/script.tcl или многие варианты на этом.

Если есть сделал скрипт исполняемым, убедитесь, что каталог, содержащий скрипт на ваш PATH (если нет, то используйте полное имя файла сценария или настроить PATH), и что у вас есть подходящий #! линия. Обычная рекомендованная одна:

#!/usr/bin/env tclsh8.5 

, как будет искать свой путь к исполняемому файлу tclsh8.5 вместо жесткого кодирования его.

+0

Спасибо за ваш вклад Donal :) – Dinesh

0

От man tclsh. Думаю, второй блок отвечает на ваш вопрос.

При создании сценария Tcl в файл с первой линией #!/usr/local/bin/tclsh , то вы можете вызвать файл сценария непосредственно из вашей оболочки, если пометить файл как исполняемый файл. [...]

Еще лучше всего начать файлы сценариев с помощью следующих трех строк:

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

Этот подход имеет три преимущества по сравнению с подходом в предыдущем пункте [...]

Следует отметить, что также обычная практика установки tclsh с номером ее версии в качестве части имени. Преимущество состоит в том, чтобы позволить несколькимверсиям Tcl существовать в одной и той же системе одновременно, но также и недостатком что затрудняет запись сценариев, которые запускаются равномерно в разных версиях Tcl.

Смежные вопросы