栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SSH命令中如何同时包含本地和远程变量

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSH命令中如何同时包含本地和远程变量

我认为这是您想要的:

A=3;ssh host@name "B=3; echo $A; echo $B;"

使用双引号时

您的shell会对前缀为的变量进行自动扩展

$
,因此在您的第一个示例中,当看到

ssh host@name "B=3; echo $A; echo $B;"

bash将其扩展为:

ssh host@name "B=3; echo 3; echo ;"

然后 传递

host@name "B=3; echo 3; echo;"
作为参数
ssh
。这是因为您是使用定义
A
A=3
,但从未定义过
B
,因此
$B
会在本地解析为空字符串。


当使用单引号时

用单引号引起来的所有内容都解释为字符串文字,因此在执行以下操作时:

ssh host@name 'B=3; echo $A; echo $B;'

B=3; echo $A; echo$B;
一旦您登录到远程服务器,说明将运行。您已经
B
在远程外壳程序中定义了,但是您从未告诉过它是什么
A
,因此
$A
将解析为空字符串。


因此,当您使用时

$
,如解决方案中所示:

$
意思是按
$
字面意义解释字符,因此我们按字面意义发送
echo $B
作为远程执行指令之一,而不是先让bash
$B
在本地扩展。我们最终告诉
ssh
我们要做的事情等效于此:

ssh host@name 'B=3; echo 3; echo $B;'


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409059.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号