Mac

【macショートカット】シェルスクリプトを実行

Mac
この記事は約3分で読めます。
書いた人
あいりゅー(irilyuu)

メインはMacOS/iPadOS/麻雀/Siriショートカットです。遊戯王は気分次第で更新。

あいりゅー(irilyuu)をフォローする

こんな方にオススメ

macOS版ショートカットのシェルスクリプトを実行の使い方が知りたい

2021/10~11月 macOS Monterey(12.0.1)にて確認した内容で掲載。M1チップ搭載のMacbook Airでの内容なので、他機種だと若干違うかもしれませんが基本的には同じです。

シェルスクリプトを実行

echo “Hello World”が初期入力されていますが、そこにスクリプトを記述します。
入力ショートカットの入力・マジック変数などが使えます。
出力色々
このアクションはシェルスクリプトに詳しい人ほど、楽しく扱えるものになっています。
逆に自分みたいにシェルスクリプト初心者にとってはあまり有効活用できるとは言い難いものになっています。

このアクションはスクリプティングを代表するようなスクリプト関連のアクションです。【SSH経由でスクリプトを実行:mac版】と同じく、自分でスクリプトを書いて実行するタイプになります。

アクションを配置するとすでに[echo “Hello World”]が書かれていると思います。このまま実行すると、ショートカットのアクション結果としてHello Worldが表示されると思います。このechoというのはPHPでも使われているような「出力」の機能を持っているものになります。

シェルに関してはbashを選んでおけばいいらしいです。この違いからもう自分はわからないので、迷ったらとりあえずbashでいいと思う。詳しい方は自分の用途に応じて選びましょう。

入力は初期値は入力のままですが【ファイル:mac版】や【写真を選択:mac版】などを利用した場合、それらを【マジック変数:mac版】として利用可能です。ショートカットの入力も使えるってことで少し試したんですが、これは何度やってもエラーになったのであまりオススメはしません。

入力を渡す方法は「引数として」でいいと思います。ここも違いが良くわからないんですが、初期値は「stdinへ」になっています。しかし今回紹介する超簡単なスクリプトは引数じゃないとエラーになるので、今回は引数として使います。

管理者として実行は有効化すると、コマンドをより使いやすくなるものです。システムへの変更とかを安易に行えないように制限が掛かっているのがパソコン関係のデフォルトなんですが、この管理者っていう権限を使うことでそれらの制限を一部撤廃することが出来ます。

使用例

自分はシェルスクリプトについて無知なので、調べて簡単に実行できるものを見つけてきました。ほんとはffmpegとかを自動化したいなーと思ったんですが、流石にそこまでの知識は得られなかった。今度挑戦します。

配置するアクションは2つ。今回は動画を使って行いましたが写真とかでもOKです。

【ファイル:mac版】
ファイルを選択します。今回の例では動画を選択しています。後でスクショが出ます
【シェルスクリプトを実行:mac版】
詳しいことは以下で解説します。

ファイルのアクションを追加したら、適当に写真でもテキストファイルでも動画でもいいので一つ選択しておきます。ファイルアクションはこれでOKです。

シェルスクリプトのアクションを追加したら、スクリプトエリアを全て削除して以下を記入。

dirname "$@"
basename "$@"

dirnameはファイルのディレクトリを取得する機能をもったコマンドで、basenameはファイルの名前を取得する機能をもったコマンドです。そして$@は「入力として渡されたファイル」になる変数です。詳しい事は調べてもらったほうがいいと思うんですが、この変数の書き方は特殊なものです。

  • シェル:/bin/bash
  • 入力:ファイル(マジック変数で指定)
  • 入力を渡す方法:引数として
  • 管理者として実行:有効化

と設定します。組むとこうなっているはずです。

シェルスクリプトの使い方紹介

この状態で実行すると、結果が表示されるはずです。ちなみにこのdirnameが少し動作がおかしく、最後の拡張子の直前(.)を出力するんですけどなぜですかね。basenameは正常にElswordと出力されました。

関連アクション

macOS版ショートカットのスクリプト・制御フロー系アクション
SSH経由でスクリプトを実行シェルスクリプトを実行
AppleScriptを実行JavaScript for Automationを実行
if文ショートカットを停止
メニューから選択各項目を繰り返す
繰り返す待機
停止して出力戻るまで待機
リストリストから項目を取得
リストから選択

その他のアクション

macOS版ショートカットアクション一覧

ショートカットをクイックアクションやメニューバーに表示する方法

iPhone/iPad版ショートカットアクション一覧

タイトルとURLをコピーしました