.bat 中通过 Plink 执行的脚本的行为有所不同

2023-12-30

我有一个.bat我的 Windows 机器上的文件。这.bat文件使用plink.exe连接到 Ubuntu 机器并执行.sh脚本。但是,根据 Plink 的使用方式,我在脚本上得到了不同的行为:

  1. 直接(亲自)登录 Ubuntu --脚本成功

  2. 通过 Bitvise 客户端 ssh --脚本成功

  3. 通过 Plink ssh(通过调用plink.exe)并从交互式 shell 调用脚本(它是 Windows 中的 Ubuntu shell)cmd.exe) -- 脚本成功

  4. ssh via .bat然后调用 Plink——脚本失败

脚本失败并显示消息:

加载共享库时出错:libCint.so:无法打开共享对象文件:没有这样的文件或目录

其他帖子似乎提到了安装/权限问题libCint.so但我知道情况并非如此,因为脚本在其他情况下可以正常工作,如上所示。

下面是plink.exe来自我的线.bat file:

plink.exe !plink_ssh_details! myscript

当通过这种方式调用时,上面的脚本失败.bat文件;再次注意,当直接从 Ubuntu 调用或通过 -ssh 直接进入 Ubuntu 时,它会成功cmd.exe (using plink.exe) 或 Bitvise 客户端。任何帮助,将不胜感激。


在其他情况下,您正在使用交互式会话。

虽然 Plink 默认使用非交互式会话,但当您在其命令行上指定命令时。

您的脚本可能依赖于一些环境变量(例如PATH) 被专门设置。

这些变量很可能仅为交互式会话设置。可能是因为它们在仅针对交互式会话执行(来源)的启动脚本中进行了修改。

解决方案是:

  • 更正启动脚本以无条件修改变量(即使对于非交互式会话)。

  • 修改脚本不依赖环境变量。

    或者您可以获取配置文件脚本,请参阅无法使用 PLINK 从 Windows 中通过 ktutil 命令运行 shell 脚本 https://stackoverflow.com/q/44847506/850848.

  • 强制 Plink 使用交互式会话-t switch

    这不是推荐的解决方案,因为使用交互式会话自动执行命令可能会给您带来令人讨厌的副作用。参见示例有没有一种简单的方法可以消除使用 Python 的 Paramiko 库进行 SSH 并从远程计算机的 CLI 获取输出时出现的垃圾值? https://stackoverflow.com/q/33291631/850848


当使用“exec”通道执行命令时,一些更不起眼的 SSH 服务器也可能表现不同。看在 Plink 命令行上执行命令失败并显示“未找到” https://stackoverflow.com/q/48445395/850848.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.bat 中通过 Plink 执行的脚本的行为有所不同 的相关文章

随机推荐

  • 切换 增强指针精度

    我们基本上是在创建一个控制面板小程序 我们需要在鼠标属性中切换 增强指针精度 为此 我们需要调用SystemParametersInfo with SPI GETMOUSE 它有一个包含 3 个元素的数组作为其第三个参数 我是 PInvok
  • 在正则表达式中匹配小时/分钟/秒 - 更好的方法吗?

    所以我需要从这样的条目中获取小时 分钟和秒 04 43 12 9 43 12 1 00 01 04 59 09 前两个是小时 分钟和秒 接下来是分钟和秒 最后两秒只是几秒钟 我想出了这个正则表达式 它有效 A
  • 可重复使用的方式,允许一个帐户一次由一个人使用

    我创建了一项功能 可以防止一个用户名同时多次登录 并在操作中调用它 如下所示 int userId int WebSecurity CurrentUserId if this Session SessionID dba getSession
  • Java XPathFactory 线程安全

    javax xml XPathFactory newInstance 是线程安全的吗 我这么问是因为我发现文档对此含糊不清 JDK 5 文档 http docs oracle com javase 1 5 0 docs api javax
  • Ruby on Rails Bootstrap Glyphicons 不工作

    我已将引导程序添加到我的网站 这是我正在使用的结构 我无法删除 bootstrap css 文件 因为我根据自己的喜好修改了它 gt app gt gt assets gt gt gt fonts gt gt gt gt 4 glypico
  • 如何验证函数句柄作为输入参数?

    我有一个类 它有一个函数句柄作为其之一properties classdef MyClass properties hfun function handle end methods function obj Myclass hfun PRO
  • 单击按钮标题或按钮图标后按钮事件不起作用

    我创建了一个带有标签和 向下插入符号 图标的下拉按钮 当下拉菜单打开时 下插入符 图标应该向上旋转 并且这是有效的 但是 如果我单击按钮标题或 下插入符 图标 此事件将不起作用 document ready function dropdow
  • 如何(我应该)模拟 DocumentClient 进行 DocumentDb 单元测试?

    从新的 CosmosDb 模拟器中 我得到了一个存储库来执行基本的 documentdb 操作 该存储库被注入到其他类中 我想对基本查询进行单元测试 public class DocumentDBRepository
  • 根据运输方式自定义 Woocommerce 新订单电子邮件通知 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何编辑 admin new order php WooCommerce 模板以根据运输方式有条件地发送一些自定义客户详细信息 例如 用于新
  • ServiceStack.Redis 无法读取传输 - BasicRedisClientManager

    当尝试通过 ServiceStack Redis 读取 Redis 列表时 我间歇性地收到以下错误 无法从传输连接读取数据 已建立的连接被主机中的软件中止 我想知道如何使用 ServiceStack 可靠地连接和池连接到 Redis 的整个
  • 如何在两个同级 Blazor 组件之间进行通信?

    我有一个包含两个组件的 Blazor 页面 其中一个组件有一个按钮 单击该按钮会生成一个随机数 另一个组件有一个文本区域 应显示生成的随机数 h1 Parent Page h1
  • Apache OfBiz 执行问题

    在 64 位 Win 7 计算机上使用 OfBiz 在执行全新构建后 当构建完成并且我尝试打开任何页面时 我的浏览器 IE 和 Chrome 都是空白的 有任何想法吗 OfBiz 版本 16 11 01 当前日志的片段 W Communic
  • 如何查找 Retina/4k 显示器上的显示缩放系数?

    我有一个大显示屏 在缩放模式下运行以显示更大的文本 这种缩放不会报告给我的程序 该程序是一个使用 GLFW 进行窗口化的 OpenGL 应用程序 我的所有几何体都是实际视口高度的一半大小和偏移量 这是显示问题的一组图像https i sta
  • 在 PHP 中使用 SHA1 作为登录表单

    我正在尝试制作一个简单的注册和登录表单 我想使用 SHA1 将加密的密码保存在数据库中 但是当我尝试使用密码登录时 似乎不起作用 一共有三个文件 index php register php login php 请帮我解决这个问题 索引 p
  • 从两列中选择不同的组合

    我在表 Hyperlink 中有两列 源和目标 用于存储超链接的源和目标 source destination a b b c c d c b 有两个超链接同时涉及 b 和 c 两个超链接之间的区别在于超链接的方向 然而 我的目标是检索唯一
  • 谷歌地图删除以前的路线并绘制新路线

    目前我遇到了一个问题 我使用并更改了示例 API 来绘制两点的路线 A点是当前位置 B 点是多个标记的位置之一 这些标记的创建我称之为附近搜索功能 function showInfoWindow var marker this places
  • 如何在 PyQt5 中按下时切换按钮文本

    我正在尝试使用 PyQt5 按下时更改按钮文本 我有一个已填充的表格 每行都有一个按钮 最初 该按钮应显示 播放 按下后应显示 暂停 我使用以下方法填充表格并处理按钮按下操作 def populate table self total my
  • Java - 查看字符串中是否包含任何字符

    我遇到的问题是 当我检查字符串是否包含任何字符时 它只查看第一个字符而不是整个字符串 例如 我希望能够输入 123abc 并且字符被识别 因此失败 我还需要字符串长度为 11 个字符 并且由于我的程序仅适用于 1 个字符 因此无法再继续 到
  • 访问没有 id 的 DOM 元素

    我有一个大约 500 div 的页面 如下所示 div class li 1 li div 当调用测试函数时 需要隐藏调用该函数的菜单 内部菜单 我的问题是 不使用id来唯一标识div 如何仅隐藏特定的 ul 好的 首先是快速修复 尽管这不
  • .bat 中通过 Plink 执行的脚本的行为有所不同

    我有一个 bat我的 Windows 机器上的文件 这 bat文件使用plink exe连接到 Ubuntu 机器并执行 sh脚本 但是 根据 Plink 的使用方式 我在脚本上得到了不同的行为 直接 亲自 登录 Ubuntu 脚本成功 通