Shell 如何在tcl中生成bash脚本(expect)

Shell 如何在tcl中生成bash脚本(expect),shell,proxy,tcl,expect,Shell,Proxy,Tcl,Expect,我想在bash环境中设置一个http代理(导出http\u proxy=xyz)。因此,我将该命令添加到.bash\u概要文件的末尾,并调用 exec /bin/sh -c "source /path/to/.bash_profile" 但它的工作方式与预期不同:$::env(http\u代理)不存在(但没有输入错误)。 我还尝试这样运行脚本:exec/bin/sh-c[exec cat/path/to/.bash\u profile]。。但结果是一样的。说 exec /bin/sh -c "

我想在bash环境中设置一个http代理
(导出http\u proxy=xyz)
。因此,我将该命令添加到
.bash\u概要文件的末尾,并调用

exec /bin/sh -c "source /path/to/.bash_profile"
但它的工作方式与预期不同:
$::env(http\u代理)
不存在(但没有输入错误)。 我还尝试这样运行脚本:
exec/bin/sh-c[exec cat/path/to/.bash\u profile]
。。但结果是一样的。

exec /bin/sh -c "source /path/to/.bash_profile"
source
子shell中的
/path/to/.bash\u配置文件
。因此,当命令执行完毕时,对环境所做的任何更改实际上都会被忽略

要将环境变量传递给程序,请尝试:

exec /usr/bin/env http_proxy=xyz program

或者:
set env(http_proxy)xyz;执行程序
或在修改
~/.bash\u配置文件
后启动新的bash登录shell。它会为你找到它的来源。然后从这个外壳开始。