macOS で Powershell - install 編
定年までの現役時代 Windows 端末しか使えず、でちょっと凝った(スマートな)処理をしようとすると、VBA を使うことになるのが嫌だった。
VBA も悪くはないけど、C 系の記法を一度経験した身には、少し野暮ったい。
そういうわけで、定年前の職場に移動直後( 10 年くらい前)は、WindowsScriptHost(WSH)でゴリゴリ書いてた。
Windows7 になってからは Powershell を利用して、バッチ処理走らせたり、コマンドやアプリケーションをフィルタ化してパイプで連携したりしてたので、つまり Powershell に馴染んでしまった。
定年後、macOS を好きなように弄れるようになったけど、(Javascript for Automation という手もあるけど)今更 AppleScript はまどろっこしい、
中途半端に覚えてる bash script (というか Perl や Ruby や Python)よりも、Powershell 使いたいな…と思ってたら、macOS にも Powershell がやってきた。
macOS への PowerShell Core のインストール | Microsoft Docsdocs.microsoft.com
細かい手順は上記のリンク先を参照してもらうとして、私は既に Homebrew も Homebrew-Cask も install 済みなので、以下の手順で install できた。
brew cask install powershell
実は、既に macOS に Powershell をインストール済み(MS から初めて公海されたとき、直ぐに入れた)なので、実際には upgrade を実行しただけである。
brew update brew cask upgrade powershell
Homebrew、及び Homebrew-Cask は macOS に最初から入っているわけではないので、予め install しておく必要がある。
やり方は簡単なので、各自 Homebrew、Homebrew-Cask で検索し、手順を確認してほしい。
なお、terminal(私は VisualCode Studio 使ってる)から Powershell の起動するには pwsh をタイプする。
MacTheKnife:~ hoge$ pwsh PowerShell 6.1.3 Copyright (c) Microsoft Corporation. All rights reserved. https://aka.ms/pscore6-docs Type 'help' to get help. PS /Users/hoge>
とりあえず get-executionpolicy 実行してみた
PS /Users/hoge> get-executionpolicy Unrestricted PS /Users/hoge>
駄菓子菓子、set-executionpolicy は操作できないっぽい。PlatformNotSupportedException だってお。
PS /Users/hoge> set-executionpolicy restricted set-executionpolicy : Operation is not supported on this platform. At line:1 char:1 + set-executionpolicy restricted + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy], PlatformNotSupportedException + FullyQualifiedErrorId : System.PlatformNotSupportedException,Microsoft.PowerShell.Commands.SetE xecutionPolicyCommand PS /Users/hoge>
【2019/03/04 ここから追記】
PowerShell Core 6.0 の新機能 | Microsoft Docsdocs.microsoft.com
上記情報によると…
スクリプト エンジンは現在サポートされていないため、Windows 以外のプラットフォームで PowerShell を実行するときは -ExecutionPolicy スイッチを無視します。 (#3481)
【2019/03/04 追記終わり】
Powershell の中から JSC(JavaScriptCore)を呼び出してみた。
JSC は macOS の bash で呼べる Javascript shell。
macOS には標準で入ってる(多分 /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc)ので、スクリプトファイルなら shebang 書けば直ちに実行できるはず。
対話的(REPL)に使いたいなら JSC への path を通しておく。
まぁ、今なら JSC より node.js なんだろうけど、それを言ったら macOS 環境に Powershell (しかもまだ移植が半端)入れる意味って…
PS /Users/hoge> jsc >>> print("Hello World!"); Hello World! undefined >>> quit(); PS /Users/hoge>