在SSH会话中设置环境变量

时间:2019-12-04 23:44:13

标签: bash ssh

我遇到的情况是,我有一台主机,需要以并行版本安装某些应用程序。显然,默认情况下只有一个可以添加到导出中以运行。例如,我们可以说它是Python 2.7,Python 3.5和Python 3.7。

我需要能够与主机建立SSH连接,其中每个连接都可以为所需的特定版本设置正确的路径。是否有捷径可寻。这里的关键是每个连接都不能影响主机本身或其他连接。主机本身上运行的某人不应中断,因为该路径是由远程连接更新的。

1 个答案:

答案 0 :(得分:0)

对于多个(python和其他)层次结构,并且假设工具是通过工具名称(python ...)调用的,则将首选路径放在系统路径之前将提供一种方法来指定每个实例工具设置,而不会在作业之间产生副作用。

ssh ... 'PATH=/path/to/python3.1/bin:$PATH command'

取决于工具的数量和设置的复杂性,您可能希望将其实现为包装器

ssh ... '/path/to/run-with-pkgs python-3.2 pkg2 -- command'

使用pkg-setup脚本源提供各种配置脚本。类似于:

run-with-pkgs

#! /bin/bash
while [ $# -gt 0 ] && [ "$1" != "--" ] ; do
   source "/path/to/setup.d/$1.sh"
   shift
done
if [ "$1" = "--" ] ; then
    shift
    exec "$@"
fi