首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的~/.bashrc是在我连接的时候获得的,而不是在我只执行一个命令的时候?

为什么我的~/.bashrc是在我连接的时候获得的,而不是在我只执行一个命令的时候?
EN

Stack Overflow用户
提问于 2013-07-05 21:21:21
回答 2查看 205关注 0票数 2

我有一个目标AIX6.1服务器,需要在其中执行脚本。

我的目标服务器上的~/.bashrc配置为添加一个变量MACHINE=1

当我ssh服务器并连接时,我有效地查看了我的环境中的~/.bashrc变量:

代码语言:javascript
复制
[user@source ~]$ ssh user@10.10.10.10
[user@target]
$env |grep "MACHINE"
MACHINE=1
[user@target]
$

但是当我在ssh中直接执行env命令时,这个变量并没有被设置:

代码语言:javascript
复制
[user@source ~]$ ssh user@10.10.10.10 "env" |grep MACHINE
[user@source ~]$

是否需要在服务器上配置更多内容?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-05 22:08:18

您有一个选择,那就是让sshd为您设置环境变量。在/etc/sshd_config

代码语言:javascript
复制
PermitUserEnvironment yes

~/.ssh/environment

代码语言:javascript
复制
MACHINE=1
票数 2
EN

Stack Overflow用户

发布于 2013-07-05 21:33:34

ssh远程命令在非交互式外壳中执行。因此,您的${HOME}/.bashrc/etc/bashrc不会被读取。

如果希望ssh命令读取环境变量,请将这些变量添加到/etc/profile中。

或者,尝试hacks:

代码语言:javascript
复制
ssh user@10.10.10.10 'source ${HOME}/.bashrc; echo ${MACHINE}'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17489934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档