首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过ssh命令运行远程脚本

通过ssh命令运行远程脚本
EN

Unix & Linux用户
提问于 2015-06-01 16:58:12
回答 1查看 3K关注 0票数 0

我在远程Debian服务器机器上有一个脚本,我想通过调用:

代码语言:javascript
运行
复制
ssh server "find.sh"

我的find.sh脚本在以下文件中:

代码语言:javascript
运行
复制
/home/user/bin

首先,我运行ssh服务器"echo $PATH“,它使用以下路径进行响应:

代码语言:javascript
运行
复制
/home/user/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

因此,路径变量似乎没有问题,但不起作用。我唯一能让它工作的方法是调用完整路径:

代码语言:javascript
运行
复制
ssh server "/home/user/bin/find.sh"

有什么简单的方法可以让它在不指定完整路径的情况下工作吗?

EN

回答 1

Unix & Linux用户

发布于 2015-06-08 13:50:02

ssh server "echo $PATH"不是与ssh server "find.sh"相同的操作模式。第一个包含shell元字符(特别是一个空格),因此将由"sh -c‘指定的命令“运行;第二个不包含,因此将由"exec('specified_command')”运行。这种差别是微妙的,但在这种情况下(因为设置环境变量的是shell ),会产生副作用,这可能是您所不期望的。

您可以通过执行类似于ssh server 'bash -c "find.sh"'的操作来强制执行shell

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/208777

复制
相关文章

相似问题

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