shell脚本ssh远程执行命令给变量赋值的问题

需求及目标

从A机器通过SSH方式到B机器,并执行相关的命令。命令中包含变量及变量的赋值。

代码如下,意思是,ssh到192.111.111.27这台机器,cd到 / 根目录下,并执行ls命令,如果ls出来的结果不为空,则执行echo命令。可以肯定的是 / 根目录下是有内容的。

ssh -i /root/.ssh/private_key -tt -o StrictHostKeyChecking=no  rbadmin_app1@192.111.111.27 << eof
cd /
LSRESULT="$(ls)"
echo $LSRESULT
exit
eof

可以看到当执行到 echo 命令的时候,输出的是空,这就很奇怪。
在这里插入图片描述

问题产生的原因

这是因为我们将远程执行的命令和变量赋值语句放在了 SSH 的输入重定向中 (<< eof … eof)。在这种情况下,脚本中的变量赋值语句将在本地 Shell 中执行,而不是远程机器上。也就是说变量赋值语句其实不会在你远程执行的这台B机器上去执行,而是等到ssh命令完成后,回到机器A上后去执行,实际 ls 命令执行的路径是机器A在执行ssh命令时所在的路径。

问题的解决

ssh -i /root/.ssh/private_key -tt -o StrictHostKeyChecking=no  rbadmin_app1@192.111.111.27 << eof
cd /
LSRESULT="\$(ls)"
echo \$LSRESULT
exit
eof

可以看到此时,执行echo命令时,就输出了远程机器上执行的ls命令。修改的地方很简单,在执行的语句外层的$符号前加上反斜杠 \ , 在引用的变量上加上反斜杠 \ 即可。这是由于命令和变量在远程机器上执行,因此需要使用 \ 进行适当的转义,以确保变量能够正确地被解析和赋值。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/7405.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel 2019访问SQL Server数据库的实现过程

源之&#xff1a;https://vip.kingdee.com/article/288066926977041920?productLineId11 在日常ERP系统实施过程中&#xff0c;往往会遇到客户的一些个性化需求&#xff0c;比如有些客户习惯用Excel电子表格来查看ERP系统中的数据&#xff0c;业余拓展学习了一下&#xff0c;借…

浅析EasyCVR视频技术与AR实景智能管理平台在智慧厂区中的应用

一、背景分析 新型智慧厂区是运用人工智能、大数据、物联网和设备监控技术加强厂区安保和信息管理。通过先进技术&#xff0c;保障厂区生产运营安全&#xff0c;同时减少生产线上的人工干预、及时正确地采集各类生产数据&#xff0c;以及合理的生产计划编排与生产进度&#xff…

matlab将数据写入到excel中

第一种&#xff1a; 将数据转化为cell块&#xff0c;从A1单元格写起 % xlswrite(info_10*2.xls ,sheet1,B2:B4) clear; clc; a[1 2 3 4 5 6 ];%三组数据 b[11 22 33 44 55 66]; c[12 23 34 45 56 61]; data [a b c];%把数据保存到data中&#xff0c;其中a的表示转置 [m p]si…

Segment-Anything的一些相关论文总结

1、 Segment Anything Model (SAM) Enhanced Pseudo Labels for Weakly Supervised Semantic Segmentation Tianle Chen, Zheda Mai, Ruiwen Li, Wei-lun Chao https://arxiv.org/abs/2305.05803 图像级监督的弱监督语义分割(WSSS)由于其标注成本较像素级标注低而受到越来越…

MySQL表的增删查改

目录 1.表的增删查改 2.Create 2.1单行数据 全列插入 2.2 多行数据指定列插入 2.3插入否则更新 2.4替换 3.Retrieve 3.1select列 3.2where条件 3.3结果排序 3.4筛选分页结果 4.Update 5.Delete 总结 前言 hello,各位小伙伴大家好&#xff0c;又和大家见面了。前…

【Spring】——Spring生命周期

前言 ❤️❤️❤️Spring专栏更新中&#xff0c;各位大佬觉得写得不错&#xff0c;支持一下&#xff0c;感谢了&#xff01;❤️❤️❤️ Spring_冷兮雪的博客-CSDN博客 前面我们讲完了Spring中有关Bean的读和取&#xff0c;我们还没有好好去了解了解Bean对象&#xff0c;这篇 …

二分查找--图文详解

二分查找 1. 什么是二分查找2. 原理3. 例子3.1 当数组长度为奇数3.1 当数组长度为偶数3.3 实现过程 4. 顺序查找与二分查找的区别结束语 1. 什么是二分查找 二分查找也称折半查找&#xff0c;是在一组有序(升序/降序)的数据中查找一个元素&#xff0c;它是一种效率较高的查找方…

ss客服让您在Facebook 的客户服务更便捷

ss客服让您在Facebook Messenger 的客户服务更便捷 在这个信息时代&#xff0c;新兴通讯软件蓬勃兴起&#xff0c;比如Facebook Messenger。事实证明&#xff0c;这对企业来说非常有利&#xff0c;同时突出了电子邮件、网络聊天和电话等传统渠道的局限性。在传统渠道上&#xf…

驾驶舱数据指标体系设计指南

大数据时代下&#xff0c;各行各业面对众多的顾客和复杂多变的市场需求&#xff0c;要想及时适应市场变化&#xff0c;掌握市场动态&#xff0c;就需要对各个环节的数据进行分析&#xff0c;得到科学有效的结论来指导决策&#xff0c;这就离不开领导驾驶舱。 一、领导驾驶舱是什…

【电路原理学习笔记】第2章:电压、电流和电阻:2.1 原子结构

第2章&#xff1a;电压、电流和电阻 2.1 原子结构 元素&#xff1a;不能用化学方法分解成更简单形式的物质称为元素。原子&#xff1a;原子是体现元素特性的最小粒子。原子核&#xff1a;原子核由质子和中子组成&#xff0c;质子带有正电荷&#xff0c;中子呈中性。电子带有负…

PHP 文心千帆API接口对接

一&#xff1a;API 调用流程简介 创建一个智能云应用。根据实际需求创建智能云应用。创建成功后&#xff0c;获取AppID、API Key、Secret Key 等信息。API 授权。对应用的 AppID 进行授权。获取接口访问凭证 access_token 。根据第1步获取的 API Key 和 Secret Key &#xff0c…

《PyTorch深度学习实践》第五讲 用PyTorch实现线性回归

b站刘二大人《PyTorch深度学习实践》课程第五讲用PyTorch实现线性回归笔记与代码&#xff1a;https://www.bilibili.com/video/BV1Y7411d7Ys?p5&vd_sourceb17f113d28933824d753a0915d5e3a90 PyTorch官网教程&#xff1a;https://pytorch.org/tutorials/beginner/pytorch_w…