如果是在 linux/mac 上,那确实不好用。(跨平台 shell 只是个美好的梦)但如果在 Windows 上,是十分好用的。
1 、PowerShell
背靠.NET 平台,它值是有类型的,而 bash 则只是处理文本。PowerShell 相对来说更接近编程语言,有着更加强大的操控力,比如 (Get-Service win32Time).Stop() 这种,就是方法调用的形式。
2 、bash 字符串的操作方式,总让我有种不稳定感。比如通过分割一行然后截取第 n 段字符串的方式,就没有 PowerShell 的直接使用属性名那样有确定性。
3 、PowerShell 统一的 Verb-Noun 的命令形式,以及完整的参数命名。让人明白它想干啥。
比如 tail -f 对比 Get-Content -Wait ,后者虽然打的东西多了,但更加清晰明显。(感觉就像 C 和 Java )
4 、微软的东西,风格非常统一。Linux 上面有很多系统组件是由不同的人 /组织提供的,但 Windows 上微软提供的组件占了很大的份额。这使得你用 PowerShell 去与微软的东西交互,会十分得舒服。