我正在尝试在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
最佳答案
您需要转义$
字符:
dpkg-query -W -f='\${Status}' nano 2>/dev/null | grep -c "ok installed" > /home/someuser/check.txt
关于linux - 检查是否在SSH session 中安装了软件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40754333/