我想在 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/