この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ども、大瀧です。
先日PowerShellのLinux対応とオープンソース化がアナウンスされました。
記事のタイトルはLinux対応なのですが、こっそりMac OS Xにも対応していたので、試してみた様子をレポートします。
動作確認した環境
- OS : OS X El Capitan
- PowerShell : バージョン v6.0.0-alpha.9
インストールと実行
現在はアルファ版で、GitHubにリポジトリがあります。ドキュメントに従い、バイナリをダウンロードしてインストールします。
$ sudo installer -pkg powershell-6.0.0-alpha.9.pkg -target /
Password:
installer: Package name is powershell-6.0.0-alpha.9
installer: Installing at base path /
installer: The install was successful.
$
これでOKです。/usr/local/bin/powershell
にシンボリックリンクが張られるので、いきなり実行できます。
$ powershell
PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS /Users/ryuta>
普通に入力補完が効くので、Get-
コマンドレットの一覧を見てみましょう。
PowerShellのコア機能のコマンドレットに限られ、システム管理系コマンドレットはまだ無いようですね。PowerShellからOS Xのシステム設定を変更しようとは今のところ思っていないので(笑)、特に気にはなりませんでした。
あと、モジュールや実行ポリシーなど実行環境周りをチェック。
PS /Users/ryuta> Get-Module
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Content, Clear-Content, Clear-Item, Clear-ItemProperty...}
Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Script 1.2 PSReadLine {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-PSReadlineKeyHan...
PS /Users/ryuta> Get-ExecutionPolicy
Unrestricted
PS /Users/ryuta> Get-Host
Name : ConsoleHost
Version : 6.0.0
InstanceId : 08ce74f4-c0f3-4569-a74e-24b88df79fbd
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : ja-JP
CurrentUICulture : ja-JP
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled : True
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace
PS /Users/ryuta>
普通に動く感じですね。
スクリプトファイルとしての実行
インタプリタとしてPowerShellを使うのであれば、シェルスクリプトと同じような感覚で使いたいものです。ということで、Bashから呼び出すスクリプトファイルを作成し、試してみます。
test.ps1
#!/usr/local/bin/powershell -File
Write-Host 'test!!'
で、これに実行権を付けて実行してみます。
$ chmod +x test.ps1
$ ./test.ps1
test!!
$
あっさり動きましたね。手軽にPowerShellを利用する方法として便利な気がします。
まとめ
クロスプラットフォームに対応したPowerShellのOS X版を試してみました。 皆さんの本命はLinux対応だと思いますが、個人的にはスクリプトをPowerShellで組んで手元のMacbookで実行するのもかなり便利かなと期待しています。 AWSのPowerShellクライアントであるAWS Tools for PowerShellもクロスプラットフォーム版PowerShellに対応予定らしいので、こちらも合わせてウォッチしたいと思います。