如何使用dpkg-query命令(带管道)的正确方法?

我将此别名添加到.bashrc (当然在一行中),但不幸的是,这不起作用:

 alias lspkg="dpkg-query -W -f='${db:Status-Abbrev}\t${binary:Package} - ${binary:Summary}\n' | awk -F'\t' '/^ii/ {print $2}'" 

知道为什么吗? 我试图反斜杠反斜杠或单引号,没有更好的结果。

参考:

如何将已安装的软件包传递给apt-cache?

${}$因shell而被shell吃掉,所以$需要被转义。

 alias lspkg="dpkg-query -W -f='\${db:Status-Abbrev}\t\${binary:Package} - \${binary:Summary}\n' | awk -F'\t' '/^ii/ {print \$2}'" 

通常,在调试shell命令时,可以使用echo来检查输出,如:

 $ echo "dpkg-query -W -f='${db:Status-Abbrev}\t${binary:Package} - ${binary:Summary}\n' | awk -F'\t' '/^ii/ {print $2}'" dpkg-query -W -f='\t - \n' | awk -F'\t' '/^ii/ {print }' $ _ 

然后,人们可以通过视觉检查看到遗漏了什么。