Запуск файла tcl из терминала

Я новичок в написании сценариев TCL и пытаюсь запустить сценарий с терминала.

Если я запускаю скрипт как

tclsh myscript.tcl 

тогда скрипт выполняется без проблем.

Но если я запускаю напрямую без «tclsh», то выдает ошибку следующим образом:

./myscript.tcl
./myscript: Command not found.

Я дал разрешение на выполнение для этого файла.

Я добавил путь tclsh в переменную PATH

echo  $PATH
/usr/local/bin:/bin:/usr/bin:/usr/bin/tclsh

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


person Dinesh    schedule 25.11.2013    source источник
comment
Есть ли в вашем сценарии необходимая строка shebang? например #!/usr/local/bin/tclsh?   -  person Johannes Kuhn    schedule 25.11.2013


Ответы (1)


Попробуйте добавить:

#!/usr/bin/tclsh

В начале вашего скрипта.

Если все еще не работает, покажите нам свой скрипт, который вы пытаетесь запустить, возможно, что-то не так.

person Zegar    schedule 25.11.2013
comment
Очевидно, что здесь это не так, но часто можно увидеть #!/usr/bin/env tclsh, если расположение tcl нестандартно, но оно находится в PATH. - person glenn jackman; 25.11.2013
comment
Самая большая проблема с использованием системы Tclsh кем-то, кто не является дистрибьютором ОС, заключается в том, что вы никогда не уверены на 100%, какая это версия. - person Donal Fellows; 25.11.2013
comment
@DonalFellows Разве package require Tcl <version> в сценарии не решает это? - person potrzebie; 26.11.2013
comment
@potrzebie Это не решает эту проблему, но, по крайней мере, позволит вашему сценарию изящно выйти из строя. - person Johannes Kuhn; 27.11.2013
comment
@JohannesKuhn Я ожидаю, что системный администратор связал tclsh с последней версией. Это действительно его работа, а не мой сценарий. - person potrzebie; 28.11.2013
comment
Обычно это делают пакеты, я не очень разбираюсь в perl (у меня он есть в Linux), поэтому мне все равно, какая у меня версия. Как только кто-то жалуется, что ему нужна более новая версия, я могу кое-что сделать, но пока этого не произойдет, я позволю своему пакетному менеджеру делать эту работу. - person Johannes Kuhn; 28.11.2013