微軟釋出最新的PowerShell 7.0正式版,除了修復多個臭蟲之外,還加入了一些新的cmdlet和API,也新增了不少新功能。前一個版本名稱PowerShell Core 6.x,為了不讓用戶混淆,PowerShell 7.0名稱仍然會沿用帶著Core字樣,但是微軟表示,這個新版本代表著相容性的一大進展,之後會被表示成PowerShell 7.0,並且成為一個長期支援版本。

PowerShell是針對處理結構化資料、REST API與物件模型,進行最佳化的跨平臺自動化工具和配置框架,它包含了命令列殼層、物件導向腳本語言、執行腳本與cmdlet的工具以及管理模組。上一個主要版本是三年前發布的PowerShell Core 6,建立在.NET Core之上,開始加入對Windows、macOS和Linux的跨平臺支援,且以SSH支援PowerShell遠端,並大幅改進對REST和JSON的支援。

從Core 6.x版本發展到現在的PowerShell 7.0,其採用的.NET Core,也從2.x升級到3.1,而.NET Core 3.1新提供許多.NET Framework API,特別是在Windows作業系統上,因此與現存Windows PowerShell模組的向後相容度大幅提升,這包括在Windows上,許多需要GUI功能的模組,像是Out-GridView、Show-Command以及許多角色管理模組等。微軟提到,過去因為模組相容性問題,無法使用PowerShell Core 6.x的用戶,或許現在就能夠使用PowerShell 7.0了。

在PowerShell 7.0中,ForEach-Object加入平行執行能力。這個ForEach-Object,是能夠在集合中迭代項目的cmdlet,在預設情況下,平行腳本區塊使用當前平行任務呼叫者的工作目錄,使用者現在可以使用-Parallel參數,指定平行執行腳本區塊。

另外,PowerShell 7.0加入三元運算子,提供類似if-else陳述式的行為。微軟提到,PowerShell的三元運算子來自C#三元預算子語法。PowerShell 7.0還實作了&&和||管線鏈結(Pipeline Chain)運算子,這些運算子類似殼層Bash與Zsh中AND與OR,以及cmd.exe中的有條件處理符號。使用&&,則當左邊的管線成功,便執行右側管線,而||則相反,當左側管線失敗,則運算子執行右側管線。

關於與各種作業系統的相容性,PowerShell 7.0支援Windows 7以上,macOS 10.13以上版本,同時,也支援RHEL、Ubuntu和Alpine等各種Linux發布版本,而且還支援Debian和Ubuntu的ARM32和ARM64版本,以及Alpine Linux的ARM64版本。


Advertisement

更多 iThome相關內容