Как отключить измененный интерактивный режим интерпретатора tclsh?
Бежать tclsh
Команда без какого-либо tcl-файла переводчик перейдет в интерактивный режим.
Могу ли я просто отключить эту функцию, изменив исходный код tclsh?
1 ответ
Я не могу представить, почему вы захотите сделать это, учитывая, что предоставление любого файла сценария отключит интерактивный режим. Предоставленный вами скрипт будет иметь полный доступ к переданным дополнительным аргументам (список в глобальном argv
переменный) и стандартные каналы ввода-вывода (stdin
, stdout
а также stderr
). Оно может exit
когда это будет сделано. Буквально все, что вы хотите, может быть сделано в этот момент; Вы просто должны написать скрипт, чтобы сделать это.
Если вы включаете Tcl в свою собственную программу, поведение tclsh
реализовано в функции C Tcl_Main
, Если вы никогда не называете это - вместо этого просто используя Tcl_FindExecutable
, Tcl_CreateInterp
а также Tcl_Eval
/Tcl_EvalFile
- тогда вы никогда не получите такого интерактивного поведения. Хотя теоретически вы могли бы модифицировать сам исходный код Tcl так, чтобы он делал то, что вы хотите - все это с открытым исходным кодом, - зачем вам беспокоиться, если вы просто не можете вызвать этот код в первую очередь?