Pau*_*zak 2 package-management apt search
在 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]
Run Code Online (Sandbox Code Playgroud)
这表明libstdc++-12-dev已经安装了。搜索它:
paul@box4x4:~$ apt search libstdc++-12-dev
Sorting... Done
Full Text Search... Done
Run Code Online (Sandbox Code Playgroud)
失败了。这是为什么?
改为跑步apt search libstdc\\+\\+-12-dev。
man apt说:
Run Code Online (Sandbox Code Playgroud)search (apt-cache(8)) search can be used to search for the given regex(7) term(s)
不,这不是bash扩展的问题。如果它正在进行扩展,echo将帮助您调试它正在扩展的内容:
home@daniel-tablet1:~$ echo apt search libstdc++-12-dev
apt search libstdc++-12-dev
home@daniel-tablet1:~$ echo apt search 'libstdc++-12-dev'
apt search libstdc++-12-dev
Run Code Online (Sandbox Code Playgroud)
问题是你写的libstdc++-12-dev。当解释为正则表达式时,这意味着:
libstd字面上的字符串c字面上的字符串-12-dev字面上的字符串apt search 'libstdc\+\+-12-dev'效果也一样好apt search libstdc\\+\\+-12-dev。要转义 中的反斜杠bash,您需要引用它们或将它们加倍。然后,aptRegEx 引擎需要一个反斜杠来告诉它解释+为文字字符串,而不是“前面的一个或多个”。
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |