"Plant" Bash 脚本到 tcl 脚本

"Plant" Bash Scripts into a tcl Script

我有一个 main tcl 脚本,它调用多个 bash 脚本。但我想把所有东西都放在一个地方。有没有办法直接在 tcl 脚本中实现我的 bash 脚本(作为 procs?)并以某种方式将它们标记为 bash 脚本?当然,你不能只是将它们放在 procs 中而不对它们进行任何更改。

另一件必须注意的事情:一些 bash 脚本需要作为 su 访问,如何实现?

我不是在寻找这样的东西: How to call bash commands from tcl script? - 我只想将我的 bash 脚本作为 "isolated" 程序。

将 bash 脚本放入正确引用的字符串中,然后将其传递给 bash:

proc do_bash_script {} {
    set bash_script {
        echo $HOME
        getent passwd $USER
    }
    exec bash << $bash_script
}
do_bash_script

产出

/home/jackman
jackman:x:1001:1001:Glenn Jackman:/home/jackman:/usr/local/bin/fish