微软发布PowerShell 7.0,兼容性大升级,全平台可用,开发人员:自7以后才是真·PowerShell

鱼羊 发自 凹非寺
量子位 报道 | 公众号 QbitAI

那个模糊了脚本和正经程序的边界,让一切皆有可能的PowerShell,7.0正式版发布啦。

新的语法糖,更好的兼容性,最重要的,是从.NET Core 2.x完全迁移到了3.1。

背后生态的升级,也意味着PowerShell 7比起它的老版本们,更具向后兼容性。

PowerShell的开发人员甚至表示:

PowerShell 7标志着Windows PowerShell最大化向后兼容的完成。我们认为PowerShell 7及其以后的版本才是真正的PowerShell。

和六代目一样,PowerShell 7全平台可用,无论你是Linux的忠实拥趸还是Mac爱好者,都可以像Windows用户一样,体验微软开源的风味。

话不多说,一起来看看PowerShell 7带来了什么样的新功能。

兼容性大升级

大版本更新,带来了新的cmdlet和API,一批bug也得到了集中修复。

而最令人期待的,当然还是新功能:

  • 用ForEach-Object -Parallel进行管道并行化
  • 新的运算符:
  • 三元运算符:a ? b : c
  • 管道链运算符:|| 和 &&
  • 空分配和合并运算符:?? 和 ??=
  • 简化的动态错误视图和Get-Error命令行工具,可更轻松地调查错误
  • 兼容性层,使用户能够在隐式Windows PowerShell会话中导入模块
  • 自动新版本通知
  • 直接从PowerShell 7调用DSC资源的能力(实验性)

更重要的一点是,从PowerShell 6.x版本升级到7.0版本,意味着.NET Core从2.x升级到了3.1。

.NET Core 3.1是2019年12月更新的.NET最新版本,也是最具向后兼容性的版本。这也就使得Windows PowerShell模块的向后兼容性大大提高。包括Out-GridView和Show-Command这样需要GUI功能的模块,以及Windows附带的许多角色管理模块。

并且,PowerShell 7的操作系统支持列表相当可观,包括Windows7、8.1和10(在x64上),几乎所有的Windows Server版本,macOS和一众Linux发行版。

完整列表如下:

Windows 8.1, and 10

Windows Server 2012, 2012 R2, 2016, and 2019

macOS 10.13+

Red Hat Enterprise Linux (RHEL) / CentOS 7

Fedora 30+

Debian 9

Ubuntu LTS 16.04+

Alpine Linux 3.8+

以及Debian和Ubuntu的ARM32、ARM64版本,以及ARM64 Alpine Linux。

什么是PowerShell

如果你还不太了解PowerShell,那么且听我安利一发。

PowerShell是微软开发的任务自动化和配置管理工具。不同于普通的Shell脚本语言,PowerShell背靠.NET这棵大树,能直接调用.NET Framework平台强大的功能。

如果跟知名的Unix Shell——Bash做个比较,Bash可以说是简单粗暴型选手,交互全靠字符串,胜在语法精简,速度很快,但也容易让写脚本的人抓狂。

bash,图源:TechTarget

而PowerShell作为面向对象的脚本语言,具有一致的语法结构,写起脚本更为清晰。

powershell,图源:TechTarget

传送门

GitHub地址:https://github.com/PowerShell/PowerShell

更新细则:https://docs.microsoft.com/zh-cn/powershell/scripting/whats-new/what-s-new-in-powershell-70?view=powershell-7

— 完 —

版权所有,未经授权不得以任何形式转载及使用,违者必究。