macOSでスクリプトからターミナルコマンドを実行する方法

macOSでスクリプトからターミナルコマンドを実行するには、コマンドをプレーンテキストのシェルスクリプトに記述し、実行可能にしてから、Finderまたはターミナルから実行します。.command拡張機能を使用してダブルクリックで開くこともできます。スクリプトはmacOSのプライバシー制御を回避したり、管理者権限を付与したりするものではありません。

MyScript.command 内の zsh シェバンと echo コマンドを表示するプレーンテキストエディタウィンドウ。
短いシェルスクリプトは、zshを選択するshebangで始まります。

1. コマンドをプレーンテキストファイルに書き込む

シェルスクリプトは、コマンドを含むテキストファイルです。最初の行であるシェバンでスクリプトを開始します。シェバンは、macOSにどのシェルでファイルを解釈するかを指示します。新しいターミナルウィンドウの現在のデフォルトシェルはzshですが、Appleのターミナルガイドで説明されているように、管理者は別のデフォルトを設定できます。この例では、明示的にzshを使用します。

#!/bin/zsh
# Print a message when the script runs
echo "Script is running"

シェバンの下にコマンドを別々の行に記述してください。シェバンはインタプリタを選択するので、そのインタプリタがサポートする構文を使用してください。たとえば、Bash スクリプトは で始めることができます#!/bin/bash。Apple のシェルスクリプトガイドに基本事項が説明されています。

TextEdit を使用することもできますが、ファイルがプレーンテキストであることを確認してください。TextEdit で新規に作成するドキュメントはリッチテキストになる可能性があります。 [書式] > [プレーンテキストにする]を選択するか、TextEdit の設定で新規ドキュメントの書式をプレーンテキストに設定してください。リッチテキスト形式はシェルコードではありません。Apple はTextEdit ガイドでこれらのオプションについて説明しています。コードエディタやコマンドラインエディタなどもnano同様です。

macOSの保存ダイアログで、デスクトップ上のプレーンテキストファイルとしてMyScript.commandが選択されている状態。
スクリプトを拡張子「.command」で、見つけやすい場所に保存してください。

.command2.拡張子を付けて保存する

プレーンテキストファイルを、 のような分かりやすい名前で保存してくださいMyScript.command。拡張子 は、ダブルクリックしたときに Finder でスクリプトをターミナルで開くのに役立ちます。Apple のアーカイブされた開発者向けドキュメントには、シェルスクリプトのダブルクリックのワークフローについて説明されています。Finder で最終的なファイル名を確認してください。 で終わっている場合は.command.txt、最終的な拡張子が だけになるように名前を変更してください.command。設定中は、サンプルをデスクトップなどの場所に保存しておいてください。

macOS がどの拡張機能を使用するかを尋ねてきた場合は、.commandFinder に追加されていないことを確認して、そのままにしてください.txt。

3. スクリプトを実行可能にする

ターミナルを開き、アカウントにファイルの実行権限を付与してください。デスクトップに保存されている例の場合は、以下を入力してください。

chmod u+x "$HOME/Desktop/MyScript.command"

Return キーを押します。u+x所有者に実行権限を追加します。引用符はスペースを含むパスを保護します。必要に応じてサンプル パスを置き換えてください。ファイルをターミナルにドラッグするか、Finder の Option キーを押しながらクリックしてパス名をコピーします。Apple は実行可能ファイルの説明で同じ方法を示しています。

デスクトップのMyScript.commandファイルにchmod u+xが適用されたことを示すターミナルウィンドウ。
chmodコマンドは、ファイル所有者に実行権限を追加します。

4. スクリプトを実行する

Finderでダブルクリックすると、MyScript.commandターミナルで実行されます。出力とエラーはそこに表示されます。または、完全なパスを入力してください。

"$HOME/Desktop/MyScript.command"

または、まずフォルダに移動してから、ファイル名の前に「:」を付けます./。

cd "$HOME/Desktop"
./MyScript.command

これは./、シェルに現在のフォルダ内のファイルを実行するように指示します。Appleのターミナルコマンドガイドでは、パス名で実行可能ファイルを実行する方法が説明されています。

MyScript.command を実行し、出力を表示するターミナルウィンドウ。スクリプトが実行中です。
指定されたパスでファイルを実行し、ターミナルで出力結果を確認してください。

よくあるエラーのトラブルシューティング

  • 「アクセス権限がありません」:正しいファイルに対してコマンドを実行したことを確認してくださいchmod u+x。必要に応じて、ファイルの正確なパスを指定してコマンドを繰り返してください。ファイルを実行可能にしたからといって、そのファイル内のすべてのコマンドが許可されるわけではありません。
  • 「そのようなファイルまたはディレクトリはありません」:拡張子を含め、場所とファイル名のスペルを確認してください。誤って別の名前で保存されたファイルは、MyScript.command.txt上記のコマンドと一致しません。ファイルをターミナルにドラッグすると、パスを挿入するのに役立ちます。
  • コマンドは手入力では正常に動作しますが、スクリプト内では動作しません。スクリプトが異なるシェルを使用しているか、エイリアス、環境変数、または対話型ターミナルセッションの作業ディレクトリに依存している可能性があります。正しいシェバンを使用し、エイリアスへの依存を避け、ファイルパスを明示的に指定してください。コマンドが特定のフォルダを必要とする場合は、cdスクリプトの先頭付近に適切な行を追加してください。

共有する前に権限を理解しましょう

実行権限はプライバシー権限とは別個のものです。スクリプトは通常、あなたのアカウントで実行されます。sudo管理者権限が必要なコマンドにのみ使用してください。

macOS は、保護されたフォルダや他のアプリへのアクセスを要求する場合があります。各要求を確認し、必要なもののみを許可してください。ファイルとフォルダおよび関連するプライバシー設定については、Apple メニュー > システム設定 > プライバシーとセキュリティを確認してください。承認は、要求されたアクセスと要求元のアプリによって異なります。コマンドごとに一律に許可されるものではなく、共有スクリプトに付随するものでもありません。

スクリプトを実行または共有する前に、すべての行を読み、変更内容を理解していることを確認してください。.commandファイルは開くとすぐに実行できるため便利ですが、信頼できるソースからのファイルのみを使用するようにしてください。

コメントを残す

Macでスクリーンショットを撮る方法:完全ガイド

Macでスクリーンショットを撮る方法:完全ガイド

Macでスクリーンショットを撮る方法を学びましょう。画面全体、特定の領域、ウィンドウをスクリーンショットするためのショートカットに加え、スクリーンショットアプリ、クリップボード、編集、保存場所に関するヒントもご紹介します。

macOSで1つのPDFに複数の画像を追加する方法

macOSで1つのPDFに複数の画像を追加する方法

macOSのFinderまたはプレビューを使用して、複数の画像を1つのPDFに結合できます。追加ソフトウェアなしで、ページ順序の制御、トリミングの回避、欠落ページの修正が可能です。

macOSでFPSを表示する方法:SteamとAppleのMetal HUD

macOSでFPSを表示する方法:SteamとAppleのMetal HUD

SteamのパフォーマンスオーバーレイまたはAppleのMetalパフォーマンスHUDを使用してMacでFPSを表示する方法、およびカウンターが表示されない場合の対処法を学びましょう。

Macでアプリを強制終了する方法:アプリを素早く閉じる5つの方法

Macでアプリを強制終了する方法:アプリを素早く閉じる5つの方法

応答しないMacアプリを強制終了するには、Option+Command+Escキーを押すか、Appleメニュー、Dock、アクティビティモニタ、またはターミナルからアプリを閉じます。

Macで分割画面を使用する方法:2つのアプリを並べて表示する

Macで分割画面を使用する方法:2つのアプリを並べて表示する

Split Viewの設定方法、ペインのサイズ変更や置換方法、Mission Controlの使い方、そしてMacでデスクトップウィンドウのタイル表示がより適している場面について学びましょう。

macOSで写真からEXIFデータを削除する方法

macOSで写真からEXIFデータを削除する方法

macOSで写真からEXIFデータを削除する方法、写真アプリで位置情報を隠す方法、ExifToolを使用してエクスポートしたJPEGコピーをクリーンアップする方法、そして結果を確認する方法を学びましょう。

Macで2つのフォルダを安全に同期する方法

Macで2つのフォルダを安全に同期する方法

SyncTwoFoldersを使えば、Mac上の2つのフォルダを同期できます。一方向または双方向の更新を選択でき、ファイルの置換や削除を行う前に変更内容をプレビューできます。

MacでTumblrブログをバックアップする方法

MacでTumblrブログをバックアップする方法

Tumblrのウェブエクスポート機能を使って、Mac上でTumblrブログをバックアップしましょう。ZIPファイルをダウンロードして解凍すれば、投稿やメディアを安全に保存でき、アーカイブに含まれないデータも確認できます。

MacのデスクトップでGoogleマップを使用する方法

MacのデスクトップでGoogleマップを使用する方法

MacのSafariまたはChromeでGoogleマップを使用し、場所やルートを検索したり、マップレイヤーを切り替えたり、macOS Sonoma 14以降でSafariウェブアプリをDockに追加したりできます。

WindowsとmacOS向けの無料WAVからMP3への変換ソフトベスト5

WindowsとmacOS向けの無料WAVからMP3への変換ソフトベスト5

WindowsとmacOSに対応した無料のWAVからMP3への変換ソフト5つを比較します。オンラインファイル数の制限、ローカルバッチツール、実用的なエクスポート設定などについても解説します。