检查SSH会话中是否安装了软件

时间:2016-11-23 00:55:47

标签: linux bash ssh

我正在尝试检查bash脚本中是否在远程计算机上安装了某个软件包。

如果我在机器上执行以下语句,结果是文件check.txt中的1(已安装),这是正确的:

dpkg-query -W -f='${Status}' nano 2>/dev/null | grep -c "ok installed" > /home/someuser/check.txt

但是,如果我在SSH会话中执行相同的命令,则结果始终为0.

有人可以解释为什么以及如何纠正这个问题?

谢谢。

#!/bin/bash
ADDRESS=SOMEUSER@$SOMESERVER

function run {
    ssh $ADDRESS /bin/bash $@
}

run << SSHCONNECTION

dpkg-query -W -f='${Status}' nano 2>/dev/null | grep -c "ok installed" > /home/someuser/check.txt

SSHCONNECTION

1 个答案:

答案 0 :(得分:1)

您需要转义$字符:

dpkg-query -W -f='\${Status}' nano 2>/dev/null | grep -c "ok installed" > /home/someuser/check.txt
相关问题