首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果通过‘`ssh user@server myscript`’调用,则执行shell init内容

如果通过‘`ssh user@server myscript`’调用,则执行shell init内容
EN

Stack Overflow用户
提问于 2021-07-01 07:04:35
回答 2查看 47关注 0票数 0

我想在通过myscript调用ssh user@server myscript之前执行shell init

我试过:

代码语言:javascript
复制
# .bash_profile
echo DDDDDDDDDDDDDDDDDDDDDdddd

这是以互动方式进行的:

代码语言:javascript
复制
ssh user@server
DDDDDDDDDDDDDD

user@host> 

但它不是这样工作的(DDDDD.失踪)

代码语言:javascript
复制
ssh user@server date
Thu 01 Jul 2021 09:01:11 AM CEST

如何在myscript通过ssh调用之前执行init内容

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-02 06:42:44

我找到了解决办法。

首先,它没有工作,因为我在我的end of my .bashrc中添加了"echo DDDDDDDDD“。

如果我在top of .bashrc中添加它,它就能工作。

现在,我的shell行被执行:

代码语言:javascript
复制
ssh user@server date
DDDDDDDDD
Fri 02 Jul 2021 08:40:38 AM CEST

.bashrc中的这些行(在Ubuntu上似乎是默认的)是造成混乱的原因:

代码语言:javascript
复制
# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac
票数 0
EN

Stack Overflow用户

发布于 2021-07-02 00:59:55

如果您想在运行date命令之前源一个初始化脚本,可以这样做。

代码语言:javascript
复制
ssh user@server 'bash -c ". /path/to/init.sh; date"'

其中,/path/to/init.sh是指向所需初始化脚本的路径。

例如,如果您想要获取user.bash_profile,您可以这样做。

代码语言:javascript
复制
ssh user@server 'bash -c ". ~/.bash_profile; date"'

如果您想在server上以登录shell的形式执行bash,您可以这样做

代码语言:javascript
复制
ssh user@server 'bash -l -c "date"'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68205714

复制
相关文章

相似问题

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