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

问题描述:

我想检查某个软件包是否安装在远程机器上的bash脚本中。检查软件是否安装在SSH会话中

如果我执行文件check.txt机器本身的结果是1(安装),这是正确的声明如下:

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

但是,如果我在SSH会话执行相同的命令,结果总是0.

有人可以解释为什么以及如何纠正?

谢谢。

#!/bin/bash 
[email protected]$SOMESERVER 

function run { 
    ssh $ADDRESS /bin/bash [email protected] 
} 

run << SSHCONNECTION 

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

SSHCONNECTION 

你需要躲避$字符:

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