使用sudo命令执行tcl



我正在使用tcl.lang.Interp.eval()执行一个"helloworld"tcl脚本。用于执行脚本的命令如下所示-

source /path/of/my/script.tcl

既然我们不能通过java程序使用sudo来执行source,那么我如何以sudo用户的身份执行脚本呢?

您可以从sudo内部运行tclsh(Tcl的"母舰"实现,用C编写),也可以运行使用TclJava库的JVM。然而,sudo以提升的权限运行整个过程,而不仅仅是一个库;你需要考虑创建一个可以做你想做的事情的程序,可能会传递合适的参数。

FWIW,我会从尝试开始:

sudo tclsh /path/of/my/script.tcl

如果可行的话,这将是最简单的;这就是tclsh的使用方式(加上sudo)。只有当脚本需要访问进程内JVM时,它才不合适。如果是这样的话,您可能需要编写一个小型的包装Java程序。

最新更新