通过ssh在linux中设置环境变量

通过ssh在linux中设置环境变量

我正在研究三个不同的问题,因此我将源代码克隆到三个不同的目录中。

1) /nobackup/vivek/dev1/<source_code>..
2) /nobackup/vivek/dev2/<source_code>..
3) /nobackup/vivek/dev3/<source_code>..

我在文件中为几个模块创建了几个别名,.bashrc以便我可以快速跳转到它们。我使用了名为 的环境变量,CDR其值可以是dev1dev2或者dev3取决于我正在工作的问题和目录。

.bashrc我的文件中的别名之一的示例

alias acl='cd /nobackup/vivek/$CDR/<source_code>../acl'

现在我必须手动更改环境变量的值。例如,如果我想处理第 1 号问题。 3 然后我必须将环境变量导出CDRdev3.

export CDR=dev3. 

因为对于问题没有。 3、我应该在dev3ie文件夹下/nobackup/vivek/dev3/<source_code>..

类似地,如果我正在处理第 1 号问题。 1 或 2 我必须手动将环境变量导出到dev1dev2

export CDR=dev1 or export CDR=dev2

CDR我想在ssh本身的时候设置环境变量。我已尝试以下命令来完成该任务

ssh -t [email protected] 'export CDR=dev1'
or
ssh -t [email protected] 'export CDR=dev2'

当我执行上述 ssh 命令时,一旦输入密码,我的连接就会终止。

[电子邮件受保护]的密码:
与 122.11.33.21 的连接已关闭。

任何人都可以在这里帮助我吗?我不确定为什么我的连接被终止。有没有其他方法可以在登录时设置我的环境变量。

答案1

您想要启动bash(或您喜欢的 shell) - 最好作为登录 shell,以确保您的标准配置文件、rc 文件等也被加载:

ssh -t user@server "export var=VALUE ; bash -l"

或者正如 @they 所指出的,更短的符号

ssh -t user@server "var=VALUE bash -l"

也会做的。

相关内容