检查软件是否安装在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