Если предоставленный вами скрипт является скриптом cshell, вы можете выполнить его следующим образом:
exec /bin/csh $path_to_script
По сути, именно это и делает команда «source» из интерактивной оболочки. Не ясно, действительно ли это то, что вы хотите сделать или нет (не совсем, но достаточно близко для этого обсуждения).
Причина, по которой вы не можете выполнить исходную команду, заключается в том, что exec будет работать только с исполняемыми файлами (отсюда и название 'exec'). Исходная команда не реализована в виде исполняемого файла, это команда, встроенная в оболочку. Таким образом, это не может быть exec'd.
Если вы действительно чувствуете необходимость выполнить исходную команду или любую другую встроенную команду, вы можете сделать что-то вроде этого:
exec /bin/csh -c "source $path_to_script"
В приведенном выше примере вы используете оболочку c и просите ее выполнить команду «source». Для конкретного случая исходной команды это не имеет особого смысла.
Однако я не уверен, что все это действительно сделает то, что вы ожидаете. Обычно, если кто-то говорит «вот некоторые команды, просто сделайте« source », он обычно просто определяет некоторые псевдонимы и тому подобное, которые будут использоваться в интерактивной оболочке. Эти псевдонимы не будут работать в Tcl.