batch-file – .bat中的Plink脚本行为不同

前端之家收集整理的这篇文章主要介绍了batch-file – .bat中的Plink脚本行为不同前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的Windows机器上有一个.bat文件.此.bat文件使用plink.exe连接到Ubuntu计算机并执行.sh脚本.但是,根据Plink的使用方式,我在脚本上会有不同的行为:

>直接登录Ubuntu(亲自) – 脚本成功
> ssh通过Bitvise客户端 – 脚本成功
> ssh通过Plink(通过调用plink.exe)和从交互式shell调用脚本(它是windows cmd.exe中的Ubuntu shell) – 脚本成功
> ssh通过.bat然后调用Plink – 脚本失败

脚本失败w / message:

error while loading shared libraries: libCint.so: cannot open shared object file: No such file or directory

其他帖子似乎是指libCint.so的安装/权限问题,但我知道情况并非如此,因为脚本在其他实例中正常工作,如上所示.

下面是我的.bat文件中的plink.exe行:

plink.exe !plink_ssh_details! myscript

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

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

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

您的脚本可能依赖于特定设置的某些环境变量(如PATH).

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

解决方案是:

>更正启动脚本以无条件地修改变量(即使对于非交互式会话).
>修改脚本不依赖于环境变量.

或者您可以获取配置文件脚本,请参阅Unable to run shell script with ktutil command from Windows using PLINK.
>强制Plink使用-t开关使用交互式会话

这不是推荐的解决方案,因为使用交互式会话来自动执行命令会带来令人讨厌的副作用.参见例如Is there a simple way to get rid of junk values that come when you SSH using Python’s Paramiko library and fetch output from CLI of a remote machine?

当使用“exec”通道执行命令时,Soem更加模糊的SSH服务器也会表现不同.见Plink : does not execute command.

原文链接:https://www.f2er.com/ubuntu/349187.html

猜你在找的Ubuntu相关文章