bash: 未找到命令问题 ( sshpass )

bash: command not found issue ( sshpass )

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

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

单个包版本检查:

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/'""

结果:

Package: env.ns,Version: 51.0.0n

多个包检查:

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/'""

结果:

Package: env.ns,Version: 51.0.0n
-bash: dpkg: command not found

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

预期结果:

Package: env.ns,Version: 51.0.0
Package: agent.ns,Version: 51.0.0

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

如果大括号扩展不起作用,您将不得不重复该命令。

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

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/'""