我正在使用tcl.lang.Interp.eval()
来执行“hello world”tcl脚本。用于执行脚本的命令是这样的 -
source /path/of/my/script.tcl
现在我如何以sudo
用户身份执行脚本,因为我们无法通过java程序使用source
执行sudo
?
答案 0 :(得分:1)
您可以从 sudo 内部运行 tclsh (Tcl的“母舰”实现,用C语言编写),或者您可以运行使用TclJava的JVM图书馆。但是, sudo 使用提升的权限而不仅仅是库来运行整个进程;你需要考虑创建一个能够做你想做的事情的程序,可能会传入适当的参数。
FWIW,我首先尝试:
sudo tclsh /path/of/my/script.tcl
如果有效的话,这将是最简单的;它是 tclsh 的设计用途(加上 sudo )。如果脚本需要访问进程内JVM,则它是不合适的。如果是这种情况,你可能不得不编写一个小的包装Java程序。