linux - 从 TCL 文件执行 linux 命令

标签 linux tcl

我想在 tcl 文件中运行一个命令。根据Unix examples ,我写道:

....
exec export LD_LIBRARY_PATH=/opt/gcc-4.1.2-built/lib64
puts $gofile "#!/bin/bash
....

但是我得到这个错误:

couldn't execute "export": no such file or directory
while executing
"exec export LD_LIBRARY_PATH=/opt/gcc-4.1.2-built/lib64"

如果我删除该 exec 行,则不会出现错误。

最佳答案

要设置环境变量,您不使用exec,而只是写入全局env 关联数组的适当元素(:: 是“这是一个全局变量”,如果您正在编写顶级脚本,则可以省略):

set ::env(LD_LIBRARY_PATH) "/opt/gcc-4.1.2-built/lib64"

然后你就可以exec,这个值就会被正确继承:

puts $gofile "#!/bin/bash
...."

(我有点惊讶你传递的是这样的多行脚本,但如果它适合你,那就太棒了。不过,我发现如果我这样做,通常最好拆分将东西放入多个文件中。它减少了令人头疼和困惑的数量,因为您最终不会与比最低限度更多的引用级别作斗争。)

关于linux - 从 TCL 文件执行 linux 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15051847/

相关文章:

linux - 如何查看所有进程的文件描述符?

linux - 恢复插入到 postgres 数据库

namespaces - Tcl - 将命名空间拆分为多个文件

tcl lsort 对字符串中的最后 n 个字符

Tcl:有没有办法显示 tcl 中的哪一行抛出错误?

php - 导入 WordPress 显示黑屏

linux - 网络上所有机器的主机名发现

linux - 如何使用 webdav 服务器通过 cadaver 覆盖或至少删除远程文件?

linux - Jenkins 与 Expect 脚本集成

debugging - Tcl 程序,其行为根据 "puts"语句而变化