鱼羊 发自 凹非寺 量子位 报道 | 公众号 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
作者系网易新闻·网易号“各有态度”签约作者
— 完 —