在 Ubuntu 22.04.3 上:
paul@box4x4:~$ apt search libstdc++ | grep installed
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
libstdc++-11-dev/jammy-updates,jammy-security,now 11.4.0-1ubuntu1~22.04 amd64 [installed,automatic]
libstdc++-12-dev/jammy-updates,jammy-security,now 12.3.0-1ubuntu1~22.04 amd64 [installed]
libstdc++6/jammy-updates,jammy-security,now 12.3.0-1ubuntu1~22.04 amd64 [installed,automatic]
这表明libstdc++-12-dev
已经安装了。搜索它:
paul@box4x4:~$ apt search libstdc++-12-dev
Sorting... Done
Full Text Search... Done
失败。这是为什么?
改为跑步
apt search libstdc\\+\\+-12-dev
。man apt
说:不,这不是
bash
扩展的问题。如果它正在进行扩展,echo
将帮助您调试它正在扩展的内容:问题是你写的
libstdc++-12-dev
。当解释为正则表达式时,这意味着:libstd
字面上的字符串c
字面上的字符串-12-dev
字面上的字符串apt search 'libstdc\+\+-12-dev'
效果也一样好apt search libstdc\\+\\+-12-dev
。要转义 中的反斜杠bash
,您需要引用它们或将它们加倍。然后,apt
RegEx 引擎需要一个反斜杠来告诉它解释+
为文字字符串,而不是“前面的一个或多个”。