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