首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash:命令找不到问题( sshpass )

bash:命令找不到问题( sshpass )
EN

Stack Overflow用户
提问于 2018-05-08 13:17:44
回答 2查看 1.3K关注 0票数 0

我有machine Amachine B。在我的local machine X中,我想运行一个bash脚本,它将连接到Machine A,然后连接到Machine B,以检查Machine B上的包版本。

现在,我在Machine B上安装了两个或两个以上的软件包。

单包版本检查:

代码语言:javascript
复制
sshpass -p 'Password' ssh admin@A.A.A.A -p 30025  "sshpass -p 'Password' ssh B.B.B.B "dpkg -s env.ns | grep -E 'Version|Package' | tr '\n' ',' |sed 's/,$/\n/'""

结果:

代码语言:javascript
复制
Package: env.ns,Version: 51.0.0n

多包检查:

代码语言:javascript
复制
sshpass -p 'Password' ssh admin@A.A.A.A -p 30025  "sshpass -p 'Password' ssh B.B.B.B "dpkg -s env.ns | grep -E 'Version|Package' | tr '\n' ',' |sed 's/,$/\n/' && dpkg -s agent.ns | grep -E 'Version|Package' | tr '\n' ',' |sed 's/,$/\n/'""

结果:

代码语言:javascript
复制
Package: env.ns,Version: 51.0.0n
-bash: dpkg: command not found

我无法得到第二个版本的软件包。使用sshpass,我们可以传递多个命令在主机上运行吗?

预期结果:

代码语言:javascript
复制
Package: env.ns,Version: 51.0.0
Package: agent.ns,Version: 51.0.0
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-08 14:24:31

尝试使用';'而不是'&&'

代码语言:javascript
复制
sshpass -p 'Password' ssh admin@A.A.A.A -p 30025  "sshpass -p 'Password' ssh B.B.B.B "dpkg -s env.ns | grep -E 'Version|Package' | tr '\n' ',' |sed 's/,$/\n/' ; dpkg -s agent.ns | grep -E 'Version|Package' | tr '\n' ',' |sed 's/,$/\n/'""
票数 1
EN

Stack Overflow用户

发布于 2018-05-08 13:28:00

&&后面的所有内容都作为单独的命令执行。也许您可以尝试大括号扩展:将这两个命令添加到类似于这个{command1, command2}的大括号中(不确定这是否有效)

如果大括号扩展不起作用,则必须重复该命令。

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

https://stackoverflow.com/questions/50234613

复制
相关文章

相似问题

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