魚羊 發自 凹非寺
量子位 報道 | 公眾號 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
— 完 —
量子位 QbitAI · 頭條號簽約作者
關注我們,第一時間獲知前沿科技動態
閱讀更多 量子位 的文章