2016-11-23 104 views
0

我想檢查某個軟件包是否安裝在遠程機器上的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 

回答

1

你需要躲避$字符:

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