screencaptureには、撮影した画像をそのままアプリで開くオプションがある。-Pでプレビュー、-Bで任意のアプリ、-Mでメールアプリの新規メッセージに渡せる。撮影後に注釈を書き込んだり、すぐに共有したりしたい場合に便利である。

screencaptureの基本的な使い方は以下を参照。

参考: 【screencapture】コマンドで画面全体のスクリーンショットを撮る

-Pでプレビューで開く

-Pを指定すると、撮影した画像をプレビューで開く。

$ screencapture -P

ファイル名は省略できる。プレビューには「名称未設定」の新規書類として開かれ、ファイルには保存されない。ファイル名を指定した場合も、ファイルは作成されない。

$ screencapture -P shot.png
$ ls shot.png
ls: shot.png: No such file or directory

画像を残したい場合は、プレビューの「ファイル」メニューから保存する。

動画の場合はQuickTime Playerで開く

-Vで画面を収録するときに-Pを指定すると、収録した動画をQuickTime Playerで開く。静止画と違い、動画は指定したファイル名で保存される。

$ screencapture -V 3 -P movie.mov

参考: 【screencapture】-vで画面を収録する

-Bで任意のアプリで開く

-B <バンドルID>を指定すると、撮影した画像を指定したアプリで開く。以下はColorSyncユーティリティで開く例。

$ screencapture -B com.apple.ColorSyncUtility shot.png

-Pと違い、-Bではファイル名が必要である。画像を指定したファイル名で保存してから、そのファイルをアプリで開く。ファイル名を省略するとエラーになる。

$ screencapture -B com.apple.ColorSyncUtility
screencapture: no file specified

存在しないバンドルIDを指定した場合、エラーにはならず、ファイルの保存だけをする。終了ステータスも0である。

バンドルIDを調べる

アプリのバンドルIDは、osascriptで調べられる。

$ osascript -e 'id of app "ColorSync Utility"'
com.apple.ColorSyncUtility
$ osascript -e 'id of app "Preview"'
com.apple.Preview

-Mでメールの新規メッセージに添付する

man screencaptureによると、-Mを指定すると、撮影した画像をメールアプリの新規メッセージで開く。

$ screencapture -M

メールアプリにアカウントを設定していない環境では、新規メッセージの作成画面は開かず、「メッセージの読み込み」画面が表示される。

参考

ScreenCapture Command: Capture an image of the screen in macOS