0
点赞
收藏
分享

微信扫一扫

Select-String的小问题

吓死我了_1799 2023-07-13 阅读 68

起因

昨天在写博客"PowerShell系列九:文档和测试"的时候,发现了一个小问题。

[bool]$s = Get-Access -Path $path | Select-String -Pattern '(Bob):\(Oi\)\(Ci\)\(R\)' -Quiet
$s | Should -Be $true

$s = Get-Access -Path $path | Select-String -Pattern '(Bob):\(Oi\)\(Ci\)' -Quiet 
$s = $s -as [bool]
$s | Should -Be $false

大家请看上面的代码,有没有发现不协调的地方? 请看下面的演示:

'a' | Select-String -Pattern 'a' -Quiet
# True
 'a' | Select-String -Pattern 'b' -Quiet
#

在单元测试的时候,就会导致行为不一致。 看下面的cmdlet的输出:

Test-Path foo.txt
# True
Test-path bar.txt
# False

行为就很一致,那么大概就是Select-String有问题了。 到github的PowerShell仓库,查询了一下发现在2021年有人提交过这个问题。但是没有修复,就提交了一个问题。回答的大概意思是问题已经记录,在下一个版本或者下下版本会修复这个问题。

最后

希望大家在使用工具什么的,发现问题。字符拼错了,文档和行为不一致,软件不能满足您的需求,您想添加什么功能,等等。都可以找开发者反馈,多参与开源软件的活动。

举报

相关推荐

0 条评论