Как отключить измененный интерактивный режим интерпретатора tclsh?

Бежать tclsh Команда без какого-либо tcl-файла переводчик перейдет в интерактивный режим.

Могу ли я просто отключить эту функцию, изменив исходный код tclsh?

1 ответ

Я не могу представить, почему вы захотите сделать это, учитывая, что предоставление любого файла сценария отключит интерактивный режим. Предоставленный вами скрипт будет иметь полный доступ к переданным дополнительным аргументам (список в глобальном argv переменный) и стандартные каналы ввода-вывода (stdin, stdout а также stderr). Оно может exit когда это будет сделано. Буквально все, что вы хотите, может быть сделано в этот момент; Вы просто должны написать скрипт, чтобы сделать это.

Если вы включаете Tcl в свою собственную программу, поведение tclsh реализовано в функции C Tcl_Main, Если вы никогда не называете это - вместо этого просто используя Tcl_FindExecutable, Tcl_CreateInterp а также Tcl_Eval/Tcl_EvalFile - тогда вы никогда не получите такого интерактивного поведения. Хотя теоретически вы могли бы модифицировать сам исходный код Tcl так, чтобы он делал то, что вы хотите - все это с открытым исходным кодом, - зачем вам беспокоиться, если вы просто не можете вызвать этот код в первую очередь?

Другие вопросы по тегам