我正在使用tcl.lang.Interp.eval()
执行“hello world”tcl 脚本。用于执行脚本的命令是这样的——
source /path/of/my/script.tcl
现在我如何以sudo
用户身份执行脚本,因为我们无法source
通过sudo
java 程序执行?
您可以在sudo中运行tclsh(Tcl 的“母舰”实现,用 C 编写)就好了,或者您可以运行使用 TclJava 库的 JVM。但是,sudo以提升的权限运行整个进程,而不仅仅是一个库;您需要考虑创建一个可以执行您想要的程序的程序,可能会传入合适的参数。
FWIW,我首先尝试:
sudo tclsh /path/of/my/script.tcl
如果可行,那将是最简单的;这就是设计使用tclsh的方式(加上sudo)。仅当脚本需要访问进程内 JVM 时才不合适。如果是这种情况,您可能必须编写一个小型包装 Java 程序。