![如何正确使用 dpkg-query 命令别名(使用管道)?](https://linux22.com/image/900918/%E5%A6%82%E4%BD%95%E6%AD%A3%E7%A1%AE%E4%BD%BF%E7%94%A8%20dpkg-query%20%E5%91%BD%E4%BB%A4%E5%88%AB%E5%90%8D%EF%BC%88%E4%BD%BF%E7%94%A8%E7%AE%A1%E9%81%93%EF%BC%89%EF%BC%9F.png)
我正在添加这个别名.bashrc
(当然是在一行中),但不幸的是,这不起作用:
alias lspkg="dpkg-query -W -f='${db:Status-Abbrev}\t${binary:Package} - ${binary:Summary}\n'
| awk -F'\t' '/^ii/ {print $2}'"
知道为什么吗?我尝试使用反斜杠或单引号进行反斜杠操作,但没有得到更好的结果。
参考:
答案1
由于 ,${}
和正在被壳吃掉,所以需要逃脱。$
"
$
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 }'
$ _
然后,通过目视检查就可以看到缺少了什么。